CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Architectural Modeling
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
OASIS Reference Model for Service Oriented Architecture 1.0
Software Testing and Quality Assurance
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Capturing the requirements
1 Modeling Software Architectures. 2 Introduction  Architecture is key to reducing development costs –Development focus shifts to coarse-grained elements.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
Software Requirements
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
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.
Course Instructor: Aisha Azeem
Introduction to Modeling
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
Enterprise Architecture
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
Architectural Analysis. Introduction Models help to force the architects to identify issues that might missed or ignored To get useful information precisely.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
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.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
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-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Documenting an Architecture 10 pages, half pictures.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-7 in the text book All lecture material through intro to.
CSCI 578 Software Architectures
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Unified Modeling Language
Lecture Software Process Definition and Management Chapter 3: Descriptive Process Models Dr. Jürgen Münch Fall
CSCI 578 Software Architectures
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
CSCI 578 Software Architectures
Presentation transcript:

CHAPTER 6 - MODELING ANH AU

BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture. Architectural modeling – making the design decisions into real life and documenting those design decisions Definitions

MODELING CONCEPTS

STAKEHOLDER – DRIVEN MODELING What are the most critical decisions that architects have to make? Decisions based on costs and benefits! Architects and other stakeholders must decide: What architectural decisions and concepts should be modeled At what level of detail With how much rigor or formality Benefits of having certain models in certain forms/notations Costs of creating and maintaining these models Architects must balance:

Basic steps in Stakeholder-Driven Modeling (Iterative process) 1. Identify relevant aspects of the software to model 2. Roughly categorize them in terms of importance 3. Identify the goals of modeling for each aspect (bug finding, quality analysis, …) 4. Select the appropriate modeling notation 5. Create the models 6. Use the models in a manner consistent with the goals STAKEHOLDER – DRIVEN MODELING (CONT.) Architecture-centric software development Modeling

BASIC ARCHITECTURAL CONCEPTS Starting Point for architectural modeling Components – encapsulates a subset of the system’s functionality an/or data, and restricts access to them by an explicitly defined interface Connectors – effect and regulate interactions among components Interfaces – the points at which components and connectors interact with the other components and connectors Configurations – a set of specific associations between the component and connectors of a software system’s architecture Rationale – reasoning behind architectural decisions; primarily used for communication info and intent among stakeholders At the most basic level, we can simply model the above elements using graphs. (Basic box and arrows)

ELEMENTS OF THE ARCHITECTURAL STYLE Why it’s useful to model the style that governs how elements have been used : Reduces the confusion in the architecture Reduces the architectural drift/erosion Guides the evolution of the software architecture Can be reused from project to project Elements of the architectural style (in a style model) Inclusion of specific basic elements (e.g., components, connectors, interfaces) : How? Use a modeling approach that supports templates Component, connector, and interface types : How? Many modeling approaches accompanied with a type system but different semantics Constraints on interactions (temporal, topological, specify particular interaction protocols…): How? Use modeling approaches that could support logic Behavioral constraints How? Use modeling approach that uses either logic or other formal models Concurrency constraints (concurrent functions and synchronization of access to the shared resources): How? Use modeling approach that uses formal behavioral models or temporal modeling techniques

STATIC AND DYNAMIC ASPECTS Static aspects do not involve the system’s behavior while it is executing Easier to model since static aspects do not involve changes over time Ex: component/connector topologies, host and network configs,... Dynamic aspects involve the system’s runtime behavior Harder to model since we must deal with how a system behaves over time Ex: behavioral models, interaction models, or data flow models Hard to tell sometimes… Static and dynamic aspects vs static or dynamic models (Properties of the system being modeled vs changes to the models themselves) A model of dynamic aspect of a system – describes system changes as it executes A dynamic models - changes itself

FUNCTIONAL AND NON-FUNCTIONAL ASPECTS Functional aspects – what a system does “The system prints medical records” Generally more concrete, easier to model WHAT’S THE DIFFERENCE, YOU ASK? Non-functional aspects – how a system performs its functions “The system prints medical records quickly and confidentially.” Qualitative and subjective

AMBIGUITY, ACCURACY, AND PRECISION

AMBIGUITY A model is ambiguous if it is open to more than one interpretation. Eliminate me! Why? I make models incomplete  Just kidding. Nice try. It’s impossible to completely eliminate me. It’ll cost too much to try. Hint: Try to allow aspects to be ambiguous with the consent of appropriate stakeholders. They’ll decide when the architecture is “complete enough.” Document me for later! ACCURACY VS PRECISION A model is accurate if it is correct, conforms to fact, or deviates from correctness within acceptable limits. A model is precise if it is sharply exact or delimited. Accuracy > Precision

ACCURACY AND PRECISION EXAMPLE

COMPLEX MODELING MIXED CONTENT AND MULTIPLE VIEWS

VIEWS AND VIEWPOINTS Think of it this way: A viewpoint is a filter for information. A view is what you see when you look at a system through that filter. Common Viewpoints: logical, physical, deployment, concurrency, and behavioral Yes, it is possible to have multiple views from the same viewpoint. Why We’re Important limit presented info to a “easier on the eyes” subset of the architecture display related concepts simultaneously tailored to stakeholder needs used to display the same data at various levels of abstraction

CONSISTENCY AMONG VIEWS What’s the problem? Same/related info shows up in two or more views. Is this info consistent? So when you say consistent… This means if the views’ design decisions that they each contain are compatible And an inconsistency? Occurs when two views assert design decisions that cannot both be simultaneously true Multiple-view inconsistencies: Direct, Refinement, Static Aspects vs Dynamic Aspects, Dynamic Aspects, Functional vs Non-Functional Aspects

EVALUATING MODELING TECHNIQUES Rubric for Modeling Techniques Scope and Purpose Basic Elements Style Static and Dynamic Aspects Dynamic Modeling Non-Functional Aspects Ambiguity Accuracy Precision Viewpoints View Consistency

SPECIFIC MODELING TECHNIQUES

GENERIC TECHNIQUES Flexible but may end up ambiguous tl;dr For Each Natural Language Spoken/written languages such as English ✓ Best way to capture some aspects of architecture ✗ Machines can’t process effectively. Need humans. Informal Graphical PowerPoint-style Modeling Use software to create decorative diagrams of simple shapes and arrows ✓ Good for early prototyping, captures ideas at an abstract, conceptual level ✗ Too simple sometimes, open interpretations of diagrams Unified Modeling Language (UML) A graphical notation with different views that are usually textually annotated ✓ Broad range of diagrams for modeling all kinds of software systems ✗ Purposefully ambiguous to increase its generality

EARLY ARCHITECTURE DESCRIPTION LANGUAGES DARWIN General purpose ADL that specified the structure of systems composed from components that communicated through explicit interfaces. Takeaway: Rigorous, formal ADL Provides well-defined semantics Best for structural modeling RAPIDE Specified dynamic properties of systems composed of components that communicated using events. Takeaway: Steep learning curve Addresses dynamic aspects, provides tool support for simulation “First generation” ADLs WRIGHT Focused on checking component interactions through their interfaces. Takeaway: Steep learning curve Analysis capabilities are powerful but limited

EDUARDO! YOUR TURN… PLEASE