Architecture tradeoff analysis method: Difference between revisions

Content deleted Content added
m {{wikify}}
mNo edit summary
 
(93 intermediate revisions by 60 users not shown)
Line 1:
{{Short description|Risk-mitigation process in software engineering}}
{{wikify|date=January 2008}}
In [[software engineering]], '''Architecture Tradeoff Analysis Method''' ('''ATAM''') is a risk-mitigation process used early in the [[software development life cycle]].
 
ATAM was developed by the [[Software Engineering Institute]] at the [[Carnegie Mellon University]]. Its purpose is to help choose a suitable [[Software architecture|architecture]] for a software system by discovering [[trade-offsoff]]s and sensitivity points.
In [[software engineering]], '''Architecture Tradeoff Analysis Method''' (ATAM) is a risk-mitigation process used early in the [[software development life cycle]].
 
ATAM is most beneficial when done early in the software development life-cycle when the cost of changing architectures is minimal.
ATAM was developed by the [[Software Engineering Institute]] at the [[Carnegie Mellon University]]. Its purpose is to help choose a suitable architecture for a software system by discovering trade-offs and sensitivity points.
 
== ATAM Processbenefits ==
ATAM is most beneficial when done early the software development life-cycle when the cost of changing architectures is minimal.
The following are some of the benefits of the ATAM process:<ref>{{cite web|url=https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=513908|title=Architecture Tradeoff Analysis Method|accessdate=2018-04-20|publisher=Carnegie Mellon Software Engineering Institute}}</ref>
* Promotes identification oridentified risks early in the life- cycle.
* Encourages increased communication among stakeholders.
* clarified quality attribute requirements.
* Creates an early start atimproved architecture documentation.
* Creates a documented basis for architectural decisions.
 
== ATAM Benefitsprocess ==
The ATAM process consists of gathering stakeholders together to analyze business drivers (system functionality, goals, constraints, desired [[Non-functional requirement|non-functional properties]]) and from these drivers extract quality attributes that are used to create scenarios. These scenarios are then used in conjunction with architectural approaches and architectural decisions to create an analysis of trade-offs, sensitivity points, and risks (or non-risks). This analysis can be converted to risk themes and their impacts whereupon the process can be repeated. With every analysis cycle, the analysis process proceeds from the more general to the more specific, examining the questions that have been discovered in the previous cycle, until the architecture has been fine-tuned and the risk themes have been addressed.
The following are some of the benefits of the ATAM process:
 
== Steps of the ATAM process ==
* Promotes the gathering of precise quality requirements
ATAM formally consists of nine steps, outlined below:<ref>{{cite book |title=Software Architecture in Practice, Second Edition |first1=Len |last1=Bass |author-link=Len Bass |first2=Paul |last2=Clements |first3=Rick |last3=Kazman |publisher=Addison Wesley Professional |date=April 9, 2003}}{{Page needed|date=January 2013}}</ref>
* Creates an early start at architecture documentation
#Present ATAM – Present the concept of ATAM to the stakeholders, and answer any questions about the process.
* Creates a documented basis for architectural decisions
#Present business drivers – everyone in the process presents and evaluates the business drivers for the system in question.
* Promotes identification or risks early in the life-cycle
#Present the architecture – the architect presents the high-level architecture to the team, with an 'appropriate level of detail'
* Encourages increased communication among stakeholders
#Identify architectural approaches – different architectural approaches to the system are presented by the team, and discussed.
#Generate quality attribute utility tree – define the core business and technical requirements of the system, and map them to an appropriate architectural property. Present a scenario for this given requirement.
#Analyze architectural approaches – Analyze each scenario, rating them by priority. The architecture is then evaluated against each scenario.
#Brainstorm and prioritize scenarios – among the larger stakeholder group, present the current scenarios, and expand.
#Analyze architectural approaches – Perform step 6 again with the added knowledge of the larger stakeholder community.
#Present results – provide all documentation to the stakeholders.
 
These steps are separated into two phases: Phase 1 consists of steps 1-6 and after this phase, the state and context of the project, the driving architectural requirements and the state of the architectural documentation are known. Phase 2 consists of steps 7-9 and finishes the evaluation.<ref>{{cite web|url=https://resources.sei.cmu.edu/asset_files/TechnicalReport/2000_005_001_13706.pdf|title=ATAM: Method for Architecture Evaluation|accessdate=2018-04-20|page=39f|author1=Rick Kazman |author2=Mark Klein |author3=Paul Clements |publisher=Carnegie Mellon Software Engineering Institute}}</ref>
== ATAM Process ==
The ATAM process consists of gathering stakeholders together to analyze business drivers and from these drivers extract quality attributes that are used to create scenarios. These scenarios are then used in conjunction with architectural approaches and architectural decisions to create an analysis of trade-offs, sensitivity points, and risks (or non-risks). This analysis can be converted to risk themes and their impacts whereupon the process can be repeated.
 
==External linksSee also ==
*[[ilities]]
* [http://www.sei.cmu.edu/architecture/ata_method.html The Architecture Tradeoff Analysis Method (ATAM)]
*Architecture-centric design method
*[[Multi-criteria decision analysis]]
*[[ARID]]
*[[Software architecture analysis method]], precursor to architecture tradeoff analysis method
*[[Architectural analytics]]
 
==References==
[[Category:Software engineering]]
{{Reflist}}
 
==External links==
* [https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=513805 Reduce Risk with Architecture Evaluation]
* [https://resources.sei.cmu.edu/asset_files/TechnicalReport/2000_005_001_13706.pdf ATAM: Method for Architecture Evaluation]
 
[[Category:Software engineeringarchitecture]]
{{soft-eng-stub}}
[[Category:Enterprise architecture]]