Kĩ thuật lập trình - Chapter 3: Architecting component - Based systems
Demands both time and money.
Are most likely to pay off in cases of software that are:
Very unusual
Safety critical
Highly secure
The component assembly will possess the quality attributes it was designed around.
28 trang |
Chia sẻ: huyhoang44 | Lượt xem: 709 | 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 3: Architecting component - Based systems, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chapter 3Architecting Component-Based SystemsPage Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsOverviewThe Role of Software ArchitectureDesigning Software Architectures Architecture-driven Component Development Component-driven Architecture Development Summary Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsThe Software Architecture “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components [and connectors], the externally visible properties of those components [and connectors] and the relationships among them.”Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsThe Role of the Software Architecture The main uses of a software architecture are:Assessment and evaluationConfiguration management Dynamic software architectures Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsAssessment and EvaluationStakeholder-based assessmentIs concerned with determining whether the trade-offs between requirements in the software architecture match the actual stakeholder priorities of these requirements. ExamplesSAAM ATAM Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsAssessment ContinuedQuality-attribute oriented assessmentAims at providing a quantitative prediction of one quality attribute (e.g. maintainability, performance, reliability or security) Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsConfiguration Management The software architecture is frequently used as a means to manage the configuration of the product.Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsDynamic Software Architectures The software architecture should reorganize itself in response to the dynamic change of the systems quality requirements.Maintained even during run-time. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsDesigning Software Architectures Architecture Design Process Architectural Styles Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitecture Design Process Can be seen as a function that:Takes a requirement specification as input.Generates an architectural design as output.Is not an automated process, necessitating great effort and creativity from the involved software architects.Is comprised of three steps:Functionality-based design.Assessment of the quality attributes.Architecture Transformation.Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsGeneral software architecture design process ApplicationarchitectureRequirementspecificationRequirementselectionFunctionality-basedarchitectural design(Partial)requirementspecificationEstimate qualityattributesArchitecturetransformationQA-optimizingsolutionsMoreRequirements?OKOKYesnonot OKF.R.Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsFunctionality-based DesignThe design process starts with functionality-based design and consists of four steps:Defining the boundaries and context of the system.Identification of archetypes. Decomposition of the system into its main components. The first validation of the architecture by describing a number of system instances. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsAssessment of the quality attributes The second phase is the assessment of the quality attributes in which:Each quality attribute is given an estimate. If all estimated quality attributes are as good or better than required, the architectural design process is finished. If not the third phase of software architecture design is entered: architecture transformation Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitecture TransformationIs concerned with selecting design solutions to improve the quality attributes while preserving the domain functionality. The design is again evaluated and the same process is repeated if necessary. The transformations (i.e. quality attribute optimizing solutions) generally improve one or some quality attributes while they affect others negatively. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitecture transformation categories ImposearchitecturalpatternConvert QR tofunctionalityApplyDesignpatternImposearchitecturalstyleComponentArchitectureScope of impactTransformation typeRestructuringAdded functionality,rules and/orconstraintsPage Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitectural Styles Are structures that recur and are used to solve specific types of problems. These include: Pipes and Filters Blackboard Object-oriented System-level quality attributes can often be predicted based on the observation of certain architectural styles in a system’s architecture. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitectural Styles ContinuedIn some cases it is possible to moderate the degree to which a quality attribute is affected by using a variant of the style. It is also possible for a particular variant of a style to have both positive and negative affects on a given quality attribute Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitectural Styles Considered PerformanceMaintainabilityReliabilitySafetySecurityPipes and Filters+ –+ –––+Blackboard–++ ––+ –Object-Oriented+ –+ –+ –++ –Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsArchitecture-driven Component Development The goal for the embodiment phase of design is to either build or select components and connectors that possess the quality attributes identified during the architecting phase of development. Three types of components: Custom built components Reusable components Commercial components Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsCustom Components Demands both time and money.Are most likely to pay off in cases of software that are:Very unusualSafety criticalHighly secure The component assembly will possess the quality attributes it was designed around. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsPre-existing Components There are two main classes of pre-existing components:Reusable components Commercial components Is a fundamentally different problem than custom design. The requirements to use specific components and component frameworks drive the architecture. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsReusable Components Can exist on a wide scale of reusableness within any organization. They must be adapted;In most cases it will be necessary to create adaptors, often referred to as glue code. Are developed with reuse in mind. Product line development exemplifies the use of pre-planned reusable components. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsCommercial Components Introduce a large degree of uncertainty. Tend to be ComplexIdiosyncratic Unstable Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsComponent-driven Architecture Development Constraints due to the use of pre-existing components:Design freedom is limited to component selection.Sufficient information about how a component will behave is not generally provieded.Component properties must be verified. The framework into which components are to be plugged influences the architecture and the process by which the system is designed. Such components can not be optimized.Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsComponent-driven Architecture DevelopmentIt is expected that more reliable systems will be produced, with greater speed and at lower expense due to the restrictions on design freedom.Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsSummaryComponents and Software Architectures form two sides of the same coin. Software architecture has multiple roles: May be used for stakeholder-, expert-, or quality attribute-oriented assessment. May be used for configuration management. May be used to dynamically reorganize the system at run time (i.e. dynamic software architectures). Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsSummary ContinuedDesign of software architectures consists of three main phases. functionality-based architectural design software architecture assessment architecture transformation Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based SystemsSummary ConcludedThree types of software components: Custom ReusableCommercial components. Page Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems
Các file đính kèm theo tài liệu này:
- 03_chapterwc_9169.ppt