100 likes | 308 Views
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.
E N D
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 representation for 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 structure and 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 flow characteristics. Step 4: Isolate the transform center by specifying incoming and outgoing flow boundaries. Step 5: Perform “first-level factoring” Step 6: Perform “second-level factoring” Step 7: Refine the first iteration program structure using design heuristics for 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 model Step 2: Review and refine data flow diagrams for the software Step 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 heuristics for 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 repetition to 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)