Software Reuse: Architecture, Process and Organization for Business Success, 1st edition

  • Ivar Jacobson
  • M Griss
  • P Jonsson

Unfortunately, this item is not available in your country.

Overview

"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 enable
- describes how the right architecture allows applications and components to evolve gracefull
- provides guidelines for implementing software engineering processe
- 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

Visit the Rational Web Site http://www.rational.com

Table of contents

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

Published by Addison-Wesley Professional (June 26th 1997) - Copyright © 1997