Presentation is loading. Please wait.

Presentation is loading. Please wait.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.

Similar presentations


Presentation on theme: "These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by."— Presentation transcript:

1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Software Engineering: A Practitioner’s Approach, 6/e Chapter 30 Component-Based Software Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter 30 Component-Based Software Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

2 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, The Key Questions When faced with the possibility of reuse, the software team asks: When faced with the possibility of reuse, the software team asks: Are commercial off-the-shelf (COTS) components available to implement the requirement? Are commercial off-the-shelf (COTS) components available to implement the requirement? Are internally-developed reusable components available to implement the requirement? Are internally-developed reusable components available to implement the requirement? Are the interfaces for available components compatible within the architecture of the system to be built? Are the interfaces for available components compatible within the architecture of the system to be built? At the same time, they are faced with the following impediments to reuse... At the same time, they are faced with the following impediments to reuse...

3 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Impediments to Reuse Few companies and organizations have anything that even slightly resembles a comprehensive software reusability plan. Few companies and organizations have anything that even slightly resembles a comprehensive software reusability plan. Although an increasing number of software vendors currently sell tools or components that provide direct assistance for software reuse, the majority of software developers do not use them. Although an increasing number of software vendors currently sell tools or components that provide direct assistance for software reuse, the majority of software developers do not use them. Relatively little training is available to help software engineers and managers understand and apply reuse. Relatively little training is available to help software engineers and managers understand and apply reuse. Many software practitioners continue to believe that reuse is “more trouble than it’s worth.” Many software practitioners continue to believe that reuse is “more trouble than it’s worth.” Many companies continue to encourage of software development methodologies which do not facilitate reuse Many companies continue to encourage of software development methodologies which do not facilitate reuse Few companies provide an incentives to produce reusable program components. Few companies provide an incentives to produce reusable program components.

4 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, The CBSE Process

5 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Domain Engineering 1. Define the domain to be investigated. 2. Categorize the items extracted from the domain. 3. Collect a representative sample of applications in the domain. 4. Analyze each application in the sample. 5. Develop an analysis model for the objects.

6 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Identifying Reusable Components Is component functionality required on future implementations? Is component functionality required on future implementations? How common is the component's function within the domain? How common is the component's function within the domain? Is there duplication of the component's function within the domain? Is there duplication of the component's function within the domain? Is the component hardware-dependent? Is the component hardware-dependent? Does the hardware remain unchanged between implementations? Does the hardware remain unchanged between implementations? Can the hardware specifics be removed to another component? Can the hardware specifics be removed to another component? Is the design optimized enough for the next implementation? Is the design optimized enough for the next implementation? Can we parameterize a non-reusable component so that it becomes reusable? Can we parameterize a non-reusable component so that it becomes reusable? Is the component reusable in many implementations with only minor changes? Is the component reusable in many implementations with only minor changes? Is reuse through modification feasible? Is reuse through modification feasible? Can a non-reusable component be decomposed to yield reusable components? Can a non-reusable component be decomposed to yield reusable components? How valid is component decomposition for reuse? How valid is component decomposition for reuse?

7 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Structural Modeling every application has structural patterns that have the potential for reuse every application has structural patterns that have the potential for reuse a “structure point” is a construct with the structure a “structure point” is a construct with the structure A structure point is an abstraction that should have a limited number of instances. Restating this in object-oriented jargon, the size of the class hierarchy should be small. A structure point is an abstraction that should have a limited number of instances. Restating this in object-oriented jargon, the size of the class hierarchy should be small. The rules that govern the use of the structure point should be easily understood. In addition, the interface to the structure point should be relatively simple. The rules that govern the use of the structure point should be easily understood. In addition, the interface to the structure point should be relatively simple. The structure point should implement information hiding by hiding all complexity contained within the structure point itself. This reduces the perceived complexity of the overall system. The structure point should implement information hiding by hiding all complexity contained within the structure point itself. This reduces the perceived complexity of the overall system.

8 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Structural Patterns An interface that enables the user to interact with the system. An interface that enables the user to interact with the system. A bounds-setting mechanism that allows the user to establish bounds on the parameters to be measured. A bounds-setting mechanism that allows the user to establish bounds on the parameters to be measured. A sensor management mechanism that communicates with all monitoring sensors. A sensor management mechanism that communicates with all monitoring sensors. A response mechanism that reacts to the input provided by the sensor management system. A response mechanism that reacts to the input provided by the sensor management system. A control mechanism that enables the user to control the manner in which monitoring is carried out. A control mechanism that enables the user to control the manner in which monitoring is carried out.

9 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Component-Based Development a library of components must be available a library of components must be available components should have a consistent structure components should have a consistent structure a standard should exist, e.g., a standard should exist, e.g., OMG/CORBA OMG/CORBA Microsoft COM Microsoft COM Sun JavaBeans Sun JavaBeans

10 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, CBSE Activities Component qualification Component qualification Component adaptation Component adaptation Component composition Component composition Component update Component update

11 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Qualification Before a component can be used, you must consider: application programming interface (API) application programming interface (API) development and integration tools required by the component development and integration tools required by the component run-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocol run-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocol service requirements including operating system interfaces and support from other components service requirements including operating system interfaces and support from other components security features including access controls and authentication protocol security features including access controls and authentication protocol embedded design assumptions including the use of specific numerical or non-numerical algorithms embedded design assumptions including the use of specific numerical or non-numerical algorithms exception handling exception handling

12 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Adaptation The implication of “easy integration” is: (1) that consistent methods of resource management have been implemented for all components in the library; (2) that common activities such as data management exist for all components, and (3) that interfaces within the architecture and with the external environment have been implemented in a consistent manner.

13 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Composition An infrastructure must be established to bind components together An infrastructure must be established to bind components together Architectural ingredients for composition include: Architectural ingredients for composition include: Data exchange model Data exchange model Automation Automation Structured storage Structured storage Underlying object model Underlying object model

14 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, OMG/ CORBA The Object Management Group has published a common object request broker architecture (OMG/CORBA). An object request broker (ORB) provides services that enable reusable components (objects) to communicate with other components, regardless of their location within a system. Integration of CORBA components (without modification) within a system is assured if an interface definition language (IDL) interface is created for every component. Objects within the client application request one or more services from the ORB server. Requests are made via an IDL or dynamically at run time. An interface repository contains all necessary information about the service’s request and response formats.

15 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, ORB Architecture

16 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Microsoft COM The component object model (COM) provides a specification for using components produced by various vendors within a single application running under the Windows operating system. COM encompasses two elements: COM interfaces (implemented as COM objects) a set of mechanisms for registering and passing messages between COM interfaces.

17 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Sun JavaBeans The JavaBeans component system is a portable, platform independent CBSE infrastructure developed using the Java programming language. The JavaBeans component system encompasses a set of tools, called the Bean Development Kit (BDK), that allows developers to analyze how existing Beans (components) work customize their behavior and appearance establish mechanisms for coordination and communication develop custom Beans for use in a specific application test and evaluate Bean behavior.

18 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Classification Enumerated classification—components are described by defining a hierarchical structure in which classes and varying levels of subclasses of software components are defined Enumerated classification—components are described by defining a hierarchical structure in which classes and varying levels of subclasses of software components are defined Faceted classification—a domain area is analyzed and a set of basic descriptive features are identified Faceted classification—a domain area is analyzed and a set of basic descriptive features are identified Attribute-value classification—a set of attributes are defined for all components in a domain area Attribute-value classification—a set of attributes are defined for all components in a domain area

19 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Indexing

20 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, The Reuse Environment A component database capable of storing software components and the classification information necessary to retrieve them. A library management system that provides access to the database. A software component retrieval system (e.g., an object request broker) that enables a client application to retrieve components and services from the library server. CBSE tools that support the integration of reused components into a new design or implementation.

21 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Reuse Economics Consider a new application, X, that requires 60 percent new code and the reuse of three structure points, SP 1, SP 2, and SP 3. Average costs for qualification, adaptation, integration, and maintenance are available. overall effort = E new + E qual + E adapt + E int where E new = effort required to engineer and construct new software components (determined using techniques described in Chapter 23). E qual = effort required to qualify SP 1, SP 2, and SP 3. E adapt = effort required to adapt SP 1, SP 2, and SP 3. E int = effort required to integrate SP 1, SP 2, and SP 3. The effort required to qualify, adapt, and integrate SP 1, SP 2, and SP 3 is determined by taking the average of historical data collected for qualification, adaptation, and integration of the reusable components in other applications.

22 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Reuse Metrics The benefit associated with reuse within a system S can be expressed as a ratio R b (S) = [C noreuse – C reuse ]/C noreuse where C noreuse is the cost of developing S with no reuse. C reuse is the cost of developing S with reuse. Devanbu and his colleagues [DEV95] suggest that R b will be affected by the design of the system since R b is affected by the design, it is important to make R b a part of an assessment of design alternatives the benefits associated with reuse are closely aligned to the cost benefit of each individual reusable component. A general measure of reuse in object-oriented systems, termed reuse leverage [BAS94], is defined as R lev = OBJ reused /OBJ built where OBJ reused is the number of objects reused in a system. OBJ built is the number of objects built for a system.


Download ppt "These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by."

Similar presentations


Ads by Google