### 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
• 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
• 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
process.
• Course outcome 3. says “Describe the concept of an
• 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