Software architectural model: Difference between revisions

Content deleted Content added
added categories
added references, edited for style
Line 1:
An '''DefinitionArchitectural Model''': An Architectural Model (in Software) is a rich and rigorous diagram, creating using available standards, in which the primary concern is to illustrate a specific set of tradeoffs inherent in the structure and design of a system or ecosystem. [[Software architect]]s use architectural models to communicate with others and seek peer feedback.
 
An architectural model is an expression of a viewpoint in software architecture. There are many definitions of software architecture (see external links).
Let's look at that definition a little:
 
Key elements of the definition of a software architectural model:
 
'''rich''' - for the viewpoint in question, there should be sufficient information to describe the area in detail. The information should not be lacking or vague. The goal is to minimize misunderstandings, not perpetuate them. See notes below on 'primary concern.'
Line 17 ⟶ 19:
'''specific set of tradeoffs''' - the ATAM methodology describes a process whereby software architecture can be peer-reviewed for appropriateness. ATAM does this by starting with a basic notion: there is no such thing as a 'one-size-fits-all' design. We can create a generic design, but then we need to alter it to specific situations based on the business requirements. In effect, we make tradeoffs. The diagram should make those specific tradeoffs visible. Therefore, before an architect creates a diagram, he or she should be prepared to describe, in words, which tradeoffs they are attempting to illustrate in this model.
 
'''tradeoffs inherent in the structure and design''' - a component is not a tradeoff. AnTradoffs architectrarely won'ttranslate normallyinto getan to put a tradeoff in a box and put that boximage on yourthe modeldiagram. Tradeoffs are the first principles that produced the design models. When an architect wishes to describe or defend a particular tradeoff, the diagram can be used to defend the position.
 
'''system or ecosystem''' - modeling in general can be done at different levels of abstraction. It is useful to model the architecture of a specific application, complete with components and interactions. It is also reasonable to model the systems of applications needed to delivery a complete business process (like order-to-cash). It is not commonly useful, however, to view the model of a single component and its classes as software architecture. At that level, the model, while valuable in its own right, illustrates design much more so than architecture.
 
==External Links==
[http://www.sei.cmu.edu/architecture/published_definitions.html SEI published Software Architecture Definitions] contains a list of definitions of architecture used by classic and modern authors.
 
[http://www.csi.uottawa.ca:4321/oose/index.html#architecturalmodel Architectural Model] contains a definition of architectural model from the University of Ottawa's Object Oriented Software Engineering database.
 
[[Category:Software architecture]]