Software Architecture

Similar documents
What is Software Architecture

MTAT Software Engineering

Ch 1: The Architecture Business Cycle

Software Architectures. Lecture 6 (part 1)

Software Architecture. Lecture 5

WHAT IS SOFTWARE ARCHITECTURE?

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Ch 1: The Architecture Business Cycle

Architectural Styles. Reid Holmes

SOFTWARE ARCHITECTURES UNIT I INTRODUCTION AND ARCHITECTURAL DRIVERS

Lecture 16: (Architecture IV)

Software Architecture

Architectural Design

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Architectural Blueprint

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Software Architecture Thoughts for the System Security Design

10조 이호진 이지 호

OO Frameworks. Introduction. Using Frameworks

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Chapter 6 Architectural Design. Chapter 6 Architectural design

Software Architectures

Software Architecture

Introduction to software architecture Revision : 732

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

MTAT Software Engineering

ICS 52: Introduction to Software Engineering

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

Systems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels:

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Introduction to Software Engineering

itiger: Architecture Documentation, Volume 1 - Beyond Views

Architectural styles (according to CMU s SEI) 2005, W. Pree

ICS 52: Introduction to Software Engineering

Software Architecture in Practice

Software Architecture

Architectural Styles I

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

System Name Software Architecture Description

Software Design Report

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo

Software Engineering

Architectural Design

Attribute-Driven Design

Chapter 6 Architectural Design

In his paper of 1972, Parnas proposed the following problem [42]:

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

Architectural Styles I

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

10/27/2014. MTAT Software Engineering. Exams. Acknowledgements. Schedule of Lectures. A tale of two systems. Structure of Lecture 07

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

Chapter 13: Architecture Patterns

Presenter: Dong hyun Park

CAS 703 Software Design

Object-Oriented Design

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Design Patterns Design patterns advantages:

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof.

Software Architectures. Lecture 3

CAS 703 Software Design

XVIII. Software Architectures

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Quality Attribute Design Primitives and the Attribute Driven Design Method 1

Advanced Software Engineering: Software Testing

The ATCP Modeling Framework

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

CS 575: Software Design

Architecture and Design Evolution

Introduction to Software Engineering 10. Software Architecture

Architectural Design

An Introduction to Software Architecture

Dog Houses to sky scrapers

ESE Einführung in Software Engineering!

Establishing the overall structure of a software system

Software Architecture and Design I

1 Software Architecture

Distributed Objects. Object-Oriented Application Development

COMP 6471 Software Design Methodologies

Tasks and Objectives: Certified LabVIEW Architect

Getting Started with Rational Team Concert

New Programming Paradigms

Creational. Structural

An Introduction to Software Architecture

Software Architecture--Continued. Another Software Architecture Example

Minsoo Ryu. College of Information and Communications Hanyang University.

Software Architecture. Lecture 4

Chapter 6 System Design: Decomposing the System

Application Architectures, Design Patterns

Software Architecture

Systems Analysis and Design in a Changing World, Fourth Edition

Introduction to Modeling

Architectural Design. CSCE Lecture 12-09/27/2016

Patterns Architectural Styles Archetypes

Transcription:

Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment Role of the software architect 2 Software Architecture Top level decomposition of a system into major components together with a characterization of how these components interact The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution 3

Why Is Architecture Important? Architecture is the vehicle for stakeholder communication Architecture manifests the earliest set of design decisions Constraints on implementation Dictates organizational structure Inhibits or enables quality attributes Architecture is a transferable abstraction of a system Product lines share a common architecture Allows for template-based development Basis for training 4 Factors affecting Architecture Development organization Background and expertise of architect Technical and organizational environment 5 Traditional Software Design Iteration mainly on functional requirements Few stakeholders involved No balancing of functional and quality requirements stakeholders (few) requirements agreement development quality 6

Architecture in the life cycle Iteration on both functional and quality requirements Many stakeholders involved Balancing of functional and quality requirements requirements stakeholders (many) architecture agreement development quality 7 Software Architecture & Quality The notion of quality is central in software architecting: a software architecture is devised to gain insight in the qualities of a system at the earliest possible stage. Some qualities are observable via execution: performance, security, availability, functionality, usability And some are not observable via execution: modifiability, portability, reusability, integrability, testability 8 Architecture Design Decompose the system into parts each having a lower complexity than the system as a whole, while the parts together solve the user s problem 9

Attribute-Driven Design Choose module to decompose Refine this module: choose architectural drivers (quality is driving force) choose pattern that satisfies drivers apply pattern Repeat steps 10 Global Workflow in Architecture Design context synthesis architecture backlog evaluation requirements evaluation results 11 Design Issues, Options and Decisions A designer is faced with a series of design issues These are sub-problems of the overall design problem Each issue normally has several alternative solutions (or design options) The designer makes a design decision to resolve each issue This process involves choosing the best option from among the alternatives 12

Decision Space The space of possible designs that can be achieved by choosing different sets of alternatives Issues and options are not independent client style client-server fat-client thin-client client in a separate user interface layer Programmed in Java Programmed in Visual Basic Programmed in C++ monolithic no separate user interface layer 13 Types of Decisions Implicit, undocumented Unaware, tacit, of course knowledge Explicit, undocumented Vaporizes over time Explicit, explicitly undocumented Tactical, personal reasons Explicit, documented Preferred, exceptional situation 14 Why is Documenting Design Decisions Important? Prevents repeating (expensive) past steps Explains why this is a good architecture Emphasizes qualities and criticality for requirements/goals Provides context and background 15

Elements of a Design Decision Issues: design issues being addressed Decision Status: e.g., pending, approved Assumptions: underlying assumptions Alternatives Rationale; the why of the decision taken Implications: e.g. need for further decisions 16 Architectural Views Different stakeholders are interested in different views of the system It is generally not feasible to represent all these views in one architectural design Different architectural views are necessary 17 Software design in UML Class diagrams, state diagrams, sequence diagram, etc Who can read those diagrams? Which type of questions do they answer? Do they provide enough information? 18

IEEE Standard Descriptions System stakeholder: an individual, team, or organization (or classes hereof) with interests in, or concerns relative to, a system View: a representation of a whole system from the perspective of a related set of concerns Viewpoint: A viewpoint establishes the purposes and audience for a view and the techniques or methods employed in constructing a view 19 Stakeholders Architect Requirements engineer Designer (also of other systems) Implementor Tester, integrator Maintainer Manager Quality assurance people 20 Viewpoint specification Viewpoint name Stakeholders addressed Concerns addressed Language, modeling techniques 21

Common Viewpoints Logical viewpoint: services the system should provide to its end users Process viewpoint: runtime and concurrency aspects of the system (tasks, threads, processes and their interactions) Deployment viewpoint: defines how the various elements must be mapped onto the various nodes Implementation viewpoint: focuses on the organization of the actual software 22 How to Decide on Which Viewpoints Who are the stakeholders and their concerns? Which viewpoints address these concerns? Prioritize and possibly combine viewpoints 23 Architecture Styles Psychological Background Humans store knowledge in the form of useful chunks This notion applied to software translates into well known pieces of code such as a sort algorithm, a loop for summing numbers,..etc. 24

Architectural Styles An architectural style is a description of component and connector types and a pattern of their runtime control and/or data transfer. Examples: main program with subroutines data abstraction implicit invocation pipes and filters repository (blackboard) layers of abstraction 25 General Flavor of a Pattern IF you find yourself in <context>, for example <examples>, with <problem>, THEN for some <reasons>, apply <pattern> to construct a solution leading to a <new context> and <other patterns> 26 Components and Connectors Components are connected by connectors They are the building blocks with which an architecture can be describe 27

Types of Components Computational: does a computation of some sort. e.g. function, filter Memory: maintains a collection of persistent data. e.g. database, file system, symbol table Manager: contains state + operations. State is retained between invocations of operations. e.g. abstract data types Controller: governs time sequence of events. e.g. control module, scheduler 28 Types of Connectors Procedure call (including RPC) Data flow (e.g. pipes) Implicit invocation Message passing Shared data (e.g. blackboard or shared data base) Instantiation 29 Architectural Styles Description Problem: type of problem that the style addresses. Characteristics of the requirements guide the designer in his choice for a particular style Context: characteristics of the environment that constrain the designer, requirements imposed by the style Solution: in terms of components and connectors (choice not independent), and control structure (order of execution of components) Variants Examples 30

Main Program with Subroutines Problem: hierarchy of functions; result of functional decomposition, single thread of control Context: language with nested procedures Solution: system model: modules in a hierarchy, may be weak or strong, coupling/cohesion arguments components: modules with local data, as well as global data connectors: procedure call control structure: single thread, centralized control: main program pulls the strings Variants: OO versus non-oo Single CPU vs. multiple CPUs with RPC 31 Abstract Data Type Problem: identify and protect related bodies of information. Data representations likely to change Context: OO-methods which guide the design, OOlanguages which provide the class-concept Solution: system model: component has its own local data (= secret it hides) components: managers (servers, objects, adt s) connectors: procedure call (message) control structure: single thread, usually; control is decentralized Variants: caused by language facilities 32 Implicit Invocation Problem: loosely coupled collection of components. Useful for applications which must be reconfigurable Context: requires event handler, through OS or language Solution: system model: independent, reactive processes, invoked when an event is raised components: processes that signal events and react to events connectors: automatic invocation control structure: decentralized control. Components do not know who is going to react. Variants: Tool-integration frameworks, and languages with special features 33

Pipes and Filters Problem: independent, sequential transformations on ordered data. Usually incremental, ASCII pipes. Context: series of incremental transformations. OS-functions transfer data between processes. Error-handling difficult. Solution: system model: continuous data flow; components incrementally transform data components: filters for local processing connectors: data streams (usually plain ASCII) control structure: data flow between components; component has own flow Variants: From pure filters with little internal state to batch processes 34 Repository Client Client Shared Data Client Problem: manage richly structured information, to be manipulated in many different ways. Data is long-lived. Context: shared data to be acted upon by multiple clients Solution: system model: centralized body of information. Independent computational elements. components: one memory, many computational connectors: direct access or procedure call control structure: varies, may depend on input or state of computation Variants: traditional data base systems, compilers, blackboard systems 35 Layered Layer n Layer 2 Layer 1 Problem: distinct, hierarchical classes of services. Concentric circles of functionality Context: a large system that requires decomposition (e.g., virtual machines, OSI model) Solution: system model: hierarchy of layers, often limited visibility components: collections of procedures (modules) connectors: (limited) procedure calls control structure: single or multiple threads Variants: relaxed layering 36

Model-View-Controller (MVC) Controller View Model Problem: separation of UI from application is desirable due to expected UI adaptations Context: interactive applications with a flexible UI Solution: system model: UI (View and Controller Component(s)) is decoupled from the application (Model component) components: collections of procedures (modules) connectors: procedure calls control structure: single thread Variants: Document-View 37 Architecture Evaluation/Analysis Assess whether architecture meets certain quality goals, such as those w.r.t. maintainability, modifiability, reliability, performance Pitfall: the architecture is assessed, while we hope the results will hold for a system yet to be built 38 Software Architecture Analysis Software architecture implementation System Properties properties Qualities Architecture Assessment predicts System Behavior 39

Analysis Techniques Questioning techniques: how does the system react to various situations; often make use of scenarios Measuring techniques: rely on quantitative measures; architecture metrics, simulation, etc 40 Scenarios in Architecture Analysis Different types of scenarios, e.g. usecases, likely changes, stress situations, risks, far-into-the-future scenarios Which stakeholders to ask for scenarios? When do you have enough scenarios? 41 Preconditions for Successful Assessment Clear goals and requirements for the architecture Controlled scope Cost-effectiveness Key personnel availability Competent evaluation team Managed expectations 42

Architecture Tradeoff Analysis Method (ATAM) Reveals how well architecture satisfies quality goals, how well quality attributes interact, i.e. how they trade off Elicits business goals for system and its architecture Uses those goals and stakeholder participation to focus attention to key portions of the architecture 43 Benefits Financial gains Forced preparation Captured rationale Early detection of problems Validation of requirements Improved architecture 44 Participants in ATAM Evaluation team Decision makers Architecture stakeholders 45

Phases in ATAM 0: Partnership, preparation (informally) 1: Evaluation (evaluation team + decision makers, one day) 2: Evaluation (evaluation team + decision makers + stakeholders, two days) 3: Follow up (evaluation team + client) 46 Steps in ATAM (phase 1 and 2) Present method Present business drivers (by project manager of system) Present architecture (by lead architect) Identify architectural approaches/styles Generate quality attribute utility tree (+ priority, and how difficult) Analyze architectural approaches Brainstorm and prioritize scenarios Analyze architectural approaches Present results 47 Example Utility Tree Performance Transaction response time (H, M) Throughput 150 transactions/sec Utility Usability Training Normal operations Maintainability Database vendor releases new version 48

Outputs of ATAM Concise presentation of the architecture Articulation of business goals Quality requirements expressed as set of scenarios Mapping of architectural decisions to quality requirements Set of sensitivity points and tradeoff points Set of risks, nonrisks, risk themes 49 Important Concepts in ATAM Sensitivity point: decision/property critical for certain quality attribute Tradeoff point: decision/property that affects more than one quality attribute Risk: decision/property that is a potential problem These concepts are overlapping 50 Software Architecture Analysis Method (SAAM) Develop scenarios for kinds of activities the system must support kinds of changes anticipated Describe architecture(s) Classify scenarios direct -- use requires no change indirect -- use requires change Evaluate indirect scenarios: changes and cost Reveal scenario interaction Overall evaluation 51

Scenario Interaction in SAAM Two (indirect) scenarios interact if they require changes to the same component Scenario interaction is important for two reasons: Exposes allocation of functionality to the design Architecture might not be at right level of detail 52 Role of Software Architect Key technical consultant Make decisions Coach of development team Coordinate design Implement key parts Advocate software architecture 53