1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Object-Oriented Analysis and Design
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
The Architecture Design Process
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Unified Modeling (Part I) Overview of UML & Modeling
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
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?
What is Software Architecture?
Documenting Software Architectures
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
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
Software Requirements Engineering CSE 305 Lecture-2.
Unified Modeling Language, Version 2.0
Organizing Your Information
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
[ §5 : 1 ] 5. Summary of Requirements Products 5.1 Requirements Definition Document 5.2 Software Requirements Specification.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
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.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
TAL7011 – Lecture 4 UML for Architecture Modeling.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
1 Quality Attributes of Requirements Documents Lecture # 25.
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.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Basic Concepts and Definitions
CS223: Software Engineering Lecture 13: Software Architecture.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Documenting an Architecture 10 pages, half pictures.
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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.
Introduction to OOAD and UML
Software Architecture Lecture 3
Chapter 4 – Requirements Engineering
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Software Architecture Lecture 3
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Documenting an Architecture
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Use Case Analysis – continued
Software Architecture Lecture 3
Presentation transcript:

1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University

Outline 1. Uses of Architectural Documentation 2. Views 3. Choosing the Relevant Views 4. Documenting a View 5. Documentation Across Views 6. Unified Modeling Language (UML) 7. Summary 2

Documenting Software Architectures Lecture: 8-9 3

1. Uses of Architectural Documentation Documentation is not a case of "one size fits all“  It should be sufficiently abstract (new employees) and sufficiently detailed (analysts)  Architectural documentation would be different for various stakeholders; security analysts, implementer and new hire Architecture documentation is both prescriptive and descriptive Different stakeholders for the documentation have different needs  different kinds of information, different levels of information, and different treatments of information 4

Uses of Architectural Documentation (Continue…) One architectural document should not be expected to give same understanding to every consumer  Produce different documents for different stakeholders A fundamental rule for architecture documentation is to write from the point of view of the reader  Understanding the stakeholders will help organizing it and make it accessible to and usable for them Architecture documentation is a key means for educating people who need an overview  new developers, funding sponsors, visitors to the project, and above all architect (same or replacement) 5

2. Views The most important concept associated with software architecture documentation is the view A structure is the set of elements itself, as they exist in software or hardware A view is a representation of a coherent set of architectural elements, as written by and read by system stakeholders A software architecture is a complex entity that cannot be described in a simple one-dimensional fashion 6

Views (Continue…) Structures like modules decomposition, uses, process, concurrency, work assignment and so on  Which of these views is the architecture? None of them & Which views convey the architecture? All of them The problem of software architecture documentation can be broken into more tractable parts  Choosing the relevant views  Documenting a view  Documenting information that applies to more than one view 7

3. Choosing the Relevant Views What are the relevant views?  Need to know the stakeholders and the uses they plan to make of the documentation The purposes an architecture can serve are  A mission statement for implementers  The starting point for system understanding and asset recovery  The blueprint for project planning, and so forth Need to understand the desired purpose of architecture for every stakeholder and produce documentation to achieve that purpose 8

Choosing the Relevant Views (Continue…) The quality attributes of concern will affect the choice of what views to document  e.g. deployment view will help reasoning about the system's performance and reliability Different views support different goals and uses  Different views will highlight different system elements and/or relationships The table in next slide shows a representative population of stakeholders and the kind of views they tend to find useful 9

Choosing the Relevant Views (Continue…) 10

Choosing the Relevant Views (Continue…) Three step procedure for choosing the views for a given project; 1. Produce a candidate view list 2. Combine views 3. Prioritize the views 11

4. Documenting a View There is no industry standard template for documenting a view The seven part standard organization that is explained ahead has worked well in practice Whatever sections is choosen to include, make sure to have a standard organization;  Allocating specific information to specific sections will help the documentation writer attack the task and recognize completion &  it will help documentation reader quickly find information of interest at the moment and skip everything else 12

Documenting a View (Continue…) 1. Primary Presentation  It shows the elements and the relationships among them  In some circumstances all the elements may not be shown in primary presentation Include elements and relations that show up in normal operation and omit the error handling  The primary presentation can be in textual, graphical or tabular form 2. Element Catalog  It details the elements and relations Both that are depicted and are not depicted in the primary presentation 13

Documenting a View (Continue…) 3. Context Diagram  It shows how the system depicted in the view relates to its environment e.g. in a component-and-connector view we show which component and connectors interact with external components and connectors, via which interfaces and protocols 4. Variability Guide  It shows how to exercise any variation points  Sometimes decisions are left unbound until a later stage The options among which a choice is to be made  The various versions or parameterizations of modules The binding time of the option  design time, build time, OR runtime 14

Documenting a View (Continue…) 5. Architecture Background  It explain why the design is as it is and to provide a convincing argument that it is sound Rationale explaining why the decisions reflected in the view were made and why alternatives were rejected Analysis Results justify the design or explain what would have to change in the face of a modification. Assumptions reflected in the design 6. Glossary of Terms  Defines terms used in the views, with a brief description 7. Other Information  Authorship, change histories, references to SRS etc. 15

Documenting a View (Continue…) Documenting Behavior  Views present structural information about the system  However, structural information is not sufficient to allow reasoning about some system properties Reasoning about deadlock depends on understanding the sequence of interactions among the elements  Behavior descriptions add information that reveals the ordering of interactions among the elements, opportunities for concurrency, and time dependencies of interactions  In UML, sequence diagrams and statecharts are examples of behavioral descriptions 16

Documenting a View (Continue…) Statecharts 17

Documenting a View (Continue…) Sequence Diagrams 18

Documenting a View (Continue…) Documenting Interfaces  An interface is a boundary across which two independent entities meet and interact or communicate with each other  Documenting an interface consists of naming and identifying it and documenting its syntax and semantics  The first two parts constitute an interface's "signature."  When an interface's resources are invokable programs, the signature names the programs and defines their parameters  Parameters are defined by their order, data type, and (sometimes) whether or not their value is changed by the program 19

Documenting a View (Continue…) Documenting Interfaces (Continue…)  Documenting an interface is a matter of striking a balance between disclosing too little information and disclosing too much Too little information will prevent developers from successfully interacting with the element Too much will make future changes to the system more difficult and widespread and make the interface too complicated for people to understand 20

Documenting a View (Continue…) Template for Documenting Interfaces 1. Interface Identity When an element has multiple interfaces, naming them will help identifying the individual interfaces 2. Resources Provided The heart of an interface document is the resources that the element provides. Define them by giving their syntax, their semantics (what happens when they are used), and any restrictions on their usage 3. Data Types Definitions If any interface resources employ a data type other than one provided by the underlying programming language, the architect needs to communicate the definition of that data type 21

Documenting a View (Continue…) Template for Documenting Interfaces (Continue…) 4. Exceptions Definitions These describe exceptions that can be raised by the resources on the interface 5. Variability Provided If the interface allows the element to be configured in some way then these configuration parameters and how they affect the semantics of the interface must be documented 6. Quality Attribute Characteristics The architect needs to document what quality attribute characteristics (such as performance or reliability) the interface makes known to the element's users 22

Documenting a View (Continue…) Template for Documenting Interfaces (Continue…) 7. Element Requirements What the element requires may be specific, named resources provided by other elements 8. Rationale and Design Issues As with rationale for the architecture, the architect should record the reasons for an element's interface design 9. Usage Guide If interacting with the element via its interface is complex, the interface documentation should include a static behavioral model such as a statechart, or examples of carrying out specific interactions in the form of sequence diagrams 23

5. Documentation Across Views Cross-view documentation consists of just three major aspects;  How How the documentation is laid out and organized so that a stakeholder of the architecture can find the required information This part consists of a view catalog and a view template.  What The purpose of the system; the way the views are related to each other; a list of elements and where they appear; and a glossary that applies to the entire architecture  Why Why the architecture is like this, external constraints, rationale for coarse-grained large-scale decisions 24

Reading Assignment Unified Modeling Language (UML) 25

26 Summary Any Questions?