CSC 330 Object Oriented Software Design. Software Design Phase

Similar documents
Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

CSC 330 Object Oriented Software Design. Software Analysis Phase

CSC 330 Object Oriented Software Design Software Analysis Phase Object-Oriented Paradigm Object-Oriented Analysis cont d

What s Next. INF 117 Project in Software Engineering. Lecture Notes -Spring Quarter, Michele Rousseau Set 6 System Architecture, UML

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

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

Software Engineering Principles

Application in a Systems Design Environment. EE 498/499 Capstone Design Classes Klipsch School of Electrical & Computer Engineering

Object-Oriented and Classical Software Engineering THE TOOLS OF THE TRADE 9/22/2017. CHAPTER 5 Slide 5.2. Stephen R. Schach. Overview Slide 5.

Software Architecture and Design I

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

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

CS 292 Software Development

09. Component-Level Design

Topic : Object Oriented Design Principles

Object-Oriented Analysis Phase

Object-Oriented Analysis Phase

Lecture Chapter 2 Software Development

Systems Analysis and Design II

Modularity Guidelines for design in any programming language

Architecture CSE 403. Fallingwater by Frank Lloyd Wright

A Sketchy Evolution of Software Design. Three Papers by David Parnas

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

CS560: Formal Modelling and Implementation of Systems (Term II)

COSC 3351 Software Design. Software Design Methodology. Edgar Gabriel. Spring Outline

Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)

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

Model-based Transition from Requirements to High-level Software Design

Managing Change and Complexity

Element: Relations: Topology: no constraints.

21) Functional and Modular Design

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

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

Unit-3 Software Design (Lecture Notes)

Implementation and Integration

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity

CHAPTER 9 DESIGN ENGINEERING. Overview

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Design and Implementation of Computer Room Management System in University

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

Design Concepts and Principles

21) Functional and Modular Design

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

UNIT III. Software Design

Chapter : Analysis Modeling

Unit Wise Questions. Unit-1 Concepts

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture

Software Architecture

Darshan Institute of Engineering & Technology for Diploma Studies

Introduction to System Design

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

REAL-TIME DISTRIBUTED SYSTEMS DESIGN METHODOLOGIES

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

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

Systems Analysis and Design in a Changing World, Fourth Edition

Chapter 1: Principles of Programming and Software Engineering

Ch 1: The Architecture Business Cycle

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Design Engineering. Overview

The Analysis and Design of the Object-oriented System Li Xin 1, a

Chapter 12. Systems Design. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Lecture 8: Chapter 8!

Passport Automation System

Security Engineering for Software

Programmazione. Prof. Marco Bertini

INTERNAL ASSESSMENT TEST III Answer Schema

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering

TESTING. Overview Slide 6.2. Testing (contd) Slide 6.4. Testing Slide 6.3. Quality issues Non-execution-based testing

Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM)

Object-Oriented and Classical Software Engineering

Runtime Verification of Java Programs for Scenario-Based Specifications

Introduction to Architecture. Introduction to Architecture 1

Existing Model Metrics and Relations to Model Quality

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

Software Engineering Design Principles. Presented by Pratanu Mandal of CSE 3A Roll 54 JISCE

Elevator Control System

CT41 (ALCCS) SOFTWARE ENGINEERING JUN 2015

Modeling Issues Modeling Enterprises. Modeling

(C) 2010 Pearson Education, Inc. All rights reserved. Dr. Marenglen Biba

Structured Analysis and Structured Design

A LOGIC THEORY BASED APPROACH TO INFORMATION SYSTEMS DECOMPOSITION

CASE STUDY AEROSOFT SYSTEMS MOVING FROM ACUCOBOL/PERL/C-ISAM TO JAVA WITH MICROSOFT SQL SERVER, WINDOWS SERVER AND HYPER-V

MDA and Integration of Legacy Systems: An Industrial Case Study

Unit 1 Introduction to Software Engineering

Lecture 8: Use Case -Driven Design. Where UML fits in

Simply Java Programming: An Application Driven, Tutorial

Chapter 8: Class and Method Design

Software Design Report

Object-Oriented Design and Modeling Using the UML

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

WHO WANTS TO BE A DESILLIONAIRE GAME RULES INTERNATIONAL TEAM OF EXPERTS MAIN IDEA INTERACTIVE SYSTEMS SOFTWARE ARCHITECTURAL STYLES

Study Of Feature Driven Development Using The Concepts Of Object Oriented Programming System

Object-Oriented and Classical Software Engineering

From Module To Objects

Concurrent Object-Oriented Development with Behavioral Design Patterns

Transcription:

CSC 330 Object Oriented Software Design Software Design Phase 1

Overview Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Elevator problem: object-oriented design Air Gourmet Case Study: object-oriented design 2

Data and Actions Two aspects of a product Actions which operate on data Data on which actions operate The two basic ways of designing a product Action-oriented design Data-oriented design Third way Hybrid methods For example, object-oriented design 3

Design Activities Architectural design Detailed design Design testing 4

Architectural Design Input: Specifications Output: Modular decomposition Abstraction 5

Detailed Design Each module is designed Specific algorithms Data structures 6

Action-Oriented Design Methods Data flow analysis When to use it With most specification methods (Structured Systems Analysis here) Key point: Have detailed action 7

Data Flow Analysis Product transforms input into output Determine Point of highest abstraction of input Point of highest abstract of output 8

Data Flow Analysis cont d Decompose into three modules Repeat stepwise until each module has high cohesion Minor modifications may be needed to lower coupling 9

Data Flow Analysis cont d Example Design a product which takes as input a file name, and returns the number of words in that file 10

Data Flow Analysis Example cont d First refinement Refine modules of communicational cohesion 11

Data Flow Analysis Example cont d Second refinement All eight modules have functional cohesion 12

Transaction Analysis DFA poor for transaction processing products Example: ATM (Automatic Teller Machine) Poor design Logical cohesion, control coupling 13

Corrected Design Using Transaction Analysis Software reuse 14

Data-Oriented Design Basic principle The structure of a product must conform to the structure of its data Three very similar methods Warnier Orr Jackson Data-oriented design Has never been as popular as action-oriented design With the rise of OOD, data-oriented design has largely fallen out of fashion 15

Object-Oriented Oriented Design Steps OOD consists of four steps: 1. Construct interaction diagrams for each scenario 2. Construct the detailed class diagram 3. Design the product in terms of clients of objects 4. Proceed to the detailed design 16

Elevator Problem: OOD Step 1. Construct interaction diagrams for each scenario Sequence diagrams Collaboration diagrams Both show the same thing Objects and messages passed between them But in a different way 17

Elevator Problem: OOD cont d Normal scenario 18

Elevator Problem: OOD cont d Sequence diagram 19

Elevator Problem: OOD cont d Collaboration diagram 20

Elevator Problem: OOD cont d Step 2. Construct Detailed Class Diagram Do we assign an action to a class or to a client of that class? Criteria Information hiding Reducing number of copies of action Responsibility-driven design Examples close doors is assigned to Elevator Doors move one floor down is assigned to Elevator 21

Elevator Problem: OOD cont d Detailed class diagram 22

Elevator Problem: OOD cont d Step 3. Design product in terms of clients of objects Draw an arrow from an object to a client of that object Objects that are not clients of any object have to be initiated, probably by the main method Additional methods may be needed 23

Elevator Problem: OOD cont d C++ Client-object relations 24

Elevator Problem: OOD cont d Java Client-object relations 25

Elevator Problem: OOD cont d elevator controller needs method elevator control loop so that main (or elevator application) can call it 26

Elevator Problem: OOD cont d Step 4. Perform detailed design Detailed design of method elevator controller loop 27

Formal Techniques for Detailed Design Implementing a complete product and then proving it correct is hard However, use of formal techniques during detailed design can help Correctness proving can be applied to module-sized pieces The design should have fewer faults if it is developed in parallel with a correctness proof If the same programmer does the detailed design and implementation The programmer will have a positive attitude to the detailed design Should lead to fewer faults 28

Design of Real-Time Systems Difficulties associated with real-time systems Inputs come from real world Software has no control over timing of inputs Frequently implemented on distributed software Communications implications Timing issues Problems of synchronization Race conditions Deadlock (deadly embrace) Major difficulty in design of real-time systems Determining whether the timing constraints are met by the design 29

Real-Time Design Methods Usually, extensions of nonreal-time methods to real-time We have limited experience in use of any real-time methods The state-of-the-art is not where we would like it to be 30

Testing during the Design Phase Design reviews Design must correctly reflect specifications Design itself must be correct Transaction-driven inspections 31

CASE Tools for the Design Phase UpperCASE tools Built around data dictionary Consistency checker Screen, report generators Modern tools represent OOD using UML Examples: Software through Pictures, Rational Rose 32

Example 33

Air Gourmet Case Study: Object- Oriented Design OOD consists of four steps: 1. Construct interaction diagrams for each scenario 2. Construct the detailed class diagram 3. Design the product in terms of clients of objects 4. Proceed to the detailed design 34

Step 1. Interaction Diagrams Extended scenario for making a reservation 35

Step 1. Interaction Diagrams cont d Sequence diagram for making a reservation 36

Step 1. Interaction Diagrams (contd) Collaboration diagram for sending and returning a postcard 37

Step 2. Detailed Class Diagram C++ version Java version 38

39

40

41

42

Step 3. Client Object Relations C++ version Java version 43

Step 4. Detailed Design The detailed design can be found in See the implementation in C++ See the implementation in Java) 44