Software Process * Procedural Design

Download Report

Transcript Software Process * Procedural Design

Software Process and Procedural Design
• Course Outcome 6. says “Using a software process
model, design and implement a significant software
application in C.”
• Waterfall process model (see Wikipedia)
• Procedural design – aka
• Hierarchical Reduction
• Top-Down Design
• Stepwise Refinement
Design Example – part 1
• Design and implement a student database
• Create student database
• Add student data
• Delete student data
• Search for student records
• Print student record(s)
• Generate “statistics”
Design Example – part 2
• Design and implement a “student database”
• Generate “statistics” – e.g. list all first-year students with gpa > 3.14
• Parse inquiry
• Find data
• Perform Set operation(s)
• Print inquiry result
Design Example – part 3
• Design and implement a “student database”
• Generate “statistics” – e.g. list all first-year students with gpa > 3.14
• Parse inquiry
• Read command
• Extract set operation from string
• Extract set operands from string
• Put inquiry in canonical (standard) form
• Return canonical form of inquiry
Software Process Example for the Term
• Develop a program to build a minimal Deterministic Finite
State Automata for a given input.
• We’ll use a procedural (“stepwise refinement”, “top-down
design” or “hierarchical reduction”) design in our waterfall
process.
Abstract Data Type (ADT)
• Course outcome 3. says “Describe the concept of an
abstract data type (ADT)”
• ADT “describes” a new type of data
• Includes only two things – a name, and a list of operations
• E.G. --- Matrix ADT might include operations
• Create a matrix
• Add two matrices giving a new matrix to represent the sum
• Multiply two matrices giving a new matrix to represent the product
• Invert a matrix
• Find the determinant of a matrix
• Print a matrix
• Notice that NO implementation details included in ADT
Set ADT
• Name – Set
• Operations
• Create a set
• Print a set
• Add element to a set
• Remove element from a set
• Compute intersection of two sets
• Compute union of two sets
Your Turn
• Provide an ADT for an “array”