Software architecture: Introduction

Similar documents
Software architecture: Introduction

Architectures in Context

What is Software Architecture? What is Principal?

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture

Architectural Blueprint

Introduction to Modeling

Creating and Analyzing Software Architecture

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

LOG8430: Architecture logicielle et conception avancée

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

Overview (and reorientation) of SE

OT TU1 Software Architecture Using Viewpoints and Perspectives

System Name Software Architecture Description

Software Architecture Modeling

Architectural Decomposition Reid Holmes

Software Architectures

Software Architecture and Design I

Architectural Decomposition & Representations Reid Holmes

Alignment of Business and IT - ArchiMate. Dr. Barbara Re

Describing Information Systems Moving Beyond UML

Visualizing Software Architectures

Software Architecture

Architectural Decomposition Mei Nagappan

An Information Model for High-Integrity Real Time Systems

GSAW 2007 SW Architecture Workshop - Managing the Complexity of Your Large-Scale Software Architecture and Design. Richard Anthony

Implementing Architectures

Designing Component-Based Architectures with Rational Rose RealTime

Software Specification and Architecture 2IW80

Minsoo Ryu. College of Information and Communications Hanyang University.

Maintaining & Increasing Stakeholder Confidence in IT Architecture

Software Reuse and Component-Based Software Engineering

Requirements Engineering

Ch 1: The Architecture Business Cycle

An introduction to the IBM Views and Viewpoints Framework for IT systems

Software Engineering

Visualizing Software Architectures, Part 2

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

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

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

Chapter 4. Fundamental Concepts and Models

Rational Software White paper

Lecture 13 Introduction to Software Architecture

Architecture of Business Systems Architecture and the Role of the Architect

What is Software Architecture

Analysis of Software Architectures

20. Business Process Analysis (2)


MTAT Software Engineering

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Viewpoints and Perspectives Reference Card

ISO/IEC/ IEEE INTERNATIONAL STANDARD. Systems and software engineering Architecture description

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Software Architectures. Lecture 6 (part 1)

Architecture of Distributed Systems

The Past, Present and Future of Software Architecture

Software Architecture

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

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

MTAT Software Engineering

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Execution Architecture

Lecture 5: Requirements Specifications

Applied Architectures, Part 2

Requirements Validation and Negotiation

Definition of Information Systems

CIS 890: Safety Critical Systems

Human Error Taxonomy

REENGINEERING SYSTEM

The Clinical Data Repository Provides CPR's Foundation

Enterprise Architecture Frameworks

EXAM PREPARATION GUIDE

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

INTERNATIONAL TELECOMMUNICATION UNION. SERIES X: DATA NETWORKS AND OPEN SYSTEM COMMUNICATIONS Open distributed processing

Chapter 18. Software Reuse

UNIT 5 - UML STATE DIAGRAMS AND MODELING

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering

Ch 1: The Architecture Business Cycle

Requirements Validation and Negotiation

CHAPTER 9 DESIGN ENGINEERING. Overview

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

Fundamentals of Database Systems (INSY2061)

Part II. Integration Use Cases

Microsoft DFS Replication vs. Peer Software s PeerSync & PeerLock

What is database continuous integration?

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos

Architecture. CSE 403, Winter 2003 Software Engineering.

Introduction to Software Engineering

Systems Analysis & Design

ISO INTERNATIONAL STANDARD. Information and documentation Managing metadata for records Part 2: Conceptual and implementation issues

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

IBM Best Practices Working With Multiple CCM Applications Draft

Software Architecture Viewpoint Models: A Short Survey

Architecture Rationale

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

Software Architecture Architectural Viewpoints. Martin Pinzger Software Engineering Research Group

AADL Graphical Editor Design

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

SOFTWARE DESIGN DESCRIPTION OF MUSIC RECOMMENDATION SYSTEM

<<Subsystem>> Software Architecture Document

Transcription:

2IW80 Software specification and architecture Software architecture: Introduction Alexander Serebrenik

This week sources Slides by Johan Lukkien and Rudolf Mak

Software architecture Software architecture is the fundamental organization of a system embodied in its elements, relationships, and in the principles of its design and evolution. [IEEE Std. 42010-2011] / SET / W&I 09/04/15 PAGE 3

Fundamental organization Less change-prone: Architecture of software is a collection of design decisions that are expensive to change. Alexander Ran, Nokia Research European Conf on Software Engineering, 2001 Not all aspects of system organization are fundamental Hence, not all design decisions impact a system s architecture How one defines fundamental depends on the stakeholders perspectives on the system goals / SET / W&I 09/04/15 PAGE 4

Stakeholders? Stakeholder is a person, group or organization with an interest in a project we focus on the roles of stakeholders not their identities. the same person can hold multiple roles. / SET / W&I 09/04/15 PAGE 5

Stakeholders? Stakeholder is a person, group or organization with an interest in a project Class we focus on the roles of stakeholders not their identities. the same person can hold multiple roles. Acquirers Assessors Communicators Developers Maintainers Suppliers Support staff System administrators Testers Users / SET / W&I 09/04/15 PAGE 6 Description [Rozanski Woods] Oversee the procurement of the system Oversee conformance to standards and legal regulations Explain the system via documentation and training Construct and deploy the system from its specifications Manage the evolution of the system once operational Provide hardware/software platform on which the system will run Assist users to make use of the running system Run the system once deployed Check whether the system meets its specifications Define the system s functionality and use it once running

Example [Rozanski, Woods] Company A, a manufacturer of computer hardware, wants an enterprise resource planning (ERP) system to better manage all aspects of its supply chain from ordering through delivery. Management anticipates the system being constructed from a custom off-the-shelf (COTS) package combined with some inhouse development for specialized aspects of functionality. The new system must be deployed within one year, in time for a meeting where shareholders will consider future funding for the company. Identify the stakeholders in this story. / SET / W&I 09/04/15 PAGE 7

Company A, a manufacturer of computer hardware, wants an enterprise resource planning system to better manage all aspects of its supply chain from ordering through delivery. Management anticipates the system being constructed from a custom off-the-shelf package combined with some inhouse development for specialized aspects of functionality. The new system must be deployed within one year, in time for a meeting where shareholders will consider future funding for the company. Class Description [Rozanski Woods] Acquirers Oversee the procurement of the system Assessors Oversee conformance to standards and legal regulations Communicators Explain the system via documentation and training Developers Construct and deploy the system from its specifications Maintainers Manage the evolution of the system once operational Suppliers Provide hw/sw on which the system will run Support staff Assist users to make use of the running system Sys. admins Run the system once deployed Testers Check whether the system meets its specifications Users / SET / W&I 09/04/15 PAGE 8 Define the system s functionality and use it once running

Solution Acquirers: the business sponsor (senior management), responsible for funding; the purchasing department and representatives of IT, who will evaluate a number of potential ERP packages. Users: internal staff, including those who work in order entry, purchasing, finance, manufacturing, and distribution. Developers, system administrators, and maintainers: the internal IT department Assessors: internal acceptance test team. Communicators: internal trainers. Support: an internal help desk (possibly in conjunction with the COTS supplier). / SET / W&I 09/04/15 PAGE 9

Stakeholders, goals and concerns Different stakeholders have different concerns Different concerns imply different viewpoints / SET / W&I 09/04/15 PAGE 10

Stakeholders, goals and concerns Different stakeholders have different concerns Different concerns imply different viewpoints Viewpoint a way of looking at a system from the position of a certain stakeholder with a particular concern defines creation, depiction and analysis of a view language, used models, notation, methods, analysis techniques / SET / W&I 09/04/15 PAGE 11

Stakeholders, goals and concerns Different stakeholders have different concerns Different concerns imply different viewpoints Viewpoint a way of looking at a system from the position of a certain stakeholder with a particular concern defines creation, depiction and analysis of a view language, used models, notation, methods, analysis techniques View: whatever you see in a system from a particular viewpoint collection of system models conforming to the viewpoint / SET / W&I 09/04/15 PAGE 12

Stakeholders, goals and concerns Different stakeholders have different concerns Different concerns imply different viewpoints Viewpoint a way of looking at a system from the position of a certain stakeholder with a particular concern defines creation, depiction and analysis of a view language, used models, notation, methods, analysis techniques View: whatever you see in a system from a particular viewpoint collection of system models conforming to the viewpoint Model: leaves out details irrelevant to concerns preserves the properties of interest with respect to those concerns / SET / W&I 09/04/15 PAGE 13

Medical example System: human heart Stakeholder: cardiologist [class: Tester/Maintainer] Concerns: identify and treat disorders of the heart Viewpoint: Model kinds used models: electrocardiography (ECG), echocardiography, ballistocardiography analysis techniques: ECG interpretation, Models View: / SET / W&I

Viewpoint vs View Viewpoint should govern the View Relation similar to type/instance, grammar/language, Viewpoints are generic, and can be stored in libraries for reuse. A view is always specific to the architecture for which it is created. Stakeholder View point concern viewpoint conventions View 1 Model 1 Model 2 Model 3 Model 4 System Model 5 View 2 View 3 / SET / W&I Schema by Johan Lukkien

/ SET / W&I 09/04/15 PAGE 16 So far: stakeholders, concerns, views, viewpoints, models and their kinds

Library viewpoints Viewpoints are generic, and can be stored in libraries for re-use What are the popular library viewpoints? IEEE Standards to not indicate specific viewpoints Kruchten s 4+1 [1995] Rozanski, Woods [2005] / SET / W&I 09/04/15 PAGE 17

Kruchten s 4+1 1995: Kruchten, Philippe. Architectural Blueprints The 4+1 View Model of Software Architecture. popularized the multiple views idea 2000: IEEE Standard 1471 formal conceptual model for architectural descriptions standard terminology distinguish between views and viewpoints Be careful: Kruchten s views are viewpoints The word view is used for historical reasons / SET / W&I 09/04/15 PAGE 18

Kruchten s views (viewpoints) / SET / W&I 09/04/15 PAGE 19

Logical view The user s view on the system, i.e. what a user encounters while using the system classes and objects (class instances) documenting user-visible entities including interfaces, that imply responsibilities interaction diagrams: interactions describing usage scenario s state diagrams: describing state changes as result of interactions Typical relations: is-a, has-a, / SET / W&I 09/04/15 PAGE 20

Example: Twitter / SET / W&I 09/04/15 PAGE 21

Twitter example: Logical view A domain model class diagram captures concepts from the application domain and their relationships Additional models will typically be used to represent the logical view. 9-Apr-15 With thanks to Rudolf Mak

Development view Components, functions, subsystems organized in modules and packages Component/module interface descriptions, access protocols Logical organization layering of functionality, dependencies Don t misunderstand the name logical Organization into files and folders Typical relations: uses, contains, shares, part-of, depends-on / SET / W&I 09/04/15 PAGE 23

Twitter example: Development view With thanks to Rudolf Mak

Process view Concurrent activities inside the system Mapping of applications to distinct memory spaces and units of execution unit of execution: process, thread memory space: associated with a process Choice of communication protocols Scheduling of activities such as to satisfy time and resource constraints Performance / SET / W&I 09/04/15 PAGE 25

Twitter example: process view http://www.slideshare.net/raffikrikorian/qcon-nyc-2012-twitters-real-time-architecture 9-Apr-15 With thanks to Rudolf Mak

Deployment view Machines (processors, memories), networks, conncetions including specifications, e.g. speeds, sizes Deployment: mapping of elements of other views to machines Typical relations: connects-to, contains, maps-to Concerns: performance (throughput, latency), availability, reliability, etc., together with the process view / SET / W&I 09/04/15 PAGE 27

Twitter example: Deployment view Not very convincing No physical components It is hard to find a twitter deployment model 9-Apr-15 With thanks to Rudolf Mak

Scenarios Set of use cases Small set Representative use cases / SET / W&I 09/04/15 PAGE 29

Twitter scenario example: insertion of a tweet 1. User: a) Logon to GUI b) Send tweet 2. Process the insertion request 3. Put the request in the queue system 4. Back-end a) Get request from front of queue b) Insert tweet into memory. c) Update the search engine with an index entry 5. Send feedback to queuing system 6. Notify GUI 9-Apr-15

More examples? The original paper by Philippe Kruchten http://www.win.tue.nl/~aserebre/2iw80/2014-2015/4+1viewarchitecture.pdf Hewlett Packard template for documenting software and firmware architectures http://www.win.tue.nl/~aserebre/2iw80/2014-2015/ HP_arch_template.pdf / SET / W&I 09/04/15 PAGE 31

UML diagrams and Kruchten s view(point)s? / SET / W&I 09/04/15 PAGE 32

Taylor, Medvidovic, Dashofy: Alternative classification of viewpoints Logical: capture the logical (often software) entities in a system and how they are interconnected. Physical: capture the physical (often hardware) entities in a system and how they are interconnected. Deployment: Capture how logical entities are mapped onto physical entities. Concurrency: Capture how concurrency and threading will be managed in a system. Behavioral: Capture the expected behavior of (parts of) a system. / SET / W&I 09/04/15 PAGE 33

How would we map different classifications? Link Kruchten s views and viewpoints of Taylor, Medvidovic Dashofy to each other / SET / W&I 09/04/15 PAGE 34

How would we map different classifications? / SET / W&I 09/04/15 PAGE 35

Rozanski Woods: Alternative classification Viewpoint library Functional viewpoint Information viewpoint Concurrency viewpoint Development viewpoint Deployment viewpoint Operational viewpoint Not explicitly addressed by Kruchten s 4+1 9-Apr-15 Slide inspired by Rudolf Mak s slides

Rozanski Woods: Alternative classification 9-Apr-15 Viewpoint library Functional viewpoint Information viewpoint Concurrency viewpoint Development viewpoint Deployment viewpoint Operational viewpoint Perspectives (a.k.a. non-functional requirements) Security Performance and scalability Availability and resilience Evolution and many more Slide inspired by Rudolf Mak s slides Not explicitly addressed by Kruchten s 4+1 Orthogonal to viewpoints/views

Recall: Kruchten popularized multiple views idea Architectural description aggregates multiple viewpoints and views. / SET / W&I 09/04/15 PAGE 38

Recall: Kruchten popularized multiple views idea Architectural description aggregates multiple viewpoints and views. What risks associated with multiplicity of views can you identify? / SET / W&I 09/04/15 PAGE 39

Risks due to multiplicity of views Wrong views Fragmentation Inconsistency / SET / W&I 09/04/15 PAGE 40

Wrong views Which views are suitable? Kruchten, Rozanski-Woods provide guidance but specifics of the system should be taken into account Is concurrency important? Is security important? Matter of experience and skill / SET / W&I 09/04/15 PAGE 41

Fragmentation Kruchten: 4+1, Rozanski-Woods: 6 What about 50 views? Each view has to be created and maintained costs! Views have to be kept consistent, the more views the more potential inconsistencies costs! Consider combining less crucial views e.g. deployment & concurrency do not overdo, combined views are more difficult to understand / SET / W&I 09/04/15 PAGE 42

Inconsistency All views are related They describe the same system! / SET / W&I 09/04/15 PAGE 43

Inconsistency All views are related They describe the same system! Recall: interaction diagrams should be consistent with the corresponding class diagrams and use case diagrams / SET / W&I 09/04/15 PAGE 44

Inconsistency All views are related They describe the same system! Recall: interaction diagrams should be consistent with the corresponding class diagrams and use case diagrams / SET / W&I 09/04/15 PAGE 45 Logical view should be consistent with scenarios

Of course, there are more rules Quote: Package A depends on package B if A contains a class which depends on a class in B Development view should be consistent with the logical view / SET / W&I 09/04/15 PAGE 46

Of course, there are more rules Quote: Package A depends on package B if A contains a class which depends on a class in B Development view should be consistent with the logical view Quote: Manifestation maps artifacts to / components / packages Deployment view should be consistent with the development view / SET / W&I 09/04/15 PAGE 47

Of course, there are more rules Quote: Package A depends on package B if A contains a class which depends on a class in B Development view should be consistent with the logical view Quote: Manifestation maps artifacts to / components / packages Deployment view should be consistent with the development view / SET / W&I 09/04/15 PAGE 48 Quote: Manifestation maps artifacts to use cases Deployment view should be consistent with scenarios

Consistency for Rozanski and Woods If something changes at the end of the arrow, a change will probably be required at the start of the arrow. / SET / W&I 09/04/15 PAGE 49

Still We need a mechanism to record in the architecture description relations between different views What views should be consistent with each other? Does one view refine another? (package vs class?) Should one be traced to another? / SET / W&I 09/04/15 PAGE 50

Still We need a mechanism to record in the architecture description relations between different views What views should be consistent with each other? Does one view refine another? (package vs class?) Should one be traced to another? Architectural description (AD) elements stakeholders, views, viewpoints, models Correspondences vs. Correspondence rules similarly to views vs. viewpoints / SET / W&I 09/04/15 PAGE 51

Putting it all together: architecture Rationale: explanation, justification or reasoning about architecture decisions / SET / W&I 09/04/15 PAGE 52

Rationale: closer look / SET / W&I 09/04/15 PAGE 53

Putting it all together: architecture Why do we distinguish between architecture and architecture description? / SET / W&I 09/04/15 PAGE 54

Different flavors of architecture Architecture as intended Architecture as described What other kind of architecture flavor would you expect? / SET / W&I 09/04/15 PAGE 55

Different flavors of architecture Architecture as intended Architecture as described Architecture as implemented / SET / W&I 09/04/15 PAGE 56

Different flavors of architecture Architecture as intended Architecture as described implementation, forward engineering architecture reconstruction, reverse engineering Architecture as implemented / SET / W&I 09/04/15 PAGE 57

Different flavors of architecture Architecture as intended Prescriptive architecture Architecture as described implementation, forward engineering architecture reconstruction, reverse engineering Architecture as implemented Descriptive architecture / SET / W&I 09/04/15 PAGE 58

Beware: incompleteness Architecture as described can/should never be complete with respect to the system architecture = fundamental organization not everything is fundamental architecture as intended limitation of the architecture description language(s) architecture as implemented freedom of implementation choices Architecture as intended should at least be complete wrt the stakeholders concerns / SET / W&I 09/04/15 PAGE 59

Architectural Evolution When a system evolves ideally its prescriptive architecture is modified first in practice, the system and thus its descriptive architecture is often directly modified This happens because of Developer sloppiness Perception of short deadlines which prevent thinking through and documenting Lack of documented prescriptive architecture Need or desire for code optimizations Inadequate techniques or tool support Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architectural Degradation Architectural drift is introduction of principal design decisions into a system s descriptive architecture that are not included in, encompassed by, or implied by the prescriptive architecture but which do not violate any of the prescriptive architecture s design decisions 61

Architectural Degradation Architectural drift is introduction of principal design decisions into a system s descriptive architecture that are not included in, encompassed by, or implied by the prescriptive architecture but which do not violate any of the prescriptive architecture s design decisions Architectural erosion is the introduction of architectural design decisions into a system s descriptive architecture that violate its prescriptive architecture 62

Architectural Degradation Architectural drift is introduction of principal design decisions into a system s descriptive architecture that are not included in, encompassed by, or implied by the prescriptive architecture but which do not violate any of the prescriptive architecture s design decisions Architectural erosion is the introduction of architectural design decisions into a system s descriptive architecture that violate its prescriptive architecture If architectural degradation is allowed to occur, one will be forced to reconstruct the system s architecture sooner or later 63

/ SET / W&I 09/04/15 PAGE 64

RW: viewpoint library (1 of 2) The functional viewpoint describes the system s runtime functional elements and their responsibilities, interfaces and primary inter-actions. is relevant to all stakeholders addresses concerns like: functional capabilities, external interfaces, internal structure and design philosophy. The information viewpoint describes the way the architecture stores, manipulates and distributes information. is primarily relevant for users, acquirers, developers and maintainers addresses concerns about information structure, content and flow; data ownership, volume, validness, lifetime, and accessibility; transaction management; recovery; regulations. 9-Apr-15 2II45-Intro 65 Rudolf Mak TU/e Computer

RW: viewpoint library (2 of 3) The concurrency viewpoint describes the concurrency units of the system, their functionality, and the required coordination is relevant to developers, testers and some administrators addresses concerns like: task structure, inter process communication, state management, synchronization and reentrance, process creation and destruction The development viewpoint describes the architecture that supports the development process is relevant to software developers and testers addresses their concerns about. Module organization, common processing, standardizations of design and testing, code organization and instrumentation. 9-Apr-15 2II45- diagrams 66 Rudolf Mak TU/e Computer

RW: viewpoint library (3 of 3) The deployment viewpoint describes the environment into which the system will be deployed, including dependencies the system has on its run-time environment is relevant for system administrators, developers, testers, communicators and assessors and addresses their concerns about hardware (processing elements, storage elements, and network), third-party software, and technology compatibility. 9-Apr-15 The operational viewpoint describes how the system will be operated, administered, and supported when running in its production environment is relevant to system administrators, developers, testers, communicator, and assessors, and addresses their concerns about installation and upgrade, operational monitoring and control, configuration management, resource management. 2II45- diagrams 67 Rudolf Mak TU/e Computer