Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.

Slides:



Advertisements
Similar presentations
Chapter 10: The Traditional Approach to Design
Advertisements

Systems Analysis and Design in a Changing World, Fifth Edition
Communication between modules, cohesion and coupling
Design Concepts and Principles
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2 nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Software Design Deriving a solution which satisfies software requirements.
Systems Analysis and Design 9th Edition
© Copyright 2011 John Wiley & Sons, Inc.
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.
Basic of DFD. Developing a DFD There are no FIXED rules about how a DFD should be developed… There is no such a DFD call “CORRECT DFD”… Expert SAs may.
© Copyright 2011 John Wiley & Sons, Inc.
PVK-Ht051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
Process Modeling and Data Flow Diagrams
DATA FLOW DIAGRAMS IT 155.
Systems Analysis and Design
National Diploma in Systems Analysis and Design Data Flow Modelling.
Chapter 10 Architectural Design
Chapter 9 Moving to Design. The Structured Approach To Designing The Application Architecture Module-an identifiable component of a computer program that.
Documentation Why do auditors pay such close attention to system documentation? l It helps to understand the system - how it works. l The auditor’s documentation.
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Program Design Simple Program Design Third Edition A Step-by-Step Approach 9.
SOFTWARE DESIGN.
Chapter 9 Moving to Design
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
10 ITK261 The traditional approach to design Reading: Chapter 10 Oct 9, 11.
10 The traditional approach to design Hisham Alkhawar.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
PowerPoint Presentation for Dennis, Wixom, & Roth Systems Analysis and Design, 3rd Edition Copyright 2006 © John Wiley & Sons, Inc. All rights reserved.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Coupling Cohesion Chandan R. Rupakheti Steve Chenoweth (Chapter 18)
1 ITEC 2010 Chapter 9 – Design The Structure Chart Structure chart –A hierarchical diagram showing the relationships between the modules of a.
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.
Structured design - 1 © Minder Chen, Produce Paycheck Retrieve Employee Record Global Data Store Offpage Calling Module Called Module System.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Systems Analysis and Design 8th Edition
11 Software Design CSCU 411 Software Engineering.
Systems Design.  Application Design  User Interface Design  Database Design.
Span of Control CEO VP Finance Finance Dept. VP Marketing Marketing Dept. VP Acctg Acctg Dept. CEO VP IS Plant Operations VP Mfg. Excess Span of Control.
Data Flow Diagram, Data Dictionary, and Process Specification PART I
System Development And Analysis. MOVING FROM LOGICAL TO PHYSICAL PROCESS MODELS Analysis phase – focus on logical processes and data flows Design phase.
Systems Development Lifecycle
Slide 1 Good Methods. Slide 2 Cohesion and Coupling l For structured design These software metrics were used extensively Proven to be effective l For.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
SYSTEM ANALYSIS AND DESIGN SAFAA S.Y. DALLOUL. DESIGN THE PROGRAM.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Systems Analysis and Design in a Changing World, Fourth Edition
Further Modularization, Cohesion, and Coupling. Simple Program Design, Fourth Edition Chapter 9 2 Objectives In this chapter you will be able to: Further.
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Basic Concepts in Software Design
System Design and Modeling
Lecture 9- Design Concepts and Principles
Software Design Mr. Manoj Kumar Kar.
Systems Analysis and Design
Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
Software Design CMSC 345, Version 1/11.
Lecture 9- Design Concepts and Principles
Design Module view What module should the system and which have to be developed . It determines the module structure of components.
Cohesion and Coupling.
Presentation transcript:

Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes Use DFDs as a starting point

Structure Charts Used to create a high-level, or architectural, design Shows the thread of control in a system as a whole Breaks up the system into modules Shows the order in which processing takes place Includes both data and processes, but more emphasis on processes

Structure Charts A BD C Example: Control starts in module A, then passes to module B, and from B to module C. When C is done, control is returned back to module B, and then back to A. Then A passes control to module D, which passes it back to A when it’s finished. Example: Module A calls module B, which in turn calls C. C returns back to B, which returns to A. Then A calls D, which returns back to A when it’s finished. OR

Structure Charts A BD C Data couple: represents data that is passed from one module to another - usually smaller-grained than a data flow Example: Module A passes X to module B, which passes it to module C. Module C creates Y and passes it back to module B, which creates Z and passes it back to A. Module A then passes Z to module D. Module D doesn’t pass any data back to A. X XY ZZ

Creating a Structure Chart –Start with a level 0 DFD –Determine if system is transform-centered or transaction-centered –Find central transform or transaction center –Create “boss” module –Create first tier of processes Afferent module, then central processes, then efferent module Add data couples –Continue refining –Improve

Transform vs. Transaction Centered Transform-centered: many inputs, few outputs central process(es) concerned with creating new data out of inputs Transaction-centered: few inputs, many outputs central process(es) concerned with moving data to different places Afferent processes Efferent processes

Finding the Central Process(es) Start at each external entity and follow data flows forward or backward until you find processes that represent the “essence” of the processing of the system –where routing takes place (transaction center) –where data is transformed and created (central transform) Can be more than one (usually independent) processes) Appropriate numbers of inputs and outputs

Creating the First Tier Boss Module Afferent Module Central Process Central Process Efferent Module

Identifying Data Couples Data couples usually correspond to data elements, not data flows Look at data flows going into and out of afferent, central, and efferent processes on the DFD Pick out the relevant data elements Put them in the appropriate place on the structure chart

Refining a Structure Chart Boss Module Afferent Module Central Process Central Process Efferent Module Afferent Processes Afferent Processes Efferent Processes Efferent Processes From DFD

Improving a Structure Chart Check modularity Take advantage of shared modules Decrease coupling Increase cohesion Consider alternative architectures

Modularity Factoring - breaking the system up into modules Span of control - rule of thumb is that no module should control more than 7 subordinate modules Reasonable size - a module should fit on a page or a screen

Reuse At the lower levels of the structure chart, there are often modules that performs the same function in different parts of the system These modules can be reused in different parts of the design Can make the arrows tangled up

Coupling Interdependence of modules 5 types: –data - communication only through well- defined passing of specific data elements –stamp - data passed is of larger granularity –control - modules affect the control flow of other modules –common - modules use common data –content - modules modify each other

Cohesion Degree to which a module performs a single cohesive function 7 types: –functional - ideal –sequential - functions form a chain leading from input to output –communicational - functions use the same data –procedural - functions relate through flow of control –temporal - functions happen at same time –logical - functions related by some outside criterion –coincidental - functions not related

Alternative Architectures Hierarchical Pipeline DB Mediated Layered

Process or Program Design Start with one process on a DFD or module on a structure chart Continue decomposing Introduce concept of time –process steps –control flow Define all decision conditions Include error and exception conditions

Control Flow Diagram New Customer? Yes No Get Info Get Record Take Order Answer Call Decision Control Flow Task Iteration

Other Notations for Process Design Decision tables Decision graphs Structured English (pseudocode) 4GL Specification Language Mathematical notation

Pseudocode A little more structured than Structured English Pay close attention to data –must reference, by name, specific data elements –must be consistent with data flows and elements on the DFD Decision and iteration conditions should be precisely defined