MTAT Software Engineering

Size: px
Start display at page:

Download "MTAT Software Engineering"

Transcription

1 MTAT Software Engineering Lecture 07: Architecture and Design Dietmar Pfahl Fall

2 ATI Päev 2015 ICS Day 2015 When? Friday, 16-Oct-2015, 14:00-17:00 What and Who? Welcome and Information Overview Session (in 2-111) Several research groups present their work in alternating and parallel sessions (smaller groups) Why? To inform about the cool research BSc topics

3 Schedule of Lectures Week 01: Introduction to SE Week 02: Requirements Engineering I Week 03: Requirements Engineering II Week 04: Analysis Week 05: Development Infrastructure I Week 06: Development Infrastructure II Week 07: Architecture and Design Week 08: No lecture Week 09: Refactoring Week 10: Verification and Validation I Week 11: Industry Lecture (Testing) Week 12: Verification and Validation II Week 13: Agile/Lean Methods Week 14: Industry Lecture (Agile) Week 15: Measurement / Course wrap-up, review and exam preparation Week 16: no lecture

4 Acknowledgements Textbooks/Slides: Ian Sommerville: Software Engineering, 9th edition, 2010 ( Hans van Vliet: Software Architecture, Free University of Amsterdam, Lecture 2008 Richard Taylor et al.: Software Architecture, University of California at Irvine, Lecture 2011 Alexander Serebrenik: Software architecture: Domain-Specific Software Architecture and Architectural Patterns, TU Eindhoven, Lecture 2013 George Fairbanks: Just Enough Software Architecture, 2012 (Video: Tutorials by Derek Banas (on YouTube)

5 Structure of Lecture 07 What is it? Why bother? Terminology: Architect, Architecting, Architecture Viewpoints and View Models Notation Patterns, Styles and DSSAs

6 Two Telephone Systems

7 Two Telephone Systems Pro s and Con s Quality Attribute Landline Phone VoIP (Skype) Power Outage Tolerant Reliable + - Scalable - ++ Extendable (new features) - ++

8 Trade-Offs and Decision-Making Template Telephone system for a Fire Brigade Station: Because <Power Outage Tolerance> is more important than <Scalability> for this system, we choose a <Landline Phone>, accepting <a higher cost for adding new subscribers>. Quality Attribute Landline Phone VoIP (Skype) Power Outage Tolerant Reliable + - Scalable - ++ Extendable (new features) - ++

9 Exercise: Analysis of Alarm Clock Architectures Consider standard alarm clocks that you have seen. For this exercise, consider each of the following to be representative of an architectural style of alarm clocks: An LED alarm clock for a bedroom, A LCD travel alarm, An analog alarm clock (there are several varieties; choose one).

10 Architecture Evaluation/Analysis Assess whether architecture allows system to meet certain quality goals e.g. regarding maintainability, modifiability, reliability, performance,... Note: the architecture is assessed, while we hope the results will hold for a system yet to be built Software architecture Properties implementation properties? Software system Qualities

11 List of Analysis Methods SAAM (Scenario-based Architecture Analysis Method) SAAMER (Software Architecture Analysis Method for Evolution and Reusability) ATAM (The Architecture Trade-Off Analysis Method) SBAR (Scenario-Based Architecture Reengineering)... and many more...

12 Let s Design a Software System! CSR: Customer Service Request Source: George Fairbanks: Just Enough Software Architecture, 2012

13 Real Story Rackspace e.g., scalability

14 Rackspace: Architecture 1 CSR: Customer Service Request grep examples:

15 Rackspace: Architecture 2 CSR: Customer Service Request

16 Rackspace: Architecture 3 CSR: Customer Service Request (

17 Rackspace: Quality Attribute Trade-offs

18 Architecture Drivers Importance Difficulty Stimulus Response

19 What if you don t think architecturally? Remember: All programs have an architecture... But not every architecture suits the program (or: problem)!

20 Structure of Lecture 07 What is it? Why bother? Terminology: Architect, Architecting, Architecture Viewpoints and View Models Notation Patterns, Styles and DSSAs

21 Terminology Architect Person Architecting Process Architecture Product

22 The Role of the Architect client, users requirements architect solutions developers assess creates assess visualises prescribes appearance, behaviour architectural design construction, co-operation

23 Pre-Architecture Life-Cycle stakeholders (few) functionality quality Characteristics: Iteration mainly on functional requirements Few stakeholders involved No balancing of functional and quality requirements agreement development

24 Adding Architecture: The Easy Way stakeholders (few) functionality quality agreement architecture detailed design development implementation

25 Architecture in the Life-Cycle stakeholders (many) functionality quality architecture Characteristics: Iteration on both functional and quality requirements Many stakeholders involved agreement development Balancing of functional and quality requirements

26 Rational Architecture Decisions Gottfried Wilhelm Leibnitz

27 Design Issues, Options and Decisions A designer is faced with a series of design issues These are sub-problems of the overall design problem. For example, a design issue can be the type and level of security. Security can be decomposed into authentication, authorization, and privacy. Each issue usually 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. Attribute-Driven Design (ADD)

28 ADD Example Iterations Top-level: usability separate UI 3-tier architecture Lower-level, within user interface: security authenticate users Lower-level, within data layer: availability active redundancy

29 Decision Space The space of possible designs that can be achieved by choosing different sets of alternatives. Issues that can be relevant in the decision process could be: - level of flexibility; - outsourcing/external acquisition of client technology (that mans need for separate presentation also relevant for the budget); - if using the Web/Internet; - performance;...

30 Tree or Graph? Issues and options are not independent... A number of options become invalid due to a desired NFR (quality). For example, flexibility could be achieved through certain architectural patterns, like MVC which facilitates separation of concerns and layered architecture restricting client-server interactions. If we choose any of the two, we exclude the 'monolithic' sub-tree and we need a separate GUI layer.

31 More than just IT Technical and non-technical issues and options are intertwined Architects deciding on the type of database versus Management deciding on new strategic partnership or Management deciding on budget

32 Once again: Why is documenting design decisions important? Design rationale example: Prevents repeating (expensive) past steps Explains why this is a good (better: suitable) architecture Emphasizes qualities and criticality for requirements/goals Provides context and background

33 Now, what is Architecture?

34 Architecture in Construction of Buildings

35 Software Architecture Architecture is conceptual. Architectural descriptions are concrete, but the architecture itself is inherently conceptual, and cannot be captured in any (set of) views nor in the code. Architecture is about fundamental things. Abstraction!!! Architecture exists in some context. We can only understand qualities in context. -> Views!!!

36 Software Architecture Definition (1) The architecture of a software system defines that system in terms of computational components and interactions among those components. 2 (from Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline, Prentice-Hall, 1996) statement procedure module (design) pattern architecture

37 Software Architecture Definition (2) 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. 3 (from Bass, Clements, and Kazman, Software Architecture in Practice, SEI Series in Software Engineering. Addison-Wesley, 2003)

38 Software Architecture Definition (3) 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 4 (from IEEE Standard on the Recommended Practice for Architectural Descriptions, 2000)

39 Architecture Sloppy Definitions Architecture is high-level design Architecture is overall structure of the system Architecture is components and connectors Architecture is the structure, the behavior (properties), and the principles and guidelines governing its design and evolution over time

40 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

41 Structure of Lecture 07 What is it? Why bother? Terminology: Architect, Architecting, Architecture Viewpoints and View Models Notation Patterns, Styles and DSSAs

42 Analogy with Building Architecture Overall picture of building (client) Front view (client, municipal beauty committee) Separate picture for water supply (plumber) Separate picture for electrical wiring (electrician) etc

43 IEEE Model for Architectural Descriptions Env ironment Mission Sy stem Architecture System stakeholder: an individual, team, or organization (or classes hereof) with interests in, or concerns relative to, a system. Stakeholder Architecture Description Rationale View: a representation of a whole system from the perspective of a related set of concerns. Concern Viewpoint Library Viewpoint View Model Viewpoint: A viewpoint establishes the purposes (concerns) and audience (stakeholders) for a view and the techniques or methods employed in constructing a view.

44 Kruchten s 4+1 View Model End-user Functionality Programmers Software management Logical Viewpoint Implementation Viewpoint Scenarios Process Viewpoint Deployment Viewpoint Integrators Performance Scalability System engineers Topology Communications

45 Kruchten s 4+1 View Model Supports the functional requirements, i.e., the services the system should provide to its end users. Typically, it shows the key abstractions (e.g., classes and associations amongst them). End-user Functionality Logical Viewpoint Process Viewpoint Scenarios Programmers Software management Implementation Viewpoint Deployment Viewpoint Integrators Performance Scalability System engineers Topology Communications

46 Kruchten s 4+1 View Model Takes into account some nonfunctional requirements, such as performance and system availability. It addresses concurrency and distribution, system integrity, and faulttolerance. The process view also specifies which thread of control executes each operation of each class identified in the logical view. So the process view describes the mapping of functions to runtime elements. It concerns the dynamics of the system. A process is a group of tasks which form a logical unit. A process can be started, stopped, resumed, etc., and there is communication between processes. End-user Functionality Logical Viewpoint Process Viewpoint Integrators Performance Scalability Scenarios Programmers Software management Implementation Viewpoint Deployment Viewpoint System engineers Topology Communications

47 Kruchten s 4+1 View Model End-user Functionality Logical Viewpoint Process Viewpoint Scenarios Programmers Software management Implementation Viewpoint Deployment Viewpoint Focuses on the organization of the actual software modules in the software-development environment. The software is packaged in small chunks (program libraries or subsystems) that can be developed by one or more developers. Integrators Performance Scalability System engineers Topology Communications

48 Kruchten s 4+1 View Model End-user Functionality Logical Viewpoint Process Viewpoint Integrators Performance Scalability Scenarios Programmers Software management Implementation Viewpoint Deployment Viewpoint System engineers Topology Communications => Physical view: Defines how the various elements identified in the logical, process, and implementation views (networks, processes, tasks, and objects) must be mapped onto the various nodes. Takes into account the system's non-functional requirements such as system availability, reliability (faulttolerance), performance (throughput), and scalability.

49 4 + 1: Scenario Viewpoint Consists of a small subset of important scenarios (e.g., use cases) to show that the elements of the four views work together seamlessly. This view is redundant with the other ones (hence the "+1"), but it plays two critical roles: Acts as a driver to help designers discover architectural elements during the architecture design; Validates and illustrates the architecture design, both on paper and as the starting point for the tests of an architectural prototype. End-user Functionality Logical Viewpoint Process Viewpoint Integrators Performance Scalability Scenarios Programmers Software management Implementation Viewpoint Deployment Viewpoint System engineers Topology Communications

50 Structure of Lecture 07 What is it? Why bother? Terminology: Architect, Architecting, Architecture Viewpoints and View Models Notation Patterns, Styles and DSSAs

51 Standard Notation: UML Alternatives: ADLs = Architecture Description Languages

52 Architecture presentations in practice By and large two flavors: Powerpoint slides for managers, users, consultants, etc UML diagrams, for technicians A small sample

53 Conceptual View Customer, Users

54 More technical view Developers (same system as on previous slide)

55 Runtime View Deployment View Runtime Component Deployment View Component clientars User machine Search App. Server 1, App Server 2 (WebLogic 7.0) ReserveAndBuy App. Server 1, App Server 2 (WebLogic 7.0) Authenticate App. Server 1, App Server 2 (WebLogic 7.0) ArsStartup App. Server 1, App Server 2 (WebLogic 7.0) LocalRestart App. Server 1, App Server 2 (WebLogic 7.0) ARS Database DB Server (MS SQL Server) CreditCard Database DB Server (MS SQL Server) CreditCard Naming server & Replication mgr God Naming server & Replication mgr

56 High-level overview of the architecture (Logical view Implementation view) A University Course Catalogue System Application layer This Application layer has all the boundary classes that represent the application screens that the user sees. Business Services layer The Business Services process layer has all the controller classes that represent the use case managers that drive the application behavior. This layer represents the client-to-mid-tier border. Middleware layer The Middleware layer supports access to Relational DBMS and OODBMS. Base Reuse package The Base Reuse package includes classes to support list functions and patterns. (see doc on course wiki)

57 Process view of the architecture. Shows the tasks (processes and threads) involved in the system's execution, their interactions and configurations. Processes exist to support student registration, professor functions, registration closing, and access to the external Billing System and Course Catalog System.

58 Deployment view of the architecture. Shows the various physical nodes for the most typical platform configurations. Also shows the allocation of tasks (from the Process View) to the physical nodes.

59 So, Different representations For different people For different purposes These representations are both descriptive and prescriptive More formal: Architecture Description Languages (ADLs)

60 Structure of Lecture 07 What is it? Why bother? Terminology: Architect, Architecting, Architecture Viewpoints and View Models Notation Patterns, Styles and DSSAs To be continued in next lecture

61 Further Reading Len Bass et al, Sofware Architecture in Practice, 2008 (3 rd edition). Jan Bosch, Design & Use of Software Architectures, Frank Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, Part II: George Fairbanks: Just Enough Software Architecture, Erich Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, C. Hofmeister et al., Applied Software Architecture, Philippe B. Kruchten, The 4+1 view model of architecture, IEEE Software, 12(6):42-50, November Mary Shaw and David Garlan, Software Architecture; Perspectives of an Emerging Discipline, Richard Taylor et al.: Software Architecture, University of California at Irvine, Lecture Ian Sommerville: Software Engineering, 9th edition, ( Hans van Vliet: Software Architecture, Free University of Amsterdam, Lecture 2008.

62 Next Lecture in 2 weeks from today! Date/Time: Friday, 30-Oct, 10:15-12:00 Topic: Refactoring (and TDD) For you to do: Finish and submit Lab Task 3

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

10/27/2014. MTAT Software Engineering. Exams. Acknowledgements. Schedule of Lectures. A tale of two systems. Structure of Lecture 07 MTAT.03.094 Software Engineering Lecture 07: Architecture and Design Exams Date Time Place: Exam 1: Friday, 09-Jan-2015, 14:15-16:15, room 2-405 Exam 2: Friday, 16-Jan-2015, 14:15-16:15, room 2-405 Re-take

More information

MTAT Software Engineering

MTAT Software Engineering MTAT.03.094 Software Engineering Lecture 07: Architecture and Design Part I Dietmar Pfahl Fall 2013 email: dietmar.pfahl@ut.ee Schedule of Lectures Week 01: Introduction to SE Week 02: Requirements Engineering

More information

MTAT Software Engineering

MTAT Software Engineering MTAT.03.094 Software Engineering Lecture 07: Architecture and Design Dietmar Pfahl Fall 2017 email: dietmar.pfahl@ut.ee Schedule of Lectures Week 01: Introduction to SE Week 02: Requirements Engineering

More information

Software Architecture

Software Architecture 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

More information

Software Architecture

Software Architecture Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning

More information

Introduction to software architecture Revision : 732

Introduction to software architecture Revision : 732 Introduction to software architecture Revision : 732 Denis Conan Septembre 2018 Foreword The content of these slides is extracted from the following references: L. Bass, P. Clements, and R. Kazman. Software

More information

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA PURPOSE OF THIS CLASS An introduction to software architecture What is an architecture Why it is important How it is represented

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

Lecture 13 Introduction to Software Architecture

Lecture 13 Introduction to Software Architecture Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

OT TU1 Software Architecture Using Viewpoints and Perspectives

OT TU1 Software Architecture Using Viewpoints and Perspectives Eoin Woods Artechra Limited OT2004 - TU1 Software Architecture Using Viewpoints and Perspectives Nick Rozanski French Thornton eoin.woods@ nick.rozanski@ artechra.com french-thornton.co.uk (C) 2004 Artechra

More information

Designing Component-Based Architectures with Rational Rose RealTime

Designing Component-Based Architectures with Rational Rose RealTime Designing Component-Based Architectures with Rational Rose RealTime by Reedy Feggins Senior System Engineer Rational Software Rose RealTime is a comprehensive visual development environment that delivers

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Software architecture: Introduction

Software architecture: Introduction 2IW80 Software specification and architecture Software architecture: Introduction Alexander Serebrenik This week sources Slides by Johan Lukkien and Rudolf Mak Software architecture Software architecture

More information

Dog Houses to sky scrapers

Dog Houses to sky scrapers CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang Architecture Wednesday, April 19th sarec.nd.edu/courses/se2017 Department of Computer Science and Engineering Dog Houses to sky scrapers WHY

More information

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

What is your definition of software architecture?

What is your definition of software architecture? What is your definition of software architecture? WHAT IS YOUR DEFINITION OF SOFTWARE ARCHITECTURE? The SEI has compiled a list of modern, classic, and bibliographic definitions of software architecture.

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

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

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten Architectural Blueprint The 4+1 View Model of Software Architecture Philippe Kruchten Model What is a model? simplified abstract representation information exchange standardization principals (involved)

More information

Creating and Analyzing Software Architecture

Creating and Analyzing Software Architecture Creating and Analyzing Software Architecture Dr. Igor Ivkovic iivkovic@uwaterloo.ca [with material from Software Architecture: Foundations, Theory, and Practice, by Taylor, Medvidovic, and Dashofy, published

More information

EPL603 Topics in Software Engineering

EPL603 Topics in Software Engineering Lecture 5 Architectural Design & Patterns EPL603 Topics in Software Engineering Efi Papatheocharous Visiting Lecturer efi.papatheocharous@cs.ucy.ac.cy Office FST-B107, Tel. ext. 2740 Topics covered Software

More information

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling User Centred Design 09 INTERACTION ARCHITECTURAL MODELING Lecture 9 Interaction Architectureal Modeling PREVIOUS LESSON(S) Synthetizing User Research Personas Actors / User Roles Scenarios Essential Use

More information

Describing Information Systems Moving Beyond UML

Describing Information Systems Moving Beyond UML Describing Information Systems Moving Beyond UML Eoin Woods Artechra eoin@artechra.com Nick Rozanski Artechra nick@artechra.com Timetable 10:00-10:10 Introductions 10:10-10:25 - Presentation: Architectural

More information

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

CS560 Lecture: Software Architecture Includes slides by I. Sommerville CS560 Lecture: Software Architecture 2009 Includes slides by I. Sommerville Architectural Design Design process for identifying the sub-systems making up a system and the framework for sub-system control

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

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

An introduction to the IBM Views and Viewpoints Framework for IT systems An introduction to the IBM Views and Viewpoints Framework for IT systems By Denise Cook, Software Engineer Peter Cripps, Senior IT Architect Philippe Spaas, Executive IT Architect IBM Corporation December

More information

Software architecture: Introduction

Software architecture: Introduction 2IW80 Software specification and architecture Software architecture: Introduction Alexander Serebrenik This week sources Slides by Johan Lukkien and Rudolf Mak Software architecture Software architecture

More information

LOG8430: Architecture logicielle et conception avancée

LOG8430: Architecture logicielle et conception avancée LOG8430: Architecture logicielle et conception avancée Modeling, OO Concepts, and Design Patterns Winter 2018 Fabio Petrillo Chargé de Cours This work is licensed under a Creative 1 Commons Attribution-NonCommercialShareAlike

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

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

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo Vendor: The Open Group Exam Code: OG0-091 Exam Name: TOGAF 9 Part 1 Version: Demo QUESTION 1 According to TOGAF, Which of the following are the architecture domains that are commonly accepted subsets of

More information

Quality-Driven Architecture Design Method

Quality-Driven Architecture Design Method Quality-Driven Architecture Design Method Matinlassi Mari, Niemelä Eila P.O. Box 1100, 90571 Oulu Tel. +358 8 551 2111 Fax +358 8 551 2320 {Mari.Matinlassi, Eila.Niemela}@vtt.fi Abstract: In this paper

More information

What is a software architecture?

What is a software architecture? What is a software architecture? Peter Eeles, Senior IT Architect, IBM, 15 Feb 2006 There is no doubt that the world is becoming increasingly dependent on software. Software is an essential element of

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

The Past, Present and Future of Software Architecture

The Past, Present and Future of Software Architecture The Past, Present and Future of Software Architecture Eoin Woods UBS Investment Bank eoin@artechra.com www.eoinwoods.info About me I m a working software architect Always worked as a software engineer

More information

Architecture of Business Systems Architecture and the Role of the Architect

Architecture of Business Systems Architecture and the Role of the Architect Sandro Schwedler Wolfram Richter Architecture of Business Systems Architecture and the Role of the Architect Lecture Outline Introduction (W) Lecture Overview Architecture & role of the Architect Views

More information

The Process of Software Architecting

The Process of Software Architecting IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,

More information

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards What to Architect? How to Architect? IEEE Goals and Objectives Chartered by IEEE Software Engineering Standards Committee to: Define

More information

A Comparative Analysis of Architecture Frameworks

A Comparative Analysis of Architecture Frameworks A Comparative Analysis of Architecture Frameworks Antony Tang Jun Han Pin Chen School of Information Technology DSTO C3 Research Centre Swinburne University of Technology Department of Defence Melbourne,

More information

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

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture Nick Rozanski Andy Longshaw Eoin Woods Sold! How to Describe, Explain and Justify your Architecture Objectives of Today If you are an architect who has to produce an Architectural Description, then this

More information

Software Architecture. Lecture 5

Software Architecture. Lecture 5 Software Architecture Lecture 5 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements : tactics

More information

On ADLs and tool support for documenting view-based architectural descriptions

On ADLs and tool support for documenting view-based architectural descriptions On ADLs and tool support for documenting view-based architectural descriptions Danny Weyns Alexander Helleboogh SATURN 2008, Software Engineering Institute, CMU DistriNet Labs @ Dept.Computer Science K.U.Leuven

More information

9/5/2015. MTAT Software Engineering. Structure of Lecture 01. Course Information/Overview. Letter Grades. Student Feedback 2014/15

9/5/2015. MTAT Software Engineering. Structure of Lecture 01. Course Information/Overview. Letter Grades. Student Feedback 2014/15 MTAT.03.094 Software Engineering Structure of Lecture 01 General Course Information/Overview Introduction into Software Engineering Lecture 01: Course Introduction Dietmar Pfahl Fall 2015 email: dietmar.pfahl@ut.ee

More information

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

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Requirements to models: goals and methods

Requirements to models: goals and methods Requirements to models: goals and methods Considering Garlan (2000), Kruchen (1996), Gruunbacher et al (2005) and Alter (2006-08) CIS Department Professor Duane Truex III Wojtek Kozaczynski The domain

More information

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

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof. Sommerville Chapter 6 The High-Level Structure of a Software Intensive System Architectural Design Slides courtesy Prof.Mats Heimdahl 1 Fall 2 2013 Architectural Parallels Architects are the technical

More information

Architectural design

Architectural design 6 Architectural design Objectives The objective of this chapter is to introduce the concepts of software architecture and architectural design. When you have read the chapter, you will: understand why

More information

University of San Francisco Course Syllabus and Outline

University of San Francisco Course Syllabus and Outline College of Professional Studies BSIS 340 Business Data Networks and Telecommunications University of San Francisco Fall Semester 2008 Robert C. Hughes, M.S. Email: rchughes3@usfca.edu Enrolled Student

More information

Foundations of Software Engineering

Foundations of Software Engineering Foundations of Software Engineering Lecture 9: Architecture Documentation, Patterns, and Tactics Christian Kaestner 1 Learning Goals Use notation and views to describe the architecture suitable to the

More information

SOFTWARE ARCHITECTURES UNIT I INTRODUCTION AND ARCHITECTURAL DRIVERS

SOFTWARE ARCHITECTURES UNIT I INTRODUCTION AND ARCHITECTURAL DRIVERS IT6602 SOFTWARE ARCHITECTURES UNIT I INTRODUCTION AND ARCHITECTURAL DRIVERS SYLLABUS: Introduction What is software architecture? Standard Definitions Architectural structures Influence of software architecture

More information

Using the UML for Architectural Description Rich Hilliard

Using the UML for Architectural Description Rich Hilliard Using the UML for Architectural Description Rich Hilliard rh@isis2000.com Outline What is IEEE P1471? The IEEE P1471 Conceptual Framework Requirements on Architectural Descriptions Using the UML in the

More information

Tonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering?

Tonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering? Tonight s Agenda CSC340: Engineering Jennifer Campbell Lecturer Part 1 Introduction to course content Course information Changes to the SE courses/program Part 2 What are requirements? CSC340 University

More information

DESIGN: ARCHITECTURE AND METHODOLOGY

DESIGN: ARCHITECTURE AND METHODOLOGY DESIGN: ARCHITECTURE AND METHODOLOGY Software Engineering CS 130 Donald J. Patterson Content adapted from Essentials of Software Engineering 3rd edition by Tsui, Karam, Bernal Jones and Bartlett Learning

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Software Engineering with Objects and Components Open Issues and Course Summary

Software Engineering with Objects and Components Open Issues and Course Summary Software Engineering with Objects and Components Open Issues and Course Summary Massimo Felici Software Engineering with Objects and Components Software development process Lifecycle models and main stages

More information

Chapter 18. Software Reuse

Chapter 18. Software Reuse Chapter 18 Software Reuse Ian Sommerville Lutz Prechelt Ian Sommerville 2004, Software Engineering, 7th edition, prechelt@inf.fu-berlin.de 1 Objectives To explain the benefits of software reuse and some

More information

Software Architecture Extraction

Software Architecture Extraction Software Architecture Extraction Andrea Caracciolo Adapted from slides by Oscar Nierstrasz and Mircea Lungu Roadmap > Introduction to SAR > The Architecture of Architecture Recovery > Top-down SAR > Bottom-up

More information

Lecture 16: (Architecture IV)

Lecture 16: (Architecture IV) Lecture 16: (Architecture IV) Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct.

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

Components Based Design and Development. Unit 3: Software Design Quick Overview

Components Based Design and Development. Unit 3: Software Design Quick Overview Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 3: Software Design Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

Attribute Driven Design (ADD 3.0) Tackling complexity in the heart of Software Architecture. Luis Manuel Muegues Acosta Software Architect at Ryanair

Attribute Driven Design (ADD 3.0) Tackling complexity in the heart of Software Architecture. Luis Manuel Muegues Acosta Software Architect at Ryanair Attribute Driven Design (ADD 3.0) Tackling complexity in the heart of Software Architecture Luis Manuel Muegues Acosta Software Architect at Ryanair Webinair esummit IASA 23 August 2017 Welcome to everyone

More information

The ATCP Modeling Framework

The ATCP Modeling Framework The ATCP 2+9+1 Modeling Framework Bobbi Underbakke Adaptive Team Collaboration, Inc. 800.837.0677 atcprocess.com Adaptive Team Collaboration, Inc. March 22, 2005 Chris Armstrong Armstrong Process Group,

More information

ESE Einführung in Software Engineering!

ESE Einführung in Software Engineering! ESE Einführung in Software Engineering! 10. Software Architecture! Prof. O. Nierstrasz" Roadmap! > What is Software Architecture?" > Coupling and Cohesion" > Architectural styles:" Layered" Client-Server"

More information

Viewpoints for Sensor based Environmental Information Systems

Viewpoints for Sensor based Environmental Information Systems Viewpoints for Sensor based Environmental Information Systems Ruthbetha Kateule, Andreas Winter {kateule, winter}@se.uni-oldenburg.de Abstract: Sensor based environmental information systems are in use

More information

Software MEIC. (Lesson 4)

Software MEIC. (Lesson 4) Software Architecture @ MEIC (Lesson 4)! Last class The Architecture Influence Cycle The AIC applied to Fénix Today Revisiting the definition of Software Architecture How to describe a Software Architecture

More information

Software Architecture

Software Architecture Software Systems Architecture, Models, Methodologies & Design - Introduction Based on slides and information from a variety of sources Including Booch Software Architecture High level design of large software

More information

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

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 1 Faculty of Sciences, Lebanese University 2 LINA Laboratory, University of Nantes ABSTRACT:

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the

More information

Analyzing the Product Line Adequacy of Existing Components

Analyzing the Product Line Adequacy of Existing Components Analyzing the Product Line Adequacy of Existing Components Jens Knodel and Dirk Muthig Fraunhofer Institute for Experimental Software Engineering (IESE), Fraunhofer-Platz 1, D-67663 Kaiserslautern, Germany

More information

What is Software Architecture? What is Principal?

What is Software Architecture? What is Principal? What is Software Architecture? Definition: A software system s architecture is the set of principal design decisions about the system Software architecture is the blueprint for a software system s construction

More information

Chapter 13: Architecture Patterns

Chapter 13: Architecture Patterns Chapter 13: Architecture Patterns SAiP Chapter 13 J. Scott Hawker/R. Kuehl p. 1 Len Bass, Paul Clements, Rick Kazman, Topics What is a Pattern? Pattern Catalog Module patterns Component and Connector Patterns

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

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

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

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

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering Readings and References Architecture CSE 403, Spring 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03sp/ References» Software Architecture, David Garlan, CMU, 2001 http://www-2.cs.cmu.edu/~able/publications/encycse2001/»

More information

Unit Wise Questions. Unit-1 Concepts

Unit Wise Questions. Unit-1 Concepts Unit Wise Questions Unit-1 Concepts Q1. What is UML? Ans. Unified Modelling Language. It is a Industry standard graphical language for modelling and hence visualizing a blue print of all the aspects of

More information

Descriptions for CIS Classes (Fall 2017)

Descriptions for CIS Classes (Fall 2017) Descriptions for CIS Classes (Fall 2017) Major Core Courses 1. CIS 1015. INTRODUCTION TO COMPUTER INFORMATION SYSTEMS. (3-3-0). This course provides students an introductory overview to basic computer

More information

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021 Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1 Topics The development process Planning Designing Implementing 2 1. The development process How to organise activities related to the creation,

More information

THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY

THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY Reggie Davidrajuh, Stavanger University College, Norway, reggie.davidrajuh@tn.his.no ABSTRACT This paper presents

More information

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812) CSSE 374: Logical Architecture Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu An Engineering Decision Learning Outcomes: O-O Design Demonstrate object-oriented

More information

Software Architecture

Software Architecture Software Architecture Mestrado em Engenharia Informática e de Computadores COMPANION TO THE FIRST EXAM ON JANUARY 8TH, 2016 VERSION: A (You do not need to turn in this set of pages with your exam) 1. Consider

More information

In this Lecture you will Learn: System Design. System Architecture. System Architecture

In this Lecture you will Learn: System Design. System Architecture. System Architecture In this Lecture you will Learn: System Design Chapter 13 The major concerns of system design The main aspects of system architecture, in particular what is meant by subdividing a system into layers and

More information

Software Architecture

Software Architecture Software Architecture L T JayPrakash jtl@iiitb.ac.in Software Architecture (recap) Other Influences on SA Therefore, SA is important and look into its constituents! Every software system has an architecture!

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

Lecture 1. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process

More information

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

Systems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels: Systems-Level Architecture A Re-Introduction 12 - Arch. Reintro CSC407 1 Level of Design Divide into two levels: System-LevelArchitecture Programming-Level Design You know what design is OOD + written

More information

Software Architecture Thoughts for the System Security Design

Software Architecture Thoughts for the System Security Design Software Architecture Thoughts for the System Security Design Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 James Ivers April 17, 2007 Role of Software Architecture If

More information

<<Subsystem>> Software Architecture Document

<<Subsystem>> Software Architecture Document Ref Contract Number: Contractor: Copy SAD TEMPLATE of Software Architecture Document SAD Template Page 1 of 21 Software Architecture Document Prepared by: Title Name Signature

More information

Architecture. CSE 403, Winter 2003 Software Engineering.

Architecture. CSE 403, Winter 2003 Software Engineering. Architecture CSE 403, Winter 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03wi/ 21-February-2003 cse403-14-architecture 2003 University of Washington 1 References Readings

More information

The Method for Verifying Software Architecture with FSP Model

The Method for Verifying Software Architecture with FSP Model The Method for Verifying Software Architecture with FSP Model Kim, Jungho SKC&C Inc., SK u-tower 25-1, Jeongja-dong, Bundang-gu, Seongnam-si, Gyeonggi-do 463-844, Korea kimjh@skcc.com Abstract C&C view

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes: CM, Management, and Evolution Several Illustrations from Ian Sommerville s text http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html

More information

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

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Software Design and Architecture Software Design Software design is a process of problem-solving

More information

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method Diseño y Evaluación de Arquitecturas de Software Architecture Based Design Method César Julio Bustacara Medina Facultad de Ingeniería Pontificia Universidad Javeriana 08/10/2015 1 Architecture Based Design

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering 5. Software Architecture Mircea F. Lungu Based on a lecture by Oscar Nierstrasz. Roadmap > What is Software Architecture? > Architectural styles Layered Client-Server

More information

User-centered design in technical communication

User-centered design in technical communication User-centered design in technical communication Information designer & information architect Sharing knowledge is better than having it. Tekom - TC Europe November 19-20, 2003 Nov. 19-20, 2003 User-centered

More information