Chapter 1 - The Architecture Business Cycle
Chapter 1 - The Architecture Business Cycle
8/29/2011
WEEKS AGENDA
Context for studying software architecture
Terminology to clear things up Software architecture and the enterprise Software architecture as part of the software engineering process What is software architecture? Where do architectures come from?
8/29/2011
Generating, evaluating, and specifying an enterprise design is a massive task, unusual for a single person; therefore, an enterprise design team is required. Members of this team include (among others, e.g., project managers):
Enterprise Architect
Architects the enterprise using a holistic approach that includes the enterprises strategy, processes, information, and organizational structure.
Software Architect
Architects software systems; in this context, the software system is key to the enterprises success, e.g., the Microsoft Windows OS, which is essential to the success of the Microsofts enterprise. This is the focus of this Course!!
8/29/2011 Enterprise Software Architecture 4
Therefore, software architects must take into account the overall enterprise design to create systems that are consistent with the enterprises strategy, processes, information, and organizational structure.
When we connect all of the information provided so far, the concept of Enterprise Software Architecture should start making more sense by now! From this point forward, well use the term Software Architecture.
8/29/2011 Enterprise Software Architecture 5
Requirements: initial stage concerned with the elicitation, analysis, specification, and validation of the software requirements. Design: analyzes, evaluates, and specifies the design of the software system (based on its requirements) by performing two key activities with different levels of abstractions; the software architecture and the detailed design. Construction: the software design is implemented in code. Testing: implemented code is verified and validated against the requirements. Maintenance: supports the long-term evolution of the software.
8/29/2011 Enterprise Software Architecture 6
Stakeholders are entities that have a stake on the software system, including customers, end users, developers, testers, managers, maintainers, etc.
Stakeholders have different concerns that need to be addressed by the architecture
Cost, memory utilization, availability, network usage, reliability, performance, short time to market, etc.
These concerns and properties determine the overall design of the architecture. The underlying problem is that each stakeholder has different contradicting concerns and goals. Rarely requirement documents capture these, so architects often have to fill in the blanks and mediate conflicts.
8/29/2011 Enterprise Software Architecture 9
All of these influences on the software architecture are rarely well documented, therefore, software architects need to:
Identify and actively engage all stakeholders to elicit their needs and expectations. Understand constraints, manage expectations, negotiate priorities, and make trade-offs.
Software architecture is then, the result of technical, business, and social influences.
However, since the system to be built is based in its software architecture, then, software architecture in turns affects the technical, business, and social environments that subsequently influence future architectures.
This cycle of influences, from environment to the architecture and back to the environment is called the Architecture Business Cycle.
8/29/2011 Enterprise Software Architecture 12
8/29/2011
13
8/29/2011
14
ARCHITECTURE TASKS
Software architecture is an activity performed as part of the software design phase. This activity has several tasks that need to be performed:
Creating the Business Case for the System Understanding Requirements Creating or Selecting the Architecture Communicating the Architecture Analyzing or Evaluating the Architecture Implementing Based on the Architecture Ensuring Conformance to an Architecture
8/29/2011
15
8/29/2011
16
8/29/2011
17