In this Episode we discuss software architecture evaluation with
Dragos Manolescu, an architect at Microsoft's
patterns & practices group.
We start off the discussion by trying to define what software architecture evaluation is and when and you want to evaluate an architecture in the system's lifecycle. We then make sure evaluators set the expectations for the evaluation process right - it is important to understand that architecture evaluation is typically not primarily a review of the technology decisions made for the architecture.
We then discuss the kinds of notations that are useful for describing architectures, and which of these are especially helpful for the evaluator. Next we look at the core of the architecture evaluation task, namely, the integration of the various stakeholders and their views. We also discuss real reviews from reviews that are staged "for show" only.
Next in the discussion is a brief look at the tools you can use for architecture evaluation, as well as a closer look at the various methods for achitecture evalualtion proposed by the
Software Engineering Institute (SEI). We conclude the discussion by outlining how architecture evaluation fits into an agile development process.
... and finally, we briefly plug the
PLOPD5 book, on which Dragos, Markus and James Noble have been working recently :-)