Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

Architecture Representation
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Use-case Modeling.
Chapter 6: Design of Expert Systems
Software Testing and Quality Assurance
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Using Architecture Frameworks
Requirement Engineering – A Roadmap
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright Eliyahu Brutman Programming Techniques Course.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
Software Architecture in Practice
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Domain-Specific Software Engineering Alex Adamec.
Developing Enterprise Architecture
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
Introduction to MDA (Model Driven Architecture) CYT.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
SE: CHAPTER 7 Writing The Program
Chapter 7 System models.
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Models and Knowledge Representation. Outline  What are models? The language of models Models and human comprehension  What are models used for? Systems.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
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.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
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.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
Chapter 6 Guidelines for Modelling. 1. The Modelling Process 1. Modelling as a Transformation Process 2. Basic Modelling Activities 3. Types of Modelling.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
® IBM Software Group © 2009 IBM Corporation Viewpoints and Views in SysML Dr Graham Bleakley
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Software Engineering Using UML, Patterns, and Java,
CV-1: Vision The overall vision for transformational endeavors, which provides a strategic context for the capabilities described and a high-level scope.
Lecture Software Process Definition and Management Chapter 3: Descriptive Process Models Dr. Jürgen Münch Fall
An Introduction to Software Architecture
Presentation transcript:

Creating Architectural Descriptions

Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural Description of Software-Intensive Systems” (IEEE 1471). The standard does not specify what views an architectural description should have, but rather how those views should be specified. Creating an architectural description The architectural description is composed of views that address a set of stakeholders and their concerns, and which contain a model of some aspect of the system. Applying the architectural description The architectural description is necessary to perform an architectural assessment.

Introduction An architectural description is a set of representation models grouped into views. Views represent certain aspects of the system, each addressing a set of related concerns. Views are specified by viewpoints. A viewpoint identifies system stakeholders and the concerns addressed, as well se modeling languages and modeling techniques used to create views.

Standardizing Architectural Descriptions IEEE 1471 Elements Mission System Architecture Stakeholder Environment 1 … * fulfills has an inhabits influences 1 … * has Concern 1 … * is important to 1 … * has Architectural Description 1 described by Rationale provides Viewpoint 1 … * used to cover 1 … * identifies 1 … * selects Viewpoint Library 0 … 1 has source View conforms to Model participates in 1 … * organized by 1 … * is ad-- dressed to 1 … * participates in 1 … * consists of

Standardizing Architectural Descriptions (Cont’d) In the terminology of the IEEE 1471, a system has an architecture which is described by an architectural description. An architectural description is organized by one or more views, each of which consists of one or more models and conforms to a viewpoint. An architectural description selects one or more viewpoints, each of which covers one or more stakeholder concerns. The IEEE 1471 definition of an architectural description is “a collection of products to document an architecture.

Standardizing Architectural Descriptions (Cont’d) By applying the IEEE 1471 you can reduce the semantic gap between client’s requirements and implementation-oriented models. An effective architectural description identifies a target audience (the stakeholders) and their concerns. The stakeholders and their concerns define the scope and purpose for what software developers specify and a clear context in which to write them.

Creating an Architectural Description The initial activities: 1. Identify the architectural description, including version and overview information. 2. Identify stakeholders, their roles, and their architectural concerns. 3. Select viewpoints 4. Specify viewpoints 5. Specify views 6. Record known inconsistencies among the views. 7. Create a rationale for the architecture.

Identify the Architectural Description The IEEE 1471 recommends that the architectural description the following as it relates to all of the architectural description products as a whole: Date of issue and status Issuing organization Change history Summary Scope Context Glossary References

Identify Stakeholders The architectural description serves as the medium for communicating design decisions among stakeholders through the actual models of the description. As a minimum the identified stakeholders must include: Users of the system Acquirers of the system Developers of the system Maintainers of the system

Identify Stakeholders (Cont’d) The minimum concerns identified should include the following: The purpose of the application The appropriateness of the application for use in fulfilling its purpose The feasibility of developing the application The risks of application development and operation to the stakeholders Maintainability, deployment, and evolvability of the application

Select Viewpoints A viewpoint is a specification for the techniques and models of constructing views, i.e., a metamodel. A view is a set of models and diagrams that conform to the viewpoint. Viewpoints specify the rules and practices for creating, representing, and analyzing views. A viewpoint specifies the modeling languages to be used for describing or representing a view. In the language of the IEEE 1471, and architectural description selects one or more viewpoints, which are used to create its views. This selection is based on the stakeholders.

Specify Viewpoints The IEEE standard recommends specifying the following for each viewpoint: The viewpoint name The stakeholders addressed by the viewpoint The concerns addressed by the viewpoint The methodology for constructing a view based on the viewpoint The source of a library viewpoint, if applicable

Viewpoint Rationale According to IEEE 1471 a rationale should be included for each viewpoint selected. It should explain the extent to which the concerns of stakeholders are covered. Quality attributes can be expressed as system concerns if they are defined explicitly. Viewpoints can then be selected to reason about the qualities.

Viewpoints and Systems Knowledge The lowest level of systems knowledge is the knowledge of which dimensions of a system we wish to observe. In systems design these dimensions can be equated with viewpoints specifically designed for organizing and expressing system requirements. The views created based on these viewpoints are referred to as analysis models and represent knowledge at the data level of systems knowledge. Viewpoints and views that represent the solution are at the generative level of system knowledge and are referred to as the design models.

Interdependence of Views No single view can capture or represent a system. All views must be considered together. They are interdependent and a change to one may require changes to others. Isolating certain system aspects can facilitate reasoning about those aspects. Each view should be highly coherent and they should be loosely coupled

Traceability This is the capability to semantically relate design elements or concepts across models and views. In UML a trace is a dependency relationship between two modeling elements in different models that represent the same element or concept by at different semantic levels within and across views. In small-scale design, traces are implicit and are usually inherent in the naming conventions of elements in models. For larger designs automated tools are needed to effectively handle traces.

Methodologies and Viewpoints Methodologies (like OMT) typically specify viewpoints along with the methods for generating the models that form the design views. OMT (Object Modeling Technique) specifies three viewpoints: object, dynamic, and functional. The object view specifies the static structure of the system using object diagrams. The dynamic view specifies the behavioral aspects of the system using event trace diagrams, event flow diagrams, and state diagrams. The functional view specifies the data transformations within the system using data flow diagrams.

Methodologies and Viewpoints (Cont’d) These views are orthogonal, yet interdependent. The object view is the fundamental view and the starting point of design activities. These three view are used for both analysis and design which yields a total of six different viewpoints. Other methodologies have similar concepts of multiple views of a system that represent the problem and solution expressed in modeling notations and specified in diagrams. They bring together many different views and methods for generating those views along with methods for maintaining consistency across views.

Specify Views The architectural description will have one view per selected viewpoint containing the actual models of the system. According to IEEE 1471 a view should include identification and introductory information, a representation of the system and configuration information. An effective architecture model is one that is necessary and sufficient.

Record View Inconsistencies Consistency is desirable in an architectural description but not always achievable. Inconsistencies among the views should be documented. For example, an element in one view may not have an obvious representation in another.

Create Architectural Rationale The IEEE 1471 states that an architectural description should include a rationale for selected architectural concepts. Additionally, the reasons for particular design choices should be described. The rationale should answer the questions that stakeholders may typically ask.

Applying the Architectural Description The amount of information necessary to create an IEEE 1471 compliant architectural description is significant. The goal is not to produce extensive documentation but to guide the development of an effective architectural specification. The IEEE 1471 practice is a pattern or heuristic approach to figuring out what you should actually write down. It takes good judgment on the part of the architect to achieve a balance between what to specify an how much to specify

Creating an Architectural Description for an Existing System As an architect you may need to develop an architectural description for a system already well into development or to modify an existing system. If an architectural description does not exist you may need to reverse-engineer the system. Although design decisions may not have been documented it is important to understand the rationale that was used to take the chosen path to design of the system.

Performing an Architectural Assessment An architectural assessment is important in determining the quality of the architecture. It can help predict the quality of the application that will be developed. If the architectural description is not easy to understand, or inconsistent, or incomplete then an assessment may be difficult.

Specific Pragmatics Implementing an architectural description is difficult because there are too many ways to do it. You should consider an approach that balances the management of information with other factors like readability and searchability. Use automated tools where possible, like bug tracking tools to manage view inconsistencies. The biggest hurdle in creating an architectural description is in getting the recessary people to read it.

Summary The architectural description is a tangible set of products that comprise the architectural models and the information necessary to understand the models. The IEEE 1471 recommended practice may be excessive if followed completely, but it provides a practical set of guidelines that can help the architect to focus on the important goals of producing an architectural description.