Software Architectural Model

Software Architectural Model

An Architectural Model (in Software) is a rich and rigorous diagram, created 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 architects 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).

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.'

rigorous - The architect has applied a specific methodology to create this particular model, and the resulting model 'looks' a particular way. Here's the test of rigorousness: If two architects, in different cities, were describing the same thing, the resulting diagrams would be nearly identical (with the possible exception of visual layout, to a point).

diagram - In general, a model may refer to "any" abstraction that simplifies something for the sake of addressing a particular viewpoint. This definition specifically subclasses 'Architectural Models' to the subset of model descriptions that are represented as diagrams.

standards - Standards work when everyone knows them and everyone uses them. This allows a level of communication that cannot be achieved when each diagram is substantially different from another. UML is the most often quoted standard.

primary concern - It is easy to be too detailed by including many different needs in a single diagram. This should be avoided. It is better to draw multiple diagrams, one for each viewpoint, than to draw a 'mega diagram' that is so rich in content that it requires a two-year course of study to understand it. Remember this: when building houses, the architect delivers many different diagrams. Each is used differently. Frequently the final package of plans will include diagrams with the floor plan many times: framing plan, electrical plan, heating plan, plumbing, etc. They don't just say: it's a floor plan so 100% of the information that CAN go on a floor plan should be put there. The plumbing subcontractor doesn't need the details that the electrician cares about.

illustrate - The idea behind creating a model is to communicate and seek valuable feedback. The goal of the diagram should be to answer a specific question and to share that answer with others to (a) see if they agree, and (b) guide their work. Rule of thumb: know what it is you want to say, and whose work you intend to influence with it.

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. Tradoffs rarely translate into an image on the diagram. 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 deliver 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.
* [http://www.sei.cmu.edu/architecture/ata_method.html Architectural Tradeoff Analysis Method] (ATAM) is a method by which architecture can be evaluated for suitability and fit to requirements.

ee also

*Service-Oriented Modeling Framework (SOMF)


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Architectural model — Not be confused with Software Architectural Model An architectural model is a type of a scale model, tangible (also called sometimes physical) representation of a structure built to study aspects of an architectural design or to communicate… …   Wikipedia

  • Software architect — is a general term with many accepted definitions, which refers to a broad range of roles. Generally accepted terminology and certifications began appearing in connection with this role near the beginning of the 21st century. Contents 1 History 2… …   Wikipedia

  • Software architecture — The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them. The term also… …   Wikipedia

  • Software testing — is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test [ [http://www.kaner.com/pdfs/ETatQAI.pdf Exploratory Testing] , Cem Kaner, Florida Institute of Technology,… …   Wikipedia

  • Software quality — Contents 1 Motivation for Defining Software Quality 2 Definition 3 Alternative Approaches to Software Quality Defin …   Wikipedia

  • Model-view-controller — (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the …   Wikipedia

  • Software documentation — or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles. Contents 1 Role of documentation in software… …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Software prototyping — Software prototyping, a possible activity during software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.A prototype typically simulates only a few aspects of the features of the… …   Wikipedia

  • Architectural pattern (computer science) — Architectural patterns are software patterns that offer well established solutions to architectural problems in software engineering. It gives description of the elements and relation type together with a set of constraints on how they may be… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”