230 likes | 481 Vues
Quality Attribute Design Primitives and the Attribute Driven Design Method . Len Bass, Mark Klein, and Felix Bachmann Software Engineering Institute Tzu-Chin Chien. Introduction.
E N D
Quality Attribute Design Primitives and the Attribute Driven Design Method Len Bass, Mark Klein, and Felix Bachmann Software Engineering Institute Tzu-Chin Chien
Introduction • This paper discuss the understanding of quality attributes and their application to design of a software architecture Software Architecture Quality attributes Functional requirements Quality attribute : performance, usability, security, reliability and modifiability
Introduction Requirement Engineering • This means that the design decisions embodied by a software architecture are strongly influenced by the need to achieve quality attribute goals. • We have embarked on an effort to identify and codify architectural patterns that are primitive with respect to the achievement of quality attributes. Software Architecture • We call this set of architectural patterns attribute primitives. Design Phase
Introduction The questions are • How to characterize quality attribute and capture architecture pattern • How the pattern achieves a quality attribute goal and What impact the pattern • Design decisions embodied by a software architecture
Related work • Softgoal[Chung L. – Nonfunctional Requirements in Software Engineering] • A softgoal is a goal with no clear-cut definition and/or criteria as to whether it is satisfied or not. (availability vs. security) • Quality attribute goals as softgoalsand develop a process that involves viewing a design as a point on a quality attribute space are characterized. • Each design decision is made on the basis of how it might move the design in the quality attribute space. Modifiability • Design & Use of Software Architecture[Bosch] • thinks Functional requirements more important than quality attribute • Believes perform functional requirements that quality attributes can be achieved Performance
Short summary Authors said, We do not believe that quality attribute goals are softgoals. They can be precisely specified and criteria developed to determine whether they have been satisfied. We believe that the “shape” of an architecture is determined by its quality requirements and these are the requirements that determine the initial iteration of a design.
ADD in Life cycle ADD takes requirements, quality as well as functional, as input. Therefore, ADD’s place in the life cycle is after the requirement analysis phase.
Quality Attributes & Generic scenarios • Attribute communities have a natural tendency to expand, because many of the attributes are intertwined. • We are not trying to define an attribute by deciding what is within its purview. • General scenario is introduced by which the yardsticks can be measured or observed.
Generic scenarios • Each general scenario consists of • the stimuli that requires the architecture to respond, • the source of the stimuli, • the context within which the stimuli occurs, • the type of system elements involved in the response, • possible responses, and • the measures used to characterize the architecture’s response
Generic scenarios (cont.) • For example, a performance general scenario is: “External events arrive at a system periodically (stimuli and their source) during normal operation (the context). • The system (the system element) must respond to the message within a specified time interval (response and response measure).”
Conceptual vs. Concrete architecture Conceptual architecture Concrete architecture The conceptual architecture : component A exchanges information X with component B The concrete architecture: component B invokes method E of component A in order to receive an object Y of typeX.
Step of ADD Design element Architectural drivers Decompose Attribute primitives Next part Instantiate Refine Multiple Views Finish Verify
Design element • the portion of the system being decomposed or the elements of the decomposition Design element Decompose Next part • Conceptual subsystem or component • Recursive • Factors • The personnel on the team • The incorporation of new technology • The knowledge of the domain Refine Finish
Architectural drivers • Some requirements are more influential than others on the design of the architecture and the decompositionof each design element. Architectural drivers Attribute primitives Instantiate Refine • Functional • Quality • Business – e.g. build a product line Multiple Views Verify
Attribute primitives • The goal of this step is to establish an architectural style that satisfies the quality architectural drivers by composing selected attribute primitives. Quality AttributeDesignPrimitives:http://www.sei.cmu.edu/reports/00tn017.pdf
Instantiation of an attribute primitive Producer Consumer Sensor Guidance Data Router Data Router Diagnosis
Multiple views The functional drivers are derived from the abstract functional requirements (e.g. features) or concrete functional requirements (e.g. use cases, list of responsibilities, etc.). Some criteria that can be used to group functionality are: • Functional coherence • Similar patterns of data or computation behavior • Similar levels of abstraction • Locality of responsibility Architectural drivers Attribute primitives Instantiate Refine Multiple Views Verify
Verify • The first step is assigning the functional requirements of the parent element to its children by defining responsibilities of the children elements. • Assigning responsibilities to the children in a decomposition also leads to discovery of necessary information exchange. • With the usage of attribute primitives came specific patterns on interactions between the element types of the primitive.
Conclusion • Our basicpremise is that architectural design is driven by quality requirements. • Quality attributes are hard to define because of • ambiguous definitions: The lack of a precise definition for many quality attributes inhibits the exploration process. • Overlapping definitions : Attributes are not discrete or isolated • Granularity : Attribute analysis does not lend itself to standardization • Attribute specificity : It is difficult to understand how the various attribute-specific analyses interact • My idea is how to use ADD method to evaluate a legacy system architecture.