Lecture Building reliable component-based systems - Chapter 5: Component-based development process. This chapter presents the following content: Software process models, component-based development, component-based software lifecycle.
Chapter Component-Based Development Process Building Reliable Componentbased Overview Software Process Models Component-based Development Component-Based Software Lifecycle Summary Building Reliable Componentbased Purpose This chapter: Describes the component-based software lifecycle Provides an overview of generic software engineering processes Motivates the need for specific processes when developing components and when building systems or applications from components Describe these processes, reviewing their procedures Building Reliable Componentbased Software Process Models Generic lifecycle activities The Sequential Model Evolutionary Development Unified Process Building Reliable Componentbased 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 Building Reliable Componentbased The Sequential Model Analysis t en pm lo ve De Design Implementation Integration Test Building Reliable Componentbased 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 Building Reliable Componentbased The Iterative Model Analysis De Design ve lo pm en t Implementation Integration Test Building Reliable Componentbased The Incremental Model Increment n lop ve De Analysis t en m Design Implementation Integration Test Building Reliable Componentbased The Prototyping Model Test prototype De Analysis ve Design lo p m en t Develop prototype Implementation Integration Test Building Reliable Componentbased 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 to check that it functions in accordance with its specification We should also note that the component validation is strongly related to system validation Building Reliable Componentbased System Verification and Validation System verification and validation process is similar to the processes for non-component-based systems The difference is that the implications of the processes may be different – new component requirements may emerge and it may happen that the selected components cannot meet the new requirements Building Reliable Componentbased System Operation Support and Maintenance Components exist even at run-time, making it possible to: Improve and maintain the system by updating or adding new components to the system Improve the system quicker and more flexibly Building Reliable Componentbased Operation and Support: Considerations Maintenance procedures can be more complicated as it is not necessarily clear who: Is supporting the system The system vendor is The component vendors are Components can be used by several other components introducing version incompatibilities The same problem may appear when we install a component package Building Reliable Componentbased Inconsistent Component Integration Product P Version V1 Component A Version V1 Component B Version V1 Product P Version V2 Component A Version V2 Component B Version V2 Building Reliable Componentbased System Development Process Consists of parallel tracks in which: The basic architecture and its environment is being developed and managed concurrently with both the development of applications consisting of components and the evaluation of the actual components Building Reliable Componentbased Component-based Development Process Design Select Implementation Integration Test Test Component evaluation t Ev al Adapt ua tio n Integrate en pm lo ve De Analysis Find System Development Building Reliable Componentbased Component Development Requirements must be captured analyzed defined The component must be designed implemented verified validated delivered Building Reliable Componentbased 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 Building Reliable Componentbased Requirements Analysis and Definition The development of reusable components would be easier if requirements remained constant during the time of component and system development As a result of new requirements for the systems old or new requirements for the components will emerge The more reusable a component is, the more demands are placed on it Building Reliable Componentbased Accumulated Component Requirements Accumulated Requirements Component Product P1 Product P2 t-0 t-1 Building Reliable Componentbased Designing for Reusability For a component to be reusable, it must be designed in a more general way than a component tailored for a unique situation Components intended to be reused requires adaptability This will increase the size and complexity of the components Building Reliable Componentbased Component Specification It is important that the component be clearly and properly specified The consumer must be able to understand the component specification Building Reliable Componentbased Summary In a component-based development process we distinguish development of components from development of systems using components: Component development process: Is focused on building reusable units System development process: Concentrates on the reuse of components, their evaluation and integration These processes are often performed independently of each other Building Reliable Componentbased Summary Continued To achieve a proper balance between the independence of and collaboration between the processes remains a challenge for researchers and practitioners Building Reliable Componentbased ... #1 Iter #2 - - - - Iterations Building Reliable Componentbased - - Iter #n Component-based Development Reuse Approach Separation of Development Processes Component-based Development (CBD)...Overview Software Process Models Component-based Development Component-Based Software Lifecycle Summary Building Reliable Componentbased Purpose This chapter: Describes the component-based software... types of components or services Building Reliable Componentbased Separation of Development Processes Component development System development with components System development with components