Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 27 Component Based Development Process (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Objectives Provides an overview of generic software engineering processes Describes the component-based software lifecycle Motivates the need for specific processes when developing components when building systems from components Describe these processes, reviewing their procedures 2
Generic Software Lifecycle Activities Requirements analysis and system specification System and software design and unit testing Integration, system verification and validation Operation support and Maintenance Disposal Software Process Models The Sequential/Waterfall Model The Evolutionary Development The Rational Unified Process (RUP) 3 The Sequential/Waterfall Model Development Integration 4
The Evolutionary Development Develop a system gradually in many repetitive stages: Increasing the knowledge of the system requirements and 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 5 The Iterative Model Development Integration 6
The Incremental Model Increment 1 2...n Development Integration 7 The Prototyping Model prototype Development Develop prototype Integration 8
The Rational Unified Process A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives A dynamic perspective that shows phases over time A static perspective that shows process activities A proactive perspective that suggests good practice 9 RUP Phase Model Inception: Establish the business case for the system Elaboration: Develop an understanding of the problem domain and the system architecture Construction: System design, programming and testing Transition: Deploy the system in its operating environment 10
Unified Process Illustrated Phases Inception Elaboration Construction Transition Requirements An iteration in the elaboration phase Iter #1 Iter #2 --- --- --- --- --- --- Iter #n Iterations 11 Reuse Approach The reuse approach makes the following assumptions: All experience can be reused Reuse typically requires some modification of objects being reused Reuse must be integrated into the specific software development is necessary to determine when, and if, reuse is appropriate 12
Reuse For given requirements r for an object x, we propose the reuse of the already existing object x k. The reuse procedure includes: Identification of a set of objects x 1, x 2 x m as candidates, Selection of one of these, and, if required, Its modification to translate x k to x which is as close to x as possible. 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. 13 Separation of Development Processes Component Development (CD) System Development with Components System development with components Focuses on the identification of reusable entities and relations between them, beginning from the system requirements and from the availability of components already existing. 14
CBD The Consumer Perspective Typically a component consumer selects a component and then uses it in a software system The component lifecycle must be considered in relation to the lifecycle of the system as a whole Common Considerations: Will the component producer be able to deliver a new component 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 versions of the surrounding systems and applications? 15 CBD The Producer Perspective The producer of a component must take into consideration: The Business Goal Component Functionality Maintenance Policy The type of application and system in which the component will be used The Requirements of the System The Life expectancy of Relevant Systems The maintenance requirements of components and systems are not necessarily compatible The component s maintenance requirements should be synchronous with those of the system in which they are to be incorporated. 16
Component-based Development Process Find Select Development Evaluation Adapt Integrate Integration Component evaluation System Development 17 V Development Process for CBD 18
A Detailed V Development Process 19 Disposal of Component-Based Systems Generally takes place due to two different factors: Dissatisfaction initiated by consumers when they conclude that: The component no longer provides the support of the system it was intended to provide or The system no longer needs the component Obsolescence 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 or maintenance 20
Disposal: Considerations Both producer and consumer should arrive at a compromise with respect to the lifecycles of their different 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 21