In
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, Architecture Tradeoff Analysis Method (ATAM) is a risk-mitigation process used early in the
software development life cycle
In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or s ...
.
ATAM was developed by the
Software Engineering Institute
Software Engineering Institute (SEI) is a Federally funded research and development centers, federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the Uni ...
at the
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
. Its purpose is to help choose a suitable
architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
for a software system by discovering
trade-off
A trade-off (or tradeoff) is a situational decision that involves diminishing or losing on quality, quantity, or property of a set or design in return for gains in other aspects. In simple terms, a tradeoff is where one thing increases, and anoth ...
s and sensitivity points.
ATAM is most beneficial when done early in the software development life-cycle when the cost of changing architectures is minimal.
ATAM benefits
The following are some of the benefits of the ATAM process:
* identified risks early in the life cycle.
* increased communication among stakeholders.
* clarified quality attribute requirements.
* improved architecture documentation.
* documented basis for architectural decisions.
ATAM process
The ATAM process consists of gathering stakeholders together to analyze business drivers (system functionality, goals, constraints, desired
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.
Steps of the ATAM process
ATAM formally consists of nine steps, outlined below:
#Present ATAM – Present the concept of ATAM to the stakeholders, and answer any questions about the process.
#Present business drivers – everyone in the process presents and evaluates the business drivers for the system in question.
#Present the architecture – the architect presents the high-level architecture to the team, with an 'appropriate level of detail'
#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.
See also
*
ilities
In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with functio ...
*Architecture-centric design method
*
Multi-criteria decision analysis
Multiple-criteria decision-making (MCDM) or multiple-criteria decision analysis (MCDA) is a sub-discipline of operations research that explicitly evaluates multiple conflicting criteria in decision making (both in daily life and in settings ...
*
ARID
Aridity is the condition of geographical regions which make up approximately 43% of total global available land area, characterized by low annual precipitation, increased temperatures, and limited water availability.Perez-Aguilar, L. Y., Plata ...
*
Software architecture analysis method, precursor to architecture tradeoff analysis method
*
Architectural analytics
References
{{Reflist
External links
Reduce Risk with Architecture EvaluationATAM: Method for Architecture Evaluation
Software architecture
Enterprise architecture