Foundations of Software Engineering

Kenneth M. Anderson <kena@cs.colorado.edu>

Lecture 19: Function-Oriented Design

Relationship to Textbook

Software Design

Software Design, continued

Design Methodologies

Design Objectives

Design Principles

Problem Partitioning and Hierarchy

Abstraction

Modularity

Top-Down vs Bottom-Up Design

Module-Level Concepts

Design Notation and Specification

State Charts

State Chart Example

Statechart 1

Supporting Iteration and Branching

Types of Modules

Design specification

Structured Design

Factoring

SDM Strategy

Step 1: Restate the problem as a data flow diagram

Step 2: Identify the input and output data elements

Step 3: First-Level Factoring

Step 4: Perform Additional Factoring

SDM Wrap-Up

Verification

Metrics

Network Metrics

Stability Metrics

Information Flow Metrics

Coming Up Next