Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Software Reuse and 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.
Basic Concepts in Component-Based Software Engineering
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
- 1 - Component Based Development R&D SDM Theo Schouten.
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.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Introduction to Software Testing
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design/Implementation and Support for Build 2 PDS Management Council Face-to-Face Mountain View, CA Nov 30 - Dec 1, 2011 Sean Hardman.
COMPONENT-BASED SOFTWARE ENGINEERING
Software Architecture in Practice (3rd Ed) Introduction
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Chapter 10 Architectural Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Component Based Development
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
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.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
CBSE Component Based Software Engineering cs. upt
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
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.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Software Engineering Introduction.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Lecture 21: Component-Based Software Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Software Configuration Management
Chapter 17 - Component-based software engineering
Component Based Software Engineering
Service-centric Software Engineering
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Introduction to Software Testing
Component-Based Software Engineering
Component-based Software Engineering
An Introduction to Software Architecture
Quality Assurance for Component-Based Software Development
The Current State of CBSE
Chapter 17 - Component-based software engineering
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Presentation transcript:

Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001

Topic: Component-Based Software Engineering - Introduction to Component-Based Software Engineering - The CBSE Process - Design Principles for CBSE - Classification and Retrieving Software Components - Component Technologies - CORBA - COM+ - Enterprise JavaBeans - Management of CBSE Jerry Gao Ph.D.9/2001 Presentation Outline All Rights Reserved

Topic: Component-Based Software Engineering During system analysis, we ask the following questions relating to software components: - Are commercial off-the-shelf (COTS) components available to implement the requirements? - Are internally developed reusable components available to implement the requirements? - Are the interfaces for available components compatible in the targeted system architecture? Component adaptation: Component composition: Component update: Jerry Gao Ph.D.9/2001 Engineering of Component-Based Systems All Rights Reserved

Topic: Component-Based Software Engineering What is Component-Based Software Engineering? Component-Based Software Engineering is a process that emphasizes the design and construction of computer-based systems using reusable software “components”. CBSE is changing the way large software systems are developed. CSBE shifts the emphasis from programming software to composing software systems based on reusable components. In CBSE, reusable component construction and component integration for software system are the major focus. Why Component-Based Software Engineering ? People believes that constructing software systems based on reusable high quality components is a cost-effective approach --> short development time, cost-reduction projects, high quality products. Jerry Gao Ph.D.9/2001 Introduction To Component-Based Software Engineering All Rights Reserved

Topic: Component-Based Software Engineering Who are involved in Component-Based Software Engineering? - System analyst - Software engineers - Component software developers - Application software integration engineers - Test engineers and QA - Project and product managers The major concerns of CBSE and software engineering: - Developing software from pre-produced parts - The ability to reuse those parts in other applications - Easily maintaining and customizing those parts to produce new functions and features Jerry Gao Ph.D.9/2001 Introduction To Component-Based Software Engineering All Rights Reserved

Topic: Component-Based Software Engineering - Lack of reusability due to: - Developed based the specific requirements - Use an ad hoc mechanisms to add reusability - Lack of standardized component interfaces between components - Component interfaces are designed for a specific project - No consistent mechanism for supporting component interactions - Lack of component interoperability - Lack consistent data exchange mechanism between components - Lack consistent interaction mechanism between components - Lack of customization - Lack of support of customization of component features and interfaces. - Poor component user interface support - Lack of development environment to support -No language, and develop tools, and service facilities for component development Jerry Gao Ph.D.9/2001 Engineering of Software Components - Issues of Traditional Software Modules All Rights Reserved

Topic: Component-Based Software Engineering - Component interface specification based on IDL (interface description language) - Consistent component naming - Meta data about component information, such as interfaces, relationships. - Interoperability - communication and data exchange among various components - Customization - interfaces for customizing components. - Composition - interfaces and rules for building assembled components based on given components - Evolution Support - rules and services for replacing components or upgrades - Packaging and deployment - packaging resources and deployment support Jerry Gao Ph.D.9/2001 Engineering of Software Components - Basic Elements of a Component Model All Rights Reserved

Topic: Component-Based Software Engineering Different descriptions of software components: - Component: a nontrivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. - Run-time software component: a dynamic bindable package of one or more programs managed as a unit and accessed through documented interfaces that can be discovered in run time. - System component a unit of composition with contractually specified and explicit context dependencies only. - Business component: the software implementation of an “autonomous” business concept or business process. Jerry Gao Ph.D.9/2001 Engineering of Software Components All Rights Reserved

Topic: Component-Based Software Engineering In addition to COTS components, the CBSE process yields: - Qualified components: - assessed by software engineers to ensure that not only functionality, but performance, reliability, usability, and other quality factors conform to the requirements of the target system. - Adapted components: - adapted to modify unwanted or undesirable features - Assembled components: - integrated into an architectural style and interconnected with an appropriate infrastructure - Updated components: - replacing existing software by new versions of software components Jerry Gao Ph.D.9/2001 Engineering of Component-Based Systems All Rights Reserved

Jerry Gao Ph.D.9/2001 Domain Engineering Topic: Component-Based Software Engineering Domain Analysis Software Architecture Development Structural Model Domain Model Reusable Component Development Repository Reusable Artifacts/ Components

Jerry Gao Ph.D.9/2001 Component-Based Development Process Topic: Component-Based Software Engineering Analysis Architectural Design Component Qualification Component Adaptation Component Composition Component Engineering Testing Component Update Application Software

Topic: Component-Based Software Engineering Component qualification: --> ensure that a candidate component will - perform the required functions - fit into the architectural style for the system - exhibit the quality characteristics (such as performance, …) During component qualification, many factors should be considered: - application programming interface (API) - the required development and integration tools or package - run-time requirements, such as storage, speed, network protocol - service requirements, such as OS, programming language,.. - security features, including access control,... - embedded design assumptions - exceptional handling Jerry Gao Ph.D.9/2001 Engineering of Component-Based Systems All Rights Reserved

Topic: Component-Based Software Engineering Component adaptation: --> ensure that a candidate component will - perform the required functions - fit into the architectural style for the system - exhibit the quality characteristics (such as performance, …) During component qualification, many factors should be considered: - application programming interface (API) - the required development and integration tools or package - run-time requirements, such as storage, speed, network protocol - service requirements, such as OS, programming language,.. - security features, including access control,... - embedded design assumptions - exceptional handling Jerry Gao Ph.D.9/2001 Engineering of Component-Based Systems All Rights Reserved

Topic: Component-Based Software Engineering Component composition: --> assembles qualified, adapted, and engineered components to form an application system based on a well-defined architecture. Major task: --> establish an infrastructure to bind the components into an operational system. The infrastructure provides a model for the coordination of components and their interaction protocols, and specific common services There are four mechanisms for creating an effective infrastructure: - Data exchange model - Automation - Structured storage - Underlying object model Jerry Gao Ph.D.9/2001 Engineering of Component-Based Systems All Rights Reserved

Jerry Gao Ph.D.9/2001 Topic: Component-Based Software Engineering Engineering of Component-Based Systems - Component Composition Component iComponent j Data exchange model provides mechanisms to support: - human-to-software data transfer - component-to-component data transfer Component -to-component data transfer Human-to-software interactions e.g. drag and drop, cut and paste

Jerry Gao Ph.D.9/2001 Topic: Component-Based Software Engineering Engineering of Component-Based Systems - Component Composition Component i Automation facilities and tools support: -interactions between components - installation, configuration for deployment - instantiation, run, and testing - management and service Component execution and management environment Automation facility

Jerry Gao Ph.D.9/2001 Topic: Component-Based Software Engineering Engineering of Component-Based Systems - Component Composition Component i Structured storage model provides mechanisms to support heterogeneous data and resources of software components in a single structure: - various data resources, voice/video, text, data - various documents of components - creation, navigation, edition of component content documents data text Component repository

Jerry Gao Ph.D.9/2001 Topic: Component-Based Software Engineering Engineering of Component-Based Systems - Component Composition Underlying object model provides mechanisms to support component-to-component interactions over a network to achieve: - platform and language independent supporting component communications - regulate component interaction protocols - standardized component interoperability network Component

Topic: Component-Based Software Engineering Myth #1: It’s important to know what COTS components can do for you. Realty: It’s important to know what COTS components can do to you.. Myth #2: COTS-based systems can be designed “top-down”. Realty: COTS-based systems are built “bottom-up”. Myth #3: An “Open System” architecture solves the COTS component interoperability problem. Reality: There is no standard definition for “open system”, and “plug-in-and- play” doesn’t always work. Jerry Gao Ph.D.9/2001 COTS Myths and Others - Myths on infrastructure issues: All Rights Reserved

Topic: Component-Based Software Engineering Myth #4: You don’t need to test COTS components. Reality: You need to test COTS components more thoroughly because you don’t understand how they were built. Myth #5: COTS product selections are often based on extensive evaluation and analysis.. Realty:COTS product selections are often based on slick demos, web search, or reading trade journals. Myth #6:COTS components come with adequate documentation. Realty: Features sell COTS components, not documentation. Myth #7: You can configure a COTS-based system to meet your requirements. Realty:You can configure your process to meet the COTS component’s capabilities. Jerry Gao Ph.D.9/2001 COTS Myths and Others - Myths on infrastructure issues: All Rights Reserved

Topic: Component-Based Software Engineering Myth 8: The processes COTS products utilize reflect our industry’s best practice. Reality: The processes COTS products utilize often only reflect the market schedule and domain experience of the producer. Myth 9: You buy COTS component. Realty:You buy the right to use a version of a COTS component. Myth 10:Vendors will fix problems in the current release of the software component. Realty: Vendors may fix problems in the next version of the product. Myth 11: If you are a large enough customer you can influence COTS component supplier. Realty:The market influences COTS component supplier. Jerry Gao Ph.D.9/2001 COTS Myths and Others - Managerial Issues: All Rights Reserved

Topic: Component-Based Software Engineering A reusable software component can be described in many ways. An ideal description encompasses: (3C model) (a) concept(b) content (c ) context Three classification schemes: - enumerated classification - faceted classification - attribute-value classification Jerry Gao Ph.D.9/2001All Rights Reserved Classifying and Retrieving Components Description of what the component does Concept Content Context Description of how the concept is realized Description of its domain application

Topic: Component-Based Software Engineering Jerry Gao Ph.D.9/2001 Classifying and Retrieving Components All Rights Reserved Indexing vocabularies Uncontrolled Controlled ClassedKeywordTerms extracted from text Terms not extracted from text Enumerated Faceted Descriptors Subject headings With syntax Without syntax There are three types of component classification methods: -- library and information science methods -- artificial intelligence methods -- hypertext systems