component based software engineering l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Component-Based Software Engineering PowerPoint Presentation
Download Presentation
Component-Based Software Engineering

Loading in 2 Seconds...

play fullscreen
1 / 36

Component-Based Software Engineering - PowerPoint PPT Presentation


  • 318 Views
  • Uploaded on

Component-Based Software Engineering. M.R.V. Chaudron www.win.tue.nl/~mchaudro Dept. of Mathematics and Computing Science Eindhoven University of Technology. This lecture. Obstacles to CBD CBD Process domain engineering. Obstacles to CBD. Some Obstacles to CBSD.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Component-Based Software Engineering' - Sophia


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
component based software engineering

Component-BasedSoftware Engineering

M.R.V. Chaudron

www.win.tue.nl/~mchaudro

Dept. of Mathematics and Computing Science

Eindhoven University of Technology

this lecture
This lecture
  • Obstacles to CBD
  • CBD Process
  • domain engineering
some obstacles to cbsd
Some Obstacles to CBSD
  • Organizational Concerns:
  • who pays for extra development effort?
    • (for making components more generic, flexible, ..)
  • cost of learning
some obstacles to cbsd5
Some Obstacles to CBSD
  • Commercial Concerns:
    • No established market!
    • No Software shops :
      • marketing, licensing, trading, …
    • Legal issues: liability (aansprakelijkheid)
    • Business model (pay-per-copy vs. pay-per-use)
some obstacles to cbsd6
Some Obstacles to CBSD
  • Technical Concerns:
    • Method for Design of Components
      • balance genericity, flexibility, …
    • Adequate tools are needed;
    • in particular for integration of third party
    • components
    • Need for Common/Standardized:
      • architectures
      • component model
      • data model
      • specification methods
what is domain engineering
What is Domain Engineering ?

Typically, organisations build many systems in a single domain

Domain Engineering is the activity of collecting, organizing and

storing experience in building systems in a particular domain

  • using reusable assets
  • providing means for reuse
    • retrieval, dissemination, adaptation, assembly

Goal: Capitalize the experience/expertise acquired in building systems, in order to build new systems more efficiently

Assets may be software, but also requirements, domain models

In general: domain knowledge

what is domain engineering9
What is Domain Engineering?

... the process of producing, maintaining and cataloging reusable assets, to make them available to application engineering teams.

references on domain engineering
References on Domain Engineering
  • FODA – Feature Oriented Domain Analysis

Kang, K., et al. Feature-Oriented Domain Analysis (FODA) Feasibility Study (CMU/SEI-90-TR-21, ADA 235785). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1990.

  • ODM – Organization Domain Modelling

Simos, M., et al. Software Technology for Adaptable Reliable Systems (STARS) Organization Domain Modeling (ODM) Guidebook Version 2.0 (STARS-VC-A025/001/00). Manassas, VA: Lockheed Martin Tactical Defense Systems, 1996. Also available onlinehttp://www.asset.com/WSRD/abstracts/ABSTRACT_1176.html

  • Survey papers:
    • Arango, G. "Domain Analysis Methods," 17-49. Software Reusability. Chichester, England: Ellis Horwood, 1994.
references on domain engineering11
References on Domain Engineering
  • Reuse-Based Software Engineering: Techniques, Organization and Controls, H. Mili, A. Mili, S. Yacoub, E. Addy, Wiley & Sons, 2002
domain engineering inputs and outputs

Domain

Engineering

Domain Engineering: inputs and outputs

Dom.Eng. Methods

Mngmt. Procedures

Domain literature

Taxonomies

Standards

Existing Appl.

Documentation

Dom. Models

Customer Surveys

Components

Expert Advice

Domain

Expert

Domain

Analysts

Domain

Engineer

domain engineering process
Domain Engineering Process
  • Domain Identification & Scoping
    • What is inside/outside the domain
    • Identify stakeholders
  • Domain Analysis
    • Establish lexicon
    • Identify commonalities/variabilities
    • Define a set of reusable requirements
  • Domain Design
    • Establish a common architecture for the domain
  • Domain Implementation
    • Engineer Asset Base / Implement reusable assets;

e.g. models, components, generators, reuse infrastructure, ..

domain engineering enabled application engineering
Domain Engineering enabled Application Engineering

Domain Engineering

Development Domain SW

Architecture

Implement

Reusable

Assets

Domain Analysis

Reusable

Assets & Tools

Domain

Model

Domain

Software

Architecture

User Req’s

Domain Model

Based Analysis

Domain Arch.-Based Design

Application

Development

Application

Model

Application

Architecture

Application

Application

Engineering

domain analysis
Domain Analysis
  • The process by which a software engineer learns about the domain to better understand the problem:
    • The domain is the general field of business or technology in which the clients will use the software
    • A domain expert is a person who has a deep knowledge of the domain
  • Benefits of performing domain analysis:
    • Anticipation of extensions
    • Aquire expertise to fill in gaps in available information
domain analysis16
Domain Analysis

A domain model is an explicit representation of

knowledge about the domain

  • Domain model consists of:
  • Domain lexicon
  • Concept models (using e.g. diagrams, formalisms, … )
  • Feature models
features
Features

According to

FODA: A prominent and user-visible aspect, quality or

characteristic of a system.

ODM: A distinguishable characteristic of a system that is

relevant to a stakeholder of the system

In mobile telephones:

- polyphonic ringtones

- SMS, MMS

- dual, tri-band,

- …

In cars:

- airco

- power-steering

- remote key-lock

- …

feature models
Feature models
  • Types of features
  • Mandatory: All systems must have it
    • e.g. A car must have an engine
  • Alternative:
  • A system must have one out of multiple options
    • e.g. Transmission may be manual or automatic
  • Optional: A system may have a feature
    • e.g. A car may have air-conditioning
feature diagram
Feature Diagram

A hierarchical decomposition of features.

A concept higher in the tree consists of its children

car

optional

wheels

engine

steering

wheel

transmission

airco

alternative

mandatory

(default)

manual

automatic

  • Additional annotations that may be used in the feature diagram:
  • mutually exclusive features
  • rationale for chosing between alternatives
  • composition rules: airco may be used if horsepower>100
example domain analysis document
Example Domain Analysis document

A. Introduction

B. Glossary

C. General knowledge about the domain

D. Customers and users

E. The environment

  • Tasks and procedures currently performed
  • Vision on future of domain
  • Competing software
  • Similarities to other domains
maintaining domain models
Maintaining Domain Models
  • Businesses and their environments change.
  • Hence Domain Models should be maintained.
typical activities of a se project
Typical Activities of a SE Project
  • Problem Analysis
  • Requirement Engineering
  • Architecture Design
  • Subsystem Design
  • Implementation & Unit Test
  • Integration & System Test
  • Deployment
  • Maintenance
  • (De)comission
consumer and producer processes
Consumer and Producer Processes

Two concurrent processes

Domain

Model

Domain

Software

Architecture

Consumer

aims to build systems

using existing components

Producer

aims to build component to supply to consumers

Application

Architecture

Reusable

Assets & Tools

Application

cbd consumer process 1
CBD Consumer Process (1)
  • Problem Understanding
  • Requirement Engineering
    • list (sub)system requirements
    • determine (sub)system test-cases
  • Component Reconnaisance
    • Survey available Components
    • Shortlist Candidates
  • CBD Architecture Design

The components selected

influence the architecture!

cbd consumer process 2
CBD Consumer Process (2)
  • CBD Architecture Design
    • Chose a component model
      • proprietary vs. industry-provided
    • Indentify dependencies across components
    • Design space is typically limited to a set of ‘assemblies’;

i.e. discrete set of particular combinations of components

cbd consumer process 3
CBD Consumer Process (3)
  • Finding/Locating Components
    • search internal (department/company) repositories
    • search external repositories
  • Component Selection
    • Component/Assembly Evaluation
    • Vendor Selection
    • Build vs. Buy-decision
  • Component Acquisition
    • Component understanding
    • Acquirer testing
  • Build Custom Software
cbd consumer process 4
CBD Consumer Process (4)
  • Component Integration
    • wrapping
    • adapting/tailoring
    • installing/configuring
    • verification & validation of assembly & system
      • test system-wide properties
  • Component Maintenance
    • when to update with a new version
    • when to switch to another vendor
  • Component Decomission
consumer persective
Consumer Persective

primary criterium:

suitable functional & extra-functional properties

  • How will the component affect the behaviour of other components in the system?
    • Components inevitably interact through resource use
  • What does a component require of other components in the system?
  • Who is responsible for
    • maintenance of the component in the system?
    • failures in the final system?

Producer or assembler?

consumer persective30
Consumer Persective

Vendor selection

  • reputation
    • product quality
    • service quality
  • expected business continuity
selection criteria
Selection Criteria

Process:

  • how fast can the component be delivered?
  • how much time will it take to integrate?
  • how much time will it take to maintain?

Product

  • does it provide required functionality?
  • does it not provide superfluous functionality?
  • quality/cost ratio?
component versus assembly selection
Component versus Assembly Selection

What count are the properties of the final systems.

These are not necessarily those of individual

components.

Instead of evalutating components, we should evaluate

assemblies.

cbd production activities 1
CBD Production Activities (1)
  • Assess market-potential:
    • what are current and future needs?
    • what exists in the market?
  • Identify/Scope components
    • balance genericity vs. (size, complexity, …)
    • select variability
  • Implement Components
    • documentation / specification
cbd production activities 2
CBD Production Activities (2)
  • Verify Components
  • Certification by 3rd party
  • Packaging
  • Distribution
    • insert into repository
questions
Questions?
  • You should know
  • component design guidelines
  • what domain engineering is
  • how to read & make feature-diagrams
  • CBD process

Self-Study material:

- Chapter .. from Mili