Kĩ thuật lập trình - Chapter 5: Component-Based development process
Integration
Is the composition of the implemented and selected components 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.
56 trang |
Chia sẻ: huyhoang44 | Lượt xem: 693 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Kĩ thuật lập trình - Chapter 5: Component-Based development process, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chapter 5Component-Based Development Process Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessOverviewSoftware Process ModelsComponent-based DevelopmentComponent-Based Software Lifecycle Summary Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessPurposeThis 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSoftware Process Models Generic lifecycle activitiesThe Sequential Model Evolutionary Development Unified Process Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessGeneric lifecycle activities ActivitiesRequirements analysis and system specification System and software design Implementation and unit testing Integration, system verification and validation Operation support and Maintenance Disposal Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessThe Sequential Model DevelopmentAnalysisDesignImplementationIntegrationTestPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessEvolutionary 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 ModelThe Incremental ModelThe Prototyping ModelPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessThe Iterative ModelDevelopmentAnalysisDesignImplementationIntegrationTestPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessThe Incremental Model Increment 1 2...nAnalysisDesignImplementationIntegrationTestDevelopmentPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessThe Prototyping Model AnalysisDesignImplementationIntegrationTestDevelopmentDevelopprototypeTest prototypePage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessUnified Process InceptionThe first phase in which the system is described in a formalized way, providing a base for further development. ElaborationThe phase in which the system architecture is defined and created. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessUnified Process continuedConstructionThe development of completely new products, with reuse capabilities. TransitionThe work of delivering the product to the customer.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessUnified Process IllustratedInception Elaboration Construction TransitionRequirementsAnalysisDesignImplementationTestIter #1Iter #nIter #2 --- --- --- --- --- --- An iteration in the elaboration phasePhasesIterationsPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent-based Development Reuse Approach Separation of Development Processes Component-based Development (CBD) – The Consumer Perspective Component Development (CD) – The Producer Perspective Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessReuse ApproachThe 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. Analysis is necessary to determine when, and if, reuse is appropriate. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessReuseFor given requirements r for an object x, we propose the reuse of the already existing object xk. The reuse procedure includes:Identification of a set of objects x1 , x2 xm as candidates, Selection of one of these, and, if required, Its modification to translate xk to x’ which is as close to x as possible. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessReuse continuedThe object x can be of any type:A system architecture An overall design A design patternAn infrastructure Different types of components or services.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSeparation of Development Processes Component development System development with componentsSystem 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.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent GuidelinesComponents are built to be used and reused in many applications and should thus be: Well specifiedEasy to understandSufficiently generalEasy to adaptEasy to deliver and deploy Easy to replacePage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessCBD – 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessThe Consumer Perspective ContinuedCommon 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?Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessCD – The Producer Perspective The producer of a component must take into consideration:The business goalComponent functionalityMaintenance policyThe type of application and system in which the component will be used The requirements of the systemThe life expectancy of relevant systemsPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessAdditional ConsiderationsThe 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDisposalDisposal of Component-based Systems generally takes place due to two different factors:DissatisfactionObsolescencePage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDisposal: DissatisfactionInitiated by consumers when they conclude that:The component no longer provides the support of the system it was intended to provide or; That the system no longer needs the component. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDisposal: ObsolescenceWhen a component becomes obsolete and the producer ceases 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 or maintenance. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDisposal: ConsiderationsBoth 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent-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 Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDevelopment With ComponentsEmphasis is placed on the reuse of pre-existing components, rather than on the implementation of the system designed. FirstFind reusable units which will meet the requirements specified and will be compliant with the system design. SecondDetermine the amount of extra effort required to use reusable units instead of units dedicated to a particular purpose.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessRequirements Analysis and DefinitionThe three analysis tasks: Capture the system requirements and define the system boundaries. 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 find components Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessAnalysis and Definition ContinuedNot finding a component which exactly satisfies the requirements necessitates the development of a new component. The process of design and even requirements engineering will be combined with component selection and the evaluation process. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent Selection and EvaluationThe components selected must therefore be evaluated:TechnicallyNon-technicallyPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessTechnical and Non-technical EvaluationTechnical aspects of evaluation includeIntegrationValidation Verification Examples of non-technical issues include:The marketing position of the component supplierMaintenance support providedAlternative solutions, etcPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessEvaluation MethodsProcurement-oriented requirements engineering: Identify several component candidates. Investigate these.Reject those not compliant with the main requirements. Continue with the evaluation of the reduced number of candidate components.If necessary refine the requirements, and repeat the evaluation process. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessEvaluation Methods ContinuedOne scenario is to: Search for an internally developed component. If none suitable is found, continue by searching for an external component.Criteria which may favor the selection of an external component :Time-to-marketProduction and maintenance costs,QualityPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessEvaluation of the AssemblyIt is necessary to evaluate the assembly; evaluation of the individual components is not sufficient. This implies that an investigation of the integration procedure may be a part of an evaluation. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem DesignSystem specification and definition of the system architectureThe initial architecture will be a result of both the overall requirements and the choice of component model.Many decisions related to the system design will be a consequence of the component model selected. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem Design: Evolutionary ApproachComponent selection procedure:Selection of component candidates, followed by;Consideration of the feasibility of different combinations of these. Evolutionary approach: To find the most appropriate and feasible combination of the component candidates. In this way the results of the design activity may be less predictable.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem ImplementationImplementation by coding can be reduced to the creation of the “glue-code” and to component adaptation.This effort is usually less than 50% of the total development effort.Effort per line of glue-code is about three times the effort per line of the application’s code. It may still be necessary to design and implement some components. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem IntegrationIntegrationIs the composition of the implemented and selected components 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessIntegration ConsiderationsComponent adaptation In many cases a component must be adjusted to system requirements. Reconfigurations of assemblies Different assemblies (or composite components) can include common basic components. for re-configuring assemblies must exist. Emerging properties An important fact is that it is not possible to discover all the effects of a component until the integration is performed.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessVerification and ValidationExpressed 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.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem Verification and ValidationSystem 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem Operation Support and MaintenanceComponents 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.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessOperation and Support: ConsiderationsMaintenance 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.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessInconsistent Component Integration Product PVersion V1Component A Version V1Component A Version V2Component B Version V1Component B Version V2Product PVersion V2Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSystem Development ProcessConsists 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent-based Development Process DevelopmentAnalysisDesignImplementationIntegrationTestEvaluationFindSelectAdaptIntegrateTestComponent evaluationSystem DevelopmentPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent Development Requirements must be captured analyzed defined The component must be designed implemented verified validateddeliveredPage Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent Development ConsiderationsComponents 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 Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessRequirements Analysis and DefinitionThe 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. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessAccumulated Component Requirements Product P2Product P1ComponentAccumulated Requirementst-0t-1Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessDesigning 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 Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessComponent SpecificationIt is important that the component be clearly and properly specified. The consumer must be able to understand the component specification. Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSummary 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.Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development ProcessSummary ContinuedTo achieve a proper balance between the independence of and collaboration between the processes remains a challenge for researchers and practitioners Page Building Reliable Component-based Systems Chapter 5 - Component-Based Development Process
Các file đính kèm theo tài liệu này:
- 05_chapterwc_235.ppt