Reuse-Based Software Engineering: Techniques, Organizations, and Controls
Hafedh Mili, Ali Mili, Sherif Yacoub, Edward Addy
This volume provides an overview of the current state and the future of reuse-based software engineering and discusses the vital technical, managerial, and organizational aspects of reuse in one treatment. It also shows how these fundamental aspects can be used in the development life cycle of component-based software and product line engineering.
The authors present the basic foundations upon which reuse processes and approaches can be established and integrate theoretical concepts with applied practice. They also discuss the development of an effective large-scale discipline utilizing:
- The state of the art in multi-paradigm programming, design, and architectural techniques for codifying and packaging high-quality software artifacts that are widely applicable and cost-effective
- Effective organizations with the mandate and the resources to produce and manage a shared repository of software assets
- A set of control and management tools for planning, controlling, and evaluating the degree to which such an organization meets its objectives
Reuse-Based Software Engineering offers in-depth discussion of these fundamental issues and total coverage of the state of the art. The inclusion of review questions and exercises makes it an excellent tutorial for both academics and professionals.
Table of Contents
Acronyms and Symbols.
PART I: INTRODUCTION.
Software Reuse and Software Engineering.
State of the Art and the Practice.
Aspects of Software Reuse.
PART II: ORGANIZATIONAL ASPECTS.
Software Reuse Organizations.
PAART III: DOMAIN ENGINEERING: BUILDING FOR REUSE.
Building Reuseable Assets: An Overview.
Programming Paradigms and Reusability.
PART IV: OBJECT-ORIENTED DOMAIN ENGINEERING.
A Pragmatic Introduction to Object Orientation.
Abstraction and Parameterization Techniques in Object-Orientation.
Composition Techniques in Object Orientation.
PART V: APPLICATION ENGINEERING.
Component Storage and Retrieval.
Reusable Asset Integration.
PART VI: MANAGERIAL ASPECTS OF SOFTWARE REUSE.
Software Reuse Metrics.
Software Reuse Cost Estimation.
Software Reuse Return on Investment.
PART VII: SOFTWARE REUSE TECHNOLOGIES.
Component-Based Software Engineering (CBSE).
Product Line Engineering (PLE).
COTS Based Development.
Appendix A: Software Reuse Resources.
Appendix B: Term Projects.