Software Engineering Institute Carnegie Mellon University Component-Based Software Kurt C. Wallnau Software Engineering Institute Carnegie Mellon University,

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Components vs. Objects Luigia Petre Turku Centre for Computer Science & Åbo Akademi University, FIN Turku, Finland Presented at Nordic Workshop on.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
Basic Concepts in Component-Based Software Engineering
OASIS Reference Model for Service Oriented Architecture 1.0
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Components Andreas Sjögren Industrial IT group Computer Science Lab MdH.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
- 1 - Component Based Development R&D SDM Theo Schouten.
On the horizon Chapter twenty-five of: Szyperski, Clemens et al. Component Software - Beyond Object-Oriented Programming. Second Edition.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Component-Based Software Engineering CSM-15 Paul Krause.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 6: The Traditional Approach to Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
UML - Development Process 1 Software Development Process Using UML (2)
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Architecting Web Services Unit – II – PART - III.
Unified Modeling Language, Version 2.0
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
Component-Based Software Engineering(CBSE) Xingui Tang CS532, Fall /6/2015.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Component Oriented Programming 1 Introduction to COP.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Component-Based Systems X LIU, School of Computing, Napier University TIP As computing systems become more and more complex, software reuse and component-based.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
CBSE Component Based Software Engineering cs. upt
1 Unified Modeling Language, Version 2.0 Chapter 2.
 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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
EbXML Semantic Content Management Mark Crawford Logistics Management Institute
Basic Characteristics of Object-Oriented Systems
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Architecting Web Services
Systems Analysis and Design With UML 2
Architecting Web Services
Systems Analysis and Design With UML 2
Component-based Software Engineering
Component--based development
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
The Current State of CBSE
Presentation transcript:

Software Engineering Institute Carnegie Mellon University Component-Based Software Kurt C. Wallnau Software Engineering Institute Carnegie Mellon University, USA

Software Engineering Institute Carnegie Mellon University Overview Why component-based software? What are components? component frameworks? WaterBeans: “rolling your own” framework Practical considerations Component resources 

Software Engineering Institute Carnegie Mellon University Why Component-Based Software? Component-Based Software adaptability through component substitution and composition platform/language interoperability competitive marketplace for component vendors SW Products & Technology Marketplace ImperativesBusiness Imperatives Technology Enablers COM CORBA Java Beans Web OO IT = competitive edge Elements of component technology Enterprise Java Beans

Software Engineering Institute Carnegie Mellon University Interlude: Components v. Objects Object-orientation is neither necessary nor sufficient for component-based software--but it is a convenient place to start Object Characteristics abstraction (interfaces and encapsulation) inheritance (hierarchically structured abstractions) polymorphism (flexible but type-safe run-time binding) Component Characteristics abstraction (interfaces and encapsulation) conformance to framework independently deployable composable etc.

Software Engineering Institute Carnegie Mellon University Components and Objects Components and Objects are different kinds of abstractions they are each good at different kinds of things confusion sometimes arises because they share some characteristics (e.g. encapsulation)

Software Engineering Institute Carnegie Mellon University The Object-Oriented Paradigm Object-oriented systems are based upon domain models the types of entities (or concepts) a type/subtype class hierarchy the structure and operation of OO software depends on this hierarchy This works when the domain is well understood and stable otherwise significant delays in implementation are to be expected and the resulting system will be brittle and difficult to adapt (real world class hierarchies are notoriously complex and difficult to change)

Software Engineering Institute Carnegie Mellon University The Component Paradigm Components permit different approaches to structuring software systems for example, in ways that are not dependent upon the application domain (as with OO) i.e., frameworks based on “coordination model” rather than “domain model” are possible--as in WaterBeans This is one way to get a broader market for commercial components than possible with objects Coordination models allow integration of components without caring about what the components actually do individually or integrated.

Software Engineering Institute Carnegie Mellon University Overview Why component-based software? What are components? component frameworks? WaterBeans: “rolling your own” framework Practical considerations Component resources 

Software Engineering Institute Carnegie Mellon University This is what the experts say... A component is a non-trivial, nearly- independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. A component conforms to and provides the physical realization of a set of interfaces. --Philippe Krutchen, Rational Software A run-time software component is a dynamically bindable package of one or more programs managed as a unit and accessed through documented interfaces that can be discovered at run time. --Gartner Group A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to third- party composition --Clemens Szyperski A business component represents the software implementation of an autonomous business concept or business process. It consists of the software artifacts necessary to express, implement, and deploy the concept as a reusable element of a larger business system. --Wojtek Kozaczynski, SSA These definitions show common ground & different perspectives

Software Engineering Institute Carnegie Mellon University What I think they really said... There are some areas of agreement and some differences in perspectives among the experts

Software Engineering Institute Carnegie Mellon University What they should have said One key to understanding component software is the relation between component and framework components are conformant with a framework a framework provides compose- time and run-time services Not all frameworks are alike they differ in scope and in the kinds of interfaces they impose on components Framework Components Component and Framework are inseparable concepts

Software Engineering Institute Carnegie Mellon University Types of Component Framework Framework scope vertical: application specific horizontal: application neutral Framework constraints function: –several types of component –type-specific interfaces –interfaces express functionality coordination: –one type of component –a standard component interface –interface expresses coordination verticalhorizontal coordination function Scope of Framework Framework Constraints Narrow, focused features. See object-oriented frameworks. E.g. SEMATECH CIM Framework. For large- scale systems integration. E.g. Enterprise Java Beans. For application- level software. E.g., Java Beans, and Microsoft COM. Great competition here. Not well explored. For application-level software with domain specific coordination. E.g., WaterBeans. A Notional Matrix for Component Frameworks

Software Engineering Institute Carnegie Mellon University Coordination Interfaces Coordination interfaces are an option to functional interfaces there are fewer models for coordinating the activities of components than there are functions that we want our components to execute –harden coordination into programmable interfaces –specify functionality via protocols to be interpreted by components leads to a more uniform concept for integration through composition in data out data update status “push” “100” “ok” instruction signal Stac k logic These are run-time coordination interfaces how component functions are executed Build-time & install-time interfaces are possible registration & property editing, for example Stack component

Software Engineering Institute Carnegie Mellon University Overview Why component-based software? What are components? component frameworks? WaterBeans: “rolling your own” framework Practical considerations Component resources 

Software Engineering Institute Carnegie Mellon University Framework Scopes: A: Urban Runoff Models B: Loading Models C: Receiving Models D: Water Quality Models The WaterBeans Framework A Agriculture Mouse SWMM Urban Silviculture Mining Construction B WASP QUAL2E Estuary WASP QUAL2E Lake WASP QUAL2E River C D The Environmental Protection Agency (EPA) develops software to model water quality lots and lots of models poor integration few standards The SEI is demonstrating component software for EPA initial scope is Urban Runoff to be extended to Loading Models We illustrate WaterBeans to show practical feasibility of vertical coordination frameworks

Software Engineering Institute Carnegie Mellon University WaterBeans and Components Model Application Components Based on scientific theories and mathematics Computer tools for simulation and evaluation of models Custom and “off-the- shelf” software elements built from implemented by Water Beans imports composes simulates

Software Engineering Institute Carnegie Mellon University The WaterBeans Specification Components implement ~20 (some trivial) interface calls Coordinational interface: how to register and execute components – WaterBeans does not know or care about what the components compute Coordination scheme: a cyclic executive with scheduling determined by data dependencies among components Component interfaces to initialize, execute, and obtain input and output data Component interfaces to register the component and its properties to the WaterBeans framework

Software Engineering Institute Carnegie Mellon University The WaterBeans Composer A standard coordination model supports compositional development and very high levels of program abstraction Compon ent inspecto r Registered Sewer Components Compos er tools Componen t instances and typed data connector s Data-driven component semantics

Software Engineering Institute Carnegie Mellon University WaterBeans in Another Domain... WaterBeans framework was applied to another domain although a trivial domain, it is a proof of generality Wave form compone nts Wave combinations terminating in oscilloscope component

Software Engineering Institute Carnegie Mellon University Overview Why component-based software? What are components? component frameworks? WaterBeans: “rolling your own” framework Practical considerations Component resources 

Software Engineering Institute Carnegie Mellon University Components: Not a Silver Bullet Components (as in WaterBeans) do not solve integration and interoperability problems these problems are “merely” moved from hardened interfaces to data semantics –what properties does a component possess, and what do the properties mean? –for this industry consensus is required However, coordination-style frameworks offer intriguing benefits (abstraction, composition,…)

Software Engineering Institute Carnegie Mellon University Components: An Expandable Idea Component-based software is an emerging technology and discipline This talk has focused on one set of theoretical issues--the marketplace is more expansive there are many emerging component technologies (COM/DCOM/ActiveX, Bean varieties, etc.) there are a variety of emerging “methodologies,” some as extensions of pure OO and UML

Software Engineering Institute Carnegie Mellon University Components: A Competitive Field There is tremendous industry demand for improvements in software technology recall the introductory motivation to this talk There are many component technology providers looking to exploit this demand competition over infrastructure standards is “hot” Bottom Line: Expect instability and innovation in commercially-available component technology

Software Engineering Institute Carnegie Mellon University Component Resources NIST Advanced Technology Program in Component-Based Software Proceedings ICSE’98 Workshop on Component-Based Software Engineering ( cf Sept/Oct issue of IEEE Software for a summary of this workshop ) Articles on Component-Based Software from OdaTeam An industry perspective on commercial tools for component-based development