Software Engineering: A Practitioner s Approach, 7/e. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

Similar documents
Understanding Requirements. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Engineering. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Course Outline Department of Computing Science Faculty of Science

UNIT-III LIFE-CYCLE PHASES

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

A Mashup of Techniques to Create Reference Architectures

Methodology for Agent-Oriented Software

INTEGRATING DESIGN AND ENGINEERING, II: PRODUCT ARCHITECTURE AND PRODUCT DESIGN

An introduction to these key work products

Towards Integrated System and Software Modeling for Embedded Systems

Designing Architectures

Moonzoo Kim. KAIST CS350 Intro. to SE Spring

SOFTWARE ARCHITECTURE

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

CC532 Collaborative System Design

CIS1109 merged questions

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

Chapter 7 Requirements Engineering

GOALS TO ASPECTS: DISCOVERING ASPECTS ORIENTED REQUIREMENTS

MAJOR GEOGRAPHIC CONCEPTS

SOFT 437. Software Performance Analysis. What is UML? UML Tutorial

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Naimeh Sadeghi Aminah Robinson Fayek. Dept. of Civil and Environmental Engineering University of Alberta Edmonton, AB, CANADA

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

A MODEL-DRIVEN REQUIREMENTS ENGINEERING APPROACH TO CONCEPTUAL SATELLITE DESIGN

Software LEIC/LETI. Lecture 21

Indiana K-12 Computer Science Standards

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

SDN Architecture 1.0 Overview. November, 2014

Emerging Trends in Software Engineering

Context Sensitive Interactive Systems Design: A Framework for Representation of contexts

Agent-Based Modeling Tools for Electric Power Market Design

Object-oriented Analysis and Design

IHK: Intelligent Autonomous Agent Model and Architecture towards Multi-agent Healthcare Knowledge Infostructure

Despite the euphonic name, the words in the program title actually do describe what we're trying to do:

F. Tip and M. Weintraub REQUIREMENTS

Towards a multi-view point safety contract Alejandra Ruiz 1, Tim Kelly 2, Huascar Espinoza 1

A Theory about the Structure of GTSEs

UML and Patterns.book Page 52 Thursday, September 16, :48 PM

Model Based Systems Engineering

The Challenge of Semantic Integration and the Role of Ontologies Nicola Guarino ISTC-CNR

UML Use Case Diagrams

SENG609.22: Agent-Based Software Engineering Assignment. Agent-Oriented Engineering Survey

Object-Mediated User Knowledge Elicitation Method

Grundlagen des Software Engineering Fundamentals of Software Engineering

Ethical and social aspects of management information systems

AGENT BASED MANUFACTURING CAPABILITY ASSESSMENT IN THE EXTENDED ENTERPRISE USING STEP AP224 AND XML

Fundamental Research in Systems Engineering: Asking Why? rather than How?

The secret behind mechatronics

Policy-Based RTL Design

Conceptual Metaphors for Explaining Search Engines

Co-evolution of agent-oriented conceptual models and CASO agent programs

Architecture-Led Safety Process

Follower Robot Using Android Programming

Systems Engineering CSC 595_495 Spring 2018 Howard Rosenthal

Public Art Network Best Practice Goals and Guidelines

A New Approach to Software Development Fusion Process Model

The Decision View of Software Architecture: Building by Browsing

VISUALISATION AND OBJECT DESIGN IN VIRTUAL ARCHITECTURE

Using Dynamic Capability Evaluation to Organize a Team of Cooperative, Autonomous Robots

Fall 2014 SEI Research Review Aligning Acquisition Strategy and Software Architecture

Subsea All-Electric Technology Now available for the future field developments

SYNTHESIZING AND SPECIFYING ARCHITECTURES FOR SYSTEM OF SYSTEMS

Process Analysis and Modeling Using IDEF0. School of Mechanical, Industrial, & Manufacturing Engineering

Different Mirror Surfaces

ISO INTERNATIONAL STANDARD. Geographic information Locationbased services Tracking and navigation

Re-build-ing Boundaries: The Roles of Boundaries in Mixed Reality Play

AOSE Agent-Oriented Software Engineering: A Review and Application Example TNE 2009/2010. António Castro

TELEMETRY SOFTWARE DEVELOPMENT LIFE CYCLE

EGS-CC. System Engineering Team. Commonality of Ground Systems. Executive Summary

UMLEmb: UML for Embedded Systems. II. Modeling in SysML. Eurecom

Contents TABLE OF CONTENTS Math Guide 6-72 Overview NTCM Standards (Grades 3-5) 4-5 Lessons and Terms Vocabulary Flash Cards 45-72

Privacy, Technology and Economics in the 5G Environment

Toward a Conceptual Comparison Framework between CBSE and SOSE

DESIGN AGENTS IN VIRTUAL WORLDS. A User-centred Virtual Architecture Agent. 1. Introduction

The HL7 RIM in the Design and Implementation of an Information System for Clinical Investigations on Medical Devices

Access Networks (DYSPAN)

Patterns and their impact on system concerns

Keywords: DSM, Social Network Analysis, Product Architecture, Organizational Design.

Evolving Enterprise Architecture

DESIGN AND CAPABILITIES OF AN ENHANCED NAVAL MINE WARFARE SIMULATION FRAMEWORK. Timothy E. Floore George H. Gilman

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

ROBOT VISION. Dr.M.Madhavi, MED, MVSREC

Networked Virtual Environments

AN0503 Using swarm bee LE for Collision Avoidance Systems (CAS)

ProbabilityTestingaComponentofAdvanceSoftwareTesting

Distilling Scenarios from Patterns for Software Architecture Evaluation A Position Paper

Seamless Energy Management Systems. Part II: Development of Prototype Core Elements

Study of Location Management for Next Generation Personal Communication Networks

Trends in Software and Control

Industry 4.0 and education: Use Cases and Testbeds with German SME for Manufacturing

ESP8266 Wi-Fi Channel Selection Guidelines

An Integrated Framework for Assembly-Oriented Product Design and Optimization

DEFENSE ACQUISITION UNIVERSITY EMPLOYEE SELF-ASSESSMENT. Outcomes and Enablers

Requirement Definition

The AMADEOS SysML Profile for Cyber-physical Systems-of-Systems

TIES: An Engineering Design Methodology and System

Reverse engineering a legacy software in a complex system: A systems engineering approach

Information Metaphors

Modeling for Smart Cyber-Physical Systems Application to Farming Systems

Transcription:

Chapter 9 Architectural Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 1

Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design in meeting its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2

Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together [BAS03]. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 3

Architectural Descriptions The IEEE Computer Society has proposed IEEE-Std- 1471-2000, Recommended Practice for Architectural Description of Software-Intensive System, [IEE00] to establish a conceptual framework and vocabulary for use during the design of software architecture, to provide detailed guidelines for representing an architectural description, and to encourage sound architectural design practices. The IEEE Standard defines an architectural description (AD) as a a collection of products to document an architecture. The description itself is represented using multiple views, where each view is a representation of a whole system from the perspective of a related set of [stakeholder] concerns. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 4

Architectural Genres Genre implies a specific category within the overall software domain. Within each category, you encounter a number of subcategories. For example, within the genre of buildings, you would encounter the following general styles: houses, condos, apartment buildings, office buildings, industrial building, warehouses, and so on. Within each general style, more specific styles might apply. Each style would have a structure that can be described using a set of predictable patterns. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 5

Architectural Styles Each style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules) that perform a function required by a system, (2) a set of connectors that enable communication, coordination and cooperation among components, (3) constraints that define how components can be integrated to form the system, and (4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6

Data-Centered Architecture 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 7

Data Flow Architecture 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 8

Call and Return Architecture 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 9

Layered Architecture 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 10

Architectural Patterns Concurrency applications must handle multiple tasks in a manner that simulates parallelism operating system process management pattern task scheduler pattern Persistence Data persists if it survives past the execution of the process that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture an application level persistence pattern that builds persistence features into the application architecture Distribution the manner in which systems or components within systems communicate with one another in a distributed environment A broker acts as a middle-man between the client component and a server component. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 11

Architectural Design The software must be placed into context the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction A set of architectural archetypes should be identified An archetype is an abstraction (similar to a class) that represents one element of system behavior The designer specifies the structure of the system by defining and refining software components that implement each archetype 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 12

Architectural Context Safehome Product Internet-based system control panel homeowner uses target system: Security Function uses surveillance function peers uses sensors sensors 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13

Archetypes Controller communicates with Node Detector Indicator These slides are designed to Figure accompany 10.7 UML Software relationships Engineering: for SafeHome A Practitioner s security function Approach, archetypes 7/e (McGraw-Hill, 2009). Slides (adapted copyright from 2009 [BOS00]) by Roger Pressman. 14

Component Structure SafeHome Executive Function selection Ext ernal Communicat ion Management Security Surveillance Home management GUI Internet Interface Control panel processing detector management alarm processing 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 15

Refined Component Structure SafeHome Executive External Communication Management Security GUI Internet Interface Control panel processing detector management alarm processing Keypad processing scheduler phone communication CPdisplay functions sensor sensor sensor alarm 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 16

Analyzing Architectural Design 1. Collect scenarios. 2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements: module view process view data flow view 4. Evaluate quality attributes by considered each attribute in isolation. 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. 6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 17

Architectural Complexity the overall complexity of a proposed architecture is assessed by considering the dependencies between components within the architecture [Zha98] Sharing dependencies represent dependence relationships among consumers who use the same resource or producers who produce for the same consumers. Flow dependencies represent dependence relationships between producers and consumers of resources. Constrained dependencies represent constraints on the relative flow of control among a set of activities. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 18

ADL Architectural description language (ADL) provides a semantics and syntax for describing a software architecture Provide the designer with the ability to: decompose architectural components compose individual components into larger architectural blocks and represent interfaces (connection mechanisms) between components. 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 19

An Architectural Design Method customer requirements "four bedrooms, three baths, lots of glass..." architectural design 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 20

Deriving Program Architecture Program Architecture 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 21

Partitioning the Architecture horizontal and vertical partitioning are required 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 22

Horizontal Partitioning define separate branches of the module hierarchy for each major function use control modules to coordinate communication between functions function 1 function 3 function 2 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 23

Vertical Partitioning: Factoring design so that decision making and work are stratified decision making modules should reside at the top of the architecture decision-makers workers 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 24

Why Partitioned Architecture? results in software that is easier to test leads to software that is easier to maintain results in propagation of fewer side effects results in software that is easier to extend 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 25

Structured Design objective: to derive a program architecture that is partitioned approach: a DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation: structure chart 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 26

Flow Characteristics Transform flow This edition of SEPA does not cover transaction mapping. For a detailed discussion see the SEPA website Transaction flow 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 27

General Mapping Approach isolate incoming and outgoing flow boundaries; for transaction flows, isolate the transaction center working from the boundary outward, map DFD transforms into corresponding modules add control modules as required refine the resultant program structure using effective modularity concepts 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 28

General Mapping Approach Isolate the transform center by specifying incoming and outgoing flow boundaries Perform "first-level factoring. The program architecture derived using this mapping results in a top-down distribution of control. Factoring leads to a program structure in which top-level components perform decision-making and low-level components perform most input, computation, and output work. Middle-level components perform some control and do moderate amounts of work. Perform "second-level factoring." 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 29

Transform Mapping 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 30

Factoring 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 31

First Level Factoring main program controller input controller processing controller output controller 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 32

Second Level Mapping 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 33