Software Architecture

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
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.
Use Case Analysis – continued
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Siemens’ 4 View Model (props to My-An Nguyen for giving me her 344 notes on which this lecture is based)
What is Software Architecture?
Chapter 10 Architectural Design
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
An Introduction to Software Architecture
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
OOAD Using UML, v. 3.0 Architectural Design, p. 1 Copyright © 1997 by Rational Software Corporation R Architectural Design.
Modelling Class T16: Conceptual Modelling – Architecture Image from
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
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.
TAL7011 – Lecture 4 UML for Architecture Modeling.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 9: Describe the Run-time Architecture.
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.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
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.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Deployment Diagram.
Chapter 7: Modifiability
UML Diagrams: Class Diagrams The Static Analysis Model
UML Diagrams By Daniel Damaris Novarianto S..
Deployment Diagram.
Main issues: • What do we want to build • How do we write this down
Operating Systems (CS 340 D)
SOFTWARE DESIGN AND ARCHITECTURE
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
UML Diagrams Jung Woo.
Chapter 25: Architecture and Product Lines
Online Shopping APP.
Business System Development
Operating Systems (CS 340 D)
Recall The Team Skills Analyzing the Problem (with 5 steps)
Software Architecture
Chapter 20 Object-Oriented Analysis and Design
Code Architecture View
Appendix A Object-Oriented Analysis and Design
Analysis models and design models
Software Architecture
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Design Yaodong Bi.
Design.
Software Development Process Using UML Recap
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
From Use Cases to Implementation
Presentation transcript:

Software Architecture School of Computer Science & Engineering • School of Software, UESTC Jianchuan Xing E-mail:xingjianchuan@sina.com 2019/4/23 Software Architecture

Chapter 6 Execution Architecture View 2019/4/23 Software Architecture

Software Architecture Outline 6.1 Design Activities for the Execution Architecture View 6.2 Design of Execution Architecture View for IS2000 6.3 Summary of Execution Architecture View 2019/4/23 Software Architecture

6.1 Design Activities for the Execution Architecture View The design tasks for the execution view are global analysis, runtime entities, communication paths, configuration, and resource allocation (Figure 6.1). Global analysis is the first task, but throughout the design you can expect some feedback from the later tasks. Similarly, resource allocation is the last task, but decisions made there may cause you to revisit earlier tasks. 2019/4/23 Software Architecture

6.1 Design Activities for the Execution Architecture View (Cont.) The middle tasks, the central design tasks, are much more tightly coupled, and one of these is an ongoing global evaluation. Figure 6.1 shows the design tasks of the execution view and their relations to other design tasks. 2019/4/23 Software Architecture

6.1 Design Activities for the Execution Architecture View (Cont.) Figure 6.1. Design tasks of the execution architecture view 2019/4/23 Software Architecture

Software Architecture 6.1.1 Global Analysis Figure 6.2. Meta-model for platform elements. DLL=dynamic link library. 2019/4/23 Software Architecture

Software Architecture 6.1.2 Central Design Tasks Runtime Entities During the global analysis task you identified the platform elements available on the software platform. Now you must decide how to map conceptual components and modules to these platform elements. Ultimately the modules will be assigned to runtime entities. Figure 6.3 shows the meta-model for a runtime entity, which can have one or more modules assigned to it, whereas a module can be assigned to more than one runtime entity. 2019/4/23 Software Architecture

6.1.2 Central Design Tasks (Cont.) Figure 6.3. Meta-model for runtime entities 2019/4/23 Software Architecture

6.1.2 Central Design Tasks (Cont.) Communication Paths In addition to defining the runtime entities, you need to identify the expected and/or allowable communication paths between them, including the mechanisms and resources used for that communication. Figure 6.4 shows the meta-model for a communication path, which uses a communication mechanism such as interprocess communication (IPC), RPC, the Distributed Component Object Model (DCOM), and so on. A communication mechanism may use platform elements such mailboxes, queues, buffers, and files. 2019/4/23 Software Architecture

6.1.2 Central Design Tasks (Cont.) Figure 6.4. Meta-model for communication paths. DCOM=Distributed Component Object Model; IPC=interprocess communication; RPC=remote procedure call. 2019/4/23 Software Architecture

6.1.2 Central Design Tasks (Cont.) Execution Configuration At this point, the building blocks for the execution view are complete. The next step is to describe the system’s runtime topology by characterizing the instances of the runtime entities and how they are interconnected. 2019/4/23 Software Architecture

6.1.2 Central Design Tasks (Cont.) Global Evaluation During the central design tasks you base your decisions on input from multiple sources. The global analysis gives you strategies for fulfilling performance and dependability requirements. 2019/4/23 Software Architecture

6.1.3 Final Design Task: Resource Allocation The remaining task is resource allocation. Here you take the runtime instances and budgets defined in the configuration task, allocate them to particular hardware devices, and assign specific values to the budgeted attributes (for example, by setting process priorities). 2019/4/23 Software Architecture

6.2 Design of Execution Architecture View for IS2000 Now that we have summarized the design tasks, let us return to the example system to show how to design the execution view for IS2000. 2019/4/23 Software Architecture

Software Architecture 6.2.1 Global Analysis The global analysis we’ve done so far hasn’t produced many strategies that are directly applicable to the execution view. The few relevant strategies are the following: Issue: Skill Deficiencies Strategy 1: Avoid of multiple threads. Strategy 2: Encapsulate multiprocess support facilities. Add a new issue: High Throughput. Strategy 1: Map independent threads of control to process. Strategy 2: Use an additional CPU. Related Strategies (issue, Deficiencies): Encapsulate multiprocess support facilities Avoid use of multiple threads 2019/4/23 Software Architecture

6.2.1 Global Analysis (Cont.) Issue: Real-Time Acquisition Performance Strategies: Strategy 1: Separate time-critical components from nontime-critical components. Add: Strategy 2: Develop guidelines for module behavior. Strategy 3: Use flexible allocation of modules to processes. Strategy 4: Use rate monotonic analysis (RMA) to predict performance. Related Strategies Separate components and modules along dimensions of concern (issue, Skill Deficiencies) Encapsulate multiprocess support facilities (issue, Easy Addition and Removal of Features). 2019/4/23 Software Architecture

6.2.1 Global Analysis (Cont.) Add new issue: Resource Limitation Solution: Use a flexible approach for the usage of limited resources. Strategy: Limit the number of active processes. 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration Begin Defining Runtime Entities 2019/4/23 Software Architecture

Figure 6.5 Overview of execution architecture view 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.5 Overview of execution architecture view 2019/4/23 Software Architecture

Figure 6.6 Modules in the imaging subsystem (from the module view) 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.6 Modules in the imaging subsystem (from the module view) 2019/4/23 Software Architecture

Figure 6.7 Initial processes for the imaging subsystem 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.7 Initial processes for the imaging subsystem 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Pipeline Manager 2019/4/23 Software Architecture

Figure 6.8 Revision to the module view: MPipelineMgr 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.8 Revision to the module view: MPipelineMgr 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Communication Paths for the Pipeline Manager 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.9 Processes and communication paths for the pipeline manager. IPC=interprocess communication; r/w=read/write 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Assigning Multiplicities to the Execution Configuration 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.10 Adding multiplicities to the execution configuration for IS2000 2019/4/23 Software Architecture

Figure 6.11 Creation of an image pipeline 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.11 Creation of an image pipeline 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Packetizer 2019/4/23 Software Architecture

Figure 6.12 Revision to the module view: MPacketizer 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.12 Revision to the module view: MPacketizer 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.13 Final execution configuration for the imaging subsystem of IS2000. IPC=interprocess communication; r/w=read/write. 2019/4/23 Software Architecture

Software Architecture 6.2.2 Central Design Tasks: Runtime Entities, Communication Paths, and Configuration (Cont.) Figure 6.14 An example of EPacketizer’s and EPipelineMgr’s interaction. DMA=direct memory acess. 2019/4/23 Software Architecture

6.2.3 Final Design: Resource Allocation Figure 6.15 Overview of execution architecture view with two CPUs 2019/4/23 Software Architecture

6.2.3 Final Design: Resource Allocation (Cont.) Figure 6.16 Mapping the execution configuration to processors. RPC=remote procedure call; IPC=interprocess communication. 2019/4/23 Software Architecture

6.2.4 Design Summary for IS2000 Execution View When the design of the execution view is finished, we want to have made the implementation decision for the dynamic aspects of the system, building in flexibility when we think it is needed. We identified the runtime elements of the software platform, such as processes and threads. We related the conceptual components and modules to these runtime elements. Using a one-to-one mapping to get an approximation of the process boundaries Refining the process boundaries as the design progressed. Table 6.2 summarizes the design decisions discussed in this chapter. 2019/4/23 Software Architecture

6.3 Summary of Execution Architecture View The execution view describe the mapping of functionality to physical resources, and the runtime characteristics of the system. Table 6.3 summarizes the elements, relations, and artifacts to be used in this view. As in the other views, the elements and relations are the building blocks for the architecture view, and the artifacts are used to document or to describe the architecture. 2019/4/23 Software Architecture

6.3 Summary of Execution Architecture View (Cont.) Element UML Element New Stereotype Notation Attributes Associated Behavior Runtime entity Process -- Host type, replication, resource allocation ---- Thread Class or active class <<shared data>>,<<task>>, etc. Communication path Association ------ Communication protocol Table 6.3. Summary of Execution Architecture View 2019/4/23 Software Architecture

6.3 Summary of Execution Architecture View (Cont.) Relation UML Element Notation Description use mechanism Association name Name of communication mechanism; for example, IPC, RPC A communication path uses a communication mechanism. communicate over --- (connection of class and association) A runtime entity (or the module assigned to it ) communicates over a communication path. assigned to Composition Nesting (or ) A module is assigned to zero or more runtime entities. Table 6.3. Summary of Execution Architecture View (Cont.) 2019/4/23 Software Architecture

6.3 Summary of Execution Architecture View (Cont.) Artifact Representation Execution configuration UML Class Diagram Execution configuration mapped to hardware devices UML Deployment Diagram Dynamic behavior of configuration, or transition between configurations UML Sequence Diagram Description of runtime entities (including host type, replication, and assigned modules) Table or UML Class Diagram Description of runtime instances (including resource allocation) Table Communication protocol Natural language description, or UML Sequence Diagram or Statechart Diagram Table 6.3. Summary of Execution Architecture View (Cont.) 2019/4/23 Software Architecture

6.3 Summary of Execution Architecture View (Cont.) Figure 6.17 Meta-model of the execution architecture view 2019/4/23 Software Architecture

Software Architecture 6.3.1 Traceability The following three items should be traceable in the execution view: Critical requirement and organizational and technological factors. Elements in the module view. Elements in the conceptual view. 2019/4/23 Software Architecture

6.3.2 Uses for the Execution Architecture View The execution view is used by Architects, to design the runtime aspects of the system so that it meets the requirements and can adapts to expected changes. Developers, to provide a correct implementation. Testers, who need to know the runtime aspects of the system to plan the testing (particularly unit testing) Maintainers, to determine how a change in the runtime platform affects the system or how changes in requirements affect the system’s runtime aspects 2019/4/23 Software Architecture

Software Architecture Thanks! 2019/4/23 Software Architecture