Documenting SW Architecture

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

By Philippe Kruchten Rational Software
Outline About author. The problem that discussed in the article.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Unified Modeling (Part I) Overview of UML & Modeling
Using Architecture Frameworks
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Architecture in Practice
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
A Survey of Software Architecture Viewpoint Models Nicholas May
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Documenting Software Architectures
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
An Introduction to Software Architecture
Software Requirements Engineering CSE 305 Lecture-2.
Architecting Web Services Unit – II – PART - III.
Architectural Blueprints The “4+1” View Model of Software Architecture
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
4+1 View Model of Software Architecture
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
GRASP – Designing Objects with Responsibilities
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Architecting Web Services
System Design and Modeling
Architecting Web Services
OO Methodology OO Architecture.
4+1 View Model of Software Architecture
Recall The Team Skills Analyzing the Problem (with 5 steps)
Chapter 13 Logical Architecture.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Analysis models and design models
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Decomposing the System
Software Architecture
Software Architecture
Chapter 5 Architectural Design.
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Design.
Software Development Process Using UML Recap
From Use Cases to Implementation
Presentation transcript:

Documenting SW Architecture Ran Levy ran.levy@nsn.com

Why documenting the architecture? Content Why documenting the architecture? How to document the architecture? Preserving quality attributes using architecture document. Summary

Why Documenting the Architecture? Architecture is what makes the sets of parts work together as a successful whole; architecture documentation is what tells developers how to make it so.

Why documenting the architecture? Education. Basis for architecture analysis. Manifests the earliest set of decisions: Constraints on implementation. Dictates organizational structure. Supports SW maintainability: Understanding effect of changes.

Why Documenting the Architecture? Communication vehicle between stakeholders. Self SW Arch Document Requirements Eng. Managers Testers Designers & Architects Implementors

Content Why documenting the architecture? How to document the architecture? Preserving quality attributes using architecture document. Summary

Documenting the Arch - Preface You are NOT DONE when the document is done….

Documenting the Arch – The 7 Rules Documentation should be written from the point of view of the reader, not the writer. Avoid unnecessary repetition. Avoid ambiguity. Use a standard organization.

Documenting the Arch – The 7 Rules Con’t Record rationale (and considered alternatives). Important for tracking and remembering decisions. Prevents endless re-discussions about alternatives. Keep documentation current but not too current. Early review of the documentation.

Documenting the Arch IEEE 1471 - Recommended Practice for Architectural Description of Architectural Description of Software-Intensive Systems. “A Template for Documenting Software and Firmware Architectures” - HP, 2000.

Documenting the Arch – Views Key Point: Different stakeholders have different needs. Perhaps the most important concept associated with software architecture documentation is that of the view.

Documenting the Arch – Views Philippe Kruchten – “4+1” approach to architecture documentation: Logical view Process view Development view Physical/Deployment view Plus 1: binds all views together its end users. Designers decompose the system into a set of key abstractions, taken mainly from the problem domain. These abstractions are objects or object classes that exploit the principles of abstraction, encapsulation, and inheritance. In addition to aiding functional analysis, decomposition identifies mechanisms and design elements that are common across the system. • The process view addresses concurrency and distribution, system integrity, and fault-tolerance. The process view also specifies which thread of control executes each operation of each class identified in the logical view. The process view can be seen as a set of independently executing logical networks of communicating programs (“processes”) that are distributed across a set of hardware resources, which in turn are connected by a bus or local area network or wide area network. • The development view focuses on the organization of the actual software modules in the software-development environment. The units of this view are small chunks of software—program libraries or subsystems— that can be developed by one or more developers. The development view supports the allocation of requirements and work to teams, and supports cost evaluation, planning, monitoring of project progress, and reasoning about software reuse, portability, and security. • The physical view takes into account the system's requirements such as system availability, reliability (fault-tolerance), performance (throughput), and scalability. This view maps the various elements identified in the logical, process, and development views—networks, processes, tasks, and objects—onto the processing nodes.

Documenting the Arch – Logical View Primarily supports the functional requirements - what the system should provide in terms of services to its users. Designers decompose the system into a set of key abstractions – objects and relationships between them. In addition to aiding functional analysis, decomposition identifies mechanisms and design elements that are common across the system.

Documenting the Arch – Logical View Logical view is expressed by: Architecture styles (e.g. Layered, MVC, …) Components and interfaces description: CRC-R cards Object, class, package and components diagrams. For each section document the rationale: Why this architecture style was chosen? Why this component is not allowed to interact others? Why the interface is based on messages? …

Documenting the Arch – Logical View Example – CRC-R card Component Management I/F Responsibilities Provide support for management operations via SNMP and CLI. It provides Management Agents functionality together with unified management FW for allowing general way of accessing specific Network Services components. Provided Interfaces Configure node. Monitor node's configuration. Get node's statuses and statistics. Perform node's maintenance operations. Notify NE events to be delegated to the operator. Get response from NS on required operation. Rationale Management I/F components allow access of the operator to the NE for management operations. Unified Management FW allows single interface usage for accessing Network Service that will serve all Management Interfaces and allow extension to additional interfaces in the future. Collaborators Network Services Platform Services Components Operator Notes Quality Attributes Usability: Management I/F should be user friendly, include guideline/help during each operation and provide the ability to configure and to display the full relevant and mandatory values in one command. Management interfaces should allow range configurations. Portability: Separation of Management I/F from the NS via Management FW. Issues All supported Management Interfaces should be passed through Management FW, which allow single management interface for a Network Service which does not depend on type of the called management interface and should not be changed in case when additional management interface is added.

Documenting the Arch – Process View Maps logical view into execution unit. Takes into account quality attributes such as performance and availability. Addresses concurrency and distribution, system integrity, and fault-tolerance. Expressed by: Class diagrams (using thread and process annotations). Sequence Diagrams Communication Diagrams Activity Diagrams Timing Diagrams Interaction Overview Diagrams

Documenting the Arch – Process View Examples

Documenting the Arch – Development View Focuses on the organization of the actual software modules in the software-development environment. Help managers in work assignments and teams establishment. Expressed by: Components diagrams. Implementation mapping description.

Documenting the Arch – Development View Example Implementation Rules: For each logical component a directory is created that contains all code files belonging to that Header files should be places under pub directory. Implementation files under src directory. For each class (except inner class) a separate file is created.

Documenting the Arch – Physical/Deployment View Maps the various elements identified in the logical, process, and development views—networks, processes, tasks, and objects—onto the processing nodes. Focuses on distribution, communication and provisioning. Accommodates quality attributes such as availability, reliability, performance, throughput and scalability. Expressed by deployment diagrams.

Documenting the Arch – Physical/Deployment View Examples

Documenting the Arch – Scenarios This view represents the scenarios that tie the four views together. The scenarios describe sequences of interactions between objects, and between processes. They are used to identify architectural elements and to illustrate and validate the architecture design. They also serve as a starting point for tests of an architecture prototype. Expressed by use cases diagram.

Documenting the Arch – Scenarios Important scenarios to document: Init & upgrade. Scale up and down. Handling events with hard deadlines. Fault handling.

Documenting the Arch – Scenarios Example – System Initialization

Preserving quality attributes using architecture document. Content Why documenting the architecture? How to document the architecture? Preserving quality attributes using architecture document. Summary

Preserving Quality Attributes Be explicit In ALL relevant sections. Quality attributes requirements section: List all relevant attributes, detail them and specify how the architecture support each one. Availability: System shall support 99.999% up time. No data plane affect due to system failures. … The architecture of the system supports security by the following means: Hitless upgrade Support for specific module replacement without downtime.

Preserving Quality Attributes Logical View: Define the “rules” of the used architecture style. E.g.: Strict layered architecture to support maintainability, extensibility. Add to the CRC-R card quality attributes. E.g.: Logger component must not exceed 5% of CPU consumption. Document collaborators

Preserving Quality Attributes Process View: Add constraints to diagrams Time constraints, components that must be used as part of the sequence (e.g. Authentication), parallel execution… Use timing diagrams when needed.

Preserving Quality Attributes Scenarios: Documenting scenarios are a major key for many quality attributes. Do NOT skip this section: Upgrade Flow – supports availability and maintainability. Fault Management flows – supports availability, fault localization, security. Events handling flows – supports performance, scalability.

Content Why documenting the architecture? How to document the architecture? Preserving quality attributes using architecture document. Summary

Summary Documenting the architecture is very important as mean for communicating the architecture and translating the architects ideas into practice. Architecture documentation must be described by several views, that all together provides the complete view of the architecture. The architecture document is major key for preserving the quality attributes of the system.

References “Software Architecture in Practice”, Bass, Clements and Kazman, Addison Wesley, 2003. “Documenting Software Architectures”, Clements, Bachman, et al., Addison Wesley, 2001. “A Template for Documenting Software and Firmware Architectures”, Ogush, Coleman et al., Hewlett-Packard Product Generation Solutions, 2000. Wikipedia “Software Architecture - Why what and how”, Alexander Katz.

Thank You