Lecture 21: Component-Based Software Engineering

Slides:



Advertisements
Similar presentations
Software Reuse and Component-Based Software Engineering
Advertisements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Reuse SEII-Lecture 28
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
6/1/2015Ch.31 Defining Enterprise Architecture Bina Ramamurthy.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
- 1 - Component Based Development R&D SDM Theo Schouten.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
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.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Building software from reusable components.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
UNIT-V The MVC architecture and Struts Framework.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
COMPONENT-BASED SOFTWARE ENGINEERING
©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.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Software Engineering Muhammad Fahad Khan
©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.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
©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.
Chapter :11 Component-Level Design
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
NOVA Networked Object-based EnVironment for Analysis P. Nevski, A. Vaniachine, T. Wenaus NOVA is a project to develop distributed object oriented physics.
Lecture 22: Client-Server Software Engineering
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
CS 501: Software Engineering Fall 1999 Lecture 12 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.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Chapter 14 Component-Level Design
Component-Level Design
Component Based Software Engineering
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Component--based development
Automated Analysis and Code Generation for Domain-Specific Models
Quality Assurance for Component-Based Software Development
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Lecture 21: Component-Based Software Engineering

Today’s Topics Issues and Challenges for CBSE The CBSE Process Guidelines for Reuse The Reuse Environment Economics of CBSE Metrics for CBSE

Characteristics of CBSE Analysis & Design includes checking for reusable solutions A “more organized approach” to software reuse Helps reduce development time & cost (with streamlined infrastructure & process) Less emphasis on implementation, more on integration

Challenges for CBSE Does the domain allow reusability? Systems have common requirements Can the extra cost be justified? High degree of reusability Can support for reuse be created? Indexing, common access, process Can incentives be created for engineers? Appropriate culture, metrics, etc.

Composition Follows architectural design & precedes detailed design Can requirements be implemented: By COTS components? By internally-developed components? Are component interfaces with the architecture compatible? Can the requirements be adjusted to accommodate reuse?

CBSE Activities Component Qualification Does the component fit the need? Component Adaptation Resolve design mismatches Component Composition Adopt framework for integration Component Update Manage third-party updates

Types of Components Run-Time Components Business Components Dynamic binding Interface discovered at run-time E.g.: distributed objects (CORBA) Business Components Encapsulate an autonomous business concept or process E.g.: enterprise Java beans (EJB)

CBSE Development Process Identify, qualify, adapt, assemble, and update reusable components Component engineering Domain engineering and component engineering are concurrent Requirements are adjusted to accommodate reuse

The CBSE Process [From SEPA 5/e]

Domain Analysis Define the domain Categorize the items in the domain Collect a sample of applications Analyze each application Develop and analysis model for the domain objects

Identification & Categorization Select specific functions or objects Abstract functions or objects Define a taxonomy Identify common features Abstract the relationships Derive a functional model Define a domain language

Example: Common Objects Text processing objects share common functions Process sentence & provide feedback Process sentence & provide an output (rewrite, translation) Process sentence & provide markup Text processing programs share common context (desktop)

Example [2] Shared Objects Client: a program that resides on the desktop, interfaces with a word-processing program, and provides some functionality on the desktop Server: a program that resides remotely and does the actual work The KANT system (CMU) provides reusable boundary objects which are used in several applications

Other Examples Document class in Java (also its subclasses) User Interface components (e.g., Java Swing classes) Database interface components (e.g. reusable JDBC classes)

Guidelines for Reuse Is there a future need? Is the functionality common? Is the functionality duplicated? Is there a hardware dependency? Is the design optimized? Can we parameterize components? Can we reuse via modification? Can we decompose a component to derive reusable components?

Domain Characteristics Impact Reusability [From SEPA 5/e]

Structure Points Capture a repeating pattern in the domain (function, data, behavior) e.g., aircraft avionics system Three characteristics: Limited number of instances Simple rules, interface Implements information hiding

Generic Structure Points Application Front End (GUI) Database Computational Engine Reporting Facility Application Editor Can be used for estimation

Component Qualification Does the component: Perform the function required? Fit into the architectural style? Have the right qualities? Things to consider: API, tool support, run-time requirements, maintenance requirements, security, design assumptions, exception handling, …

Component Adaptation Ultimate Goal: “easy integration” Consistent resource management Common data management Consistent interfaces Alternative: Component Wrapping White-box (modify code) Gray-box (extend code / data) Black-box (pre-/post-processing)

Component Composition Four architectural ingredients: Data exchange model e.g., drag/drop, cut/paste Automation tools, macros, scripts Structured storage single interface to heterogeneous data Underlying object model ensure component interoperability

Integrated Information Management Flow-based information processing architecture Shared object model (Node, Document, etc.) User-defined nodes & resources Rapid development of reusable components

Emerging Standards OMG/CORBA Common Object Request Broker Architecture Microsoft COM Component Object Model Sun Java Beans Enterprise Java Beans – well-suited for eCommerce

Classification & Retrieval 3C Model [Tracz 1990] Concept: What does it do? Content: How is it built? Context: What is the domain? Indexing Schemes Controlled vocabulary Uncontrolled vocabulary

Classification Hierarchy [From SEPA 5/e]

The Reuse Environment Component Database Library Management System Component Retrieval System CBSE Tools for Integration Example of a web-based component library: www.jars.com

Economics of CBSE Quality Lower defect rate for reusable code Productivity Faster delivery of complete systems Cost Savings = CS – (CR + CD) Develop from Scratch Cost of Reuse Develop w/Reuse

Reuse Metrics Reuse Benefit (cost-based) Rb(S) = [Cnoreuse – Creuse]/Cnoreuse Reuse Leverage (object-based) Rlev = OBJreused / OBJbuilt

Questions?