- 1 - Component Based Development R&D SDM 1 2009 Theo Schouten.

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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
CS487 Software Engineering Omar Aldawud
Software Reuse SEII-Lecture 28
Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based 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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 9: Moving to Design
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
Enterprise Architecture
COMPONENT-BASED SOFTWARE ENGINEERING
Software Architecture in Practice (3rd Ed) Introduction
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
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
©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.
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.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Component Oriented Programming 1 Introduction to COP.
SPE-RFI-R : FEB.1999 : NUL-ITD-Iwata 2-01 Needs for Software Development Model Hiromichi Iwata Information Technologies.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
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.
Chapter 14 컴포넌트-수준 설계 Component-Level Design
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Lecture 21: Component-Based Software Engineering
©Ian Sommerville 2006MSc module: Advanced Software Engineering Slide 1 Component-based software engineering.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IT323 - Software Engineering 2 1 Tutorial 4.  List the main benefits of software reuse 2.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
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.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Component-based Software Engineering
Component-Based Software Engineering
Component--based development
Quality Assurance for Component-Based Software Development
Component Based Software Engineering (CBSE)
Chapter 6: Architectural Design
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Chapter 1: Software and Software Engineering
Presentation transcript:

- 1 - Component Based Development R&D SDM Theo Schouten

- 2 - Content Component Based Development, what is it Engineering of Component Based Software Development Domain Engineering Component Based Development Standard Software packages book chapter 30 Component-Based Software Engineering

- 3 - Elements of CBD ReUse of software components Buy, don’t develop –‘Commercial off-the-shelf’ (COTS) Shift of attention: –From programming to composing –From design to selection Speed of development Cost efficient

- 4 - Definitions ‘Component Based Software Engineering (CBSE) is changing the way software systems are developed. CBSE embodies the ‘buy, don’t build’ philosophy…… CBSE shifts the emphasis from programming software to composing software systems. Implementation has given way to integration as the focus. At its foundation is the assumption that there is sufficient commonality in many large software systems to justify developing reusable components to exploit and satisfy that commonality’ Clements 1995

- 5 - Origin Component-based software engineering (CBSE) is an approach to software development to improve software reuse. It emerged from the failure of object-oriented development to support effective reuse. Single object classes are too detailed and specific. Components are more abstract than object classes and can be considered to be stand-alone service providers.

- 6 - CBSE essentials Independent components specified by their interfaces. Component standards to facilitate component integration. Middleware that provides support for component interoperability. A development process that is geared to reuse.

- 7 - Design principles Components are independent, no interference Component implementations are hidden Communication is through well-defined interfaces Container: service provider for locating and getting component interface Container Component Implementation Interface

- 8 - Component models A component model is a definition of standards for component implementation, documentation and deployment. Examples of component models –EJB model (Enterprise Java Beans) –COM+ model (.NET model) –Corba Component Model The component model specifies how interfaces should be defined and the elements that should be included in an interface definition.

- 9 - Decision place Phase 1 Definition Phase 1 Definition Phase 2 Design Phase 2 Design Phase 3 Realize Phase 3 Realize Phase 4 Implement Phase 4 Implement Phases Steps Documents Vaststellen Systeem Behoeften Definitie studie Requirements Analysis Functioneel Ontwerp Functionele Specificatie Haalbaarheids- studie Haalbaarheids Rapport Technisch Ontwerp Technische Specificatie No Yes Component Based Development Questions: - Is COTS available to fulfill the requirements ? - Are internally developed modules suitable? - Are the interfaces of the components compatible with the architecture?

Engineering of CBS Make a formal difference between maintaining the ‘standard’ components and the implemented components. For updates the standard components are leading! This should fill in the following aspects: –Identifying the components which are candidates for implementation –Qualifying the interfaces of the components –Adapting of the components to the architecture –Updating of the components due to changes in the requirements. CBSE Process: –Domain Engineering: Library Function –Component Based Development: Implementation Function

Domain Engineering Domain Analysis Domain Analysis Software Architecture Development Software Architecture Development ReUsable Component Development ReUsable Component Development Domain Model Domain Model Structural Model Structural Model Component Library Repository ReUsable Components Component Based Development Analysis Architecture Design Architecture Design Component Composition Component Composition Component Update Component Update Component Adaptation Component Adaptation Component Qualification Component Qualification Component Engineering Component Engineering Testing Application Software Component Implementation CBSE Analysis Construction Dissemination

Domain Engineering identify, construct, catalog and disseminate a set of software components that can be applied to existing and future software for a particular domain Most important functions: –Analysis, Construction and Dissemination

Domain Engineering Analysis Define the domain to be investigated Representative sample of applications in the domain Develop a model for the domain

Domain Engineering Construction Selection of function or object ReUse?: –Is the functionality needed for future implementations? –What is the degree of reusability (commonality)? –Is there a duplication of the functions in the domain? –Is the component hardware dependent? –Is the design optimal for future implementations? –Can a non-reusable component be re-parameterized such that it becomes reusable? –Is it useful to decompose or re-parameterize a component for reuse? construct a structural model

Domain Engineering: Dissemination Product/Technology - Requirements Stability - Concurrent Software - Memory Constraints - Application Size - User Interface Complexity - Programming Languages - Safety/Reliability - Lifetime Requirements - Product Quality - Product Reliability Product/Technology - Requirements Stability - Concurrent Software - Memory Constraints - Application Size - User Interface Complexity - Programming Languages - Safety/Reliability - Lifetime Requirements - Product Quality - Product Reliability Process - Process Model - Process Conformance - Project Environment - Schedule Constraints - Budget Constraints - Productivity Process - Process Model - Process Conformance - Project Environment - Schedule Constraints - Budget Constraints - Productivity People - Motivation - Education - Experience/Training - Application domain - Process - Platform - Language - Development Team - Productivity People - Motivation - Education - Experience/Training - Application domain - Process - Platform - Language - Development Team - Productivity Library of components characterization for possible reuse looking to various aspects for it

Component Based Development Analysis of the particular application –referring to the domain model Architectural design –referring to the structural model Component qualification, adaption, composition –possible engineer another component testing

Component qualification can a selected component effectively be reused? its interface development and integration tools required runtime requirements : resources, speed, network protocol services requirements like OS interfaces and support of other components security features like access control and authentication protocols

Component adaption Assure that the component integrates easily in the architecture: consistent methods for resource management for all components; common activities for e.g. data management for all components; interfaces between components and the outside world have been developed in a consistent way. use component wrapping or custom component?

Component composition assembling of qualified, adapted or engineered components Common architecture environment, elements: –Data Exchange model: human-to-software, between components, among system resources –Automation, tools macro’s and scripts –Structured Storage, accessing heterogeneous data in a single data structure –Underlying Object Model, assures interoperability

What are standard packages ? developed for specific business processes; Maintainability and scale advantages Strong development in the last years (shift from custom made to standard packages); ‘Enabler’ of working in a process way (BPR); ‘Best practice’ business processes build in; Started in the ERP environment (‘Enterprise Resource Planning’) = primary business processes, extended to many other environments large changes in methodology for implementation of software systems.

System development versus package implementation Measure of reengineering / business value Make maximal use of package for realization vision of future (business driven, limited by technology) Start from the current situation, only change when required (technology driven) Realization vision without limitation (business driven, real innovation, changes thinking and action of people) 1 on 1 reengineering obv package innovation Implementation speed BPR Difference Quality Management, Risk Management, Project Management, Human Factors, etc. What stays

Final remarks CBSE and standard packages change an implementation from ‘programming to composing’ and from ‘design to select’; Integration of modules in existing architectures becomes more and more important: interfaces; Custom made around the standard applications cq. modules becomes complex and has to be integrated; Aspects with relation to what is leading, my ‘requirement’ or the ‘package’ become important issues; Management and ‘human factors’ stay the most important aspects for the success of a implementation.