Disclaimer The opinions expressed herein are
my own personal opinions and do not represent my
employer's view in
anyway.
Overview
There 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 you will have to explain you architecture to.
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
Constrains. These are the properties you wish your architecture to
have (or lack) based on your previous experience. Constrains can
also come from your stakeholders (e.g. management decided that all
project should be .NET, a deadline etc.)
Attributes – discover quality
attributes, the non-functional reqeirements, that (once
prioritized) serve as the guide for the overall goodness of the
system (Performace, 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. make
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.