05-chapterWC3-1

download 05-chapterWC3-1

of 56

Transcript of 05-chapterWC3-1

  • 8/12/2019 05-chapterWC3-1

    1/56

    Page 1Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Chapter 5

    Component-Based Development Process

  • 8/12/2019 05-chapterWC3-1

    2/56

  • 8/12/2019 05-chapterWC3-1

    3/56

    Page 3Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Purpose

    This chapter:

    Describes the component-based software lifecycle.

    Provides an overview of generic software engineeringprocesses.

    Motivates the need for specific processes whendeveloping components and when building systems orapplications from components

    Describe these processes, reviewing their procedures.

  • 8/12/2019 05-chapterWC3-1

    4/56

    Page 4Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Software Process Models

    Generic lifecycle activities

    The Sequential Model

    Evolutionary Development

    Unified Process

  • 8/12/2019 05-chapterWC3-1

    5/56

    Page 5Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Generic lifecycle activities

    Activities

    Requirements analysis and system specification

    System and software design

    Implementation and unit testing Integration, system verification and validation

    Operation support and Maintenance

    Disposal

  • 8/12/2019 05-chapterWC3-1

    6/56

    Page 6Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    The Sequential Model

    Analysis

    Design

    Implementation

    Integration

    Test

  • 8/12/2019 05-chapterWC3-1

    7/56

    Page 7Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Evolutionary Development

    Develop a system gradually in many repetitive stages:

    Increasing the knowledge of the system requirementsand system functionality in each stage

    exposing the results to user comments.

    This can be achieved by using:

    The Iterative Model

    The Incremental Model

    The Prototyping Model

  • 8/12/2019 05-chapterWC3-1

    8/56

    Page 8Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    The Iterative Model

    Analysis

    Design

    Implementation

    Integration

    Test

  • 8/12/2019 05-chapterWC3-1

    9/56

  • 8/12/2019 05-chapterWC3-1

    10/56

    Page 10Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    The Prototyping Model

    Analysis

    Design

    Implementation

    Integration

    Test

    Develop

    prototype

    Test prototype

  • 8/12/2019 05-chapterWC3-1

    11/56

    Page 11Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Unified Process

    Inception

    The first phase in which the system is described in aformalized way, providing a base for furtherdevelopment.

    Elaboration

    The phase in which the system architecture is definedand created.

  • 8/12/2019 05-chapterWC3-1

    12/56

    Page 12Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Unified Process continued

    Construction

    The development of completely new products, withreuse capabilities.

    Transition

    The work of delivering the product to the customer.

  • 8/12/2019 05-chapterWC3-1

    13/56

    Page 13Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Unified Process Illustrated

    Inception Elaboration Construction Transition

    Requirements

    Analysis

    Design

    Implementation

    Test

    Iter #1 Iter #nIter #2 --- --- --- --- --- ---

    An iteration in the

    elaboration phase

    Phases

    Iterations

  • 8/12/2019 05-chapterWC3-1

    14/56

    Page 14Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Component-based Development

    Reuse Approach

    Separation of Development Processes

    Component-based Development (CBD) The ConsumerPerspective

    Component Development (CD) The ProducerPerspective

  • 8/12/2019 05-chapterWC3-1

    15/56

  • 8/12/2019 05-chapterWC3-1

    16/56

    Page 16Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Reuse

    For given requirements rfor an object x, we propose thereuse of the already existing object x

    k. The reuse

    procedure includes:

    Identification of a set of objectsx1 ,x2 xm as

    candidates, Selection of one of these, and, if required,

    Its modification to translatexktox which is as close toxas possible.

  • 8/12/2019 05-chapterWC3-1

    17/56

    Page 17Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Reuse continued

    The object x can be of any type:

    A system architecture

    An overall design

    A design pattern

    An infrastructure

    Different types of components or services.

  • 8/12/2019 05-chapterWC3-1

    18/56

    Page 18Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Separation of Development Processes

    Component development

    System development with components

    System development with components

    Focuses on the identification of reusable entities andrelations between them, beginning from the systemrequirements and from the availability of componentsalready existing.

  • 8/12/2019 05-chapterWC3-1

    19/56

    Page 19Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Component Guidelines

    Components are built to be used and reused in manyapplications and should thus be:

    Well specified

    Easy to understand

    Sufficiently general

    Easy to adapt

    Easy to deliver and deploy

    Easy to replace

  • 8/12/2019 05-chapterWC3-1

    20/56

    Page 20Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    CBDThe Consumer Perspective

    Typically a component consumer selects a componentand then uses it in a software system.

    The component lifecycle must be considered in relationto the lifecycle of the system as a whole.

  • 8/12/2019 05-chapterWC3-1

    21/56

    Page 21Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    The Consumer Perspective Continued

    Common considerations:

    Will the component producer be able to deliver a newcomponent version when this is required?

    How will changes in a component in the system affect

    the behavior of another component?

    Will the component be compatible with newer versionsof the surrounding systems and applications?

  • 8/12/2019 05-chapterWC3-1

    22/56

    Page 22Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    CDThe Producer Perspective

    The producer of a component must take intoconsideration:

    The business goal

    Component functionality

    Maintenance policy

    The type of application and system in which thecomponent will be used

    The requirements of the system

    The life expectancy of relevant systems

  • 8/12/2019 05-chapterWC3-1

    23/56

    Page 23Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Additional Considerations

    The maintenance requirements of components andsystems are not necessarily compatible.

    The components maintenance requirements should besynchronous with those of the system in which they are

    to be incorporated.

  • 8/12/2019 05-chapterWC3-1

    24/56

    Page 24Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Disposal

    Disposal of Component-based Systems generally takesplace due to two different factors:

    Dissatisfaction

    Obsolescence

  • 8/12/2019 05-chapterWC3-1

    25/56

    Page 25Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Disposal: Dissatisfaction

    Initiated by consumers when they conclude that:

    The component no longer provides the support of thesystem it was intended to provide or;

    That the system no longer needs the component.

  • 8/12/2019 05-chapterWC3-1

    26/56

    Page 26Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Disposal: Obsolescence

    When a component becomes obsolete and the producerceases component maintenance and operation support.

    This is likely to occur when:

    A new, more effective component with the same, similar

    or extended functionality is found.

    The producer is not able to continue with support ormaintenance.

  • 8/12/2019 05-chapterWC3-1

    27/56

    Page 27Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Disposal: Considerations

    Both producer and consumer should arrive at acompromise with respect to the lifecycles of theirdifferent products.

    The consumer should always have in mind an

    alternative solution, such as: The replacement of the component with another

    developed internally or by another producers.

  • 8/12/2019 05-chapterWC3-1

    28/56

    Page 28Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Component-Based Software Lifecycle

    Development With Components

    Requirements Analysis and Definition

    Component Selection and Evaluation

    System Design

    System Implementation

    System Integration

    Verification and Validation

    System Operation Support and Maintenance

    System Development Process

  • 8/12/2019 05-chapterWC3-1

    29/56

    Page 29Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Development With Components

    Emphasis is placed on the reuse of pre-existingcomponents, rather than on the implementation of thesystem designed.

    First

    Find reusable units which will meet the requirementsspecified and will be compliant with the system design.

    Second

    Determine the amount of extra effort required to usereusable units instead of units dedicated to a particularpurpose.

  • 8/12/2019 05-chapterWC3-1

    30/56

    Page 30Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Requirements Analysis and Definition

    The three analysis tasks:

    Capture the system requirements and define the systemboundaries.

    Define the system architecture to permit component

    collaboration. Define component requirements to permit the selection

    or development of the required components.

    The approach is:

    optimistic and an idealized view of the process. It assumes that the component requirements can be

    precisely defined and that it is possible to findcomponents

  • 8/12/2019 05-chapterWC3-1

    31/56

    Page 31Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Analysis and Definition Continued

    Not finding a component which exact lysatisfies therequirements necessitates the development of a newcomponent.

    The process of design and even requirements

    engineering will be combined with component selectionand the evaluation process.

  • 8/12/2019 05-chapterWC3-1

    32/56

    Page 32Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Component Selection and Evaluation

    The components selected must therefore be evaluated:

    Technically

    Non-technically

  • 8/12/2019 05-chapterWC3-1

    33/56

  • 8/12/2019 05-chapterWC3-1

    34/56

    Page 34Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Evaluation Methods

    Procurement-oriented requirements engineering:

    1. Identify several component candidates.

    2. Investigate these.

    3. Reject those not compliant with the main requirements.

    4. Continue with the evaluation of the reduced number ofcandidate components.

    5. If necessary refine the requirements, and repeat theevaluation process.

  • 8/12/2019 05-chapterWC3-1

    35/56

    Page 35Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Evaluation Methods Continued

    One scenario is to:

    1. Search for an internally developed component.

    2. If none suitable is found, continue by searching for anexternal component.

    Criteria which may favor the selection of an externalcomponent :

    Time-to-market

    Production and maintenance costs,

    Quality

  • 8/12/2019 05-chapterWC3-1

    36/56

    Page 36Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Evaluation of the Assembly

    It is necessary to evaluate the assembly; evaluation ofthe individual components is not sufficient.

    This implies that an investigation of the integrationprocedure may be a part of an evaluation.

  • 8/12/2019 05-chapterWC3-1

    37/56

    Page 37Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    System Design

    System specification and definition of the systemarchitecture

    The initial architecture will be a result of both the overallrequirements and the choice of component model.

    Many decisions related to the system design will be aconsequence of the component model selected.

  • 8/12/2019 05-chapterWC3-1

    38/56

    Page 38Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    System Design: Evolutionary Approach

    Component selection procedure:

    Selection of component candidates, followed by;

    Consideration of the feasibility of different combinationsof these.

    Evolutionary approach:

    To find the most appropriate and feasible combination ofthe component candidates. In this way the results of thedesign activity may be less predictable.

  • 8/12/2019 05-chapterWC3-1

    39/56

    Page 39Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    System Implementation

    Implementation by coding can be reduced to thecreation of the glue-code and to componentadaptation.

    This effort is usually less than 50% of the totaldevelopment effort.

    Effort per line of glue-code is about three times the effortper line of the applications code.

    It may still be necessary to design and implement somecomponents.

  • 8/12/2019 05-chapterWC3-1

    40/56

    Page 40Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    System Integration

    Integration

    Is the composition of the implemented and selectedcomponents to constitute the software system.

    There are several other aspects to be taken into

    consideration, namely: Component adaptation;

    Reconfigurations of assemblies;

    Emerging properties of assemblies integrated into the

    system.

  • 8/12/2019 05-chapterWC3-1

    41/56

    Page 41Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Integration Considerations

    Component adaptation

    In many cases a component must be adjusted to systemrequirements.

    Reconfigurations of assemblies

    Different assemblies (or composite components) caninclude common basic components. for re-configuringassemblies must exist.

    Emerging properties

    An important fact is that it is not possible to discover allthe effects of a component until the integration isperformed.

  • 8/12/2019 05-chapterWC3-1

    42/56

    Page 42Building Reliable Component-based SystemsChapter 5 - Component-Based Development Process

    Verification and Validation

    Expressed by Boehm

    Validation: are we building the right product ?

    Verification: Are we building the product right ?

    Component Validation and Verification

    After a component is selected it should be tested tocheck that it functions in accordance with itsspecification.

    We should also note that the component validation is

    strongly related to system validation.

  • 8/12/2019 05-chapterWC3-1

    43/56

    Page 43Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    System Verification and Validation

    System verification and validation process is similar tothe processes for non-component-based systems.

    The difference is that the implications of the processesmay be differentnew component requirements mayemerge and it may happen that the selectedcomponents cannot meet the new requirements.

  • 8/12/2019 05-chapterWC3-1

    44/56

    Page 44Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    System Operation Support and Maintenance

    Components exist even at run-time, making it possibleto:

    Improve and maintain the system by updating or addingnew components to the system.

    Improve the system quicker and more flexibly.

  • 8/12/2019 05-chapterWC3-1

    45/56

    Page 45Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Operation and Support: Considerations

    Maintenance procedures can be more complicated as itis not necessarily clear who:

    Is supporting the system.

    The system vendor is.

    The component vendors are.

    Components can be used by several other componentsintroducing version incompatibilities.

    The same problem may appear when we install a

    component package.

  • 8/12/2019 05-chapterWC3-1

    46/56

    Page 46Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Inconsistent Component Integration

    Product P

    Version V1

    Component A

    Version V1

    Component A

    Version V2

    Component B

    Version V1 Component BVersion V2

    Product P

    Version V2

  • 8/12/2019 05-chapterWC3-1

    47/56

    Page 47Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    System Development Process

    Consists of parallel tracks in which:

    The basic architecture and its environment is beingdeveloped and managed concurrently with both thedevelopment of applications consisting of componentsand the evaluation of the actual components.

  • 8/12/2019 05-chapterWC3-1

    48/56

    Page 48Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Component-based Development Process

    Analysis

    Design

    Implementation

    Integration

    Test

    Find

    Select

    Adapt

    Integrate

    Test

    Component evaluation System Development

  • 8/12/2019 05-chapterWC3-1

    49/56

    Page 49Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Component Development

    Requirements must be

    captured

    analyzed

    defined

    The component must be

    designed

    implemented

    verified validated

    delivered

  • 8/12/2019 05-chapterWC3-1

    50/56

    Page 50Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Component Development Considerations

    Components are built to be part of something else,thus:

    There is greater difficulty in managing requirements;

    Greater efforts are needed to develop reusable units;

    A precise component specification is required

  • 8/12/2019 05-chapterWC3-1

    51/56

    Page 51Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Requirements Analysis and Definition

    The development of reusable components would beeasier if requirements remained constant during thetime of component and system development.

    As a result of new requirements for the systems old ornew requirements for the components will emerge.

    The more reusable a component is, the more demandsare placed on it.

  • 8/12/2019 05-chapterWC3-1

    52/56

    Page 52Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Accumulated Component Requirements

    Product P2

    Product P1

    Component

    Accumulated Requirements

    t-0 t-1

  • 8/12/2019 05-chapterWC3-1

    53/56

    Page 53

    Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Designing for Reusability

    For a component to be reusable, it must be designed ina more general way than a component tailored for aunique situation.

    Components intended to be reused requiresadaptability. This will increase the size and complexityof the components

  • 8/12/2019 05-chapterWC3-1

    54/56

    Page 54

    Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Component Specification

    It is important that the component be clearly andproperly specified.

    The consumer must be able to understand thecomponent specification.

  • 8/12/2019 05-chapterWC3-1

    55/56

    Page 55

    Building Reliable Component-based Systems

    Chapter 5 - Component-Based Development Process

    Summary

    In a component-based development process wedistinguish development of components fromdevelopment of systems using components:

    Component development process: Is focused onbuilding reusable units.

    System development process: Concentrates on thereuse of components, their evaluation and integration.

    These processes are often performed independently ofeach other.

    S C i d

  • 8/12/2019 05-chapterWC3-1

    56/56

    Building Reliable Component based Systems

    Summary Continued

    To achieve a proper balance between the independenceof and collaboration between the processes remains achallenge for researchers and practitioners