Computer Science 203:

Software Engineering

Gregory M. Kapfhammer


Triangles 1 flickr photo by vincentag shared under a Creative Commons (BY-NC-ND) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in the Textbook

Philosophy of Software Design

Chapters 4 through 7

Modules Should be Deep

Modules

Class

Function

Sub-system

Service

Hope: system complexity is complexity of its worst module

Why is this not the case?

Module interactions!

What is a way forward?

Separate interface and implementation

Abstract away unimportant details

Make the modules "deep"

Refer to Figure 4.1 for more details

What are deep modules good?

What are shallow modules bad?

Application to the software project