User:Antonystang

Architecture activities
Len, Rod and Antony
 * Text below inserted by Antony Tang 21:46, 11 November 2012 (UTC)



There are many activities that a software architect performs. A software architect typically works with project managers, discusses architecturally significant requirements with stakeholders, designs a software architecture, evaluates a design, communicates with designers and stakeholders, documents the architectural design and more. There are four core activities in software architecture design. These core architecture activities are performed iteratively and at different stages of the initial software development life-cycle, as well as over the evolution of a system.

Architectural Analysis is the process of understanding the environment in which a proposed system or systems will operate and determining the requirements for the system. The input or requirements to the analysis activity can come from any number of stakeholders and include items such as:


 * what the system will do when operational (the functional requirements)
 * how well the system will perform runtime non functional requirements such as reliability, operability, performance efficiency, security, compatibility defined in ISO/IEC 25010:2011 standard
 * development-time non functional requirements such as maintainability and transferability defined in ISO 25010:2011 standard
 * business requirements and environmental contexts of a system that may change over time, examples are legal, social, financial, competitive, and technological

Architectural synthesis or design is the process of creating an architecture. Given the requirements determined by the analysis, the current state of the design and the results of any evaluation activities, the design is created and improved. See for a discussion of various techniques for improving a current design.

Architecture Evaluation is the process of determining how well the current design or a portion of it satisfies the requirements derived during analysis. An evaluation can occur whenever an architect is considering a design decision, it can occur after some portion of the design has been completed, it can occur after the final design has been completed or it can occur after the system has been constructed. Some of the software architecture evaluation techniques are Architecture tradeoff analysis method and TARA etc. Frameworks for comparing the techniques are discussed in frameworks such as SARA Report and Architecture reviews: practice and experience.

Architecture Evolution is the process of maintaining and adapting an existing software architecture to cater for requirement and environmental changes. As software architecture provides a fundamental structure of a software system, its evolution and maintenance would necessarily impact on this fundamental structure. As such, architecture evolution is concerned with adding new functionality as well as maintaining existing functionality and system behaviour.

In order to carry out architecture activities, supporting architecture activities are essential (note: wiki page is under construction by Antony, see [http://en.wikipedia.org/wiki/User:Antonystang/sandbox). These supporting activities take place throughout the core software architecture activities. They are Knowledge Management and Communication, Design Reasoning and Decision Making, and Documentation.