A software architecture defines structure, as stated in the SEI book "Software Architecture In Practice" [ref:] software architecture is:
"The set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both".
At AM2D we firmly believe that architecture is a fundamental requirement for all software projects.
Without a structured well maintained architecture a project will become inconsistent, unmanageable, flounder ...
- It is an artifact for early system analysis which will ensure that the design yields the envisaged project functionality, performance and user required services.
- It is the conceptual adhesive that will bind every phase of the project together for all stakeholders.
'would a tower block, a bridge, or a hospital be built without an architectural plan?'Obviously the answer is NO! ...
Then why should software development be any different?
AM2D adopts an architecture-centric approach, which embodies MDD/MDA principles to provide an architecture that delivers the required system, and is compatible with your enterprise goals.This may entail adopting a fully integrated MDD/MDA approach (involving full auto-generation of code from model) or a more "relaxed" approach where an architecture is defined as a stand-alone model, and code is hand crafted using the model as the design reference source: Note that the model is still the definitive design driving source; and whilst it is possible for developers to modify the code directly, it is strongly recommended that code is never modified in isolation of the model: the direction of design modification flow is always from the model to the code, not code to model. Consequently the project will remain architecture-centric, and model driven.