Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model



Similar documents
Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

Software Design Document (SDD) Template

Fourth generation techniques (4GT)

LECTURE 11: PROCESS MODELING

2 SYSTEM DESCRIPTION TECHNIQUES

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur. School of Computing, Department of IT

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Architectural Design Structured Design. Xin Feng

PERANCANGAN SISTEM INFORMASI

How To Develop Software

Karunya University Dept. of Information Technology

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology.

Data Flow Diagrams. Outline. Some Rules for External Entities 1/25/2010. Mechanics

Algorithms, Flowcharts & Program Design. ComPro

1. Process Modeling. Process Modeling (Cont.) Content. Chapter 7 Structuring System Process Requirements

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

BUSINESS PROCESS DOCUMENTATION

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Analysis / Design. Traditional Development. Process models. Common Methodologies. Common Approach. Analysis: DFD. Traditional Software Development 1

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Object-oriented design methodologies

Software Testing Interview Questions

COURSE NAME: Database Management. TOPIC: Database Design LECTURE 3. The Database System Life Cycle (DBLC) The database life cycle contains six phases;

CONDIS. IT Service Management and CMDB

Hybrid Development Methodology for Client-Server Applications

(BA122) Software Engineer s Workshop (SEW)

Chapter 4: Tools of Modern Systems Analysis

Engineering Process Software Qualities Software Architectural Design

Functional Modeling with Data Flow Diagrams

Axiomatic design of software systems

Java Programming (10155)

Software Development Methodologies

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]

Example Software Development Process.

Chapter 8 Approaches to System Development

CSC 342 Semester I: H ( G)

1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN

Module 7. Software Engineering Issues. Version 2 EE IIT, Kharagpur 1

Chapter 7: Software Engineering

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N Video Game Design

Understanding Data Flow Diagrams Donald S. Le Vie, Jr.

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

(Refer Slide Time 00:56)

Airline Flight and Reservation System. Software Design Document. Name:

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Baseline Code Analysis Using McCabe IQ

A Framework for Software Architecture Visualization and Evaluation

Process for Data Flow Diagram Process Documentation Template: Description

ArchiMate and TOGAF. What is the added value?

Project Management Planning

Engineering a EIA - 632

6-1. Process Modeling

SYSTEM DEVELOPMENT AND IMPLEMENTATION

SOFTWARE DESIGN TECHNIQUES. Nagalaxmi Telkar CSCI 5828 Presentation Slides

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

Chapter 13: Program Development and Programming Languages

Software Development: The Waterfall Model

Chapter 7: Structuring System Process Requirements

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm

A Business Process Driven Approach for Generating Software Modules

Enterprise Architecture 101. (Includes numerous samples/ templates produced using TOGAF methodology) Shail Sood

Software Engineering Question Bank

Introduction to Systems Analysis and Design

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

Component Based Development in Software Engineering

SOPLE-DE: An Approach to Design Service-Oriented Product Line Architectures

Object-Oriented Design Guidelines

Systems Analysis Process Modeling (DFD) 1 of 10. Analysis 003

Instructional Design Framework CSE: Unit 1 Lesson 1

Assuming the Role of Systems Analyst & Analysis Alternatives

Foundations for Systems Development

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Subject : System Analysis and Design BCA -II UNIT 1

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

In the case of the online marketing of Jaro Development Corporation, it

September 18, Modular development in Magento 2. Igor Miniailo Magento

IBM Business Process Manager Version 8 Release 5. Hiring Tutorial IBM

Improved Software Testing Using McCabe IQ Coverage Analysis

Collated Food Requirements. Received orders. Resolved orders. 4 Check for discrepancies * Unmatched orders

The Concern-Oriented Software Architecture Analysis Method

CA ERwin Process Modeler Data Flow Diagramming

Chapter 13: Program Development and Programming Languages

BUSINESS RULES AND GAP ANALYSIS

THE APPLICATION OF THE PARETO PRINCIPLE IN SOFTWARE ENGINEERING.

Data Modeling Basics

Unit 2.1. Data Analysis 1 - V Data Analysis 1. Dr Gordon Russell, Napier University

Software Development in the Large!

California Enterprise Architecture Framework

INTEGRATED STAFF ATTENDANCE SYSTEM (ISAS) WEE PEK LING

Transcription:

Software Design Design (I) Software Design is a process through which requirements are translated into a representation of software. Peter Lo CS213 Peter Lo 2005 1 CS213 Peter Lo 2005 2 Relationships between the Analysis Model and the Design Model Software Design Data Design Data Object Description Entity- Relationship Diagram Data Dictionary State-Transition Diagram Data Flow Diagram Control Specification (CSPEC) Process Specification (PSPEC) interface design architectural design data design procedural design Data design is the first (and sometimes the most important) of the four design activities that are conducted in software engineering. Transforms the information domain model created during analysis into the data structures that will be required to implement the software. The data objects and relationships defined in the Entity- Relationship Diagram (ERD) and the detailed data content depicted in the Data Dictionary provide the basis for the data design activity. CS213 Peter Lo 2005 3 THE ANALYSIS MODEL THE DESIGN MODEL CS213 Peter Lo 2005 4

Software Design Architectural Design Software Design Interface Design Defines the relationship among major structural elements of the program. This design representation (the modular framework of a computer program) can be derived from the analysis model and the interaction of subsystems within the analysis model. Describes how the software communicates within itself, to systems that inter-operates with it, and with humans who use it. The Data and Control Flow Diagrams provide the information required for interface design. CS213 Peter Lo 2005 5 CS213 Peter Lo 2005 6 Software Design Procedural Design Transforms structural elements of the program architecture into a procedural description of software components. Information obtained from the Process and Control Specifications and the State Transition Diagrams serve as a basis for procedural design. Data Design Data design itself is defined and summarized by Wasserman: The primary activity during data design is to select logical representations of data objects (data structures) identified during the requirements definition and specification phase. The selection process may include algorithmic analysis of alternative structures in order to determine the most efficient design or may simply involve the use of a set of modules (a package ) that provide the desired operations upon some representation of an object. CS213 Peter Lo 2005 7 CS213 Peter Lo 2005 8

Data Design Principles (Wasserman) 1. The systematic analysis principles applied to function and behavior should also be applied to data 2. All data structures and the operations to be performed on each should be identified. 3. A data dictionary should be established and used to define both data and program design. 4. Low-level data design decisions should be deferred until late in the design process. (Top-down Approach) 5. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. (Information Hiding) 6. A library of useful data structures and the operations that may be applied to them should be developed. (Reusability) 7. A software design and programming language should support the specification and realization of abstract data types. Architectural Design To develop a modular program structure and represent the control relationships between modules Combines program structure and data structure, thus defining interfaces that will enable data to flow throughout the program Data flow-oriented design is an architectural design method that allows a convenient transition from the analysis model to a design description of program structure CS213 Peter Lo 2005 9 CS213 Peter Lo 2005 10 Data Flow Oriented Design The transition from information flow (such as DFD) to structure is typically accomplished as a five step process: 1. The type of information flow (either transform or transaction flow) is established 2. Flow boundaries are indicated 3. The DFD is mapped into program structure 4. Control hierarchy is defined by Factoring 5. The resultant structure is defined using design measures and heuristics Data Flow Types: Transform Flow Information must enter and exit software in an external world form; E.g. data being typed on a keyboard, pictures on a computer graphics display. Externalized data coming must be converted into an internal form for processing. Information entering the system along paths that transform external data into an internal form are called Incoming Flow. At the kernel of the software, a transition occurs: Incoming data are passed through a transform center and begin to move along paths that lead out of the software. Data moving along these paths are called Outgoing Flow. CS213 Peter Lo 2005 11 CS213 Peter Lo 2005 12

Data Flow Types: Transform Flow Data Flow Types: Transaction Flow A segment or part of a data flow diagram demonstrates these characteristics, transform flow is present. Transform Analysis will then be applied to change this DFD into an architectural representation Information flow is characterized by a single data item, called a transaction, that triggers other data flow along one of many paths. The transaction is evaluated and, based on its value, flow along one of many action paths is initiated. The hub of information flow from which many action paths flow from is called a transaction CS213 Peter Lo 2005 13 CS213 Peter Lo 2005 14 Data Flow Types: Transaction Flow Transform Mapping Transform mapping is a set of design steps that allows a DFD with transform flow characteristics to be mapped into a predefined template for program structure. CS213 Peter Lo 2005 15 CS213 Peter Lo 2005 16

Transform Mapping (Design Steps) 1. Review the fundamental system model 2. Review and refine DFD for the software 3. Determine whether the DFD has transform or transaction flow characteristics 4. Isolate the transform center by specifying incoming and outgoing flow boundaries 5. Perform "First-Level Factoring" 6. Perform "Second-Level Factoring" 7. Refine the "First-Cut" program structure using design heuristics for improved software quality Transform Mapping (Step 1) Review the fundamental system model. CS213 Peter Lo 2005 17 CS213 Peter Lo 2005 18 Transform Mapping (Step 2) Review and refine data flow diagrams for the software. Transform Mapping (Step 3) Determine whether the DFD has transform or transaction flow characteristics. CS213 Peter Lo 2005 19 CS213 Peter Lo 2005 20

Transform Mapping (Step 4) Transform Mapping (Step 4) Isolate the transform center by specifying incoming and outgoing flow boundaries. Incoming and outgoing flow boundaries are open to interpretation, and different designers may select slightly different points in the flow as boundary locations CS213 Peter Lo 2005 21 CS213 Peter Lo 2005 22 Transform Mapping (Step 5) Transform Mapping (Step 5) Perform first-level factoring. Factoring results in a program structure in which top-level modules perform decision making and low-level modules perform most input, computational and output work. Middle-level modules perform some control and do moderate amounts of work. CS213 Peter Lo 2005 23 CS213 Peter Lo 2005 24

Transform Mapping (Step 6) Transform Mapping (Step 6) Perform second-level factoring. Individual transforms (bubbles) of a DFD are now mapped into appropriate modules within the program structure. In the next step, modules can be combined or split apart to achieve a good level of cohesion and coupling within the program structure. CS213 Peter Lo 2005 25 CS213 Peter Lo 2005 26 Transform Mapping (Step 6) Transform Mapping (Step 7) Refine the first iteration program structure using design heuristics for improved software quality. Modules can be exploded or imploded to produce sensible factoring, good cohesion, minimal coupling, and most importantly, a structure that can be implemented CS213 Peter Lo 2005 27 CS213 Peter Lo 2005 28

Transform Mapping (Step 7) Transaction Mapping Transform mapping is a set of design steps that allows a DFD with transaction flow characteristics to be mapped into a predefined template for program structure. CS213 Peter Lo 2005 29 CS213 Peter Lo 2005 30 Transaction Mapping (Design Step) 1. Review the fundamental system model 2. Review and refine DFD for the software 3. Determine whether the DFD has transform or transaction flow characteristics 4. Identify the Transaction center and the flow of characteristics along each of the action paths 5. Map the DFD in a program structure amendable to transaction processing 6. Factor and refine the transaction structure of each action path 7. Refine the "First-Cut" program structure using design heuristic for improved software quality Transaction Mapping (Step 1) Review the fundamental system model. CS213 Peter Lo 2005 31 CS213 Peter Lo 2005 32

Transaction Mapping (Step 2) Review and refine DFD for the software Transaction Mapping (Step 3) Determine whether the DFD has transform or transaction flow characteristics. CS213 Peter Lo 2005 33 CS213 Peter Lo 2005 34 Transaction Mapping (Step 4) Transaction Mapping (Step 4) Identify the Transaction center and the flow of characteristics along each of the action paths. The transaction center lies at the origin of a number of action paths that flow radically from it. CS213 Peter Lo 2005 35 CS213 Peter Lo 2005 36

Transaction Mapping (Step 5) Transaction Mapping (Step 5) Map the DFD in a program structure amendable to transaction processing. Transaction flow is mapped into a program structure that contains an incoming branch and a dispatch branch. Structure for the incoming branch is developed in the same way as transform mapping. The structure of the dispatch branch contains a dispatcher module that controls all subordinate action modules. CS213 Peter Lo 2005 37 CS213 Peter Lo 2005 38 Transaction Mapping (Step 5) Transaction Mapping (Step 6) Factor and refine the transaction structure of each action path. Each action path of the data flow diagram has its own information flow characteristics. In other words, it is possible for an action path to demonstrate transform flow characteristics, and therefore necessitate transform mapping. CS213 Peter Lo 2005 39 CS213 Peter Lo 2005 40

Transaction Mapping (Step 7) Transaction Mapping (Step 7) Refine the first iteration program structure using design heuristics for improved software quality. CS213 Peter Lo 2005 41 CS213 Peter Lo 2005 42