System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Software Engineering Key design concepts Design heuristics Design practices.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1 Utdrag ur Bruegges OH-bilder för första.
Chapter 6, System Design Lecture 1
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Design “There are 2 ways of constructing a.
System Design: Decomposing the System
System Design.
Oct. 9, 2003CS WPI1 CS 509 Design of Software Systems Lecture #6 Thursday, Oct. 9, 2003.
TJSS luennot System Design Lecture 1
Ch 6: Sys. Architecture Design: System Decomposition
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering October 10, 2001 System.
Feb. 20, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #11 Tuesday, Feb. 20, 2001.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Logical Architecture and UML Package Diagrams
Chapter 6: The Traditional Approach to Requirements
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Software Engineering CS B Prof. George Heineman.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
CEN 4010 Sixth Lecture February 21, 2005 Introduction to Software Engineering (CEN-4010) System Design: Decomposing the System Spring 2005 Instructor:
SOFTWARE DESIGN.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 6 System Design: Decomposing the System.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 6 System Design: Decomposing the System.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
What to remember from Chap 13 (Logical architecture)
Decomposing the system.  Here we transfer the analysis model  design model  During system design we have to :  Define design goals  Decompose the.
1 CMPT 275 High Level Design Phase Modularization.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Lecture 18: Object-Oriented Design
 Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
DESIGN OF SOFTWARE ARCHITECTURE
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
System Design. System Design After analyzing the problem, you must decide how to approach the design. During.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Chapter 6 System Design: Decomposing the system. What is system design  Decompose the system into smaller subsystems  Define the design goals of the.
Chapter 6 System Design: Decomposing the System
Chapter 6 System Design: Decomposing the System
Chapter 6 System Design: Decomposing the System
Advance Software Engineering (CEN-5011)
Starting Design: Logical Architecture and UML Package Diagrams
Software Design Lecture : 8
An Introduction to Software Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Design Yaodong Bi.
Chapter 8, Design Patterns Introduction
Software Design Lecture : 6
Design.
Presentation transcript:

System Design Decomposing the System

Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and options html

Submission of Analysis Model  Deadline: 4pm, Thursday, 3 rd October, 2013  Use the same project that you submitted in the Requirements Engg. course.  Submit soft copy at generalshare in “Assignment Sub” folder.

System Design  Analysis: Focuses on the application domain  Design: Focuses on the solution domain  Identify design goals  Design the initial subsystem decomposition  Architectural style  Refine the subsystem decomposition

System Design: Purpose  Bridging the gap between desired and existing system in a manageable way  Use Divide and Conquer  Model the new system to be developed as a set of subsystems

Introduction  Construction of the System  System Design  Object Design and  Implementation  System Design  First Step: Decomposing the system into manageable parts

Introduction  Example: Floor Plan  Residential House  Floor Plan: Location of Walls, doors and windows  Functional Requirements: The kitchen in the vicinity of dining room and garage. The bathroom should be close to the bedrooms  Standard Utilization Dimensions of the room and location of the doors  Constraints:  This house should have 2 bedrooms, a kitchen, and living room  The overall distance the occupants walk should be minimized  The use of daylight should be maximized

Introduction

 Mapping of Architectural and Software Engineering Concepts

An Overview of System Design

An Overview of System Design: Analysis to System Design  Nonfunctional requirements =>  Activity 1: Design Goals Definition  Functional model =>  Activity 2: System decomposition (Selection of subsystems based on functional requirements, cohesion, and coupling)  Object model =>  Activity 4: Hardware/software mapping  Activity 5: Persistent data management  Dynamic model =>  Activity 3: Concurrency  Activity 6: Global resource handling  Activity 7: Software control  Subsystem Decomposition  Activity 8: Boundary conditions

System Design Concept  Subsystem Decomposition and their Properties  Subsystem (UML: Package)  Collection of classes, associations, operations, events and constraints that are interrelated  Seed for subsystems: UML Objects and Classes.

System Design Concept

 Subsystems:  DispatcherInterface: user interface for dispatcher  Notification: communication between FieldOfficer terminals and Dispatcher stations  Service: A set of related operations that share a common purpose  Notification (subsystem) service: LookupChannel() SubscribeToChannel() SendNotice() UnscubscribeFromChannel()

Coupling and Cohesion  Criteria for subsystem selection: Most of the interaction should be within subsystems, rather than across subsystem boundaries (High cohesion).  Does one subsystem always call the other for the service?  Which of the subsystems call each other for service?  Primary Question:  What kind of service is provided by the subsystems (subsystem interface)?  Secondary Question:  Can the subsystems be hierarchically ordered (layers)?  What kind of model is good for describing layers and partitions?

Coupling and Cohesion  Goal: Reduction of complexity while change occurs  Cohesion measures the dependence among classes  High cohesion: The classes in the subsystem perform similar tasks and are related to each other (via associations)  Low cohesion: Lots of miscellaneous and auxiliary classes, no associations  Coupling measures dependencies between subsystems  High coupling: Changes to one subsystem will have high impact on the other subsystem (change of model, massive recompilation, etc.)  Low coupling: A change in one subsystem does not affect any other subsystem  Subsystems; maximum cohesion and minimum coupling:  How can we achieve high cohesion?  How can we achieve loose coupling?

Example of reducing the couple of subsystems  Alternative 1: Direct access to the Database subsystem

Example of reducing the couple of subsystems  Alternative 2: Indirect access to the Database through a Storage subsystem

Example of Increasing Cohesion of subsystems  Decision Tracking System

Example of Increasing Cohesion of subsystems  Alternative subsystem decomposition for the decision tracking system

Layers and Partitions  Layering and Partitioning: techniques to achieve low coupling.  Large system decomposition into subsystems; layers and partitions.  Layer: a subsystem that provides subsystem services to a higher layers (level of abstraction)  A layer can only depend on lower layers  A layer has no knowledge of higher layers  Partition: Divide a system into several independent (or weakly-coupled) subsystems that provide services on the same level of abstraction.

Subsystem Decomposition into Layers  Subsystem Decomposition Heuristics:  No more than 7+/-2 subsystems  More subsystems increase cohesion but also complexity (more services)  No more than 4+/-2 layers, use 3 layers (good)

Closed Architecture (Opaque Layering)  Any layer can only invoke operations from the immediate layer below  OSI reference model  Design goal: High maintainability, flexibility

OSI Reference model  ISO’s OSI Reference Model  ISO = International Standard Organization  OSI = Open System Interconnection  Reference model defines 7 layers of network protocols and strict methods of communication between the layers.  Closed software architecture

Another View at the ISO Model  A closed software architecture  Each layer is a UML package containing a set of objects

Open Architecture (Transparent Layering)  Any layer can invoke operations from any layers below  Swing User Interface Toolkit for Java  Design goal: Runtime efficiency

An example of open architecture:

Properties of Layered Systems  Layered systems are hierarchical. They are desirable because hierarchy reduces complexity (by low coupling).  Closed architectures are more portable.  Open architectures are more efficient.

Summary  Introduction to System Design  Analysis to System Design  Subsystem decomposition  Layers and Partitions  Open architecture vs. Closed architecture