Musings of a Lifelong Learner
My Dashboard

Software Architecture

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]: 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:

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:

Applying RCDA in our context we have arrived at following: The Risk and Cost Based Architecture principles include [6]:
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



Demographic

Language

Country

City

System

Browser

OS

More

Target

Users

Active

Geo

Interests