Software Engineering Institute Carnegie Mellon

Comparing the SEI's Views and Beyond Approach for Documenting Software Architectures with ANSI-IEEE 1471-2000

Paul Clements

CMU/SEI-2005-TN-017

July 2005

Software Architecture Technology Initiative

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


Acknowledgments

I would like to thank Judith Stafford, Robert Nord, James Ivers, Reed Little, and Linda Northrop for their helpful reviews.

 

 

 

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


1 Introduction

A software architecture for a program or computing system consists of the structure or structures of that system, which comprise elements, the externally visible properties of those elements, and the relationships among them [Bass 03]. The quality attributes of a software system, such as performance, modifiability, and security, are bound up in its software architecture. A system with the wrong architecture will be a failure.

A software architecture also determines the blueprint for the project developing the software. Teams are formed around architectural elements, which are the units of implementation, unit testing, integration, configuration management, documentation, and a host of other activities.

Unlike code, architecture is a design artifact largely intended for use and analysis by humans. Hence, representing it in a readable, accessible fashion for its stakeholders becomes an issue of importance. Architecture gives the marching orders to implementers, telling them what pieces to build and how those pieces should behave and interact with each other. It also determines the project structure for managers, who use it to plan, schedule, and budget. It gives the first glimpse of the system to maintainers who must change the architecture and new team members who must become familiar with it.

Therefore, architecture documentation has emerged as an important architecture-related practice. In 2002, researchers at the Carnegie Mellon Software Engineering Institute (SEI) completed Documenting Software Architectures: Views and Beyond [Clements 03], which puts forth a documentation philosophy as well as a detailed approach. The philosophy is embodied in the title: "views and beyond." The V&B approach, as it is known, holds that documenting a software architecture is a matter of choosing a set of relevant views of the architecture, documenting each of those views, and then documenting information that applies to more than one view or to the set of views as a whole. The last step ties the views together and makes them become a holistic and integrated representation of the architecture, as opposed to disjoint snapshots taken from different angles. The detailed approach includes a method to choose the most relevant views, standard templates for documenting a view and documenting the information beyond views, and definitions of the templates' content.

While the V&B approach was being solidified, a new recommended best practice was being formed by the Institute of Electrical and Electronics Engineers (IEEE). The IEEE Architecture Planning Group (APG) was formed in August 1995 and chartered by the IEEE Software Engineering Standards Committee (SESC) to set a direction for incorporating architectural thinking into IEEE standards. The result of the APG's deliberations was to recommend an IEEE activity with these goals:

In April 1996, the SESC created the Architecture Working Group (AWG) to implement those recommendations, which have since been adopted by the American National Standards Institute [ANSI] as well as IEEE and which eventually became ANSI/IEEE Std. 1471-2000 [IEEE 00]. That standard, henceforth referred to as 1471, is a recommended practice that addresses the activities of the creation, analysis, and sustainment of architectures of software-intensive systems and the recording of such architectures in terms of architectural descriptions. The standard establishes a conceptual framework for architectural description and defines the content of an architectural description.

Interest in 1471 is growing and will likely continue to grow. Although it is impossible to tell how many projects invoke it, it is mandated for use in the Future Combat Systems (FCS) project, a U.S. Army command-and-control system that is expected to comprise over 30 million lines of code and (therefore) whose software architecture is of supreme importance.

How does the V&B approach to architecture documentation relate to the 1471 approach to architecture description? This technical note summarizes the two approaches and shows how a software architecture document prepared using the former can be made compliant with the latter.

Section 2 summarizes the V&B approach. Section 3 gives an overview of 1471. Section 4 compares the two and shows how preparing an architecture document using the V&B approach can result in a product that is 1471 compliant.

 

 

 

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


2 The Views and Beyond Approach to Software Architecture Documentation

2.1 A Multi-View Approach

Modern software architecture practice embraces the concept of architectural views. A view is a representation of a set of system elements and the relations associated with them. Views are representations of the many system structures present simultaneously in software systems. Modern systems are too complex to be grasped all at once. Instead, we restrict our attention at any one moment to one (or a small number) of the software system's structures, which we represent as views.

Some authors prescribe a fixed set of views with which to engineer and communicate an architecture; for example, the Rational Unified Process (RUP), which is based on Kruchten's 4+1 view approach to software [Kruchten 95] and the Siemens Four Views model [Hofmeister 00]. A recent trend, however, is to recognize that architects should produce whatever views are useful for the system at hand, and the V&B approach adopts that policy. This trend leads to the fundamental philosophy of the V&B approach stated earlier: Documenting an architecture is a matter of documenting the relevant views and then adding documentation that applies to more than one view.

2.2 Different Kinds of Views

There is an almost unlimited supply of views to choose from. To lend some order to an otherwise chaotic collection of possible views, it's helpful to think about views in groups, according to the kind of information they convey:

A particular view of a system may fall squarely into one of these categories or combine information from more than one category.

2.3 Styles

A view is a representation of a structure that is present in a software system. One might show the hierarchical decomposition of the system's functionality into modules or how the system is arranged into layers; another might show how the system accomplishes work through communicating processes or the interaction of clients and servers. Still another might show how software elements are deployed onto hardware processing and communication nodes.

An architect chooses the structures to work with and designs them to achieve particular quality attributes using architectural styles.1 A style is a specialization of element types (e.g., "client," "layer") and relationship types (e.g., "is part of," "request-reply connection," "is allowed to use"), along with any restrictions (e.g., "clients interact with servers but not each other" or "all the software comprises layers arranged in a stack such that each layer can only use software in the next lower layer").

Styles are documented in a style guide that defines each style by defining the element types and relationship types indigenous to the style, along with any semantic restrictions on their use. It lists what design problems the style is and is not good at addressing. The guide also discusses any notations or analytical approaches available to the architect using that style and refers to any related styles.

2.4 Choosing the Views

The V&B approach to choosing the views to document is a simple three-step procedure based on the structures that are inherently present in the software and on the stakeholders and the concerns they have that would motivate documenting the corresponding view. The steps are described below.

Step 1: Produce a Candidate View List
Begin by building a stakeholder/view table for your project. Enumerate the stakeholders for your project's software architecture documentation down the rows. Be as comprehensive as you can. For the columns, enumerate the views that apply to your system. Some views (e.g., decomposition, uses, and work assignment) apply to every system, while others (e.g., pipe-and-filter, layered) only apply to systems designed according to the corresponding styles.

Once you have the rows and columns defined, fill in each cell to describe how much information the stakeholder requires from the view: none, overview only, or detailed. We encourage architects to hold a workshop with stakeholders or their representatives to begin a dialogue about what information they will need from the documentation.

The candidate view list consists of those views in which some stakeholder has a vested interest.

Step 2: Combine Views
The candidate view list from Step 1 is likely to yield an impractical number of views. Step 2 winnows the list to a manageable size.

First, look for views in the table that require only overview depth or that serve very few stakeholders. See if the stakeholders could be equally well served by another view that has a stronger constituency.

Next, look for views that are good candidates to become combined views. A combined view shows information native to two or more separate views. A rule of thumb is that if there is a strong correspondence between the elements in two views, they are good candidates to be combined.

Step 3: Prioritize
After Step 2, you should have the minimum set of views needed to serve your stakeholder community. At this point, you need to decide what to do first. For example, some stakeholders' interests supersede others. The project manager of a company you are partnering with often demands attention and information early and often, and you may want to cater to his/her needs first.

2.5 A Template for Views and Information Beyond Views

No matter the view, the documentation for it is placed into a standard organization or template comprising seven parts:

Figure 1 illustrates the template for a view.

Figure 1:	The Template for a View

Figure 1: The Template for a View

The final piece of architecture documentation is the information that applies to more than one view and to the entire package. It ties together the views and provides a holistic picture of the total design. Cross-view or "beyond views" documentation consists of the following sections:

Figure 2 illustrates the seven pieces of cross-view or "beyond view" documentation.

Figure 2: The Template for Documentation Beyond Views

Figure 2: The Template for Documentation Beyond Views

 

 

 

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


3 1471 (IEEE Recommended Practice for Architectural Description of Software-Intensive Systems)

1471 draws on experience from industry, academia, and other standards bodies. The recommendations of 1471 center on two key ideas: (1) a conceptual framework for architectural description and (2) a statement of what information must be found in any 1471-compliant architectural description. The conceptual framework described in the standard ties together such concepts as system, architectural description, and view.

Figure 3 summarizes a portion of this framework in UML. In 1471, views have a central role in documenting software architecture. In the standard, each view is "a representation of a whole system from the perspective of a related set of concerns." The architectural description of a system includes one or more views. In this framework, a view conforms to a viewpoint. A viewpoint is "a pattern or template from which to develop individual views by establishing the purposes and audience for a view and the techniques for its creation and analysis" [IEEE 00]. In 1471, the emphasis is on what drives the perspective of a view or a viewpoint. Viewpoints are defined with specific stakeholder concerns in mind, and the definition of a viewpoint includes a description of any associated analysis techniques.

Figure 3: Excerpt from Conceptual Framework of 1471

Figure 3: Excerpt from Conceptual Framework of 14712

In addition to the conceptual framework, 1471 includes a statement of what information must be in any compliant architectural description. These "shalls" include the following:

 

 

 

 

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


4 Comparison

4.1 Comparing Definitions

We begin the comparison of V&B and 1471 by noting that 1471 defines architecture as the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution, where

Although there are significant differences between that definition and the one underlying V&B that was cited at the opening of this technical note, these differences do not represent fundamental differences in philosophy. Both definitions emphasize structure. The V&B definition goes further by explicitly recognizing multiple structures. The 1471 definition goes further by including the environment and principles that spawned the structure(s) and does not restrict its scope to software. The V&B definition uses the neutral term element and eschewed component, which in some contexts refers explicitly to units of runtime interaction (as opposed to development-time building).

4.2 Satisfying the Requirements of 1471 with V&B

Next, we list the requirements imposed by 1471 and explain how each one is satisfied by the V&B approach.

Table 1: 1471 Requirements Satisfied by the V&B Approach

General Requirement Imposed by 1471

How the Requirement Is Achieved in the V&B Approach

Identification and overview information. This information includes a summary, a context, a glossary, references, and a change history.
Several items in this category amount to good bookkeeping. Context is addressed in the context diagrams; the other items are prescribed in the templates described earlier.
Stakeholders and concerns. The standard lists minimum examples that must be addressed for both stakeholders and concerns.
The documentation roadmap called for in the "beyond views" template captures information about stakeholders and their concerns-specifically, how they will use the documentation package. Make sure to include users, acquirers, developers, and maintainers.
Viewpoints. For each viewpoint, the following must be specified:
  • stakeholders addressed by the viewpoint
  • concerns addressed by the viewpoint
  • language, modeling techniques, or analytical techniques to be used
  • rationale for selection of the viewpoint
Any additional information such as completeness and correctness checks, evaluation criteria, heuristics, or guidelines may be included.
Viewpoints correspond most closely to architectural styles. A style is defined by the elements, relations, and properties that should be used in documenting a system built using that style. By extension, a viewpoint definition can be provided by a style guide. A style guide defines the elements, relationships, and restrictions inherent in the style, and contains a section noting what it's for and not for (which should help users in deciding what concerns will be addressed), as well as a section on notations and analysis techniques useful for working with that style.
Views. Each view includes a representation of the system in accordance with the requirements of its viewpoint.
The view template defines the information that should be documented for a view.
Consistency information. This information includes a record of all the inconsistencies among views, preferably accompanied by an analysis of the consistencies among them.
The "documentation beyond views" part of the package includes a mapping between views.
Rationale. The rationale for the architectural concepts selected and choices made, preferably accompanied by evidence of the alternatives that were considered.
Reserved spots for rationale are provided in the view template and in the template for documentation beyond views.

4.3 Discussion

We have seen that each requirement imposed by 1471 can be satisfied by the V&B approach by imposing only very small additional conditions including

In addition, the two approaches are conceptually compatible.

The approach implied by 1471 begins with stakeholders and their concerns. These concerns are listed explicitly, and then viewpoints are crafted that (together) satisfy the stakeholders and their concerns. Finally, the architecture is described using views based on those viewpoints. Thus with the 1471 approach, we have

stakeholders/concerns --> viewpoints --> views

(The arrows mean "lead to.") The approach espoused by V&B begins by aiming to document those architectural structures that are actually present in the system, which come about as the manifestation of the architect's selection of styles with which to design the system. Documenting a style as a view is done if the view has an important stakeholder/concern constituency. Thus with the V&B approach, we have

structures/styles --> chosen to document based on stakeholders/concerns --> views

Thus, both 1471 and V&B will produce an architecture document that consists of a set of views that satisfy the concerns of the architecture's key stakeholders. Both approaches match a set of stakeholders/concerns to a set of vocabularies (viewpoints or viewtypes/styles) to select a set of views to document.

A more practical difference is that V&B provides more information and prescriptive guidance, especially

Finally, it is useful to discuss what V&B and 1471 have in common. First of all, both exemplify the current approach to software architecture that eschews a fixed prescribed set of views. Instead, both advocate building an architecture document out of those views that are most useful for the job at hand. This choice depends on the stakeholders to be served by the document and their concerns. Concerns include the achievement of specific quality attributes.

Second, both 1471 and V&B place stakeholders in a position of prominence in the architectural process. Unlike the classic (but naïve) idea that an architecture flows only from a requirements document, we now recognize that architecture is the result of the blending of a large number of forces and influences, many of which do not correspond to system functionality. It is the responsibility of the architect to understand these forces and influences and to track them down to their source-that is, to engage the stakeholders who hold them. Both V&B and 1471 recognize the point made at the opening of this technical note: Architecture design and documentation are activities in service of people.

 

 

 

[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]


References

[Bass 03]

Bass, L.; Clements, P.; & Kazman, R. Software Architecture in Practice, Second Edition. Boston, MA: Addison-Wesley, 2003.

 

[Buschmann 96]

Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; & Stal, M. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. New York, NY: Wiley, 1996.

 

[Clements 03]

Clements, P.; Bachmann, F.; Bass, L.; Garlan, D.; Ivers, J.; Little, R.; Nord, R.; & Stafford, J. Documenting Software Architectures: Views and Beyond. Boston, MA: Addison-Wesley, 2003.

 

[Hofmeister 00]

Hofmeister, C.; Nord, R.; & Soni, D. Applied Software Architecture, Reading, MA: Addison-Wesley, 2000.

 

[IEEE 00]

Institute of Electrical and Electronics Engineers. Recommended Practice for Architectural Description of Software-Intensive Systems (IEEE Std 1471-2000). New York, NY: Institute of Electrical and Electronics Engineers, 2000.

 

[Kruchten 95]

Kruchten, P. "The 4+1 View Model of Architecture." IEEE Software 12, 6 (November 1995): 42-50.

 

[Schmidt 00]

Schmidt, D.; Stal, M.; Rohnert, H.; & Buschmann, F. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. New York, NY: Wiley, 2000.

 

 


1 A style is similar to an architectural design pattern--that is, a design pattern whose scope is architectural. Patterns represent known, recurring design solutions. They are prepackaged sets of design decisions, each with its own vocabulary and each having known effects on software quality attributes. Patterns are published in the literature; perhaps the best-known catalog of architectural patterns is the two-volume set Pattern-Oriented Software Architecture [Buschmann 96, Schmidt 00]. Architectural patterns restrict their attention to particular element and relation types, and impose topological and behavioral restrictions on how the elements are arranged.

2 Each box represents a concept, and each line represents an association between two concepts. Each association has two roles-one in each direction- although both are not always depicted. The role from A to B is depicted closest to B. Multiplicity is optional in this diagram; where identified, it follows the UML convention, whereby 1 means one and 1..* means one or more. Stakeholders play a key role; views conform to viewpoints that address stakeholders and their concerns.

REPORT DOCUMENTATION PAGE

Form Approved
OMB No. 0704-0188

Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503.

1. agency use only

(Leave Blank)

2. report date

July 2005

3. report type and dates covered

Final

4. title and subtitle

Comparing the SEI's Views and Beyond Approach for Documenting Software Architectures with ANSI-IEEE 1471-2000

5. funding numbers

F19628-00-C-0003

6. author(s)

Paul Clements

7. performing organization name(s) and address(es)

Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213

8. performing organization
report number

CMU/SEI-2005-TN-017

9. sponsoring/monitoring agency name(s) and address(es)

HQ ESC/XPK
5 Eglin Street
Hanscom AFB, MA 01731-2116

10. sponsoring/monitoring agency report number

11. supplementary notes

12a distribution/availability statement

Unclassified/Unlimited, DTIC, NTIS

12b distribution code

13. abstract (maximum 200 words)

Architecture documentation has emerged as an important architecture-related practice. In 2002, researchers at the Carnegie Mellon® Software Engineering Institute completed Documenting Software Architectures: Views and Beyond (V&B), an approach that holds that documenting a software architecture is a matter of choosing a set of relevant views of the architecture, documenting each of those views, and then documenting information that applies to more than one view or to the set of views as a whole. Details of the approach include a method for choosing the most relevant views, standard templates for documenting views and the information beyond them, and definitions of the templates' content. At about the same time, the Institute of Electrical and Electronics Engineers (IEEE) was developing a recommended best practice for describing architectures for software-intensive systems-ANSI/IEEE Std. 1471-2000. Like V&B, that standard takes a multi-view approach to the task of architecture documentation, and it establishes a conceptual framework for architectural description and defines the content of an architectural description.

This technical note summarizes the two approaches and shows how a software architecture document prepared using the V&B approach can be made compliant with Std. 1471-2000.

14. subject terms

software architecture, architecture views, viewpoints, IEEE 1471, viewtypes, views and beyond, architecture documentation, architecture description, architecture representation, stakeholders

15. number of pages

28

16. price code

17. security classification of report

Unclassified

18. security classification of this page

Unclassified

19. security classification of abstract

Unclassified

20. limitation of abstract

UL

NSN 7540-01-280-5500

Standard Form 298 (Rev. 2-89) Prescribed by ANSI Std. Z39-18 298-102


[Abstract]  [Acknowledgements]   [1 Introduction]   [2 The Views and Beyond Approach to Software Architecture Documentation]  
[3 1471 (IEEE Recommended Practice for
Architectural Description of Software-Intensive Systems)]  
[4 Comparison]  
[References]  [PDF File]