310 likes | 648 Views
Evaluating Software Architectures. RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz. Summary. About Software Architecture Quality Attribute Characterizations Performance Availability Modifiability Characterizations Inspire Questions
E N D
Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz
Summary • About Software Architecture • Quality Attribute Characterizations • Performance • Availability • Modifiability • Characterizations Inspire Questions • Using Quality Attributes Characterizations in ATAM • Attribute-Based Architectural Styles
What is software architecture ? • It is the manifestation of the earliest design decisions • It is a reusable, transferable abstraction of a system
Why software architecture is important • Is a vehicle for communication among stakeholders • Architectural View • Functional View • Concurrency View • Code View • Development view • Physical View
Why evaluate an architecture ? • The sooner, the better • Avoid disasters
Who’s involved • Evaluation team • Stakeholders
Understanding Quality Attributes • Quality Attributes - Prerequisite of an evaluation • Common incomplete quality atribute requirements and architecture documentation
Understanding Quality Attributes • Architecture Evaluation • Focus on Quality Attributes • Evaluate the architecural design decisions to determine if they address the quality attribute scenarios
Availability Modifiability Performance Security Testability Usability Designing the Architecture :: Chapter 7 Quality attribute parts ARTIFACT STIMULUS RESPONSE RESPONSE MEASURE SOURCE OF STIMULUS ENVIRONMENT
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Functionality and Quality Attributes • Must be considered throughout: design, implementation and deployment • Usability, Modifiability, Performance • Architecture itself is unable to achieve quality if attention is not paid to the details • With complex systems, quality attributes can never be achieved in isolation
Quality Attribute Characterizations • Different in its stimuli • Performance – Arrival of events • Availability – Fault occuring • Different in its responses • Modifiability – persons-day required to make a requested change • Security – how many intruders will break into the systems and what resources they will be able to access
Performance • Ability of a system to allocate its computational resources to requests for service in a manner that will satisfy timing requirements • Resource types • Uni/multi processors, memory, devices • Resource arbitration • On-line/Off-line Scheduling, Synchronization • Resource Allocation • Load Balancing • Resource consumption • Execution Time, Memory Size, Network Bandwith
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Availability • Concerned with system failure and its consequence • Failure concerns • How is detected • How frequently may occur • Consequences • How long is out of operation • How to prevent
Sample Availability-related questions • Stimuli • How are hadware and software failures identified ? • Can active as well passive failures be identified ? • Architectural decisions • If redundancy is used in the architecture … • what type of redundancy (analytic, replication, functional) ? • How many replicas of each critical component and connection are used ? • Responses • Are there levels of service available ? • How quickly ca a backup be made/restored ?
Modifiability • Ability of a system to be changed after is implemented
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Modifiability • Cost of change • What to change • Hardware, OS, Performance, number of users • When and Who • Compile, build, setup, execution • Specify, design, implement, test, deploy • Time and money, measured
System's ability to resist to unauthorized usage while still providing its service to legitimate users Attack – Attempt to breach security Access data, modify data, deny service Characteristics Nonrepudiation You did (Transaction) Confidentiality Protected data (income tax) Integrity Cannot change data Assurance You are who purport to be (credit card) Availability Free of DOS Auditing Keep track of activities Software architecture in PracticeChapter 4 – Understanding Quality Attributes Security
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Usability • How easy it is for the user to accomplish a desired task and the kind of support the system provides • Learning system features • Using system efficiently • Minimizing the impact of errors • Adapting the system to user needs • Increasing confidence and satisfaction • “Usability is not architectural”
Characterization inspires questions • A beginner can make use of existing questions • It requires more expertise in a quality attributeto devise new questions from the characterizations • It requires still more expertise to understand how to respond to the questions
Template for Analysis of an Architectural Approach Primary CPU (OS1) Architecural diagram Primary CPU (OS1) Backup CPU w/ watchdog (OS2)
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Quality Scenarios • Source of stimulus • Some entity: Human, computer • Stimulus • Condition that need to be considered when it arrives at a system • Environment • Stimulus occurs within certain conditions • Artifact • What is stimulated. The whole system or some pieces of it • Response • Activity undertaken after the arrival of the stimulus • Response measure • Response should be measurable, so that the requirement can be tested.
ABAS – Attribute-Based Architectural Styles • Related architectural and analysis techniques in a package • Problem description • Stimuli/responses • Architectural style • Analysis • Another source of inspiration and reference when criating the attribute specific questions
Software architecture in PracticeChapter 4 – Understanding Quality Attributes Business Qualities • System Qualities x Business Qualities • Cost, schedule, market, marketing • Time to market • Commercial off-the-shelf (COTS) • Cost and benefit • Exceed budget • Projected lifetime of the system • Portability/usability • Targeted market • Rollout schedule • Base functionality w/ features later • Integration with legacy system
References • [Clements, 2001] P. Clements, R. Kazman, M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley, 2001, pp. 368. • [Bass, 2003] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison-Wesley, 2003, pp. 560. • Images: Stock.XCHNG