11 Software Design CSCU 411 Software Engineering.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
© Copyright 2011 John Wiley & Sons, Inc.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part I)
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design Copyright 2000 © John Wiley & Sons, Inc. All rights reserved. Slide 1 Key.
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
Chapter 1 Principles of Programming and Software Engineering.
PVK-Ht051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Software Design Deriving a solution which satisfies software requirements.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Object Oriented Analysis and Design Using the UML
Data Structures and Programming.  John Edgar2.
Systems Analysis and Design
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
Continuation From Chapter From Chapter 1
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
INFO415 Approaches to System Development: Part 2
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Lesson 7 Guide for Software Design Description (SDD)
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
Managing the development and purchase of information systems (Part 1)
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
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.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
Software Design Process A solution to satisfy the requirements ◦ Design process and methods ◦ Design strategies including object-oriented design and functional.
SE: CHAPTER 7 Writing The Program
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University.
Cohesion and Coupling CS 4311
Systems Analysis and Design in a Changing World, 3rd Edition
Systems analysis and design, 6th edition Dennis, wixom, and roth
1 Introduction to Software Engineering Lecture 1.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Dr.Basem Alkazemi
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
11/24/2015Dr. SASTRY-PROJ SOFTWARE PROJECT MANAGEMENT By Dr. M V S PERI SASTRY. B.E,Ph.D.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Structured design - 1 © Minder Chen, Produce Paycheck Retrieve Employee Record Global Data Store Offpage Calling Module Called Module System.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
©Ian Sommerville 1995 Software DesignSlide 1 Software Design u Deriving a solution which satisfies software requirements.
Systems Development Lifecycle
Outline Object-Oriented Concepts Modeling Components Structured Method Evaluation Procedure Object-Oriented Methods Structured Methods Review of Object.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Principles of Programming & Software Engineering
Software Design.
7. Modular and structured design
Software Design Mr. Manoj Kumar Kar.
About the Presentations
Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
CS223: Software Engineering
Software Design CMSC 345, Version 1/11.
Software Design Lecture : 9.
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Presentation transcript:

11 Software Design CSCU 411 Software Engineering

LEARNING OBJECTIVES To be able to discern desirable properties of a software design To Understand different notions of complexity, at both the module and system level To be aware of some widely-known design Methods To be aware of a global classification scheme for design methods To be aware of guidelines for the design documentation

The ‘Programmer's Approach' No Design Phase the 'programmer's approach' to software development. Far too much software is still being developed without a clear design phase. The real The reasons for this 'code first, design later' attitude are many: –We do not want to, or are not allowed to, 'waste our time' on design activities. –We have to, or want to, quickly show something to our customer. –We are judged by the amount of code written per man-month. –We are, or expect to be, pressed for time.

Wicked Problem Software design is a 'wicked problem'. The term originated in research into the nature of design in social planning problems –There is no definite formulation of a wicked problem. –Wicked problems have no stopping rule. –Solutions to wicked problems are not true or false. –Every wicked problem is a symptom of another problem.

DESIGN CONSIDERATIONS abstraction, modularity, Information hiding, complexity, and system structure

Abstraction Procedural Abstraction Data Abstraction OOP Languages (C++, JAVA, ADA Modula-2) –Package –Structure –Module –Class

Modularity (cohesion) Coincidental cohesion Logical cohesion Temporal cohesion Procedural cohesion Communicational cohesion Sequential cohesion Functional cohesion

Modularity (coupling) Content coupling Common coupling External coupling Control coupling Stamp coupling Data coupling

Information Hiding Data Hiding Function Hiding Other –Debug –Logging –Advance Options

Complexity How Complex? Size Module attributes Structure Interface Pointers Recursion Dynamic allocation WOW factor

System Structure module A contains module B module A follows module B module A delivers data to module B module A uses module B Note Call Graphs

System Structure Local and Global Data Flow A local flow from module A to module B exists if : –A invokes B and passes it a parameter, or – B invokes A and A returns a value. A global flow from module A to module B exists if A updates some global data structure and B retrieves from that structure

System Structure Complexity M is Modules in a program Complexity (M) = (Fan-In (M) X Fan-Out (M)) 2 Fun(int a) same as Fun(struct *b)

DESIGN METHODS Functional Decomposition Data Flow Design (SA/SD) Data Structure Look at Table 11.3

Functional Decomposition Top-down design Bottom-up design Both not ideal in real world More often try and refine Layered system

Data Flow Design (SA/SD) Data Flow Diagrams (DFD) Structure Charts Structured Analysis Structured Design Using: –External Entities –Processes –Data Flows –Data Stores

External Entities Processes Data Flows Data Stores

Design Based on Data Structures Structure Diagrams or Jackson Diagrams –Structured text or Structure Diagrams –Schematic Logic (11.13 to 11.23)

Selecting a Design Method How to Select a Design Method Problem solving is based on experience –Cost –Maintaining software –Flexibility –It is The prescriptiveness of the design methods differs considerably.

Classification of Design Techniques See fig The four Quadrants –I Understand the problem –II Transform to implementation –III Represent properties –IV Create implementation units

Environmental Factors Familiarity with the problem domain. Designer's experience. Available tools. Overall development philosophy.

NOTATIONS THAT SUPPORT THE DESIGN PROCESS Software is far more subject to change. One of the major issues in software design is the hierarchical decomposition of the system. The outcome of the design is the major source of information for the programmer

DESIGN DOCUMENTATION People responsible for Creating and using documentation –The project manager –The configuration manager –The designer –The programmer –The unit tester –The integration tester –The maintenance programmer

IEEE Standard 1016 Recommended Practice for Software Design Descriptions. (Distinguishes ten attributes) –Identification –Type –Purpose –Function –Subordinates –Dependencies –Interface –Sources –Resources –Processing –Data

VERIFICATION AND VALIDATION Same as before