Component-based Software Engineering

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,
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
- 1 - Component Based Development R&D SDM Theo Schouten.
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Introduction to Systems Analysis and Design
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
COMPONENT-BASED SOFTWARE ENGINEERING
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 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
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.
Component Oriented Programming 1 Introduction to COP.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CSE 303 – Software Design and Architecture
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
1 Here are some quotations to get an overview of the kinds of issues of interest.
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.
Introduction to OOAD and UML
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Object Oriented Systems Design
Chapter 17 - Component-based software engineering
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Building Enterprise Applications Using Visual Studio®
Chapter3:Software Processes
What is Wrong with Models?
Netscape Application Server
CS 389 – Software Engineering
Module 4. Component Software 4.2 Introduction
Software Process Activities.
Chapter 17 - Component-based software engineering
Complexity Time: 2 Hours.
Distribution and components
Software Quality Engineering
Component Based Software Engineering
Object oriented system development life cycle
Abstract descriptions of systems whose requirements are being analysed
Overview of System Engineering
Rekayasa Perangkat Lunak
Chapter 2 – Software Processes
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.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Tools for Composing and Deploying Grid Middleware Web Services
Component--based development
Software engineering -1
Need for the subject.
An Introduction to Software Architecture
The Current State of CBSE
What Is Good Software(Program)?
Chapter 17 - Component-based software engineering
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Chapter 2 Software Processes
Presentation transcript:

Component-based Software Engineering Motivations Marcello Bonsangue LIACS – Leiden University Fall 2005

Component-based Software Engineering Main concerns: Development of software from pre-produced parts Reuse of those parts in other applications Easily maintaining and customizing those parts to produce new features Goals (users’ demands) Build more reliable software Less time between versions 27/11/2018 CBSE

Component everywhere Concerns and goals are similar in many other engineering disciplines Precise assembly of reusable, well-documented, quality and trusted parts For them components are well established Civil engineering -> house prefab, … Chemical engineering-> proteins, … Electronic engineering-> circuit,… Industrial engineering -> cars, … 27/11/2018 CBSE

Example: the automobile lesson Car assembly was a costly, tedious and slow process Henry Ford life’s goal: Produce cars for the masses by building them faster Ford’s method The assembly line (1914) Idea by reversing the process of beef- trolleys: butchers removed cuts from the carcass passed by until nothing remained. 27/11/2018 CBSE

But why not in Software engineering? If the goals of CBSE are no different from industrial and civil engineering why is CBS an hype only now? Industrial and civil engineering develop final products Software is a generic meta-product that can be used to create families of instances using different parametrizations 27/11/2018 CBSE

Standards Industrial and civil engineering successfully develop components because of standards, regulations and laws. Before the software crisis (1968) software had no standard. 27/11/2018 CBSE

Too less, too much Custom-made software Fully standard software Flexible, competitive, if it works Maintenance, interoperability are serious problems Very long time to market Fully standard software Short time to market Maintenance, interoperability and evolution are vendor business Hard to be competitive, hard to adapt 27/11/2018 CBSE

Standard needed Interaction standard for specifying the explicit context dependency on other software elements Composition standard for defining how components can be composed to create a larger structure and how a producer can replace one existing component with another one. 27/11/2018 CBSE

What are components? (I) A software component is not different from other software elements because of the programming language used to implement it The difference must be in how software components are used Components are not for real programmers. They are for software users Components are for composition Parts can be reused by rearranging them 27/11/2018 CBSE

Software users The PC revolution and the Internet have interjected a new heavy weight in the software arena: the software consumer. Before consumerization of software: Turn every user into a programmer. After consumerization of software: Turn every human into a software user. 27/11/2018 CBSE

Two approaches to reuse Design a system monolithically and then find the parts (top-down) Often parts are not reusable Design the parts and then compose them into a system (bottom-up) Parts must be general (to be really reusable) but not too much (to remain practicable) 27/11/2018 CBSE

Software components A software components is a software element that conforms to specific interactions and composition standards can be independently deployed and composed without modification (according to a composition standard) 27/11/2018 CBSE

What is not a component The requirement for independence rules out Type declarations C macros C++ templates Smalltalk blocks 27/11/2018 CBSE

What could be a component Procedures Libraries Classes (not objects) Modules 27/11/2018 CBSE

What is a component Coarse grain Finer grain Applications executing in the environment provided by an operating system Finer grain Web browsers’ plug-ins Microsoft Office documents Spreadsheet, document, email, web-page, database, presentation 27/11/2018 CBSE

Neither custom nor fully-standard Conformity to interaction and composition standards allow for robust integration fast time to market and rules out custom-made software Whereas independence is essential to allow for multiple independent vendors independent development and rules out fully-standard software 27/11/2018 CBSE

Component abstraction levels To design and develop the internals of a components we distinguish four levels of abstraction Component specification Component implementation Component executable Component deployment The process can be carried out using techniques like UML and OO programming languages, and methodologies supporting component production. 27/11/2018 CBSE

Component specification It includes the technology independent definition of the component but also information to facilitate the finding of a component (gap fulfilment) It may derives from Component producer’s desire Solution builder’s specific needs Industry standard for interactions and compositions 27/11/2018 CBSE

Component implementation It defines the inside of a component, with its internal parts and collaborations. It occurs after the decision of the programming language to use for the development It must satisfies the specification One-to-many relationship 27/11/2018 CBSE

Component executable It is the real pluggable component used in the assembly of the application Each executable may results in more than one version There may be more than one executable per implementation 27/11/2018 CBSE

Component deployment It is the deployment of the component executable on a number of nodes There may be several deployment for the same executable. 27/11/2018 CBSE

Component production A methodology for the production of components must support the four component abstraction levels It is different from traditional software production More time is spent for business rules, business process modelling, analysis, and design Less time is spent in development 27/11/2018 CBSE