Introduction to System Design

Similar documents
Software Metrics and Design Principles. What is Design?

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Unit-3 Software Design (Lecture Notes)

Software Design. Software design is a blueprint or a plan for a computerbased solution for system

Architectural Decomposition & Representations Reid Holmes

Darshan Institute of Engineering & Technology for Diploma Studies

System Design and Modular Programming

Design Concepts and Principles

Software Architecture and Design I

Testing, Module To Object, Reusability

CAS 703 Software Design

CPS122 Lecture: Cohesion and Coupling. 1. To introduce cohesion and coupling as criteria for evaluating designs

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

UNIT II Requirements Analysis and Specification & Software Design

Object Oriented Programming

CS 292 Software Development

10조 이호진 이지 호

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

COMP 354 Introduction to Software Engineering

AN INTEGRATED DEVELOPMENT / RUN-TIME ENVIRONMENT

UNIT III. Software Design

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

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

CHAPTER 9 DESIGN ENGINEERING. Overview

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

5 Object Oriented Analysis

Products of Requirements elicitation and analysis. Chapter 6: System design: decomposing the system

Architectural Design

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Architectural Design

Software Design Heuristics

Update on AADL Requirements Annex

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

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Avancier Methods (AM) CONCEPTS

SOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department

Topic : Object Oriented Design Principles

COP 1220 Introduction to Programming in C++ Course Justification

System Design. Design: HOW to implement a system

Structured Analysis and Structured Design

CS 307: Software Engineering. Lecture 9: Software Design (Coupling), Modeling Interactions and Behavior

Elementary Concepts of Object Class

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

CS504-Softwere Engineering -1 Solved Subjective Midterm Papers For Preparation of Midterm Exam

CHAPTER 5 GENERAL OOP CONCEPTS

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

Creating a Lattix Dependency Model The Process

From Module To Objects

Elevator Control System

Object Oriented Analysis and Design - Part2(Design)

Implementation Architecture

CS 575: Software Design

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Introduction to Programming paradigms

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors

Modularity Guidelines for design in any programming language

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

What is a Programming Paradigm

09. Component-Level Design

How to build a UML model

CAS 703 Software Design

Design Methodology. Outline

Architectural Styles. Reid Holmes

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

System Design. Design Issues. System Design. System Design. Design: HOW to implement a system. Strategic vs. Local Design Decisions.

Presenter: Dong hyun Park

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

Design: HOW to implement a system

Modularity!! Guidelines for design! in any programming language!

Practice Midterm Exam: Software Engineering

Architectural Design

Introduction to Unified Modelling Language (UML)

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Database Architectures

Software Design. Levels in Design Process. Design Methodologies. Levels..

Software Engineering (CSC 4350/6350) Rao Casturi

Architectural Decomposition Reid Holmes

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Checklist for Requirements Specification Reviews

Lecture 9: MIMD Architectures

CSC 330 Object Oriented Software Design. Software Design Phase

CISC 7610 Lecture 4 Approaches to multimedia databases

EE458 - Embedded Systems Modularization

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

CSE 435: Software Engineering. System Design

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Software Development Methodologies

OS Main Goals. 10/24/2013 Operating Systems, Beykent University 1

Architecture CSE 403. Fallingwater by Frank Lloyd Wright

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Measuring Complexity

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

Sub Phase: High-Level Design. From Requirements Analysis to User Manual. System Design

Chapter 6 System Design: Decomposing the System

Transcription:

Introduction to System Design Software Requirements and Design CITS 4401 Lecture 8 System Design is a creative process no cook book solutions goal driven we create a design for solving some problem constraint driven by the function to be served and the constructions which are possible good designs can be recognised simple, coherent, adequately meets requirements, adaptable System Design System Design Activity Diagram transforms the analysis model by defining the design goals of the project decomposing the system into smaller selection of off-the-shelf and legacy components mapping to hardware selection of persistent data management infrastructure selection of access control policy selection of global control flow mechanism handling of boundary conditions Define design goals Define Map to hardware/ software platform Manage persistent data Define access control policies Select a global control flow Describe boundary conditions Implement 1

Identifying Subsystems Class diagrams in System Design A first step in system design is to break down the solution domain into simpler parts. A SUBSYSTEM is a collection of classes, associations, operations, events and constraints that are inter-related Identifying usually involves backtracking, evaluation and revision of various solutions It is important to get the decomposition right implemented by different teams bad decomposition can lead to unworkable designs Heuristics to Identify Subsystems Consider the objects and classes in your requirements analysis models. Try grouping objects into by assigning objects in one use case into the same subsystem create a dedicated subsystem for objects used for moving data among minimizing the number of associations crossing subsystem boundaries ensure all objects in the same subsystem are functionally related Some further criteria Primary Question: what kind of service is provided by the? Secondary Question: Can the be hierarchically ordered (layers)? Criteria for selecting : most of the interaction should be within a subsystem and not across subsystem boundaries (we ll return to this idea) 2

Modular design A design is modular when each activity of the system is performed by exactly one component inputs and outputs of each component are well-defined, in that every input and output is necessary for the function of that component the idea is to minimise the impact of later changes by abstracting from implementation details Coupling Coupling is the strength of dependencies BETWEEN two In general, the fewer dependencies between the better Why are fewer dependencies better? 9 Uncoupled - no dependencies HIGH COUPLING (bad) Loosely coupled - some dependencies Highly coupled - many dependencies Content coupling Common coupling Control coupling Stamp coupling Data coupling Uncoupled LOOSE (good) LOW 3

Coherence / Cohesion HIGH COHERENCE Functional (good) Coherence (or cohesion) is the strength of dependencies WITHIN a subsystem In general, the stronger the dependencies within a subsystem the better Why is (fairly) strong coherence best? Sequential Communicational Procedural Temporal Logical Coincidental (bad) LOW FRIEND Objects - after Analysis Possible Subsystem Decompositions Possible Separation Criteria interface (boundary objects) from data (entity objects) Field Officer activities from Dispatcher ones use both the above splits one subsystem per use case (High) Cohesion and (Loose) Coupling are one measure of the quality of each subsystem decomposition 4

Interface vs Data cohesion - bad coupling - bad FieldOff vs Dispatch cohesion - OK coupling - good Combine Both Solutions cohesion - good coupling - good Design Summary (so far) Requirements analysis focuses on the problem domain. Design focuses on the solution domain. NB 2 moved associations In system design, objects identified during analysis are grouped into The degree of cohesion within and coupling between can be used to guide subsystem decomposition 5