Documenting a Software Architecture By Eng. Mohanned M. Dawoud.

Slides:



Advertisements
Similar presentations
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Advertisements

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
Lecture 12: Chapter 22 Topics: UML (Contd.) –Relationship Structural Behavioral –Diagram Structural Behavioral.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Revision Session 1.UML Overview 2.Detailed software design : operation specification, designing for re-use.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Unified Modeling (Part I) Overview of UML & Modeling
© Copyright Eliyahu Brutman Programming Techniques Course.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
2005/05/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
UML - Development Process 1 Software Development Process Using UML (2)
Class, Sequence and UML Model.  Has actors and use cases.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
An Introduction to Software Architecture
Business Analysis and Essential Competencies
Unified Modeling Language, Version 2.0
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
ניתוח מערכות מידע 1 Unified Modeling Language (UML) § § The Unified Modeling Language (UML) is the industry-standard language for: Specifying, Visualizing,
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
4+1 View Model of Software Architecture
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
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 (
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
Basic Characteristics of Object-Oriented Systems
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
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.
UML (Unified Modeling Language)
1 Essential Software Architecture Documenting a Software Architecture.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Analysis Classes Unit 5.
UML Diagrams By Daniel Damaris Novarianto S..
Evolution of UML.
Object-Oriented Analysis and Design
Unified Modeling Language
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
UML: Unified modeling language
Unified Modeling Language
An Introduction to Software Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Documenting a Software Architecture By Eng. Mohanned M. Dawoud

 Architecture documentation is a thorny issue  Commonly there is no documentation covering the architecture.  If it is, it’s out-of-date, inappropriate and basically not very useful.  Also projects that have masses of architecture related information  Sometimes invaluable, but often it’s out-of-date, inappropriate and not very useful!

 Others can understand/evaluate the design.  We can understand the design after a period of time.  Others in the project team and development organization can learn from the architecture.  We can do analysis on the design, perhaps to assess its likely performance, or to generate standard metrics.

 No universally accepted architecture documentation standard.  An architecture can be complex, and documenting it in a comprehensible manner is time consuming and non-trivial.  An architecture has many possible views. Documenting all the potentially useful ones is time consuming and expensive.  An architecture design often evolves Keeping the architecture documents current is often forgotten, especially with time and schedule pressures in a project.

 Project complexity  A small project may only need a ‘marketecture’  Project longevity  One-off stop gap software?  Strategic, long-term, will evolve?  Needs of stakeholders  Small team, a whiteboard might be ok  Large, dislocated team needs more  Integrators? Testers? Programmers?  Need to spend documentation dollars/euros wisely on high value products

 In larger teams, and especially when groups are not co- located in the same offices or building, the architecture documentation becomes of vital importance for describing design elements such as:  Component interfaces;  Subsystems constraints;  Test scenarios;  third party component purchasing decisions;  Team structure and schedule dependencies;  External services to be offered by the application.

 UML is a powerful way to document an architecture  Provides a relatively formal, unambiguous description  New features in UML 2.0 appropriate for architectures  Good tools available, some free  Can be used to depict various structural/behavioral architecture views

 The structure diagrams define the static architecture of a model, and specifically are:  Class diagrams: Show the classes in the system and their relationships.  Component diagrams: Describe the relationship between components with well-defined interfaces. Components typically comprise multiple classes.  Package diagrams: Divide the model into groups of elements and describe the dependencies between them at a high level.

 Deployment diagrams: Show how components and other software artifacts like processes are distributed to physical hardware.  Object diagrams: Depict how objects are related and used at run-time. These are often called instance diagrams.  Composite Structure diagrams: Show the internal structure of classes or components in terms of their composed objects and their relationships.

 Behavior diagrams show the interactions and state changes that occur as elements in the model execute:  Activity diagrams: Similar to flow charts, and used for defining program logic and business processes.  Communication diagrams: Called collaboration diagrams in UML 1.x, they depict the sequence of calls between objects at run-time.  Sequence diagrams: Often called swim-lane diagrams after their vertical timelines, they show the sequence of messages exchanged between objects.

 State Machine diagrams: Describe the internals of an object, showing its states and events, and conditions that cause state transitions.  Interaction Overview diagrams: These are similar to activity diagrams, but can include other UML interaction diagrams as well as activities. They are intended to show control flow across a number of simpler scenarios.  Timing diagrams: These essentially combine sequence and state diagrams to describe an object's various states over time and the messages that alter the object’s state.  Use Case diagrams: These capture interactions between the system and its environment, including users and other systems.

A UML component diagram for the order processing example

Classes for the order processing component

Sequence diagram for the order processing system

UML Deployment diagram for the order processing system

Representing interfaces in the order processing example

Using ports in the order processing example Internal design of the OrderProcessing component

 Documentation is easier if there’s a template to use  Reduces start-up time for projects by providing ready-made document structures  familiarity gained with the document structure aids in the efficient capture of project design details.  help with the training of new staff

Architecture Documentation Template Project Name: XXX 1Project Context 2Architecture Requirements 2.1Overview of Key Objectives 2.2Architecture Use Cases 2.3Stakeholder Architectural Requirements 2.4Constraints 2.5Non-functional Requirements 2.6Risks 3Solution 3.1Relevant Architectural Patterns 3.2Architecture Overview 3.3Structural Views 3.4 Behavioral Views 3.5Implementation Issues 4Architecture Analysis 4.1 Scenario analysis 4.2Risks

 Some documentation is nearly always a good idea  Trick is to produce ‘just enough’ and no more  requires upfront planning and thinking  Commitment to keeps docs current  UML 2.0 makes architecture documentation easier  Some good UML 2.0 tools, try ‘em out.