Documenting Software Architectures

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software Quality Assurance Plan
Systems Analysis and Design in a Changing World, 6th Edition
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
The Architecture Design Process
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Software Architecture in Practice
1 Software Requirements Specification Lecture 14.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
The Vision Document 1. Importance of a Vision Document  It describes the application in general terms, including descriptions of the target market, the.
Enterprise Architecture
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
The Software Development Life Cycle: An Overview
Lesson 7 Guide for Software Design Description (SDD)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Project Management : Techniques and Tools (60-499) Fall 2014 / Winter 2015.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
[ §5 : 1 ] 5. Summary of Requirements Products 5.1 Requirements Definition Document 5.2 Software Requirements Specification.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
 A software application is like a city  Modeling = Architecture  OOP = Civil Engineering  UML Classes = Blueprints of Buildings  UML is a common.
An Introduction to Software Engineering. Communication Systems.
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Systems Analysis and Design in a Changing World, 6th Edition
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Systems Development Life Cycle
PRJ566 Project Planning & Management Software Architecture.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Requirements Analysis
CS223: Software Engineering Lecture 13: Software Architecture.
Documenting an Architecture 10 pages, half pictures.
Systems Analysis and Design in a Changing World, 6th Edition
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
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.
 System Requirement Specification and System Planning.
Chapter 4 – Requirements Engineering
Chapter 18: Documenting Software Architectures
The Systems Engineering Context
IEEE Std 1074: Standard for Software Lifecycle
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Documenting an Architecture
Project Management Process Groups
An Introduction to Software Architecture
What is an Architecture?
Requirements Document
Software Architecture
UML Design for an Automated Registration System
Presentation transcript:

Documenting Software Architectures

Outline Uses of documentations Views Categorizes of views Stakeholder needs Seven rules for document

Introduction The software architecture plays a central role in system development. It is a blueprint for both the system and the project developing it. It defines work assignments. It is the primary carrier of system qualities.

Uses of Architectural Documentation A perfect architecture is useless if no one understands it or if key stakeholders misunderstand it Documentation is a crucial part of producing a good architecture Document should be sufficiently abstract to be quickly understood by new employees sufficiently detailed to serve as a blueprint for analysis

Uses of Architectural Documentation Architecture documentation has three main uses Architecture serves as a means of education Architecture serves as a primary vehicle for communication among stakeholders Architecture serves as the basis for system analysis and construction The educational use consists of introducing people to the system. The people may be new members of the team, external analysts, or even a new architect. In many cases, the “new” person is the customer to whom you’re showing your solution for the first time, a presentation you hope will result in funding or go-ahead approval.

Who Use the Architectural Documentation Role Description Uses Analyst Responsible for analyzing the architecture to make sure it meets certain critical quality attribute requirements. Analyzing satisfaction of quality attribute requirements of the system based on its architecture. Architect Responsible for the development of the architecture and its documentation. Negotiating and making trade-offs among competing requirements and design approaches. Business manager Responsible for the functioning of the business/organizational entity that owns the system. Understanding the ability of the architecture to meet business goals. Customer Pays for the system and ensures its delivery. Assuring required functionality and quality will be delivered, gauging progress, estimating cost, and setting expectations for what will be delivered, when, and for how much.

Who Use the Architectural Documentation Role Description Uses Deployer Responsible for accepting the completed system from the development effort and deploying it, making it operational Understanding the architectural elements that are delivered and to be installed at the customer’s or end user’s site, and their overall responsibility toward system function. Designer Responsible for systems and/or software design Understanding the architectural elements that are designed Implementer Responsible for the development of specific elements according to designs, requirements, and the architecture. Understanding inviolable constraints and exploitable freedoms on development activities. Integrator Responsible for taking individual components and integrating them, according to the architecture and system designs. Producing integration plans and procedures, and locating the source of integration failures.

Notations for Architecture Documentation Informal notations Semiformal notations Formal notations

Views A view is a representation of a coherent set of architectural elements, as written by and read by system stakeholders. There are many views for an architecture. Documenting an architecture is a matter of documenting the relevant views and then adding documentation that applies to more than one view.

Categories of View Styles Module views Component-and-connector (C&C) views Allocation views

Module Views A module is an implementation unit that provides a coherent set of responsibilities (examples: classes, layers,…) It is unlikely that the documentation of any software architecture can be complete without at least one module view

Module Views

Module View Styles Decomposition Uses Generalization Layers Aspects Data model

Notations for Module Views Informal notations Dependency Structure Matrix UML Entity-Relationship Diagram

Dependency Structure Matrix

Module Notations in UML

Module Relations in UML

Component-and-connector Views Component-and-connector views show elements that have some runtime presence such as processes, objects, clients, and servers

Component-and-connector Views

C&C View Styles

Notations for C&C Views Informal notations Formal notations (i.e. ADLs - Architecture Description Languages) UML

C&C Views in UML

Allocation Views

Allocation View Styles allo Deployment Install Work assignment

Notations for Allocation Views Informal notations Formal notations UML

Informal notations

UML Notations

Documenting Architectures Documenting an architecture is a matter of documenting the relevant views and then adding documentation that applies to more than one view. The principle for documenting an architecture Choosing the relevant views Documenting a view Documenting information that applies to more than one view

Choosing the Views Determine which views are required, when to create them, and how much detail to include Information needed What people, and with what skills, are available With which standards you have to comply What budget is on hand What the schedule is What the information needs of the important stakeholders are

Summary of needs

Documenting a View

Documenting a View A primary presentation, usually graphical, that depicts the primary elements and relations of the view An element catalog that explains and defines the elements shown in the view and lists their properties A context diagram shows how the system or portion of the system depicted in this view relates to its environment A variability guide explaining any variation points that are a part of the architecture shown in this view Rationale explains why the design is as it is

Documentation across views An introduction to the entire package, including a reader’s guide that helps a stakeholder find a desired piece of information quickly Information describing how the views relate to one another, and to the system as a whole Constraints and rationale for the overall architecture

Documentation across views

Seven Rules for Sound Documentation Write documentation from the reader’s point of view Find out who your readers are, what they know, and what they expect of the document. Avoid unnecessary insider jargon Avoid unnecessary repetition Avoid ambiguity (explain your notation) Use a standard organization It helps the reader navigate the document and find specific information quickly It also helps the document writer plan and organize the contents. It reveals what work remains to be done by the number of sections labeled “TBD”

Seven Rules for Sound Documentation Record rationale Keep documentation current but not too current Review documentation for fitness of purpose

Summary Uses of documentations Views Categorizes of views Stakeholder needs Seven rules for document