COMPONENT-BASED DEVELOPMENT Object-oriented technologies (Part Four of this book) provide the technical frame-
2.8 COMPONENT-BASED DEVELOPMENT Object-oriented technologies (Part Four of this book) provide the technical frame-
work for a component-based process model for software engineering. The object- oriented paradigm emphasizes the creation of classes that encapsulate both data and the algorithms used to manipulate the data. If properly designed and implemented, object-oriented classes are reusable across different applications and computer-based system architectures.
The component-based development (CBD) model (Figure 2.11) incorporates many The underlying
XRef
of the characteristics of the spiral model. It is evolutionary in nature [NIE92], demand- technology for CBD is
ing an iterative approach to the creation of software. However, the component-based discussed in Part Four
of this book. A more development model composes applications from prepackaged software components detailed discussion of
(called classes). the CBD process is
The engineering activity begins with the identification of candidate classes. This presented in Chapter
27. is accomplished by examining the data to be manipulated by the application and the algorithms that will be applied to accomplish the manipulation. 12 Corresponding data
and algorithms are packaged into a class.
F I G U R E 2.11
Component- Identify based devel-
candidate opment
components
Planning
Risk analysis
Look up Customer
Construct
components communication
nth iteration
of system
in library
in library
if available
Build evaluation
Customer
Engineering
construction & release
components if unavailable
12 This is a simplified description of class definition. For a more detailed discussion, see Chapter 20.
CHAPTER 2
THE PROCESS
Classes created in past software engineering projects are stored in a class library or repository (Chapter 31). Once candidate classes are identified, the class library is searched to determine if these classes already exist. If they do, they are extracted from the library and reused. If a candidate class does not reside in the library, it is engineered using object-oriented methods (Chapters 21–23). The first iteration of the application to be built is then composed, using classes extracted from the library and any new classes built to meet the unique needs of the appli- cation. Process flow then returns to the spiral and will ultimately re-enter the component assembly iteration during subsequent passes through the engineer- ing activity.
The component-based development model leads to software reuse, and reusabil- ity provides software engineers with a number of measurable benefits. Based on stud- ies of reusability, QSM Associates, Inc., reports component assembly leads to a 70 percent reduction in development cycle time; an 84 percent reduction in project cost, and a productivity index of 26.2, compared to an industry norm of 16.9. [YOU94] Although these results are a function of the robustness of the component library, there is little question that the component-based development model provides significant
advantages for software engineers. UML is discussed in
XRef
The unified software development process [JAC99] is representative of a number of some detail in Chapters
21 and 22. component-based development models that have been proposed in the industry.
Using the Unified Modeling Language (UML), the unified process defines the compo- nents that will be used to build the system and the interfaces that will connect the components. Using a combination of iterative and incremental development, the uni- fied process defines the function of the system by applying a scenario-based approach (from the user point of view). It then couples function with an architectural frame- work that identifies the form the the software will take.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more