Software engineering with reusable components
The book presents various aspects of software reuse which is the process of creating software systems from existing software rather than constructing them from scratch. The book is divided into four main parts: Part I on Software Reuse, Part II on Software Components, Part III on Software Engineering, and Part IV on Software Documentation. Additionally the book provides an introduction as the first chapter and a Part V on Closing having only a conclusion chapter. Part I contains chapters 2 to 5. Chapter 2 provides several definitions of software reuse and some benefits (on quality improvements and effort reduction or referring various examples from industry) as well as obstacles to software reuse (managerial, organizational, economic, and technical ones). Chapter 3 describes different technical aspects of software reuse. So, it is presented the essence of reused items as containing ideas, artifacts, and skills , the scope of the software reuse referring internal or external, domain-specific or general-purpose, small-scale or large-scale reuse --, various techniques used for achieving software reuse compositional reuse, mainly supporting a bottom-up development process, and a generative reuse, being often domain-specific, the reuse intentions showing how the components are used as black boxes, glass boxes, and white boxes. Some reuse products are taken as examples: algorithms, function libraries, class libraries, application frameworks and design patterns. Chapter 4 outlines some nontechnical aspects of software reuse including legal, economic, organizational and measurement issues. This chapter is an introduction rather than a detailed approach of the subject. Chapter 5 describes how to install a reuse program. An incremental model of installing a reuse program in progressive steps is presented. The commitement of management and the required motivation of the people involved in successfully accomplishing the installation of a reuse program are also pointed out. Part II contains chapters 6 to 10. Chapter 6 provides a definition for reusable software components, discusses user data and programming interfaces and presents execution and composition platforms (software products a component is built upon). Composable software is presented in chapter 7. Various aspects of component composition (internal/external, textual, functional, modular, object-oriented, subsystem, distributed computing, integrated environments, open platforms) and component interoperation (control and data operation) are discussed. Some composition mismatches are covered and different mechanisms for solving component mismatches interface bridging and interface standardization are described. Chapter 8 identifies the attributes of software components: functionality, interactivity, interaction, concurrency, distribution, adaptation, quality control. Some attributes are specific for components and others for component platforms. Chapter 9 presents a component taxonomy based on reuse consideration (components' interfaces, composition techniques, platforms and attributes). Some other taxonomies created in different contexts and with different motivations are presented and compared with the previous mentioned taxonomy. Chapter 10 discusses two component examples, VisualBasic and Java, and three examples of application components, Unix filters, FrameMaker and Field. Part III contains chapters 11 to 15. Chapter 11 is an overview of various aspects of software engineering: software management, software specification, software design, software implementation, software testing, and software maintenance. Chapter 12 discusses various software process models. The original model, known as waterfall model, is presented, as well as different modifications and enhancements made to this model and providing exploratory model, prototyping model, spiral model. In the last part of this chapter is described the twin life cycle model containing the general idea of software reuse. Different activities provided by this model are further investigated in the next three chapters. Chapter 13 deals with domain analysis, depicting activities and methods for domain analysis. Foda is chosen to be presented as a representative of domain analysis methods. Chapter 14 discusses various aspects of component engineering involving development of components, generalization and certification of components. Software repositories and a classification of components are also presented. Chapter 15 describes some aspects of application engineering. Reuse-driven development, reuse considerations for the software life cycle and the incorporation of domain analysis are mainly discussed. Part IV contains chapters 16 to 20. Chapter 16 is a general introduction to software documentation referring to user documentation, system documentation, process documentation. After presenting the motivation for supplying reuse information, the structure for a component's reuse manual is given. Chapter 18 presents some aspects of literate programming. They are discussed concepts, tool support, reasons for the lack of widespread acceptance of literate programming. Some reuse considerations related to literate programming are presented. Chapter 19 presents a case study, by using literate programming, on simultaneous measuring the reuse in both code and documentation. The reuse measure based on line and word runs, introduced in chapter 4, is applied for this case study and the results and consequences are discussed. Chapter 20 presents a way of reusing documentation in a similar fashion as components are reused. Inheritance and other object-oriented concepts applied in reusing source code are now analyzed in reusing documentation texts. The final part outlines some concluding remarks and discusses a paradigm shift and the contribution of both software components and software reuse to such a paradigm. The book covering different aspects of reusing software is intended for readers at universities and industry being interested in software reuse. All those interested in component reuse and object-oriented software engineering will find a comprehensive overview in this book.
- Software reusability. Vol. 2: Applications and experience
- Paradigm of software component dictionaries for software development
- Strategic software production with domain-oriented reuse
- scientific article; zbMATH DE number 1678403 (Why is no real title available?)
- scientific article; zbMATH DE number 1706227 (Why is no real title available?)
- Building reliable component-based software systems
- scientific article; zbMATH DE number 4172406 (Why is no real title available?)
- On the role of the reusability concept in automatic programming research
- scientific article; zbMATH DE number 4084975 (Why is no real title available?)
- scientific article; zbMATH DE number 703569 (Why is no real title available?)
- Software reuse. Transl. from the French by Iain Craig
- Engineering software reuse for on-board embedded real-time systems
- scientific article; zbMATH DE number 1945876 (Why is no real title available?)
- scientific article; zbMATH DE number 1949587 (Why is no real title available?)
- scientific article; zbMATH DE number 1951534 (Why is no real title available?)
- scientific article; zbMATH DE number 1955923 (Why is no real title available?)
- A rough–fuzzy approach for retrieval of candidate components for software reuse
- scientific article; zbMATH DE number 2000447 (Why is no real title available?)
- scientific article; zbMATH DE number 2033530 (Why is no real title available?)
- Code Component Reuse Supporting Environment (CCRSE) and its design strategy
- scientific article; zbMATH DE number 2080567 (Why is no real title available?)
- scientific article; zbMATH DE number 1931765 (Why is no real title available?)
- scientific article; zbMATH DE number 2087579 (Why is no real title available?)
- scientific article; zbMATH DE number 2087598 (Why is no real title available?)
- scientific article; zbMATH DE number 1424316 (Why is no real title available?)
- scientific article; zbMATH DE number 233288 (Why is no real title available?)
- A component model for perspective management of enterprise software reuse
This page was built for publication: Software engineering with reusable components
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4370603)