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

9
Design Methods Instructor: Dr. Jerry Gao

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

Page 1: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

Design Methods

Instructor: Dr. Jerry Gao

Page 2: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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

Page 3: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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.

Page 4: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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

Page 5: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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

Page 6: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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)

Page 7: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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.

Page 8: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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)

Page 9: Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.

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)