Software Architecture as defined in the IEEE/IEC/ISO standard 42010 ,
fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and the principles of its design and evolution. The architecture metamodel presents the system is built to address, needs, concerns and goals of its stakeholders.
Architecture Documentation (AD) demonstrates it has met the stakeholder needs [1]. The relevance of solution architecture is reconfirmed by Redmont Slot PhD Thesis [2].
The system is considered to consist of Form and Function. Starting with the end in mind, the deliverables of an architect include [3]:
- A clear, complete, consistent and attainable set of goals.
- A description of the broad context of the system including global Standards.
- A concept of the system.
- A concept of operations of the system including contingency and emergency operations.
- A functional decomposition of the system with at least 2 layers of decomposition with primary and secondary functions, process flow, supporting and interface processes.
- A decomposition of 2 levels of details with allocations of functions to form with details on all external interfaces and interface control process and notion of development cost, schedule and risk.
The typical definition process starts with a business case. This leads to elaboration of requirement specification. Based on functional and non-functional
attributes, different architectural solutions are proposed. A selection is done from these candidate architectures and rationale described.
While selecting architects often create skeleton code and experiment at small scale to confirm feasibility of certain select scenarios.
The architecture is now evaluated with respect to defined goals and fulfillment analyzed. On fulfilment of stakeholders concerns, the architecture is described and communicated.
While traditional approaches of design and development starts here, in an agile approach, only key interfaces and technical decisions might be required in the beginning. These lead to the
architecture runway. Once this runway is cleared feature teams also can start working on feature development. While in the world of Agile transformation, we have to see it from a new perspective.
Software Systems have passed through five stages corresponding to each decade starting from 1980 - Monolithic to today's Intelligent connected systems in 2020 [4].
Martin Fowler discusses his views on Architecture and discussion with Ralph Johnson [4]. He goes on to state, 'Architecture is all the important stuff whatever it is'.
Agile expects more a consistent speed otherwise termed velocity. Eoin goes on to state a fairly recent evolution where tradition approach needs to be rewired.
The evolution is seen as:
- Architect acts less upfront design of structures, i.e, significant decisions made just in time.
- Architect deals with more probability than certainty.
- Large Systems - Policy Driven Automation.
- Architect is still art of possible and financial constraints like cloud pricing affect.
- Radical intelligence, dynamic components, cloud platform development, connection to things in mainstream systems leading to new challenges.
Two approaches defined to describe the approach in detail are found in the work done by Eljo Port on Risk and Cost Based Architecture (RCDA) [6],
and Jan Bosch on Continuous Software Engineering and 3 Layer Product Model[7].
The Risk and Cost Based Architecture principles include:
- Discussions are your main deliverable.
- Keep a backlog of architectural concerns.
- Let economic impact determine your focus.
- Keep it small.
- Use just enough anticipation.
Applying RCDA in our context we have arrived at following:
The Risk and Cost Based Architecture principles include [6]:
- Prepare an architecture vision.
- Prepare a decomposition.
- Identify the most significant elements.
- Arrive at Risk and Cost based Roadmap.
- Feedback and Analyzing Progress.
- Communicating the Progress.
A detailed description of Software Architecture can be found at
My Software Architecture Blog.
A detailed description on architecture in agile is captured in detail in the
presentation at Software Architects Meetup.
References
- 1. IEC/IEEE/ISO 42010, 2011 Standard of Architecture Description.
- 2. Raymond Slot, 'A method for valuing Architecture-Based Business Transformation and
Measuring the value of Solutions Architecture ', PhD Dissertation, 2010.
- 3. Bruce Cameron ,Edward Crawley, Daniel Selva, 'System Architecture, Global Edition', Pearson, 2016.
- 4. Eoin Woods, 'Software Architecture in a Changing World', IEEE Computer.
- 5. Martin Fowler, 'Who Needs an Architect', IEEE Computer.
- 6. Eljo Port, 'Architecting as a Risk- and Cost Management Discipline', IEEE WICSA, 2011
- 7. Jan Bosch et al,'Continuous Software Engineering', 2014
Demographic
Language
Country
City
Target
Users
Active
Geo
Interests