Showing posts with label software engineering. Show all posts
Showing posts with label software engineering. Show all posts

Great Software Debates (Practitioners) Review

Great Software Debates (Practitioners)
Average Reviews:

(More customer reviews)
Are you looking to buy Great Software Debates (Practitioners)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Great Software Debates (Practitioners). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Great Software Debates (Practitioners) ReviewThis not a bad book, but if you happen to read IEEE Software regularly, there is almost nothing new. I have not yet read the whole book, and Davis claims that he has updated the original articles, but most of the stuff has not changed.
On the other hand, if you have not read the articles before, they are quite fun to read, e.g. "Art or Engineering, One More Time".
But I have an issue with the title: the "debates" are mostly some paragraphs at the end of the article, that are more like questions in a text book that might start a debate, but do not really dig into a controversial issue.
I very much prefer, Robert E. Glass': "Facts and Fallacies of Software Engineering", which contains similiar topics, but is much more to the point. And makes the controversies on his issues much more explicit.
Funnily, Glass, on the other hand, thinks very highly of an older book of Davis': "201 Principles of Software Development"Great Software Debates (Practitioners) OverviewThe industry's most outspoken and insightful critic explains how the software industry REALLY works.
In Great Software Debates, Al Davis, shares what he has learned about the difference between the theory and the realities of business and encourages you to question and think about software engineering in ways that will help you succeed where others fail.
In short, provocative essays, Davis fearlessly reveals the truth about process improvement, productivity, software quality, metrics, agile development, requirements documentation, modeling, software marketing and sales, empiricism, start-up financing, software research, requirements triage, software estimation, and entrepreneurship. He will get you thinking about:
The danger of following trends and becoming a ‘software lemming'
Is software development art or engineering?
How to survive management mistakes
The bizarre world of software estimation
How to succeed as software entrepreneur
How to resolve incompatible schedules and requirements

If you are in the software industry and do not know which way to turn, Great Software Debates provides valuable and insightful advice. Whether you are a software developer, software manager, software executive, entrepreneur, requirements writer, architect, designer, or tester, you will find no shortage of sound, palatable advice.

Want to learn more information about Great Software Debates (Practitioners)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Engineering Risk Management (Practitioners) Review

Software Engineering Risk Management (Practitioners)
Average Reviews:

(More customer reviews)
Are you looking to buy Software Engineering Risk Management (Practitioners)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Engineering Risk Management (Practitioners). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Engineering Risk Management (Practitioners) ReviewThis book contains 170 information-packed pages that describe a comprehensive and effective approach to managing software development risks.
The approach is based on a just-in-time (JIT) strategy. Key elements of this strategy include (1) strategic planning and operational planning, the former is focused on product-line based software and makes a distinction between the software under development being the product itself or a part of the product, and the latter is focused on project planning and controls; (2) early risk identification, and (3) parallel development. When this book was first published parallel development was a complex goal; however, with component-based development strategies the approach is ideal. Perhaps the author was ahead of his time.
Some of the best chapters in this book are: Chapter 4 - provides excellent insights and advice on managing the strategic and operational elements of the JIT strategy, Chapter 5 - comprehensive list of software risk elements and Chapter 7 - another comprehensive list that covers risk metrics.
Chapter 8 describes the JIT method as it applies to each phase in the software development life cycle. This chapter contains valuable tables that can be used as checklists in your own project, and is full of useful information that can be applied to project risk management regardless of whether or not you implement the JIT approach described in this book. Chapter 9 shows how to apply the JIT approach to a project. This chapter is short is really a brief summary of the software engineering risk model (SERIM) from which the JIT approach was derived. Chapter 10 is a collection of JIT examples that can easily be recast into patterns. I especially like the way these examples clarify the information in preceding nine chapters. I recommend that you refer to this chapter as you read through the book because there will almost certainly be an example that will illustrate any fuzzy areas.
This is one of my favorite books on risk management in general and software risk management in particular. The information and approach are not limited to software engineering, although the book was obviously written for that technical domain. I have borrowed techniques from this book and have successfully applied them in other kinds of projects, as I am sure you will. I give it 5 stars and a strong recommendation.Software Engineering Risk Management (Practitioners) OverviewThis book is designed for those who manage software development projects. It explores software and risk management both from a technology and a business perspective. Issues regarding costs, schedules, technical performance, and strategies for software development are discussed.The author approaches software development from a just-in-time viewpoint and details strategies for implementing and planning development plans in a cost-effective and timely manner. The book presents a significant discussion of software risk issues pertaining to organizational costs and schedules. It also identifies metrics and presents several models for measuring and predicting risk.The information featured in the book is supported by actual proven case studies derived from the author's experience. The text addresses many different concepts, strategies, and tools that could make the management of your next software development project less of a guess and more predictable.Also available is the SERIM Software Tool. This interactive, easy-to-use Windows application gives you an automated way to determine the risks of your software project. The product is based on the SERIM model detailed in this bestselling book.

Want to learn more information about Software Engineering Risk Management (Practitioners)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives Review

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
Average Reviews:

(More customer reviews)
Are you looking to buy Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives ReviewWhen it comes to the systems or software architecture, I subscribe to Tom Demarco's definition: "An architecture is a framework for the disciplined introduction of change." (http://www.systemsguild.com/GuildSite/TDM/Architecture.html). And while most of the job postings matching "architect" these days talk about the need for writing and testing code, there is a growing awareness in the industry that in order to build a resilient enterprise system an organization must look beyond design patterns and coding idioms. In addition to the technical challenges, building large enterprise system requires effort of many professionals during an extended period of time. This brings other non-technical risks into the picture.
This is one of the better books covering many issues that comprise System Architecture discipline in the light of their personal experience. The authors introduce us to an approach for partitioning architecture using Viewpoints (behavioral characteristics, e.g. Functional, Information, Concurrency, Development, Deployment, Operational) and Perspectives (nonfunctional aspects, e.g. Security, Performance and Scalability, Availability and Resilience, Evolution).
The first half of the book describes the discipline of Application Software Architecture, the second half contains two catalogs, one for Viewpoints and the other for Perspectives. Both catalogs describe concerns, artifacts (models), problems and pitfalls when focusing on a viewpoint or perspective.
I would qualify this book as a companion and reference for a beginner through intermediate level. It gives an excellent overview of what a system architect has to go through day in and day out to achieve success. The book contains a wealth of advice on what to pay and not pay attention to in any particular stage of the architectural development. The authors clearly speak from personal experience. Their examples are always to the point, although a bit sketchy with respect to details on techniques and artifacts and how to develop and use them. Considering the site of the volume, the authors did an excellent job balancing width and depth of coverage: trying to cover such a vast discipline in detail in a 500+-page book is not possible.Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives Overview
Software Systems Architecture is a practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices. It shows why the role of the architect is central to any successful information-systems development project, and, by presenting a set of architectural viewpoints and perspectives, provides specific direction for improving your own and your organization's approach to software systems architecture.

With this book you will learn how to

Design an architecture that reflects and balances the different needs of its stakeholders
Communicate the architecture to stakeholders and demonstrate that it has met their requirements
Focus on architecturally significant aspects of design, including frequently overlooked areas such as performance,resilience, and location
Use scenarios and patterns to drive the creation and validation of your architecture
Document your architecture as a set of related views
Use perspectives to ensure that your architecture exhibits important qualities such as performance, scalability, and security

The architectural viewpoints and perspectives presented in the book also provide a valuable long-term reference source for new and experienced architects alike.

Whether you are an aspiring or practicing software architect, you will find yourself referring repeatedly to the practical advice in this book throughout the lifecycle of your projects.

A supporting Web site containing further information can be found at www.viewpoints-and-perspectives.info


Want to learn more information about Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Glitch: The Hidden Impact of Faulty Software Review

Glitch: The Hidden Impact of Faulty Software
Average Reviews:

(More customer reviews)
Are you looking to buy Glitch: The Hidden Impact of Faulty Software? Here is the right place to find the great deals. we can offer discounts of up to 90% on Glitch: The Hidden Impact of Faulty Software. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Glitch: The Hidden Impact of Faulty Software ReviewGiven my (and many others') increasing frustration with consequences of buggy software, I was really hoping for this book to be useful at identifying the issues and proposing some solutions. Not only did the book come up short on both of these, but much of the book has nothing to with glitches. Further there were numerous errors in much of the material, and most of the "solutions" proposed amounted to suggesting increased regulation, as if the government can demand bug-free software (when that isn't even defined) or "certified" software engineers, again not showing what kind of certification (or even training) can reduce bugs.
Some examples of wrong, if not downright dangerous, advice:
He points to Bernie Madoff as an example of the need for more government regulation (in general), ignoring the fact that preventing situations like Bernie Madoff was EXACTLY what the SEC was set up to, and even after 75 years was unable to do so.
He also aims to expand government's consumption of technology - "without ... Web 2.0 capabilities on government websites, e-government initiatives will deliver diminishing returns. ... when ... [Web 2.0 capabilities are] unavailable on government sites, citizens will not return." This completely misses several major points - most notably, that government does not have competitors (for true government functions), and that as long as an electronic solution is easier than the alternative, it will succeed. Will anyone really choose to go in to the DMV for a renewal that can be done on the web, just because the website doesn't offer flashy graphics or collaboration features?
In suggesting not to understand, much less upgrade mission-critical systems- "Know when to leave well enough alone. Given fluctuations in staffing and long-term investments in technology, the reality is that you simply won't fully understand certain applications. ... you will not always know exactly what makes them tick ...If it's a business-critical application, ... you may not need to know every line of code ... In this case, the risk of compromising the infrastructure by opening the application far outweighs the need to sate curiosity." One would think that if a system were business-critical, understanding every line would be business-critical. Or else one glitch could bring down the company, because no one will understand enough to repair it in a timely manner. Also, even the most green developer knows that "opening the application" (i.e. reviewing source code) does not entail ANY risk. Ignorance, however, that's risk.
In proposing more attention being paid to cloud applications - "Should faulty software practices make their way into a cloud, they might impact a wider audience than a more traditional on-premises model of software ownership. Therefore we need to be that much more diligent when it comes to developing [cloud applications]" This is particularly disturbing as he earlier pointed out software bugs that killed people in a (not widely used) radiology application. "Diligence" should be a function of potential impact, not where an application is hosted, or even how many users it has.
Even his definition of a software problem is questionable - "When I buy a flat-panel TV and it takes me four hours to make it work with the components, that's a software lifecycle problem. When I wait for three hours for what was supposed to be a one-hour brake pad replacement, that's a software life cycle failure."
Speaking of definitions, he continually talks about "transparency" and "governance" without ever clearly defining those terms.
In summary, while the author may have been CEO of Lotus Development Corp, it sounds like he was never actually a developer or even a tester, and hence appears to be a PHB (pointy haired boss) right out of Dilbert, spouting off dictates with no understanding of the real problems, much less solutions. What a shame.
Glitch: The Hidden Impact of Faulty Software OverviewDon't Let Software Failures Destroy Your BusinessThe growing impact of software failures on brands, customers, and business performance

Want to learn more information about Glitch: The Hidden Impact of Faulty Software?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Patterns-Based Engineering: Successfully Delivering Solutions via Patterns Review

Patterns-Based Engineering: Successfully Delivering Solutions via Patterns
Average Reviews:

(More customer reviews)
Are you looking to buy Patterns-Based Engineering: Successfully Delivering Solutions via Patterns? Here is the right place to find the great deals. we can offer discounts of up to 90% on Patterns-Based Engineering: Successfully Delivering Solutions via Patterns. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Patterns-Based Engineering: Successfully Delivering Solutions via Patterns Review"Patterns-Based Engineering is a big thick hardcover book with three parts. The audience is mainly architects/designers with OO, UML and patterns experience. The reader should also be comfortable dealing with abstract thought.
I had different reactions to each part so reviewing separately:
Part 1
The parts on how to generalize and look for patterns in what we do was interesting. It was approachable and I found myself scribbling in the margins.
Part 1a
There was a case study to walk you through how patterns based engineering works in practice. This was the least abstract part of the book, but it had one major problem - too much exposition on the dev team along with their names. Two pages later I was already backflipping to recall who these people are and by the next day/chapter I had no idea. Felt like I was missing something important.
Part 2
The patterns themselves are very reference like and dry. Nothing wrong with it, but didn't hold my attention. Maybe they aren't meant to be read straight through.
Part 3
I was back to being engaged and writing in the margins for the costs and benefits chapters. I think the misconceptions chapter could have been fleshed out more. Parts of it read like "X is a myth because X is not true" and could have used more examples.
---
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.Patterns-Based Engineering: Successfully Delivering Solutions via Patterns OverviewSuccessfully delivering Solutions via Patterns In Patterns-Based Engineering, two leading experts bring together true best practices for developing and deploying successful software-intensive systems. Drawing on their extensive enterprise development experience, the authors clearly show how to deliver on the promise of a patterns-based approach—and consistently create higher-quality solutions faster, with fewer resources.Lee Ackerman and Celso Gonzalez demonstrate how Patterns-Based Engineering (PBE) can help you systematically overcome common obstacles to success with patterns. By bringing discipline and clarity to patterns usage, their techniques enable you to replicate your success broadly and scale patterns to even the largest projects.The authors introduce powerful ways to discover, design, create, package, and consume patterns based on your organization's experience and best practices. They also present extensive coverage of the nontechnical aspects of making patterns work, including a full chapter of guidance on clearing up misconceptions that stand in your way. Coverage includesUsing patterns to optimize the entire development lifecycle, including design, coding, testing, and deployment Systematically managing the risks and economic returns associated with patterns Effectively implementing PBE roles, tasks, work products, and tools Integrating PBE with existing development processes, including eXtreme Programming, Scrum, and OpenUP Using Domain Specific Languages (DSLs) with patternsWhether you're an architect, designer, developer, analyst, project manager, or process engineer, Patterns-Based Engineering will help you to consistently derive greater business value and agility from patterns.

Want to learn more information about Patterns-Based Engineering: Successfully Delivering Solutions via Patterns?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition) Review

Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition) ReviewThere are a number of excellent books on the topic of real-time systems. Few, if any, address the breadth of topics covered by this book, much less to the depth and quality exhibited here. Read as many of the others as you can, but if you must purchase only one book on real-time systems, this is the one to have. Indeed, I have each of the three previous editions of this book and this latest is, once again, worth every penny.
One of the reasons I hold such a high opinion of the book is that it is written by people who not only know what they are talking about, but can do so with clarity and precision. As leading contributors to scheduling theory and the real-time programming facilities of both Ada and Java, the authors are internationally recognized experts on real-time systems and programming languages. The text's depth reflects that fact, but it is also clear, concise, and a pleasure to read.
Another reason I recommend the book is that it has a good balance between theory and practice. Make no mistake, the necessary theory is covered extensively, but it is then illustrated with concrete examples using programming languages that are in wide-spread use today: Ada, C, and Java. As neither C nor Java were explicitly designed for concurrent real-time systems, the text includes the necessary extensions. For C, the POSIX real-time profile is used. For Java, the Real-Time Specification for Java (RTSJ) is used. When necessary, examples are provided in other languages as well.
In fact these three programming languages form the underlying context for much of the book. They are not themselves the subjects of the book, however, and those readers seeking an introduction to these languages should look elsewhere. Instead, the programming languages are used to explore the distinct nature of real-time systems and the requirements for developing applications in that domain. The code examples thus provide a means of illustrating the topic at hand, but also provide a means for comparing the strengths and weaknesses of the real-time facilities of the languages. The authors are leading contributors to the Ada 2005 Real-Time Systems Annex and the RTSJ for Java, a fact reflected in the detailed critical analysis provided.
I felt happy to purchase yet another edition of the book because of all the above, but also because of the additions (and removals) present in this edition. New material includes additional schedulability analysis theory and material on multi-processor and multi-core architectures. With respect to programming languages, the new material includes extensive coverage of the real-time systems programming additions to Ada 2005, the latest version of the RTSJ, and the new real-time POSIX profile enhancements for C. As for removals, the introductory material on the programming languages is no longer present. This change was a necessity for the sake of brevity, but the result is a better overall focus. Also removed is the chapter on distributed systems. I was sorry to see that go, but the primary points have been moved to other chapters. Discussion of other programming languages, such as occam2, are also removed for the sake of brevity but is available on the book's web site.
I should point out that this is not just a "timing" book. For example, real-time systems typically have reliability requirements as well as timeliness requirements. Reliability is thus covered extensively, as are a number of other topics that might not be immediately suggested by the title.
In summary, I am a real-time systems engineer with over 30 years of professional development, industry lecturing, and occasional university lecturing experience. Based on that combination, I give this book my highest recommendation to both professionals and students alike. The field of real-time systems is not for beginners, but developers (and managers) as well as more advanced university students will definitely benefit. Both will find a text they can use to learn the latest in the field.
PS: Note that, at the time of this writing, Amazon is for some reason showing some reviews for earlier editions of the book, not this latest (fourth) edition.
Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition) OverviewB> This book provides an in-depth analysis of the requirements for designing and implementing real-time embedded systems, and discusses how these requirements are met by current languages and operating systems.The comparative advantages of Ada 95, Real-Time Java, and Real-Time C/POSIX are discussed in full.The emergence of Java as a real-time language through the Real-Time Java extensions has resulted in the treatment of Java as one of the core languages covered in the book.The additional real-time facilities in POSIX are also explored, as well as the proposed extensions to CORBA to address real-time issues.More material on schedulability analysis is also included. No other book on real-time programming languages (or concurrent programming languages) covers this range of topics.This book is designed for programmers and engineers looking for an introduction and/or reference that discusses current real-time programming languages and how they are suited to designing and implementing real-time embedded systems.

Want to learn more information about Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX (3rd Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series) Review

Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series)
Average Reviews:

(More customer reviews)
Are you looking to buy Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series) ReviewAfter reading Architecture Principles and Enterprise Architecture at Work I decided I would also read this book and Enterprise Governance and Enterprise Engineering as well. I am starting Enterprise Governance and Enterprise Engineering now. This series is great!!! I recommend every Enterprise Architect buy the series.
This book was the first of the series. It is only 145 pages long, but it is packed full of valuable information.
This book puts Enterprise Architecture into context. It gives a complete picture of Enterprise Architecture.
It starts with a great chapter on why Enterprise Architecture is needed and then has chapters on Positioning Enterprise Architecture, The Results of Enterprise Architecting, The Process of Enterprise Architecting, and The Enterprise Architect.
One of my favorite parts of the book is the description the book gives to the Enterprise Architect role. Anyone looking to hire or become an Enterprise Architect should read this chapter. It covers basic job descriptions, competencies (e.g. dedication, authenticity, integrity, negotiation, openness, stability, etc.), responsibilities, and personality types.
One of the things I didn't like about the book is that there is no index. This seems to be the case for the smaller Springer book, so I can't ding the authors for that.
This is a well rounded introduction to Enterprise Architecture. It covers all the basics in depth and also provides a really nice example to show you the results of Enterprise Architecting.
All in all I highly recommend this book for anyone involved in anyway with Enterprise Architecture. It will provide you a clear picture of what it involves.

Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series) OverviewTwenty years after the first publications and books on enterprise architecture, the domain is evolving from a technology-driven towards a more business-driven approach, thus empowering decision makers to adapt and transform an enterprise in order to keep up with changing business needs. At the same time the discipline of enterprise architecting has matured, leading to a better understanding of the profession of an enterprise architect.With this book, the authors aim to provide an overview of enterprise architecture including the process of creating, applying and maintaining it, thus taking into account the perspectives of CxOs, business managers, enterprise architects, solution architects, designers and engineers. They explore the results that are produced as part of an enterprise architecture, the process by which these are produced, and the role the architect plays in this process. As such, they do not describe a specific method for developing an enterprise (IT) architecture, nor do they define a specific modeling language for enterprise architecture, rather they offer the reader a fundamental way of thinking about enterprise architecture, which will enable him to select and apply the right approach, architecture framework and tools that meet the objective and context of the architecture work at hand. This approach is emphasized by discussion statements at the end of each chapter, sparking thoughts about benefits, shortcomings, and future research directions.Covering both theoretical foundations and practical use, and written in close collaboration between industry professionals and academic lecturers, Enterprise Architecture thus offers an ideal introduction for students in areas like business information systems or management science, as well as guidance and background for professionals seeking a more thorough understanding of their field of work.

Want to learn more information about Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Fault Injection with CDROM Review

Software Fault Injection with CDROM
Average Reviews:

(More customer reviews)
Are you looking to buy Software Fault Injection with CDROM? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Fault Injection with CDROM. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Fault Injection with CDROM ReviewVoas and McGraw make the case that, to produce reliable software, validation (usually applied as dynamic - or run-time -- testing), is more effective than process. That alone is nothing new -- many software development organizations invest much more in testing than in process improvement. But Software Fault Injection goes further: instead of more and more testing which always seems to miss the failures that the end user seems to find so easily, create those failures. Even (temporarily) create the defects that will cause those failures to happen. Sound strange? It is, but no stranger than what this book explains how to do -- as in the subtitle -- Inoculating Programs Against Errors. The idea is to produce modified, selectively defective copies of the software under test and see how the rest of the system handles the failures that now happen "in the lab" rather than in the field. It works with medical research and produces vaccines. If you're tired of the cycle of code, test, launch, surprise crash in the field, consider whether software failure injection might help.
--
Full disclosure: I only had time to read the first 10% of the book before I had to move on to other topics. But if and when I come back to software reliability improvement, this is a book I'll pick up again.Software Fault Injection with CDROM OverviewThe benefits and challenges associated with fault injection methods are described in this book. The authors seek to explain injection methodology by extensive use of applications data and real-world case studies. The book covers: how to predict where faults are most likely to hide; how failures in the software environment should impact software performance; how to use normal beta testing to uncover potential security problems; what fault injection reveals about maintenance and reuse; and how to introduce fault injection methods into your organization.

Want to learn more information about Software Fault Injection with CDROM?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Testing and Quality Assurance: Theory and Practice Review

Software Testing and Quality Assurance: Theory and Practice
Average Reviews:

(More customer reviews)
Are you looking to buy Software Testing and Quality Assurance: Theory and Practice? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Testing and Quality Assurance: Theory and Practice. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Testing and Quality Assurance: Theory and Practice ReviewThis book is very inconsistent in helping you learn. For example, chapter 10 is full of notation on finite state machines, but things are hardly explained at all. There is hardly any reasoning for why you are generating all of these various sequences. Then look at chapter 17 and you get definitions like:
Learnability: The capability of the software product to enable the user to learn its applications.
Operability: The capability of the software product to enable the user to operate and control it.
Attractiveness: The capability of the software product to be liked by the user.
How can you go from the insanely complex finite state machine stuff to telling someone what attractiveness is. And they never vary to say "the capability of the software product". The book wastes time writing that out where it could be using that time to explain the concepts that are actually difficult. It definitely seems the book was written by two different people.Software Testing and Quality Assurance: Theory and Practice OverviewA superior primer on software testing and quality assurance, from integration to execution and automation
This important new work fills the pressing need for a user-friendly text that aims to provide software engineers, software quality professionals, software developers, and students with the fundamental developments in testing theory and common testing practices.
Software Testing and Quality Assurance: Theory and Practice equips readers with a solid understanding of:
Practices that support the production of quality software
Software testing techniques
Life-cycle models for requirements, defects, test cases, and test results
Process models for units, integration, system, and acceptance testing
How to build test teams, including recruiting and retaining test engineers
Quality Models, Capability Maturity Model, Testing Maturity Model, and Test Process Improvement Model

Expertly balancing theory with practice, and complemented with an abundance of pedagogical tools, including test questions, examples, teaching suggestions, and chapter summaries, this book is a valuable, self-contained tool for professionals and an ideal introductory text for courses in software testing, quality assurance, and software engineering.

Want to learn more information about Software Testing and Quality Assurance: Theory and Practice?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Engineering Processes: Principles and Applications Review

Software Engineering Processes: Principles and Applications
Average Reviews:

(More customer reviews)
Are you looking to buy Software Engineering Processes: Principles and Applications? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Engineering Processes: Principles and Applications. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Engineering Processes: Principles and Applications ReviewThis book is an excellent source of information for software engineers and managers who want to examine, or compare their own software processes against the current SE process models. It is well written, easy to follow, and covers all of the current popular process models.
The book discusses the history, philosophy, and assessment techniques for CMM, ISO 9001, BOOTSTRAP, and ISO 15504. Each of the models is explained and a formal description of each of the process models is provided using a process algebra.
A reference model, SEPRM, that the authors have developed, can be used to transform and compare the various models between each other. It is this reference model that provides a domain that contains all of the process models. By using the SEPRM a software engineer can analyze the interrelationships of the current process models.
This book was very good and I found the information in it to be very useful. For anyone looking to improve their software development processes this book would be of great benefit.Software Engineering Processes: Principles and Applications OverviewSoftware engineering is playing an increasingly significant role in computing and informatics, necessitated by the complexities inherent in large-scale software development. To deal with these difficulties, the conventional life-cycle approaches to software engineering are now giving way to the "process system" approach, encompassing development methods, infrastructure, organization, and management. Until now, however, no book fully addressed process-based software engineering or set forth a fundamental theory and framework of software engineering processes.Software Engineering Processes: Principles and Applications does just that. Within a unified framework, this book presents a comparative analysis of current process models and formally describes their algorithms. It systematically enables comparison between current models, avoidance of ambiguity in application, and simplification of manipulation for practitioners.The authors address a broad range of topics within process-based software engineering and the fundamental theories and philosophies behind them. They develop a software engineering process reference model (SEPRM) to show how to solve the problems of different process domains, orientations, structures, taxonomies, and methods. They derive a set of process benchmarks-based on a series of international surveys-that support validation of the SEPRM model. Based on their SEPRM model and the unified process theory, they demonstrate that current process models can be integrated and their assessment results can be transformed between each other.Software development is no longer just a black art or laboratory activity. It is an industrialized processthat requires the skills not just of programmers, but of organization and project managers and quality assurance specialists.Software Engineering Processes: Principles and Applications is the key to understanding, using, and improving upon effective engineering procedures for software development.

Want to learn more information about Software Engineering Processes: Principles and Applications?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management) Review

Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management)
Average Reviews:

(More customer reviews)
Are you looking to buy Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management) ReviewI have just completed the JHU program in Systems Engineering. This book is the foundation for the curriculum and is a very readable, solid overview of Systems Engineering. All phases of the system life-cycle are introduced and tied together to truly illustrate the process. The book focuses on processes, the tools used will change, but good Systems Engineering will stay the same. The process to derive good requirements that are able to be implemented and tested are the same regardless of technology or field.Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management) OverviewSystems Engineering Principles and Practice is a national standard textbook for the study of traditional systems engineering for advanced undergraduate and graduate students.It addresses the need for an introductory overview, first-text for the development and acquisition of complex technical systems. The material is well organized, readable and fundamental to learning how to think like a systems engineer and carry out best practices in the field. Since systems engineering is still developing as a discipline, there have been new concepts and practices that have entered the field since the text was published in 2003. As an increasing number of students have used the text, topics have been discovered that would benefit from expansion, integration and clarification.
The proposed second edition will be developed by colleagues of the original authors to upgrade this unique interdisciplinary guide to systems engineering to maintain relevance and currency in this rapidly changing and demanding field.


Want to learn more information about Systems Engineering Principles and Practice (Wiley Series in Systems Engineering and Management)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Engineering: (Update) (8th Edition) Review

Software Engineering: (Update) (8th Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Software Engineering: (Update) (8th Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Engineering: (Update) (8th Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Engineering: (Update) (8th Edition) ReviewI used this book as the text in my software engineering class in the spring semester of 2008. When I was evaluating it for potential adoption, I did not read through it in detail, I looked over the chapter titles and subtitles, read the first few chapters and examined the exercises at the end of the first few chapters. As the semester progressed, I found myself wishing I had read further into the text.
As I moved through the chapters, I found myself mentally noting over and over again that topics are repeated. When the class was over, I asked the students their opinion of the book and they were unanimous, with no prompting from me, in saying that there is a great deal of repetition after the first chapters.
I have no complaint about the quality of exposition or the coverage of software engineering in this book. My reason for not continuing to use it in future classes is solely due to my belief that the size could have been reduced from the current 840 pages to around 600 pages with no real loss of content of flow.
Software Engineering: (Update) (8th Edition) OverviewTHE most current Software Engineering text in the market– quality trusted coverage, practical case studies, strong lecturer support.

Want to learn more information about Software Engineering: (Update) (8th Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

The Economics of Software Quality Review

The Economics of Software Quality
Average Reviews:

(More customer reviews)
Are you looking to buy The Economics of Software Quality? Here is the right place to find the great deals. we can offer discounts of up to 90% on The Economics of Software Quality. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

The Economics of Software Quality ReviewCapers Jones and Olivier Bonsignour have authored a very useful book that will help the software industry make more objective decisions and improve the economic outcomes of software delivery organizations. This book is loaded with data, benchmarks and cause-and-effect relationships for reasoning about how to improve software quality. It is not an easy read because it goes both deep and broad across the diverse contexts of software domains and across the life-cycle practices of software development. This book is a great place to start when looking for credible and objective benchmark data to build a business case or defend a proposal for improving software quality or productivity.
The economics of software quality is an attractive topic all by itself. However, the book delivers unexpected value on two other fronts. First, the presentation and discussion of substantial data provides an educational framework for quantitative reasoning with enlightening discussions on cause and effect as well as cautions on potential misinterpretation. Second, the well-integrated history lessons throughout give the reader a good feel for the improvement trends, or lack of improvement trends, across the software industry.
Decades of experience, compiled into an encyclopedia of facts and figures. Well worth the price.The Economics of Software Quality Overview"Whether consulting, working on projects, or teaching, whenever I need credible, detailed, relevant metrics and insights into the current capabilities and performance of the software engineering profession, I always turn first to Capers Jones' work. In this important new book, he and Olivier Bonsignour make the hard-headed, bottom-line, economic case, with facts and data, about why software quality is so important. I know I'll turn to this excellent reference again and again."—Rex Black, President, RBCSPoor quality continues to bedevil large-scale development projects, but few software leaders and practitioners know how to measure quality, select quality best practices, or cost-justify their usage. In The Economics of Software Quality, leading software quality experts Capers Jones and Olivier Bonsignour show how to systematically measure the economic impact of quality and how to use this information to deliver far more business value.Using empirical data from hundreds of software organizations, Jones and Bonsignour show how integrated inspection, structural quality measurement, static analysis, and testing can achieve defect removal rates exceeding 95 percent. They offer innovative guidance for predicting and measuring defects and quality; choosing defect prevention, pre-test defect removal, and testing methods; and optimizing post-release defect reporting and repair.This book will help youMove beyond functional quality to quantify non-functional and structural quality

Want to learn more information about The Economics of Software Quality?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Touch of Class: Learning to Program Well with Objects and Contracts Review

Touch of Class: Learning to Program Well with Objects and Contracts
Average Reviews:

(More customer reviews)
Are you looking to buy Touch of Class: Learning to Program Well with Objects and Contracts? Here is the right place to find the great deals. we can offer discounts of up to 90% on Touch of Class: Learning to Program Well with Objects and Contracts. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Touch of Class: Learning to Program Well with Objects and Contracts ReviewFrom the man who invented eiffel. An excellent introduction to software development the right way. Examples and the software development environment is available as a free download. The approach used in this book is useful for the beginner as well as an experienced programmer. Software runs on Linux, Mac OS x,
and Windows.Touch of Class: Learning to Program Well with Objects and Contracts OverviewFrom object technology pioneer and ETH Zurich professor Bertrand Meyer, winner of the Jolt award and the ACM Software System Award, a revolutionary textbook that makes learning programming fun and rewarding. Meyer builds his presentation on a rich object-oriented software system supporting graphics and multimedia, which students can use to produce impressive applications from day one, then understand inside out as they learn new programming techniques. Unique to Touch of Class is a combination of a practical, hands-on approach to programming with the introduction of sound theoretical support focused on helping students learn the construction of high quality software. The use of full color brings exciting programming concepts to life.Among the useful features of the book is the use of Design by Contract, critical to software quality and providing a gentle introduction to formal methods. Will give students a major advantage by teaching professional-level techniques in a literate, relaxed and humorous way.

Want to learn more information about Touch of Class: Learning to Program Well with Objects and Contracts?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Object-Oriented Project Management with UML Review

Object-Oriented Project Management with UML
Average Reviews:

(More customer reviews)
Are you looking to buy Object-Oriented Project Management with UML? Here is the right place to find the great deals. we can offer discounts of up to 90% on Object-Oriented Project Management with UML. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Object-Oriented Project Management with UML ReviewThere is no doubt that this book is very good for somebody, who is going to start working in a software engineering environment. However, there are a couple of points which indicate that one should look around before deciding upon a purchase. (Even with the current price of 24 $)
Here are my points of concern:
- The chapter on object technology is really a half-hearted introduction and not very useful for getting started in this field.
- The book relies heavily on just a few references. Those references are recommended repeatedly. One of them is the doubtful 'Journey of a Software Professional' (Hint: Check out the mixed reviews.)
- The author can't resist recommending the 80-20 rule throughout the different project phases. This is hardly inventive and adds to a certain degree of repetitiveness.
- The case study is more entertaining than informative.
- The third part of the book (consisting of only one chapter) simply gives the impression that the book was rushed out for print.
I am not quite sure why this book merits a hardcover and on some occasions throughout the book, I could not help thinking that the layouters tried to increase the number of pages by adding a few commentary boxes ('Tips') here and there and enlarging diagrams to 'poster-size'.
Despite all those complaints, I have to say that the book helped me to gain an overview of the management process of a software product. But, after my first reading, it now gathers dust on the bookshelf ...Object-Oriented Project Management with UML OverviewAlmost all software projects are risky. The goal of every project manager is to somehow deal with the cost and schedule uncertainty while meeting your customer's needs. In Object-Oriented Project Management with UML, Murray Cantor describes an elegant, UML-based approach to managing object-oriented projects guaranteed to deliver high-quality software on time and within budget.Drawing on his experience managing major software projects at IBM and TASC, Cantor supplies you with:Proven ways to reap the benefits of using UML tools to tame most project demons and deliver optimal OO systemsTips on integrating object-based techniques with traditional methods for project planning, risk management, scheduling, time-phased budgeting, and moreExpert advice on how to handle all the important "people" issues that crop up during a development projectReal-life war stories that let you see firsthand what worked and what didn't on several major development projectsA full-length project example that walks you through every phase of a project told in terms of problems and solutionsVisit the companion Web site at www wiley.com/compbooks/cantor to find:Sample project schedules, budgets, database templates for managing use cases, and a work-breakdown structureA spreadsheet workbook for managing incremental developmentA development tracking diagramPrior to joining TASC, Dr.Cantor was a development manager at IBM, where he oversaw the development of high-end graphics and multimedia systems.

Want to learn more information about Object-Oriented Project Management with UML?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software Review

Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software
Average Reviews:

(More customer reviews)
Are you looking to buy Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software? Here is the right place to find the great deals. we can offer discounts of up to 90% on Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software ReviewThis thoroughly researched book begins with an excellent summary of the state of software development methodologies. It provides a useful description of the important strategies, life-cycle models, and process improvement methodologies. The theme of the book comes from applying Taguchi Methods to software development. This approach to trustworthy software shifts effort "upstream" from testing to design: Build software right in the first place rather than waiting for a huge quality assurance department (or worse yet, customers) to find the bugs for you. Several chapters provide detail on how to apply these principles to large scale software systems.
The authors have pulled together material from an impressive set of resources into one, admittedly lengthy, book. The shear number of methodologies (including corresponding acronyms!) contained in this volume is staggering. The chapter endnotes document these sources and web references give many pointers for additional information. They also include several case studies written by practioners who have used the methodologies described in the book.Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software Overview ASQ 2007 CROSBY MEDAL WINNER!

An Integrated Technology for Delivering Better Software—Cheaper and Faster!

This book presents an integrated technology, Design for Trustworthy Software (DFTS), to address software quality issues upstream such that the goal of software quality becomes that of preventing bugs in implementation rather than finding and eliminating them during and after implementation. The thrust of the technology is that major quality deployments take place before a single line of code is written!

This customer-oriented integrated technology can help deliver breakthrough results in cost, quality, and delivery schedule thus meeting and exceeding customer expectations. The authors describe the principles behind the technology as well as their applications to actual software design problems. They present illustrative case studies covering various aspects of DFTS technology including CoSQ, AHP, TRIZ, FMEA, QFD, and Taguchi Methods and provide ample questions and exercises to test the readers understanding of the material in addition to detailed examples of the applications of the technology.

The book can be used to impart organization-wide learning including training for DFTS Black Belts and Master Black Belts. It helps you gain rapid mastery, so you can deploy DFTS Technology quickly and successfully.
Learn how to

• Plan, build, maintain, and improve your trustworthy software development system
• Adapt best practices of quality, leadership, learning, and management for the unique software development milieu
• Listen to the customer's voice, then guide user expectations to realizable, reliable software products
• Refocus on customer-centered issues such as reliability, dependability, availability, and upgradeability
• Encourage greater design creativity and innovation
• Validate, verify, test, evaluate, integrate, and maintain software for trustworthiness
• Analyze the financial impact of software quality
• Prepare your leadership and infrastructure for DFTS

Design for Trustworthy Software will help you improve quality whether you develop in-house, outsource, consult, or provide support. It offers breakthrough solutions for the entire spectrum of software and quality professionals—from developers to project leaders, chief software architects to customers.

The American Society for Quality (ASQ) is the world's leading authority on quality which provides a community that advances learning, quality improvement, and knowledge exchange to improve business results, and to create better workplaces and communities worldwide. The Crosby Medal is presented to the individual who has authored a distinguished book contributing significantly to the extension of the philosophy and application of the principles, methods, or techniques of quality management.


Bijay K. Jayaswal, CEO of Agilenty Consulting Group, has held senior executive positions and consulted on quality and strategy for 25 years. His expertise includes value engineering, process improvement, and product development. He has directed MBA and Advanced Management programs, and helped to introduce enterprise-wide reengineering and Six Sigma initiatives.

Dr. Peter C. Patton, Chairman of Agilenty Consulting Group, is Professor of Quantitative Methods and Computer Science at the University of St. Thomas. He served as CIO of the University of Pennsylvania and CTO at Lawson Software, and has been involved with software development since 1955.


Want to learn more information about Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Configuration Management Review

Software Configuration Management
Average Reviews:

(More customer reviews)
Are you looking to buy Software Configuration Management? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Configuration Management. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Configuration Management ReviewIf I could use only one of the stack of SCM books I own to guide me through an implementation and serve as reference this book would be it. The reasons for this bold statement are:
- it's comprehensive in coverage, starting with an in-depth introduction that clearly explains software configuration management as a discipline and process area, its benefits, and an overview of implementation issues, to details on every aspect of performing and managing software configuration.
- it addresses SCM from both software engineering and project management perspectives.
- it's based on established standards (MIL-STD-973 and EIA-649).
To readers who are working in agile environments that employ rapid development and implementation approaches the MIL-STD-973 and EIA-649 standards upon which this book is based may raise a red flag. To assuage concerns about introducing what many may perceive to be heavy, bureaucratic standards to processes designed for fast paced implementation, SCM is one area that requires checkpoints and a methodical process to ensure quality. As you read this book you'll find that neither MIL-STD-973 or EIA-649 are inherently cumbersome, especially if tailored to your specific project or development environment.
Highlights of this book, aside from the detailed treatment of every facet of SCM, are the copious use of tables and graphics to summarize or clarify key concepts and how processes work, and the wealth of artifacts contained in the appendices. The appendices alone are worth the price of this book because they provide templates, guidelines and checklists, and forms that you can immediately use. Note, though, that many of these artifacts are also provided in other books from the publisher, and some such as the DoD Engineering Change Proposal may not be applicable to your objectives (although they will be useful if tailored).
As you read this book you'll discover that general configuration management principles are also introduced, expanding the usefulness to integrators as well as software engineers. What I especially like is how the book never loses sight of the relationship between SCM and quality, the way metrics are identified and presented, and the interrelationship between configuration management and maintenance.
I personally believe that this book is the best there is for implementing and employing a strong SCM process, which is critical to any software or integration project.Software Configuration Management OverviewAn effective systems development and design process is far easier to explain than it is to implement. A framework is needed that organizes the life cycle activities that form the process. This framework is Configuration Management (CM). Software Configuration Management discusses the framework from a standards viewpoint, using the original DoD MIL-STD-973 and EIA-649 standards to describe the elements of configuration management within a software engineering perspective. Divided into two parts, the first section is composed of 14 chapters that explain every facet of configuration management related to software engineering. The second section consists of 25 appendices that contain many valuable real world CM templates. The content is extensive and inclusive, covering everything from CM planning to configuration identification, verification, and auditing. Although it is vendor-neutral, it offers a serious discussion of what to look for in a CM tool and lists toolsets for review. This volume is a sourcebook of techniques, templates, and best practices in the field, providing software engineers and systems developers with what they need to run a successful CM program.

Want to learn more information about Software Configuration Management?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Mastering the Requirements Process (2nd Edition) Review

Mastering the Requirements Process (2nd Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Mastering the Requirements Process (2nd Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Mastering the Requirements Process (2nd Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Mastering the Requirements Process (2nd Edition) ReviewThis is not only the best book on requirements gathering that I've found, it is one of the best books on *any* aspect of software development that I've ever read. It is clear, focussed, well-written, full of extremely powerful concepts, and illustrated with useful examples and formal models of all aspects of the requirements gathering process and requirements-related information. As a result, I not only gained tremendous insight into how to improve the requirements gathering process at our company, I also learned by clear example how to make best use of each of the modeling formalisms the authors recommend.
I've never written an on-line review before, but this book was so superior that I felt I had to take the time and share my enthusiasm. I hope you find it as valuable in your projects as we are finding at our company.Mastering the Requirements Process (2nd Edition) Overview

Want to learn more information about Mastering the Requirements Process (2nd Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Refactoring: Improving the Design of Existing Code Review

Refactoring: Improving the Design of Existing Code
Average Reviews:

(More customer reviews)
Are you looking to buy Refactoring: Improving the Design of Existing Code? Here is the right place to find the great deals. we can offer discounts of up to 90% on Refactoring: Improving the Design of Existing Code. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Refactoring: Improving the Design of Existing Code ReviewLike the Gang of Four's landmark book _Design Patterns_, Fowler and his cohorts have created another catalog-style book, this time on refactoring.
Refactoring refers to taking existing, working software, and changing it about to improve its design, so that future modifications and enhancements are easier to add. _Refactoring_ is primarily a catalog of 70 or so different kinds of improvements you can make to object-oriented software.
Each entry in the catalog describes an implementation problem, the solution, motivation for applying the solution, the mechanics of the refactoring, and examples. The book's examples are all in Java, but C++ programmers should be able to approach the refactorings with ease. Often, Fowler diagrams the refactorings in UML, so a little Unified Modeling Language experience will help, too.
While the catalog is nice, the kinds of refactorings are obvious is most cases. Even moderately experienced programmers won't need the step-by-step mechanics described. The real benefit, though, is that the mechanics of each refactoring help guarantee that you can pull off the refactoring without introducing new bugs or side effects. They encourage you to take smaller, verifiable steps, than the more gross refactorings that most developers would naturally take. You actually save time doing so.
How do you know your refactorings are safe? Unit testing is the answer that Fowler et al. provide. Java developers will find the introduction to the Junit Testing Framework the most valuable part of the book, more so than the catalog of refactorings itself.
There's more to the book than the catalog and Junit, of course. There's discussion of the history of refactoring, how to evaluate refactoring tools, and how to convince management that what appears to be an overhead activity is actually useful in the long run.
Unfortunately, these sections are all too brief. And there is no discussion of how refactoring fits in with various software development processes. For example, programmers using Extreme Programming (XP) would probably feel right at home with Fowler's recommendations of refactoring in duets and unit testing, but developers stuck with a Software Engineering Institute process like PSP categorize testing as failure time and something to be minimized if not avoided. Cleanroom developers are taught that unit testing inteferes with metrics for quality, and that verifications are what should be done. Should such developers redo verifications after each refactoring? There's no answer in this book.
An unusual chapter, called "Bad Smells in Code," gives overall motivation for the refactorings. These vague notions, such as "long methods" or "lazy classes" humorously provide a foundation for starting your own refactorings. I say "humorously" because (mostly) Beck's and Fowler's odd analogies (classes becoming too intimate and delving in each others' private parts) provoke a chuckle (as if a chapter about "bad smells" in code weren't enough).
Overall, I've enjoyed reading this book and referring to the catalog while putting my own unit tests and refactorings into practice. Fowler's writing style is smooth and fluid, and it's easy to digest the catalog in no time. The book's typesetting is crisp, the figures quite clean, and both the refactoring index and "smell" index are enormously useful.Refactoring: Improving the Design of Existing Code OverviewRefactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.

Want to learn more information about Refactoring: Improving the Design of Existing Code?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Building Software: A Practitioner's Guide (Applied Software Engineering Series) Review

Building Software: A Practitioner's Guide (Applied Software Engineering Series)
Average Reviews:

(More customer reviews)
Are you looking to buy Building Software: A Practitioner's Guide (Applied Software Engineering Series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Building Software: A Practitioner's Guide (Applied Software Engineering Series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Building Software: A Practitioner's Guide (Applied Software Engineering Series) ReviewSaran & Krishnamurthy have managed to accomplish in this work a singularly new and valuable insight: that of bringing to the "art" of designing robust and valid software systems perspectives from the larger body of work and thought around the areas of general (not software specific) systems design, media ecology, even philosophy - that have long existed but (for reasons unknown) never till now been leveraged to add value to the software system's architect/ manager's arsenal of tools and knowledge. Particularly interesting are their inclusion of Ashby's Law of Requisite Variety and quotes from McLuhan's seminal work "Understanding Media" and their contextualization of these to the building of software systems.
In addition, another thing I greatly appreciate in this volume is the candid documentation of learning and thoughts from what is the authors' clearly hands-on experience in architecting and managing engineering lifecycles of complex software systems. They rightly point out that while failures and execution challenges have long been shared across and analyzed in industries other than software and consequently mitigated, that has not been the case for the area of software systems design. They attempt to fill this gap.
It is apparent that the authors clearly understand the challenges faced by techno management and business stakeholders that have long hampered efficiency and execution. They candidly and rightly acknowledge that "the map is not the territory". Rather than offer another complex and elaborate lifecycle management framework, they take the approach of offering a simple "SEE" model that is general enough to be implemented under business constraints. The comments are straightforward and made in context of the environment and business challenges, dynamics of the software industry today (especially applications development) - for instance there is a fairly comprehensive discussion of "insourcing" vs. "outsourcing" as strategic choices and outsourcing business models.
All in all, I recommend this volume, especially since it takes the practical approach of not offering a canned solution to building better software touted as a silver bullet - because none exists - and places emphasis instead on fostering thought and reflection through a number of insights, learning from hard experience, nuggets of wisdom and a general thought and planning model. After 15 years of building and managing the development of complex software systems, it's not often now that I come across a whole lot really "new" or "valuable" (to me) in works of such nature... But because of the observations I made above- I was pleased to discover that this book was a worthwhile exception!
Building Software: A Practitioner's Guide (Applied Software Engineering Series) OverviewNovel in its approach to software design, development, and management, Building Software: A Practitioner's Guide shows you how to successfully build and manage a system. The approach the authors recommend is a simple, effective framework known as Solution Engineering Execution (SEE). Through SEE, you create a successful solution by following a highly organized, well-planned process. This process makes you view the solution from a holistic, systematic perspective. Developing a successful system requires that you are able to address technology matters related to architecture, design, selection, integration, and security. Building Software: A Practitioner's Guide offers insight into how to make software reliable and how to ensure it meets customer and organizational needs. Using the above approach you are able to:Find a good solution to the problem at handFocus on engineering the solution wellAddress all aspects of delivery associated with the solution The book provides insightful examples of cross-domain and legacy solutions that allow you to overcome common software concerns such as requirement issues, change control, quality and schedule management, and internal and external communication problems.

Want to learn more information about Building Software: A Practitioner's Guide (Applied Software Engineering Series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...