Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden

Slides:



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

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
CS487 Software Engineering Omar Aldawud
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Reuse SEII-Lecture 28
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
H 1 Building Product Populations with Software Components, © 2002 Koninklijke Philips Electronics NV Building Product Populations with Software.
Software Evolution Managing the processes of software system change
Component-Based Development Process
- 1 - Component Based Development R&D SDM Theo Schouten.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Socio-technical Systems.
Page 1, July 3, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Course Instructor: Aisha Azeem
Software Product Line Architectures (SPLA) Nipun Shah
Computer Systems & Architecture Lesson Software Product Lines.
COMPONENT-BASED SOFTWARE ENGINEERING
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Effective Methods for Software and Systems Integration
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.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CSE 303 – Software Design and Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Page 1, December 8, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Development Life Cycle (SDLC)
Smart Home Technologies
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
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.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Basic Concepts and Definitions
Software Engineering Lecture 10: System Engineering.
44222: Information Systems Development
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Component-based Software Engineering Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden
Statistical process model Workshop in Ukraine October 2015 Karin Blix Quality coordinator
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Life Cycle “What happens in the ‘life’ of software”
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 17 - Component-based software engineering
Presentation transcript:

Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden

Software Development processes What determines which development process model to use? –Type of products/products (requirements from customers) –Type of project –Availability& requirements of stakeholders –Type of organization – Technology used –…..

Software development process adaptation Software development processes are usually of generic type –Usually requires adaptations –Often a software development process is a combination of several models –There is difference between theory and practice Practice is often more complex Practice is not perfect

Lifecycle Process Models for products ConceptDevelopmentProductionUtilizationRetirement Generic Product Lifecycle

Initial Development Retirement Phase-out Utilization Evolution Servicing Lifecycle Process Models for software products

Component-based approach process charateristics Separation of the development process. –The development processes of component-based systems –development processes of the components. A new process: Component Assessment. –Finding and evaluating the components. Changes in the activities in the development processes. –system-level process the emphasis will be on finding the proper components and verifying them, –component-level process, design for reuse will be the main concern.

Requirements Design Test Release Maintenance Implementation Integration Waterfall model

Requirements Design Glue-coding Test Release Maintenance Selection of existing components Adaptation Implementation Implementation of new components Integration

A simplified and an idealized process Assumption of the model –components selected and used are sufficiently close to the units identified in the design process Further, the figure shows only the process related to the system development – not to the supporting processes

CB System Development…

CB system and Components Development

The complete process

System Requirements Phase Collect requirements Analyse requirements Specify/ refine requirements Component A Are there components that fulfill requirements?

System and Analysis & Design Phase System analysis Conceptual design Detailed design Architectural components Existing components

Different architecture view in different phases Phase I –System architecture - Decomposition of the system > ComA IComA > ComB IComB > ComC IComC Conceptual Architecture

System Design – Phase 2 Implementation Architecture - Component Identification > ComA IComA > ComB IComB > ComC IComC > SysX ISysX > ComY IComY Implementation Architecture

System Design – Phase 3 Deployment architecture :ComB:SysX:ComC:ComA Deployment Architecture :ComB Server DataServer

System Implementation Phase Glue-coding Selection of existing components Adaptation Implementation Implementation of new components Parameterized Interface Wrappers Adapters

Parameterized Interface. Parameterized interface makes it possible to change the component properties by specifying parameters that are the parts of the component interface. Wrapper. A wrapper is a special type of a glue-code that encapsulates a component and provides a new interface that either restrict or extend the original interface, or to add or ensure particular properties. Adapter. An adapter is a glue code that modifies (‘adapts’) the component interface to make it compatible with the interface of another component.

System Integration Process Putting components together Integration components into the system (component) framework Integration can happen in different phase of product’s lifecycle

Integration in different phases Run-time Assembly time (link) Modeling/ design Assembly – architectural components Integration of components (for testing feasibility) System building from all components Dynamic updating of components

Test Phase System is being verified against the system specification In the waterfall model the test is performed after the system integrations, In CBD –Tests performed for isolated components –Tests of assemblies –Test of the system Tests are present in all phases!.

Requirements Design Glue-coding Test Release Maintenance Selection Adaptation Implementation Implementation of new components Integration Selection of the component candidates Selection Adaptation Component updates Components maintenance Components Integration Components Integration Components and Assemblies test Components and Assemblies test Integration and test in different phases of the CBD process

Release Phase packaging of the software in forms suitable for delivery and installation. The CBD release phase is not significantly different from a “classical” integration.

System Maintenance Phase The approach of CBD is to provide maintenance by replacing old components by new components or my adding new components into the systems. The paradigm of the maintenance process is similar to this for the development: –Find a proper component, test it, adopt it if necessary, and integrate it into the system Maintenance Selection Adaptation Component updates Components maintenance

Component assessment process Store

Component assessment process CBD characteristics –Instead of developing find the components! Activates: –Find components (often a set of components must be found) that –Verify that the component(s) indeed provide the desired (or almost desired) functionality, –Verify that the components can successfully be integrated with other components. –(The consequence can be that not the best components can be selected, but the components that fit together).

A generic assessment process activities Find – From an “infinite” component space find the components that might provide the required functionality. Select –Between the components candidates found, select a component that is most suitable for given requirements and constraints. Verify – –Test functional and certain extra-functional properties of a component in isolation. –Test the component in combination with other components integrated in an assembly. Store – – store the selected components in a component repository. –Store additional specification (metadata) measured results of component performance, known problems, the tests and tests results and similar

A assessment process activities Activities –Find –Select –Verify –Store The concrete activities dependent of type of component-based development process –Architecture-driven component development –Product-line development –COTS-based development.

Component development process

Component development process - specifics Components are built as reusable units Components are built for future systems Consequences –There is greater difficulty in managing requirements; –Greater efforts are needed to develop reusable units; –Greater efforts are needed for providing component specifications and additional material that help developers/consumers of the components.

Requirements Phase A combination of a top-down and bottom-up process. –The requirements elicitation should be the result of the requirements specification on the system level. –Requirements for general types of functions/services –Reusability should be addressed explicitly.

Different architectural approaches in CBD Architecture-driven component development Product-line development COTS-based development Subcontractor-based

Architect-driven component development Top-down approach –components are identified as architectural elements and as a means to achieve a good design. –Components are not primary developed for reuse, –Component-based technologies are used, because of easier implementations, in getting already existing serviced provide from the component technology. –the main characteristic of these components is composability, –No emphasis on while reusability –No emphasis time-to-market issues

Architect-driven component development –The parallel development processes are reduced to two semi-parallel processes Requirements Design Test Release Maintenance Implementation Integration System Development Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Component Development

A product line is:* * From Rob Van Ommering/Philips

Product Line Architecture Core components building a core functionality (Basic platform) A set of configurable components combined building different products

Platform-based products Basic services Middleware / infrastructure Platform layer Application layer

Product-line development GOAL – to enable efficient development of many variants of product, or family of products –to achieve a large commercial diversity (i.e. producing many variants and many models of products) with a minimal technical diversity at minimal costs [COPA]. –They are heavily architecture-driven, as the architectural solution should provide the most important characteristics of the systems.

Product-line development & CBSE –component-based approach enables reuse of components, and efficient integration process. –composability, reusability and time-to-market are equally important. –characteristic: The component model must comply with the pre-defined reference architecture. parallelism of component development process and product development process

Product-line development Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration System Development Component Assessment Component Development Select Store Verify

Advantages of Software Product Lines Using existing infrastructure –Savings 30%-40% of efforts per product –Time to Market - improved Larger variety of products Uniform and recognizable functionality/interface Better scalability (not obvious!) Better maintainability (not obvious!) Better possibility of component replacement

The Cathedral and the Bazaar? La Sagrada Familia, Barcelona Building Started: On March 19, 1882 Still not completed Is it worth to build it in that way? Building platforms Similar with platform-based And component-based development Is it worth?

Case Study Philips Consumer Electronics (TV, Video, DVD) –Moving from a hardware local development to software & hardware global development Requirements –New products (product models, variants, etc.) must be delivered each 6 months Experience “hardware-like” componentization of software made it possible to make the transformation

The domain… MB 64 kB 1 kB 1965 * From Rob Van Ommering/Philips

(1) Complexity * From Rob Van Ommering/Philips

Image Sound 100 Hz quality Dolby AC3 Data Processing User Interface Txt EPG menus animation 3D Connectivity P Storage Device TiVo VCR DVD TVCR HD Broadcasting Standard DTV Region Eu US AP Video Output Device PTV FTV LCTV Price UTV MTV (2) Diversity * From Rob Van Ommering/Philips

(3) Lead Time Was: Yearly cycle of product introduction –Christmas –World championship Is: Decreasing to 6 (or even 3) months –Otherwise loose shelf space in shop

Operating system Platform – component framework Core components application components Product architecture:

Koala Components C C2C2 C1C1 C3C3 Provided interface Required interface Modules/glue code Generate c code Complication and linking * From Rob Van Ommering/Philips

Overall architecture development Subsystems development Product development Development development process Platforms Components

CB development requires changes in the organizations! Project Manager Project Architect Test Manager QA Manager System Architect Manager Subsystem Project Manager Subsystem Architect Subsystem Test Manager QA Subsystem Manager Designers Developers Testers Product Project Manager Product Architect Product Test Manager QA Subsystem Manager Product Validation Manager Integrators Testers Overall strategy level Platform & Project level

Experience from Philips The new (CBD) approach did not work with the previous development process model and organization A lot of efforts has been put on –re-organization –Emphasis on early system/components specification –Quality assurance Early test and verification of the components –Synchronization of the activities

Findings from the case study –CBD requires specific approach in development process –Reusue is not only a matter of a good technology but also of the process and organisation –Many companies introducing CBD are not aware of that

COTS-based development COTS - commercial off the shelf component development process completely separately developed from system development. The strongest concern –time.-to-market from the component user point of view, –reusability from the component developer point of view. Main characteristics –instant value of new functionality –Challenges in composability Often COTS components don tot comply with a component model, the semantics of the components are not specified different properties of the components are not properly and adequately documented.

Conclusion The main characteristic of component-base development process –a separation (and parallelization) of system development from component development. Consequence –Programming issues (low-level design, coding) are less emphasized – verification processes and infrastructural management requires significantly more efforts.

COTS-based Component development process Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Verify Store System Development Component Assessment Component Development Select Find

Subcontractor-based component- development Construction Equipment Defence Forestry Mining Sub-Contractor

Integration Subcontractor-based Dev.process Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Verify Store System Development Component Assessment Component Development Select Find Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Requirements Design Test Release Maintenance Implementation Integration Requirements Design Test Release Maintenance Implementation Integration Verify Store System Development Component Assessment Component Development Select Find Design Implementation Integration Test Release Maintenance Develop variants

Literature Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Michel Chaudron 2, Stig Larsson 3 1 Mälardalen University, Department of Computer Science and Electronics, Sweden 2 Eindhoven University of Technology, Dept. of Mathematics and Computing Science, The Netherlands 3 ABB, Corporate Research, Sweden ICSEA 2006