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

Slides:



Advertisements
Similar presentations
Chapter 1: The Database Environment
Advertisements

Distributed Systems Architectures
Chapter 7 System Models.
ASYCUDA Overview … a summary of the objectives of ASYCUDA implementation projects and features of the software for the Customs computer system.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
Making the System Operational
Chapter 18 Methodology – Monitoring and Tuning the Operational System Transparencies © Pearson Education Limited 1995, 2005.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Software Reuse and Component-Based Software Engineering
System Engineering based on Chapter 6 - Software Engineering: A Practitioner’s Approach, 6/e copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Database System Concepts and Architecture
31242/32549 Advanced Internet Programming Advanced Java Programming
Lecture 6: Software Design (Part I)
Introduction to Databases
COM vs. CORBA.
Chapter 11 Component-Level Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
Chapter 13 The Data Warehouse
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 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.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
- 1 - Component Based Development R&D SDM Theo Schouten.
Lecture 11 Component-based Software Engineering Client/server Software Engineering Web Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Component Based Development
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Lecture 9: Chapter 9 Architectural Design
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Lecture 17: Chapter 26 Estimation for Software Projects Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 14 컴포넌트-수준 설계 Component-Level Design
Lecture 21: Component-Based Software Engineering
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
Chapter 33 Estimation for Software Projects
Chapter 1 The Nature of Software
Chapter 14 Component-Level Design
Component-Level Design
Java Beans Sagun Dhakhwa.
For University Use Only
Chapter 18 MobileApp Design
Component Based Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 10 Component-Level Design
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Quality Assurance for Component-Based Software Development
Presentation transcript:

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.

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...

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.

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

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.

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?

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.

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.

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

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

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

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.

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

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.

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

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.

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.

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

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

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.

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.

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.