Reuse-Based Software Engineering : Techniques, Organization, and controls

來源:互聯網
上載者:User

這是一本書的介紹

Reuse-Based Software Engineering : Techniques, Organization, and controls
H. Mili, A. Mili, S. Yacoub, and E. Addy
John Wiley & Sons, N. Y., 2002, ISBN 0-471-39819-5

In this book, we study reuse-based software engineering from a technical, organizational, and managerial point of view. This book combines state of the practice techniques and guidelines with state of the art—but eminently applicable—research results in both, object-based development techniques (frameworks, component models, separation of concerns methods), and reuse organizations and economics (reuse metrics, ROI models). The material is organized in seven parts (23 chapters, 600 pages), described below. A detailed outline is available through this link. 

In part I (chapters 1 – 3), we introduce the field of software reuse by discussing in turn the state of the art, the state of the practice, and the future prospects of this field in three different areas, which are:  reuse products, reuse processes and reuse paradigms (chapter 2).  Then we introduce and discuss a distinction that pervades the organization of the book, which divides issues into technical aspects, organizational aspects, and economic aspects (chapter 3).  We also discuss in this part some of the recent software reuse initiatives; we believe that the history of these initiatives holds several useful lessons about the current status and the future evolution of this discipline.

In Part II (chapters 4 – 6), we discuss the organizational aspects of software reuse, including team organizations (chapter 4), support services (chapter 5), and the institutional measures that must be taken to introduce reuse (chapter 6).  As far as team structures are concerned, we catalog a list of criteria that characterize team structures, which we then use to assess several alternative structures.  Support services include configuration management, quality assurance, testing, V&V, risk management, and certification; while these activities are well understood in the general context of software engineering, they require special consideration in the case of software reuse.

Part III (chapters 7 – 9) deals with domain engineering in general, paradigm-independent terms. Chapter 7 provides an overview of domain engineering issues, and defines reusability as a combination of two fairly independent characteristics, usefulness and usability. Usefulness relates to how general a component is, regardless of packaging. Usability relates to the packaging of the component, in terms of ease of use and integration, regardless of how often it is needed. Chapter 8 discusses domain analysis, where the emphasis is on usefulness. Chapter 9 attempts a comparison of the declarative, functional, and object-oriented paradigms from a usability perspective. We advocate multi-paradigm development as a way to achieve the best usability across the application domain.

Part IV (chapters 10 – 14) deals with object-oriented domain engineering, and represents the heart of the technical contents of the book. We introduce object orientation in chapter 10. Chapter 11 discusses abstraction techniques at all levels of development, including inheritance, specialization, metamodeling, metaprogramming, anda number of structural and behavioral abstraction design patterns. Chapter 12 discusses composition techniques. We study, in turn, language-based composition (constraint and rule-based extensions to OO languages), new modularization techniques (subject-oriented programming, aspect-oriented programming, and a number of lesser known “separation of concerns” methods), and compositional design patterns. Chapter 13 discusses application frameworks, as an example of a wide-scale, systematic application of abstraction and composition techniques. We illustrate some of the concepts with examples from Java’s GUI framework. Chapter 14 discusses the role of architecture in reuse. After an overview of software architectures, we introduce architectural frameworks as domain-independent frameworks whose purpose is to support an architectural style. The CORBA, COM, and EJB component models are used to illustrate such frameworks.

Part V (chapters 15 – 17) deals with application engineering in the context of reuse, or put more simply, developing with reusable components. Chapter 15 discusses variants of application engineering lifecycles, depending on the maturity of the reuse domain. The subsequent chapters discuss more thoroughly two key activities in developing with reusable components; a) component retrieval (chapter 16), where the emphasis is on library methods, and b) reusable component integration (chapter 17), where the emphasis is on process and quality issues. 

In Part VI (chapters 18-20), we discuss the managerial aspects of software reuse, by discussing software engineering metrics, software reuse metrics, software engineering economics, and software reuse economics.  The book discusses software reuse economics by identifying four distinct partners in the software reuse process, and quantifying the return on investment that each partner is trying to optimize.  The proposed ROI-based model illustrates how we can make reuse happen, not by preaching or lecturing, but rather by fine-tuning the mechanisms of incentive and reward in such a way the organizational goals are achieved while each partner is trying to achieve his/her own goals.  Our discussion of software reuse metrics presents metrics of interest and discusses what measures must be taken to monitor and control these metrics to standard levels.

Practicing software reuse involves implementing a set of changes to the development of software at the organizational, managerial, and technical dimensions. Implementing a reuse program means making choices and trade-offs along each of these dimensions. Part VII discusses trends, which correspond to specific combinations of these different aspects, that are representative of industry practice. These are component-based software development (CBSD, chapter 21), product-line engineering (PLE, chapter 22), and COTS-based development (COTS, chapter 23).

An appendix provides a list of software reuse resources (bibliography, web sites, conferences), as well as definitions of term projects appropriate for an introductory graduate course on software reuse.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.