IEEE 1471
IEEE 1471, officially known as "IEEE Standard 1471-2000 - Recommended Practice for Architectural Description of Software-Intensive Systems," is a standard for describing software architectures. It provides a conceptual framework for architectural description, focusing on the multiple viewpoints and stakeholders involved in the design, development, and maintenance of software-intensive systems.
The standard does not prescribe a specific architectural description language or methodology. Instead, it defines key concepts, such as architecture, architectural description, stakeholder, viewpoint, and view, providing a common vocabulary and structure for discussing and documenting software architectures.
Key Concepts:
- Architecture: The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles guiding its design and evolution.
- Architectural Description: A collection of artifacts used to document an architecture. These artifacts describe the system's structure, behavior, and rationale.
- Stakeholder: An individual, team, or organization with interests in, or concerns relative to, a system.
- Viewpoint: A specification of the conventions for constructing and using a view. It establishes the purposes and audience for a view and explains how it should be created and interpreted. Viewpoints often specify concerns, modeling techniques, languages, and analysis methods.
- View: A representation of a whole system from the perspective of a related set of concerns. A view is what you see when looking through a viewpoint.
Purpose:
IEEE 1471 aims to:
- Improve communication among stakeholders by providing a common vocabulary and framework for discussing architecture.
- Support architectural analysis and evaluation by providing a structured approach to architectural description.
- Facilitate the evolution and maintenance of systems by providing a comprehensive record of architectural decisions and their rationale.
- Enable comparison and reuse of architectural knowledge across different systems and organizations.
Relationship to Other Standards:
While IEEE 1471 provides a framework for architectural description, it is often used in conjunction with other standards and methodologies related to software development, such as the Unified Modeling Language (UML), various software development processes (e.g., Agile, Waterfall), and standards for specific domains (e.g., automotive, aerospace).
Current Status:
While the initial standard was published in 2000, it was subsequently revised and updated. The most current version and its replacements should be verified with the IEEE standards organization. Over time the standard has been renamed as ISO/IEC/IEEE 42010:2011 "Systems and software engineering — Architecture description".