Documenting Software Architectures
Software architecture has become a widely accepted conceptual basis for the development of nontrivial software in all application areas and by organizations of all sizes. However, the treatment of architecture to date has largely concentrated on its design and, to a lesser extent, its validation. Effectively documenting an architecture is as important as crafting it; if the architecture is not understood (or worse, misunderstood), it cannot be analyzed effectively or meet its goal as the unifying vision for system and software development. Documentation-based architecture strategies stop short of prescribing documentation standards.
- How do you document architectures using well-known styles such as service-oriented, client-server, multi-tiered, layered, and so forth?
- What are effective architecture documentation guidelines?
- How do you represent architectural elements and the relations among them?
- How do you document interface semantics and architectural rationale?
- How do you provide relevant architectural information to important stakeholders?
- Are there templates for architecture documentation?
This course provides in-depth coverage of effective software architecture documentation practices that meet the needs of the entire architecture stakeholder community. This course presents the information in the context of prevailing prescriptive models, including the Rational Unified Process (RUP), the Siemens Four Views software approach, the ISO/IEC 42010 standard, and the Unified Modeling Language (UML). The course is based on the book Documenting Software Architectures: Views and Beyond.
Audience
This course is targeted at
- software architects and software lead designers whose jobs include producing architectural documentation
- software technical managers whose jobs include overseeing and/or managing the architecture definition process
- software engineers who may be expected to use architecture documentation
Objectives
This course shows software architects how to produce a comprehensive documentation package for a software architecture that is useful to stakeholders. After attending this course, participants will have a better understanding of
- the basic principles of sound technical documentation
- a stakeholder- and view-based approach to documenting software architectures
- which views are available for documenting an architecture
- how to choose the set of views that will be most valuable to the architecture's community of stakeholders
- the information needed to document a view
- how to use formal and informal notations (including UML) to represent elements and relations in a view
- how to document a software interface and software behavior
- the information needed to document information that applies across views
Topics
- principles of sound documentation
- viewtypes, styles, and views
- advanced concepts such as refinement, context diagrams, variability, software interfaces, and how to document interfaces
- documenting the behavior of software elements and software systems
- choosing relevant views
- building a documentation package using a seven-part template
Materials
Participants receive a copy of the lecture slides, exercises, and the book Documenting Software Architectures: Views and Beyond - 2nd Edition.
Prerequisites
Before registering for this course, participants must
- have experience in designing and developing software-intensive systems
- understand the basic concepts of software architecture. If desired, they can gain this understanding by completing the Software Architecture: Principles and Practices course, which is available as instructor-led classroom training and as eLearning
Course Fees in USD
- Govt/Academic $1,200
- Industry $1,500
- International $2,250
Schedule
The live-online 4-day course schedule is as follows:
Days 1-4, 12:00 p.m. - 5:00 p.m. Eastern Time
This course may be offered by special arrangement at customer sites. For details, please email course-info@sei.cmu.edu or telephone at +1 412-268-1817.
IMPORTANT NOTICE:
Carnegie Mellon University/Software Engineering Institute offices will be closed for winter break, December 21, 2024-January 1, 2025. SEI course registrations received during this period will be confirmed and enrollment completed upon our return on January 2, 2025.
Course Questions?
Email: | course-info@sei.cmu.edu |
Phone: | 412-268-7388 |
Related Courses
Software Architecture: Principles and Practices - eLearning
ONLINE • Software Architecture, Cyber Workforce Development
This eLearning course introduces participants to essential software architecture concepts in a real-world setting using case studies, examines the technical and organizational issues regarding software architectures, and emphasizes the importance of the business context in which systems are designed.
Learn MoreSoftware Architecture Design and Analysis
Software Architecture, Cyber Workforce Development
This two-day course, based on the books Designing Software Architectures: A Practical Approach and Software Architecture in Practice, 3rd edition, provides in-depth coverage of the concepts needed to design and analyze a software architecture effectively.
Learn MoreSoftware Architecture: Principles and Practices
Software Architecture, Cyber Workforce Development
This 4-day course introduces participants to essential software architecture concepts in a real-world setting using case studies, examines the technical and organizational issues regarding software architectures, and emphasizes the importance of the business context in which systems are designed.
Learn MoreTraining courses provided by the SEI are not academic courses for academic credit toward a degree. Any certificates provided are evidence of the completion of the courses and are not official academic credentials. For more information about SEI training courses, see Registration Terms and Conditions and Confidentiality of Course Records.