OverviewThere is very little guidance on how one can go about designing/developing an architecture for a software project. The SPAMMED architecture framework (SAF) aims to help fill this gap.
SAF is a set of activities that an architect can follow when she sets out to design an architecture. These activities helps the architect to keep abreast of the project’s needs and the drivers that affect the architecture.
The Activities of SAF include
- Stakeholders -identify the stakeholders – Anyone with vested interest in the project (end users, clients, project manager, developers etc.) These are the people to whom you will have to explain your architecture . These are the people that have concerns that the architecture will have to satisfy (or most likely balance). Thus, the fist step is to identify and rank them.
- Principles – list Principles, Goals and Constraints. These are the properties you wish your architecture to have (or lack) based on your previous experience. Constraints can also come from your stakeholders (e.g. management decides that all projects should be .NET, a deadline etc.)
- Attributes – discover quality attributes, the non-functional requirements, that (once prioritized) serve as the guide for the overall goodness of the system (Performance, Availability, scalability etc.)
- Model – model (and document if needed) the architecture as seen from different viewpoints (list of viewpoints is stakeholder driven). Example for viewpoints include package diagrams, deployment diagrams, DB Schema etc. etc.
- Map – Technology mapping, buy vs. build decisions etc.
- Evaluate – Since architecture is the set of decision that are hardest to change it is worthwhile to spend some time trying to evaluate if they are indeed correct before commencing on
- Deploy – Software architectures are not a fire and forget thing. As an architect you still have to make sure that the guidelines set are indeed followed and even more importantly that the architecture chosen indeed match the project’s needs and doesn’t have to be reworked.
You can also read the DDJ article, download the templates, or read all the posts I’ve made on the subject (below)
- Getting SPAMMED for Architecture
- SPAMMED state chart
- Stakeholders Everywhere
- P is for Principles (and guidelines and constraints…) – Iteration I
- P is for Principles (and guidelines and constraints…) – Iteration II
- Quality attributes – Introduction
- Utility trees – Hatching quality attributes
- Utility trees and quality attributes
- Architectural modeling – First step
- Architectural modeling – Choosing your viewpoints
- Modeling – Architectural styles
- Mapping -Don’t forget the technology
- Architecture evaluation (introduction)
- Architecture evaluation in code
- Architecture evaluation – The “Formal methods”
- Deployment – What to do when the architecture seems stable?