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

Size: px
Start display at page:

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

Transcription

1 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

2 Architecture Based Design Method This presentation is based on following technical reports: The Architecture Based Design Method, Technical Report, CMU/SEI-2000-TR001, Felix Bachmann, Len Bass, Gary Chastek, Patrick Donohoe and Fabio Peruzzi, An Application of the Architecture-Based Design Method to the Electronic House, Felix Bachmann, Len Bass and Mark Klein,

3 Architecture Based Design Method The ABD method provides a series of steps used in producing the conceptual architecture of a system. ABD depends on determining the architectural drivers for a system Architectural drivers are the combination of business, quality and functional requirements that shape the architecture With ABD, design can begin before all requirements are identified ABD methodology includes three fundamental approaches or foundations: Decomposition of function Realization of quality and business requirements Use of software templates 3

4 ABD Method Overview (1) ABD is a recursive method in which the steps of each iteration are clearly defined It provides a method of design that can meet all requirements and validate that all requirements have been met The input to the method is a list of requirements Functional, quality and business, and constraints Systems to be designed are recursively decomposed System decomposition is examined from the perspective of three views: Logical, Concurrency, Deployment Software templates are also examined as a fourth view 4

5 ABD Method Overview (2) The concrete requirements (functional, quality, and business) are used to verify the decisions made during decomposition Constraints are examined to verify that they have not been violated by a decision made during decomposition Design methods (ABD included) are not intended to replace expert designers They support design decisions by providing a structure in which the design can progress ABD has been used in design projects in which the SEI has assisted 5

6 Method Terminology - (1) Systems are decomposed into conceptual subsystems and one or more software templates ABD organizes design decisions, but does not make commitments to Software components and classes, nor to Organization of components into processes and processing threads A design element refers generically to the system, a conceptual subsystem, or a conceptual component At the top level, systems are decomposed into conceptual subsystems and one or more software templates 6

7 Method Terminology (2) At the next level the subsystems are decomposed into conceptual components Design elements have conceptual interfaces that encapsulate knowledge of data input and output Functions of one design element at one stage may be distributed at a later stage in the method to other design elements The method concludes once decisions begin to be made about classes, methods, processes, and operating system threads 7

8 Templates Level of Decomposition System Conceptual subsystem Conceptual components Concrete components aggregation Inheritance Evolves into 8

9 Perspectives and Views It is important to examine an architecture from a variety of different perspectives Static: displays organization of functionality Dynamic: displays activities that may take place concurrently Performance implications Three views are considered in the ABD method Logical view - record responsibilities and conceptual interfaces for design elements Concurrency view - multiple users, resource contention, start-up and other parallel activities Deployment view - represents nodes in the physical structure of a system 9

10 Use Cases A use case is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor [Booch, Rumbaugh, Jacobson 1999] Describes a set of sequences, in which each sequence represents the interaction of things outside the system with the system itself Behaviors identify system-level functions -- I.e. represents a functional requirement of the system as a whole A use case carries out some tangible amount of work Use cases can be the source of various types of test situations A use case is a piece of functionality in the system that gives a user a result of value. [Jacobson 99] 10

11 Quality Scenarios It is necessary to make quality requirements concrete The system should be easy to modify It should be easy to add new features of the following type New fields must be able to be added to report printouts without recompilation of program source modules Quality scenarios capture change, performance, reliability and interoperability Quality scenarios capture expected and unexpected scenarios Unexpected scenarios - may not realistic except for thought in determining boundary conditions within design 11

12 Variabilities and Commonalities (1) It is important to capture product line variations early in the design stage Coarse or fine grained variations in product line versions need to be identified as early as possible to avoid later development problems Coarse - different customer, different features Fine grained - different purpose, different implementation of the same feature Variability can occur in function or in platform or in environment ABD does not capture variabilities but expects them to be captured 12

13 Variabilities and Commonalities (2) Variabilities in platform should be categorized as quality requirements during the requirements phase Variabilities in function will be described later Commonalities refers to the fixed points within the variation inherent to a product line Features common to all instances of the product line 13

14 Software Templates A software template of a particular type enumerates responsibilities for design elements of that type. There are three kinds of responsibilities Patterns that describe how this type of design element interacts with services provided to multiple design elements (crosscutting services). Patterns that describe how this type of design element interacts with the infrastructure. Responsibilities that every design element of a particular type must provide (requirement to handle errors in a consistent way). 14

15 Template Purposes Repository for certain components that can be reused within the system Helps solve some integration problems by documenting and solving patterns of interaction a single time Categorize design elements into types Templates capture the interactions of design element types with the infrastructure and shared services Results in the skeleton system - i.e. contains the infrastructure with little or no functionality Supports the determination of patterns of interaction of various architectural element types for quality attribute modeling 15

16 Architectural Drivers Architectural drivers are the combination of functional, quality and business requirements that shape an architecture At the top level, the drivers can be determined by looking at the purpose of the system and the critical business needs Drivers do not depend on the details of the functional requirements but on their abstraction Determination of the architectural drivers may not always be a top-down process May involve research into the details of two or more approaches to learn the data processing characteristics of each that will affect the overall architecture 16

17 Architectural Driver Examples System level drivers: The purpose of an air traffic control system is to perform realtime control of enroute aircraft and this dictates high availability and reasonably stringent performance The purpose of some financial systems is to transfer money or orders from one place to another and this dictates high security and high availability Business goal or background drivers: The organization wishes to develop a product line, and this dictates a concern for generality that might not occur in a single product architecture The organization wishes to develop a particular competence, such a Web-based database access. Consequently, the architecture for the next system will be influenced by that desire 17

18 Architectural Styles An architectural style consists of a collection of component types together with a description of the pattern of interaction among them Examples are client, server, layer and process Component is primitive that describes any connection of coherent computation System Level architectural driver: The purpose of a flight simulator is to train aircrews and this dictates both high fidelity of the simulation and real-time performance The architectural driver is to process large amounts of data with hard real-time performance constraints An architecture with a real-time scheduling strategy is needed If only large amounts of data were processed, a different strategy could be selected 18

19 ABD Method within the Lifecycle Requirements Analysis ABD Method Concrete component design Functional requirements Quality requirements Constraints Abstract components Software templates Constraints Requirements Requirements phase should be at least partially complete Functional requirements Quality and business reqirements Constraints Record all decisions and rationale for those decisions 19

20 ABD method contents (1) Input to the ABD method consist of: Abstract functional requirements, including the identification of variabilities and commonalities Use cases (concrete functional requirements) Abstract quality and business requirements Quality scenarios (concrete quality and business requirements) Architecture options Constraints 20

21 ABD method contents (2) Important to consider all the end users when capturing the requirements Understand the dependencies among requirements Functional requirements are captured at an abstract level where detailed information is not known Use Case is a concrete expression of an interaction between one or more end users in the system Quantify quality and business requirements Do not make architecture decisions at this point: enumerate all possible options Constraints are design decisions that are pre-specified 21

22 The ABD method (1) ABD is based on decomposing the overall system. Every system has an application portion and an infrastructure portion The top-level decomposition is into conceptual subsystems Subsystem templates are associated with each subsystem Conceptual subsystems has its own responsibilities and is considered according to the three views: logical, concurrency, and deployment 22

23 The ABD method (2) Conceptual subsystems are, in turn decomposed into conceptual components Following the conceptual subsystems, concrete components reflect a commitment to a software element such as a set of classes 23

24 Design Element Generation The order of traversing the decomposition tree is not important a more detailed understanding of a particular aspect of the design may cause reconsideration of prior decisions May be true for architecture decisions as well as requirements Detailed investigations of a design aspect may take place at any time in order to choose the appropriate architecture All design decisions should be documented Considerations in determining how to decompose the problem Domain knowledge Incorporation of new technology Personnel performing the architectural design 24

25 Decomposition Decomposition of each design element begins with a set of requirements, a template, and a set of constraints Defining Logical View Decompose function Choose basic architectural style Define Logical view Allocate function to style Verify with quality scenarios and constraints Iterative steps Define Concurrency view Refine templates Define Deployment view Verify with use cases and change scenarios 25

26 Divide Functionality (1) Each design element has a set of responsibilities Responsibilities should be divided into groups Responsibilities come from the requirements Criteria or this division depends on the qualities important to a particular design element For modifiability, criteria might be Functional coherence Similar patterns of data or computational behavior Similar levels of abstraction Locality responsibility... For performance, criteria might be Minimize data movement Minimize unnecessary data calculations... 26

27 Divide Functionality (2) The goal of decomposition is to produce groups of functionality that will Represent decomposition of the design element responsibilities Keep the groups small (3-15) Associated with each group is A characterization of the variabilities and dependencies Enumeration the information requirements A diagram of this element can be drawn to show the external interfaces 27

28 Architectural Style Each design element has a dominant architectural style or pattern Based on the drivers for this design element The process is to determine architectural drivers for this design element and from the architectural drivers determine the dominant architectural style If a dominant style cannot be discerned, a style of independent filters with connections from outside the design element may be used Examine each quality requirement, and determine whether it is relevant to the design element being decomposed The result of this step is a collection of component types Without reference to the functionality or how often this type appears 28

29 Allocate Architectural Style (1) Groups functionality resulting from the decomposition of function should be allocated to the types of components resulting from the determination of style Components resulting from this allocation will be candidate child design elements for the design element being decomposed 29

30 Allocate Architectural Style (2) Identify the conceptual interface Information the design element needs and produces (identified during functional decomposition) Data control flow information needed Use cases are exercised to verify that they can be achieved through the proposed structure 30

31 Refine Templates Upon initiation, the method has no template Responsibilities are added as they are defined Design decisions are documented as they are made during the process Other design information is added to the template during the process: Requirements to perform functionality in the design Descriptions of shared responsibility Interface information 31

32 Other Views (1) Concurrency View To determine what activities might be carried on in parallel Examination virtual threads A single path of execution through a program, a dynamic model, or other representation of control flow (not an operating system thread) Think about use cases showing two users, effects of startup or shutdown 32

33 Other Views (2) Deployment View Issues with the used of multiple processors are examined Examination of the effect of the network on virtual threads Physical threads describe threads on a particular processor Question the impact of the network on data transmission, latencies, and on the synchronization of activities Unit of deployment: the smallest design element that can be allocated to a processor If a design element is split across two processors, it may imply a division of functionality or multiple instances of the design element 33

34 Other Views (3) Verify Quality Scenarios Each quality scenario includes an attribute stimulus and a desired response that must be verified Verify Constraints 34

35 Example (1) Architecture-Based Design of Multi- Agent Systems, Danny Weyns, Springer,

36 Example (2) 36

37 Summary ABD method The steps of the ABD Method, once requirements have been specified, are as follows: Identify architectural drivers Verify quality scenarios Divide (encapsulate) functionality Choose architectural style Generate deployment view Generate concurrency view Allocate functionality to style Verify functionality Refine templates 37

38 Conclusions The ABD method is used to generate high-level architecture Outputs of the method that are useful in further design: Design elements Templates Quality requirements Quality scenarios Representation of commonalties and variabilities An understanding of architecture and the influences that drive architecture design can be exploited to help the development process 38

39 Exercise Problem: Provide a web-accessed database containing descriptions and a catalogue of prices for a candy store Responsibilities User interface Data base Print capable... Use and adapt critical functionally, critical quality attributes and constraints proposed by Felix Bachmann, Len Bass and Mark Klein, in their study case. Generate a similar documentation to study case. 39

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

Quality Attribute Design Primitives and the Attribute Driven Design Method 1

Quality Attribute Design Primitives and the Attribute Driven Design Method 1 Quality Attribute Design Primitives and the Attribute Driven Design Method 1 Len Bass, Mark Klein, and Felix Bachmann Software Engineering Institute Carnegie Mellon University Pittsburgh, Pa 15213 USA

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

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

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

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

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

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

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

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based

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

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

Architecture-Based Problem Frames Constructing for Software Reuse

Architecture-Based Problem Frames Constructing for Software Reuse Architecture-Based Problem Frames Constructing for Software Reuse CHU Wang +86-536-8268409 chuw1119 @ 163.com QIAN Depei LIU Chuda ABSTRACT Reusability is not universal property of program codes. The problem

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

Outline. Architectural Design Drivers. Motivation. Motivation for This Research. Sahil Thaker Shounak Roychowdhury

Outline. Architectural Design Drivers. Motivation. Motivation for This Research. Sahil Thaker Shounak Roychowdhury Outline Architectural Design Drivers Presented by: Sahil Thaker Shounak Roychowdhury Motivation Paper: Using Non-Functional Requirements to Systematically Select Among Alternatives in Architectural Designs

More information

A Tutorial on Agent Based Software Engineering

A Tutorial on Agent Based Software Engineering A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far A Tutorial on Agent Based Software Engineering Qun Zhou December, 2002 Abstract Agent oriented software

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

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL INTERNATIONAL DESIGN CONFERENCE - DESIGN 2000 Dubrovnik, May 23-26, 2000. ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL N. Pavković, D. Marjanović Keywords: object oriented methodology, design process

More information

PPOOA, An Architectural Style for Real Time Systems

PPOOA, An Architectural Style for Real Time Systems PPOOA, An Architectural Style for Real Time Systems José Luis Fernández Sánchez Industrial Engineering School Universidad Politécnica de Madrid e-mail: fernandezjl@acm.org September 2004 PPOOA-WP-01_2004.pdf

More information

Illuminating the Fundamental Contributors to Software Architecture Quality

Illuminating the Fundamental Contributors to Software Architecture Quality Illuminating the Fundamental Contributors to Software Architecture Quality Felix Bachmann Len Bass Mark Klein August 2002 TECHNICAL REPORT CMU/SEI-2002-TR-025 ESC-TR-2002-025 Pittsburgh, PA 15213-3890

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Recap 1 to 5 Chapters 1. UML Notation 1. Use Case 2. Class Diagrams 3. Interaction or Sequence Diagrams 4. Machine or State Diagrams 5. Activity Diagrams

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

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

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

IN5050: Programming heterogeneous multi-core processors Thinking Parallel

IN5050: Programming heterogeneous multi-core processors Thinking Parallel IN5050: Programming heterogeneous multi-core processors Thinking Parallel 28/8-2018 Designing and Building Parallel Programs Ian Foster s framework proposal develop intuition as to what constitutes a good

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 Engineering Chap.7 - Design and Implementation

Software Engineering Chap.7 - Design and Implementation Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,

More information

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE Master of Science Thesis (D-level) Akademin för innovation, design och teknik David Šenkeřík Modeling deployment and allocation in the Progress IDE Mälardalen Research and Technology Centre Thesis supervisors:

More information

Integrating Domain Specific Modeling into the Production Method of a Software Product Line

Integrating Domain Specific Modeling into the Production Method of a Software Product Line Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary J. Chastek Software Engineering Institute John D. McGregor Clemson University Introduction This paper describes

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

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered Object-oriented development Object-oriented Design Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain.

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

Fundamental Concepts of Parallel Programming

Fundamental Concepts of Parallel Programming Fundamental Concepts of Parallel Programming Abstract The concepts behind programming methodologies and techniques are always under development, becoming more complex and flexible to meet changing computing

More information

Course 3 7 March

Course 3 7 March Course 3 7 March adiftene@info.uaic.ro 1 From Courses 1, 2 Modeling Modeling Languages Graphic Languages UML History UML Definition UML Diagram Types UML Use Case Diagram Actors Use Case UML Class Diagrams

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Chapter 7 Design and Implementation

Chapter 7 Design and Implementation Chapter 7 Design and Implementation Chapter 7 Design and Implementation Slide 1 Topics covered Object-oriented design using the UML Design patterns Implementation issues Reuse Configuration management

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

XIX. Software Architectures

XIX. Software Architectures XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

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

Object Oriented Software Development CIS Today: Object Oriented Analysis

Object Oriented Software Development CIS Today: Object Oriented Analysis Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis

More information

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved Chapter 12 UML and Patterns Copyright 2008 Pearson Addison-Wesley. All rights reserved Introduction to UML and Patterns UML and patterns are two software design tools that can be used within the context

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

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Reuse in Reality - The Reuse-Driven Software-Engineering Business

Reuse in Reality - The Reuse-Driven Software-Engineering Business Reuse in Reality - The Reuse-Driven Software-Engineering Business Ivar Jacobson Rational Software Corporation 2800 San Tomas Expressway Santa Clara, CA 95051 phone: (408) 496 3600, fax: (408)-496 3973

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

OMG Modeling Glossary B

OMG Modeling Glossary B OMG Modeling Glossary B This glossary defines the terms that are used to describe the Unified Modeling Language (UML) and the Meta Object Facility (MOF). In addition to UML and MOF specific terminology,

More information

SDC Design patterns GoF

SDC Design patterns GoF SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating

More information

Developing a Product-Line Based Architecture in a Domain Under Research

Developing a Product-Line Based Architecture in a Domain Under Research Developing a Product-Line Based Architecture in a Domain Under Research Valentino Vranić and Vladimír Marko Institute of Informatics and Software Engineering Faculty of Informatics and Information Technology

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Rational Software White paper

Rational Software White paper Unifying Enterprise Development Teams with the UML Grady Booch Rational Software White paper 1 There is a fundamental paradox at play in contemporary software development. On the one hand, organizations

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT) OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE () Ahmed Hayajneh, May 2003 1 1 Introduction One of the most popular object-oriented development techniques today is the Object Modeling

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Data Verification and Validation (V&V) for New Simulations

Data Verification and Validation (V&V) for New Simulations Data Verification and Validation (V&V) for New Simulations RPG Special Topic 9/15/06 1 Table of Contents Introduction 1 Data V&V Activities During M&S Development 1 Determine M&S Requirements Phase 2 V&V

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

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

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

More information

Agent-Oriented Software Engineering

Agent-Oriented Software Engineering Agent-Oriented Software Engineering Lin Zuoquan Information Science Department Peking University lz@is.pku.edu.cn http://www.is.pku.edu.cn/~lz/teaching/stm/saswws.html Outline Introduction AOSE Agent-oriented

More information

Object-Oriented Design (OOD) Case Study : Architecture and Detail Design and Software Design Document (SDD) Prepared by Shahliza Abd Halim

Object-Oriented Design (OOD) Case Study : Architecture and Detail Design and Software Design Document (SDD) Prepared by Shahliza Abd Halim Object-Oriented Design (OOD) Case Study : Architecture and Detail Design and Software Design Document (SDD) Prepared by Shahliza Abd Halim Recap on SDLC Phases & Artefacts Domain Analysis @ Business Process

More information

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.

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. T0/04-023 revision 2 Date: September 06, 2005 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

From Analysis to Design. LTOOD/OOAD Verified Software Systems

From Analysis to Design. LTOOD/OOAD Verified Software Systems From Analysis to Design 1 Use Cases: Notation Overview Actor Use case System X System boundary UCBase «extend» UCExt Actor A UCVar1 UCVar2 Extending case Generalization «include» Actor B UCIncl Included

More information

Architectural design of MDX compiler via attribute-driven design *

Architectural design of MDX compiler via attribute-driven design * Jul. 2009, Volume 6, No.7 (Serial No.56) Journal of Communication and Computer, ISSN 1548-7709, USA Architectural design of MDX compiler via attribute-driven design * ZHANG Ping-jian, XI Jian-qing, ZHAO

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER

CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER 84 CHAPTER 3 ASYNCHRONOUS PIPELINE CONTROLLER 3.1 INTRODUCTION The introduction of several new asynchronous designs which provides high throughput and low latency is the significance of this chapter. The

More information

ECE-492 SENIOR ADVANCED DESIGN PROJECT

ECE-492 SENIOR ADVANCED DESIGN PROJECT ECE-492 SENIOR ADVANCED DESIGN PROJECT Meeting #4 1 ECE-492 Meeting#4 HW1: Teams show us your Requirements Specification? HW2: Teams show us your Conceptual Design? 2 ENGINEERING DESIGN MAKES A DIFFERENCE

More information

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology ArchiMate Core Structural Concepts Behavioral Concepts Informational Concepts interaction Technology Application Layer Concept Description Notation Concept Description Notation Actor An organizational

More information

White Paper. Rose PowerBuilder Link

White Paper. Rose PowerBuilder Link White Paper Rose PowerBuilder Link Contents Overview 1 Audience...1 The Software Development Landscape...1 The Nature of Software Development...1 Better Software Development Methods...1 Successful Software

More information

Comparative Analysis of Architectural Views Based on UML

Comparative Analysis of Architectural Views Based on UML Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes

More information

What Is a Distributed Simulation (i.e., A Federation)?

What Is a Distributed Simulation (i.e., A Federation)? M&S VV&A RG Core Document: VV&A of Federations What Is a Distributed Simulation (i.e., A Federation)? 1/31/2011 A distributed simulation is defined as a disparate set of models and/or simulations operating

More information

Lecture 2: Software Engineering (a review)

Lecture 2: Software Engineering (a review) Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is

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

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

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus UML 2.0 Division of Computer Science, College of Computing Hanyang University ERICA Campus Introduction to UML 2.0 UML Unified Modeling Language Visual language for specifying, constructing and documenting

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development Progress Report Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) CS 4354 Summer II 2014 Jill Seaman So far we have learned about the tools used in object-oriented

More information

An Introduction to Parallel Programming

An Introduction to Parallel Programming An Introduction to Parallel Programming Ing. Andrea Marongiu (a.marongiu@unibo.it) Includes slides from Multicore Programming Primer course at Massachusetts Institute of Technology (MIT) by Prof. SamanAmarasinghe

More information

Chapter 5: Structural Modeling

Chapter 5: Structural Modeling Chapter 5: Structural Modeling Objectives Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. Understand the processes used to create CRC cards, class

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

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML D. Beltran*, LLS, Barcelona, Spain M. Gonzalez, CERN, Geneva, Switzerlan Abstract CELLS (Consorcio para la construcción, equipamiento

More information

Software Reuse and Component-Based Software Engineering

Software Reuse and Component-Based Software Engineering Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering

More information

Communication Ontological Description Process Fragment. Author: M. Cossentino, V. Seidita Last saved on: 23/06/2010

Communication Ontological Description Process Fragment. Author: M. Cossentino, V. Seidita Last saved on: 23/06/2010 Communication Ontological Description Process Fragment Author: M. Cossentino, V. Seidita Last saved on: 23/06/2010 1 Index Fragment Goal...3 Fragment Origin...3 The PASSI Process lifecycle...4 Fragment

More information

Designing a System Engineering Environment in a structured way

Designing a System Engineering Environment in a structured way Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan

More information

Principles of Parallel Algorithm Design: Concurrency and Decomposition

Principles of Parallel Algorithm Design: Concurrency and Decomposition Principles of Parallel Algorithm Design: Concurrency and Decomposition John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 2 12 January 2017 Parallel

More information

White Paper. Major Performance Tuning Considerations for Weblogic Server

White Paper. Major Performance Tuning Considerations for Weblogic Server White Paper Major Performance Tuning Considerations for Weblogic Server Table of Contents Introduction and Background Information... 2 Understanding the Performance Objectives... 3 Measuring your Performance

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

Chapter 3. Design Process for Hypermedia Applications.

Chapter 3. Design Process for Hypermedia Applications. Chapter 3. Design Process for Hypermedia Applications. This chapter first reviews the major hypermedia design methodologies, with particular reference to the industrial hypermedia domain. Within the literature

More information

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. SE Assignment III 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. There are essentially 5 different types of symbols used

More information

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.

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. T0/06-6 revision 2 Date: May 22, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci

Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci v1.0 20140421 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 3.1] ELEMENTS OF CONCURRENT PROGRAM DESIGN 1 STEPS IN DESIGN

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright Complexity Object Orientated Analysis and Design Benjamin Kenwright Outline Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by Complexity? How do

More information

CS:2820 (22C:22) Object-Oriented Software Development

CS:2820 (22C:22) Object-Oriented Software Development The University of Iowa CS:2820 (22C:22) Object-Oriented Software Development! Spring 2015 Software Complexity by Cesare Tinelli Complexity Software systems are complex artifacts Failure to master this

More information

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70 ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design Submitted by, Roll Numbers:-49-70 Functional Models The functional model specifies the results of a computation without specifying

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