GetTextbooks.co.uk  
 Compare Prices & Save up to 90%
Search by ISBN, title, author, etc ...

Login | Sign up | My Wish List  


Software Product-Line Engineering: A Family-Based Software Development Process

by David M. Weiss, Chi Tau Robert Lai

ISBN-10: 9780201694383
ISBN-10: 0-201-69438-7
ISBN-13: 9780201694383
ISBN-13: 978-0-201-69438-3
Paperback
1999-08-22
Addison-Wesley Professional


Find Lowest Price

Editorials


Book Description
"It is in the "how to do it" part that this book excels, because it illustrates a process that has been successfully applied to reduce costs for organizations that develop large programming systems. With the help of this book, many more can learn how to exploit the idea of program families and bring about a substantial improvement in the state of practice in the software industry." --David Lorge Parnas

Many organizations have mastered the practice of software development, yet few have become truly efficient at software production. With the adoption of an efficient, systematic software production method, organizations can gain significant competitive advantages, including reduced time to market, better schedule predictability, more reliable code, and decreased costs. Software Product-Line Engineering provides the actionable information and proven tactics necessary to effect organizational change and make your future software projects more successful.

The authors outline a systematic method for rapid software production through the FAST (Family-Oriented Abstraction, Specification, and Translation) process, a revolutionary commercial product developed at AT&T that continues to evolve at Lucent Technologies. FAST uses practical domain engineering to decrease the time and effort necessary to develop, deliver, and maintain software. Any software development projects currently using C, C++, or Java can easily incorporate the FAST model and quickly reap the benefits of a more efficient software methodology.


Reviews


Just another methodology book
I've just about never worked on commercial software that was shipped in only one form. There have been variations in the platform configurations, in the functional options, or in the generation of product. This book addresses the process of building families of software products, the kind that derive generally similar sets of functionality from a shared code base, i.e., the majority of commercial software in my experience.

The authors start with an obvious premise, but a premise that's overlooked far too often. They start by saying that their approach does not work in all cases, and may not work in yours - if only such honesty were more common! Although it makes the third, or fourth, or tenth member of the product family easier to develop, it incurs design and implementation costs up front. Despite long term economies, the first few family members might actually cost more than with one-off design techniques. The first step in this methodology is to decide whether the next steps will actually do you any good.

After that, though, I find this to be only an ordinary presentation of software design methodology. Although it adds steps for analyzing product families to the standard software development cycle, those steps are only a small part of the whole. At least 90% of the cycle is the same for a one-off project as for one where massive reuse is a major design goal, but the authors present the entire cycle in detail. I'd even say excruciating detail. The second half of the book, 200 pages or so, presents the methodology one step at a time, often one step per page, with forms to be filled out at each step: formal pre- and post-conditions, lists of involved participant, artifacts generated or modified at each step, and on and on and on.

Despite it's overwhelming mass of detail, I find it systematically lacking in one major respect. The first pass over the process is only a small part of any long-lived project. After that, every successive design cycle takes the entire result of the previous cycle as input. In some sense, acknowledgement of the past is the first and biggest requirement, where the past consists of all code and documentation artifacts from the previous effort. "Green field" construction is a rarity in the software world, but a premise of most design methodologies, this one included. The second major weakness in this book may just be a matter of editorial choice: it addresses the organizational aspects of the project only, with few (if any) tips for the technologist creating a line of products. The techniques of design for flexibility, especially for variation over time, cover whole ranges of topics that aren't part of this dicsussion.

So we're left with a mass of imposing organizational detail, with reams of families of forms and formalities. These could become oppressive if not handled in a context-sensitive way, but the authors say little about tailoring the process to different environments. And, anong what's presented, only a small part is specific to the product-line problem as opposed to any other software development. I'm still looking for stronger technical advice and a more flexible approach.

//wiredweird

A fair introduction, a good reference...
This book really deserves two separate ratings. The first five chapters introduce domain engineering in general. If you are new to the idea of family-based software development, or need some convincing of its intended benefits, this section isn't bad. The two case studies presented gloss over some of the complicated concepts while providing too much technical detail in others. For example, the important but non-trivial job of creating the "decision model" for the domain is given minimal coverage. On the other hand, every class in the JAVA code used to illustrate one example is explained individually. I'd give this section a 3-star rating as an introduction to domain engineering.

The rest of the book is an incredibly detailed reference into the authors' implementation of the FAST process. They spend two chapters bringing the reader up-to-speed on the process modeling technique called PASTA. Then they provide almost 200 pages of reference information (also included on CD-ROM) on the specifics of FAST. If you are looking for a recipe to use to try domain analysis and implementation in your company, this section covers it. If nothing else, you'll see a very well defined process modeling notation in action, one that can be used in many applications. Without any personal experience implementing the process, I hesitate to rate this section. But if the process works as well as this section is detailed, I'd give it at least 4 stars.

Its hard to say from their examples how well the FAST process will scale to industrial-size domains. But the authors have presented an easily read book with enough detail that a motivated software engineer may be able to win management support and give domain engineering a try.



Home | Browse | Professors | Merchants | Webmasters | Contact Us

[ United States | Canada ]

Copyright © 2003-2008 GetTextbooks.co.uk