I was asked by a former colleague if I could help him with some more recent relevant architectural knowledge. Coming from anther person I would have just given a standard answer (see for example
this blog post), but since this request came from the person from I have learned almost everything I know about software architecture I felt I needed to give it a little more thought than that...
Some quick thoughts about the present status of software architecture (quick as in not thoroughly researched):Software architecture is accepted as being useful in it's own right. The role of the software architect is being acknowledged as a separate role from other software practitioners having a different skill set.
The most common view is that architecture are components and their relationships (often explicitly defined interfaces), described in multiple views (like
Kruchten's 4+1), just as in
IEEE std 1471.
It seems to be commonly accepted that architecture design is driven by quality attributes, see the
SEI web site for lots of information about this.
There are numerous architecture description languages (e.g.
EAST-ADL2 or
AADL) but none seem to emerge as a industry standard beyond
UML 2.0. And I have not heard of too many examples of where ADLs are commercially used on a wider scale.
Nobody argues about the importance of patterns, but the reference is still
Pattern-Oriented Software Architecture (POSA).
Some claim
Service-Oriented-Architecture is dead, while
others don't.
Standardised architectures seem to more and more common,
AUTOSAR is one,
Integrated Modular Avionics (IMA) is another. I'm sure there are more in other business domains I'm not aware of. Standardised architectures always seem to generate interest at workshops and meetings.
There are several on-line resources with solid material, some are directed to, or by, practitioners, like
Others are more directed to research, like
One important recent trend is the emphasis on capturing architectural decisions and architectural knowledge, which several known researchers have thought been lacking and believe is one cause of failure for software projects. Read for example Jan Bosch's paper
Software Architecture: The Next Step or Tyree and Akerman's
Architecture Decisions: Demystifying Architecture.
This emphasis leads to merging the research disciplines of knowledge management with software architecture.
Mary Shaw and Paul Clements wrote a survey article
The Golden Age of Software Architecture: A Comprehensive Survey about how the subject of software architecture has developed in the last 20 years, Kruchten et al. wrote a similar paper
The Past, Present, and Future of Software Architecture.
Finally I like the article
The Art and Science of Software Architecture by Brown and McDermid because they have a "unbiased" take on the present and future of the field.