Front FlapBack FlapBack of Jacket"Certainly this book is overdue. Achieving serious reuse is hard, we need all the codified expertise we can get."David Redmond-Pyle, LBMS [NB. Need more details on affiliation and permission for changes to his quote]"There is still a lot of controversy about whether object-oriented software reuse really pays off. This book provides not only many successful examples from Griss" work at Hewlett-Packard, Jacobson"s work at Ericsson, and elsewhere, but also an experience-based approach for repeating the successes. The approach involves not just a class-library silver bullet, but an integrated strategy involving business-case analysis, domain engineering, product line architecting, people and process management, and life-cycle software asset management. A perticularly nice feature of the book is a reuse-oriented tailoring of the Jacobson-Booch-Rumbaugh Unified Modeling Language."Barry Boehm, TRW Prof of Software Engineering, Director of Center for Software Engineering University of Southern California."This book tells it as it is: reuse is a business as well as a technical decision that requires engineering discipline and management support. If you are serious about improving your software development productivity and reducing your time to market by making OO work for you, then read this book. You won't be disappointed!"Will Tracz, Senior Programmer in Advanced Technology, Lockheed Martin Federal Systems."This book is comprehensive in its coverage of the fundamentals of software reuse, the subject that is catalysing the transformation of our industry from a craft to an engineering discipline. I commend Jacobson, Griss and Jonsson for their important contribution to the field."Paul Bassett, Senior Vice President Research, Netron Inc.----------------------------------------------------------------------------------------------------------"How can I incorporate reuse into my complex software development process in order to gain a competitive edge?" This is a question that many have attempted to answer by taking up object technology, with varying degrees of success. In Software Reuse: Architecture, Process and Organization for Business Success, the authors present a brand new, technically innovative, coherent and systematic model for implementing reuse. They have combined their experience in the fields of object oriented software engineering, business engineering and systematic software reuse to create the Reuse-Driven Software Engineering Business (Reuse Business) framework.Software Reuse: Architecture, Process and Organization for Business Success· introduces the concept of software reuse as a business success enabler· describes how the right architecture allows applications and components to evolve gracefully· provides guidelines for implementing software engineering processes· advises on organizational issues such as the structure, transition, day-to-day managment, economics and measurement.Whether you are a software engineer, architect, designer, programmer or manager, whether you are familiar with the concepts of reuse, component-based software engineering, object oriented technology and business engineering or not, you should read Software Reuse: Architecture, Organization and Process for Business Success. In it you will find new ground-breaking information and advice.Ivar Jacobson is the inventor of the Objectory OO method and the Vice President of Process Engineering at Rational Software Corporation. He is intimately involved with the development of UML and a leader in the OO community. He is principal author of two influential books, Object Oriented Software Enginering - A Use Case Driven Approach and The Object Advantage: Business Process Reengineering with Object Technology.Martin Griss is a Senior Laboratory Scientist at Hewlett Packard Laboratories where, as HP's "Reuse Rabbi", he created the Corporate Reuse Program and led HP's technical contributions as co-submittor of UML to the OMG. He also writes a reuse column for Object Magazine and is active on several reuse program and steering commitees.Patrik Jonsson works at Rational Software Corporation in Sweden as a Senior Consultant where he has been developing the architecture and method of the Objectory process with a current focus on reuse and user interface development. He is a co-author of Object Oriented Software Enginering - A Use Case Driven Approach.
Includes bibliographical references (p. 466-479) and index.
Preface Systematic software reuse
What is this book about?
Who needs a Reuse-Driven Software Engineering Business?
The essence of the Reuse-Driven Software Engineering Business
Our experience
How this book is organized
What this book offers
Acknowledgments
Dedications
PART I - INTRODUCING THE REUSE-DRIVEN SOFTWARE ENGINEERING BUSINESS
1. Software Reuse Success Factors
1.1 Software reuse is a simple idea
1.2 Components are fueling a revolution in application development
1.3 A systematic approach makes pragmatic reuse work
1.4 Ericsson and Hewlett-Packard reuse experience reveals common principles
1.5 Reuse requires changes in process
1.6 Reuse requires changes in organization
1.7 Adopt reuse systematically and incrementally
1.8 Input from other reuse programs
1.9 It takes a set of principles
1.10 Summary
2. Reuse-Driven Software Engineering Is A Business
2.1 Is it a business for you?
2.2 Make reuse cost-effective
2.3 A Reuse Business has business characteristics
2.3 Architect components and applications
2.4 Software engineering processes
2.5 Establishing and managing a reuse business
2.6 Summary
PART II - ARCHITECTURAL STYLE
3. Object-Oriented Software Engineering
3.1 Software engineering transforms requirements into code
3.2 Software engineering is a team process
3.3 Software engineering is systematic model building
3.4 Objects unify the modeling process
3.5 The use case model captures system requirements
3.6 The analysis model shapes system architecture
3.7 The design model defines the implementation
3.8 The implementation model is the code
3.9 The test model validates the system
3.10 Summary
4. Application And Component Systems
4.1 Application developers can reuse OOSE model components
4.2 Application families allow significant reuse
4.3 Application systems are built from reusable components
4.4 Group components into component systems
4.5 Facades control access to component system internals
4.6 Facades and component systems are special kinds of packages
4.7 Component systems export components via facades
4.8 Specialize some components before reuse
4.9 Variability occurs at variation points
4.10 Use several kinds of variability mechanisms
4.11 Reuse variable components to build application systems
4.12 Package and document component systems for reuse
4.13 Summary
5. Use Case Components
5.1 Structure the use case model to ensure component reuse
5.2 The use case model shapes the rest of the system
5.3 Reusing components to build the use case model
5.4 Design the use case components for effective reuse
5.5 Not all use cases should be reusable components
5.6 Reusing concrete or abstract actor and use case components
5.7 Expressing use case variability
5.8 Packaging and documenting use case components
5.9 Summary
6. Object Components
6.1 Object models define system architecture and design
6.2 Reusing analysis and design components
6.3 Expressing variability in object model components
6.4 Tracing use case variability to the object models
6.5 Reusable analysis components
6.6 Subsystem components group related classes
6.7 Reusable design and implementation components
6.8 Packaging and documenting object components and variants
6.9 Summary
7. Layered Architecture
7.1 Architecture defines system structure, interfaces and interaction patterns
7.2 A good architecture is crucial to maintain system integrity
7.3 A layered architecture organizes software according to generality
7.4 A layered architecture reduces software dependencies
7.5 The middleware layer supports distributed object computing
7.6 The business-specific layer supports rapid application development
7.7 Using multiple models when working with layered system architecture
7.8 Representing a layered system as a superordinate system
7.9 Use cases in relation to a layered system
7.10 Actors to the application and component systems
7.11 Use cases for the application and component systems
7.12 Wrapping legacy systems to fit the architecture
7.13 Distributed processes and nodes for a layered system
7.14 Summary
PART III - PROCESSES
8. Object-Oriented Business Engineering
8.1 Business process reengineering achieves dramatic improvement
8.2 A well-defined process for business process reengineering
8.3 Business engineering delivers models as a chart for the future
8.4 Using business actors and use cases to represent value-adding processes
8.5 Using workers and work objects to represent people and results
8.6 Grouping workers into competence units according to skills
8.7 Information systems must support the business use cases and workers
8.8 Summary
9. Applying Business Engineering to the Reuse Business - to define Processes and Organization
9.1 Processes and organization of the Reuse Business match architecture
9.2 Software engineering processes in the Reuse Business
9.3 Organizing workers into competence units
9.4 Interplay between Reuse Business processes
9.5 Summary
10. Application Family Engineering
10.1 Developing an architecture for an application family
10.2 Planning product schedule based on use case priority
10.3 AFE1: Analysing requirements that have impact on the architecture
10.4 AFE2: Performing robustness analysis
10.5 AFE3: Designing the layered system
10.6 AFE4: Implementing the architecture as a layered system
10.7 AFE5: Testing the layered system
10.8 Managing architectural change
10.9 Expressing application family engineering in terms of workers
10.10 A leaner approach to application family engineering
10.11 Summary
11. Component System Engineering
11.1 Building flexible component systems
11.2 CSE1: Analyzing requirements focusing on variability
11.3 CSE2: Performing robustness analysis to maximize flexibility
11.4 CSE3: Designing the component system
11.5 CSE4: Implementing the component system
11.6 CSE5: Testing the component system
11.7 CSE6: Final packaging the component system for reuse
11.8 Expressing Component System Engineering in terms of workers
11.9 Summary
12. Application System Engineering
12.1 Building application systems from reusable components
12.2 ASE1: Analyzing requirements
12.3 ASE2: Performing robustness analysis for flexible application systems
12.4 ASE3, ASE4 and ASE5: Designing, implementing and testing the application system
12.5 ASE6: Packaging the application system for easy installation
12.6 Expressing Application System Engineering in terms of workers
12.7 Summary
PART IV - ORGANIZING A REUSE BUSINESS
13. Transition To A Reuse Business
13.1 A systematic, incremental transition controls risk
13.2 The incremental transition process
13.3 TRA1: Creating a directive to reengineer the existing software business
13.4 TRA2: Envisioning the new Reuse Business
13.5 TRA3: Reversing the existing software business
13.6 TRA4: Forward engineering the new Reuse Business
13.7 TRA5: Implementing the Reuse Business
13.8 Summary
14. Managing The Reuse Business
14.1 Ongoing management is crucial to RSEB success
14.2 Measurement is key to managing the reuse business
14.2
14.3 Economic models and reuse investment decisions
14.4 TRA6: Continuous process improvement
14.5 Managing people and organization
14.6 Summary
15. Afterword: Making The Reuse Business Work
15.1 Putting it all together
15.2 Reuse improves the performance of your business processes
15.2
15.3 Common misconceptions
15.4 Doing reuse is difficult
15.5 Without vision, the people perish
15.6 Reuse depends on architecture
15.6
15.7 Management works through organization
15.7
15.8 The reuse business must earn a return on its investment
15.8
15.9 Software engineering depends on process
15.10 Object technology aids process
15.10
15.11 Business engineering: overhauling the business model
15.12 Summing up
PART V - APPENDICES
A. Glossary
B. Annotated Bibliography
B.1 Systematic Software Reuse
B.2 Object technology
B.3 Architecture and patterns
B.4 Software engineering
B.5 Business Process Reengineering and Organizational Change Managment
C. Use of the Unified Modeling Language in the RSEB
C.1 The Use of the Unified Modeling Language
C.2 UML classes and stereotypes
C.3 General constructs
C.4 The Use Case Model of an information system
C.5 Analysis Model of an information system
C.6 Design Model of an information system
C.7 Business use case model
C.8 Business object model
D. References
INDEX