Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process...

Post on 20-Jan-2016

214 views 0 download

Transcript of Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process...

Design Methods

Instructor: Dr. Jerry Gao

Software Design Methods

Design --> as a multistep process in which we design:a) data structure b) program structure c) interface characteristics d) procedural details

based on requirements information.

Transformation process from the requirements analysis models--> the resulting design specifications

Data design:- The major focus is the data structures and their logic representationfor each component in a software system.

Means: information hiding and data abstraction

Architecture design and structural design- The primary objective is to develop a modular program structureand represent the control relationships between modules.

- Provide an architecture view about the software system

Software Design Methods

Interface design:

- The major focuses are:- the design of interfaces between software modules- the design of interfaces between the software and external components, such as hardware ...- the design of the user interface

Procedural design or detailed design:

- The primary objective is to provide the procedural-oriented detail design and algorithm for each task or function a module.

- Use one unambiguous specification language to write the procedures.

Data Design

Guidelines for data design:

- Apply the systematic analysis on data- data objects, relationships, and data flow as well as contents.

- Identify all data structures and related operations

- Establish a data dictionary- data objects and their relationships as well as constraints

- Defer the low-level design decisions until late in the design process

- Use information hiding in the design of data structures

- A library of useful data structures and operations- reusable data objects- reusable data structure templates

- Use a software design and programming language to support data specification and abstraction

Data File Design

Guidelines for data files:

- Design for data files:

a) File types and structures:- ASCII text file, sequential files, direct access files, indexed files- buffer size and record size

b) File record structures:- data fields, data types, and format

c) Applications of data files:- configuration, working data, input/output data, operation logs

d) Operations of data files:- open, close, creation, deletion, read and update

e) Operations for data records:- append, insertion, deletion, update, read

Database Design

- Evaluation of ERDs for databases.- data objects- relationships- data attributes in each object

- Refinement of ERDs in relations, data attributes.

- Select target database type:- network database- relation database- object-oriented database

- Define database schema:- define database tables or database objects- determine data keys (primary keys and foreign keys)- determine data types- determine default values

- Normalize database schema- Write database definition in a pre-defined language (by a database vendor)

Software Design Steps

Step 1: Review the fundamental system model

Step 2: Review and refine data flow diagrams for the software

Step 3: Determine whether the DFD has transform or transaction flowcharacteristics.

Step 4: Isolate the transform center by specifying incoming and outgoingflow boundaries.

Step 5: Perform “first-level factoring”

Step 6: Perform “second-level factoring”

Step 7: Refine the first iteration program structure using design heuristicsfor improved software quality.

Figures: 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 14.10, 14.11, 14.12, 14.13, 14,14.

Transaction Mapping Steps

Design steps for transaction mapping are similar and in some cases identical to steps for transform mapping. A major difference lies in the mapping of the DFD to software structure.

Step 1: Review the fundamental system modelStep 2: Review and refine data flow diagrams for the softwareStep 3: Determine whether the DFD has transform or transaction flow

characteristics.

Step 4: Identify the transaction center and the flow characteristics along each of the action paths.

Step 5: Map the DFD in a program structure amenable to transaction processing.

Step 6: Factor and refine the transaction structure and the structure of each action path.

Step 7: Refine the first iteration program structure using design heuristicsfor improved software quality.

(Figure 14.11, 14.12, 14.13, 14.14)

Procedural Design

Procedural design occurs after data, architectural, and interface designs have been established. It defines algorithmic details.

We can specify the detailed design in a number of ways:A) structured programming-> use constructs, such as sequence, condition, and repetitionto specify any algorithm.

B) graphic design notation-> flowcharts (Figure 14.17, and 14.18), -> box diagrams (Figure 14.19)

C) tabular design notation (decision table in Figure 14.20, 14.21)

Decision tables provide a notation that translates actions and conditions (described in a processing narrative) into a tabular form.

D) program design language (PDL) - known as structured English or pseudocode (Figure 14.22)