IEEE 1471 is an IEEE Standard for describing the architecture of a "software-intensive system", also known as software architecture. It has been superseded by ISO/IEC/IEEE 42010:2011, Systems and software engineering — Architecture description.
IEEE 1471 is the short name for a standard formally known as ANSI/IEEE 1471-2000, Recommended Practice for Architecture Description of Software-Intensive Systems. Within Institute of Electrical and Electronics Engineers (IEEE) parlance, this is a "recommended practice", the least normative of its standards. In 2007 this standard was adopted by ISO/IEC JTC1/SC7 as ISO/IEC 42010:2007, Systems and Software Engineering -- Recommended practice for architectural description of software-intensive systems.
It has long been recognized[by whom?] that “architecture” has a strong influence over the life cycle of a system. However, until relatively recently,[when?] hardware issues have tended to dominate architectural thinking, and software aspects, when considered at all, were often the first to be compromised under the pressures of development. IEEE 1471 was created to provide a basis for thinking about the architecture of software-intensive systems.
IEEE 1471's contributions can be summarised as follows (in this list, items in italics are terms defined by and used in the standard):
- It provides definitions and a meta-model for the description of architecture
- It states that an architecture should address a system's stakeholders concerns
- It asserts that architecture descriptions are inherently multi-view, no single view adequately captures all stakeholder concerns
- It separates the notion of view from viewpoint, where a viewpoint identifies the set of concerns and the representations/modeling techniques, etc. used to describe the architecture to address those concerns and a view is the result of applying a viewpoint to a particular system.
- It establishes content requirements for architecture descriptions and the idea that a conforming architecture description has a 1-to-1 correspondence between its viewpoints and its views.
- It provides guidance for capturing architecture rationale and identifying inconsistencies/unresolved issues between the views within an architecture description
In August 1995, the IEEE Software Engineering Standards Committee (SESC) chartered an IEEE Architecture Planning Group (APG) to set direction for incorporating architectural thinking into IEEE standards. In April 1996, the Architecture Working Group (AWG) was created to implement the recommendations made by APG to the SESC. The AWG was chaired by Basil Sherlund, vice-chairs Ronald Wade, David Emery, the specification was edited by Rich Hilliard. The AWG had 25 members. Drafts of the specification were balloted and commented on by 130 international reviewers. In September 2000, the IEEE-SA Standards Board approved the specification as IEEE Std 1471-2000.
In 2006, ISO/IEC Joint Technical Committee 1 (JTC1), Information technology/Subcommittee SC 7, Software and systems engineering, adopted the specification as ISO/IEC 42010, under a special “fast-track procedure”, in parallel with its approval by national bodies of ISO and IEC. A coordinated revision of this standard by ISO/IEC JTC1/SC7/WG42 and IEEE CS commenced in 2006, following the successful ISO/IEC fast-track ballot and in line with the IEEE standard 5-year review of the standard.
In November 2011, IEEE 1471-2000 was superseded by ISO/IEC/IEEE 42010:2011, Systems and software engineering — Architecture description.
- Expression of the system and its evolution
- Communication among the system stakeholders
- Evaluation and comparison of architectures in a consistent manner
- Planning, managing, and executing the activities of system development
- Expression of the persistent characteristics and supporting principles of a system to guide acceptable change
- Verification of a system implementation’s compliance with an architectural description
- Recording contributions to the body of knowledge of software-intensive systems architecture
According to IEEE Standard Glossary of Software Engineering Terminology the following definitions are used:
- architect: The person, team, or organization responsible for designing systems architecture.
- architectural description (AD): A collection of products to document an architecture.
- architecture: 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.
- designing: The activities of defining, documenting, maintaining, improving, and certifying proper implementation of an architecture.
- system: A collection of components organized to accomplish a specific function or set of functions. The term system encompasses individual applications, systems in the traditional sense, subsystems, systems of systems, product lines, product families, whole enterprises, and other aggregations of interest.
- system stakeholder: An individual, team, or organization (or classes thereof) with interests in, or concerns relative to, a system.
- view: A representation of a whole system from the perspective of a related set of concerns.
- viewpoint: A specification of the conventions for constructing and using a view. 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.
- A system’s environment, or context', can influence that system. The environment can include other systems that interact with the system of interest, either directly via interfaces or indirectly in other ways. The environment determines the boundaries that define the scope of the system of interest relative to other systems.
- A system has one or more stakeholders. Each stakeholder typically has interests in, or concerns relative to, that system.
- Concerns are those interests which pertain to the system’s development, its operation or any other aspects that are critical or otherwise important to one or more stakeholders. Concerns include system considerations such as performance, reliability, security, distribution, and evolvability.
- A system exists to fulfill one or more missions in its environment. A mission is a use or operation for which a system is intended by one or more stakeholders to meet some set of objectives.
- Every system has an architecture, whether understood or not; whether recorded or conceptual. An architecture can be recorded by an architectural description.
- An architectural description is organized into one or more constituents called (architectural) views. Each view addresses one or more of the concerns of the system stakeholders. A view is a partial expression of a system’s architecture with respect to a particular viewpoint.
- A viewpoint establishes the conventions by which a view is created, depicted and analyzed. In this way, a view conforms to a viewpoint. The viewpoint determines the languages (including notations, model, or product types) to be used to describe the view, and any associated modeling methods or analysis techniques to be applied to these representations of the view. These languages and techniques are used to yield results relevant to the concerns addressed by the viewpoint.
- An architectural description selects one or more viewpoints for use. The selection of viewpoints is typically based on consideration of the stakeholders to whom the AD is addressed and their concerns. A viewpoint definition may originate with an AD, or it may have been defined elsewhere (a library viewpoint).
- A view may consist of one or more architectural models. Each such architectural model is developed using the methods established by its associated architectural viewpoint. An architectural model may participate in more than one view.
IEEE 1471 defines a set of normative requirements for conforming architecture descriptions, including the following:
- AD identification, version, and overview information (clause 5.1)
- Identification of the system stakeholders and their concerns judged to be relevant to the architecture (clause 5.2)
- Specifications of each viewpoint that has been selected to organize the representation of the architecture and the rationale for those selections (clause 5.3)
- One or more architectural views (clause 5.4)
- A record of all known inconsistencies among the architectural description’s required constituents (clause 5.5)
- A rationale for selection of the architecture (clause 5.6)
- ISO/IEC 42010:2007, Systems and Software Engineering -- Architecture Description
- Architecture and Change
- Description of IEEE 1471
- IEEE Std 610.12−1990, IEEE Standard Glossary of Software Engineering Terminology.
- IEEE 1471 Conceptual Framework
- IEEE 1471 website
- MEGAF is an infrastructure for realizing architecture frameworks that conform to the definition of architecture framework provided in the ISO/IEC 42010 standard.