Gregory M. Kapfhammer
Key Concept
Corresponding Diagram
In-Class Discussion
In-Class Activity
Details in the Textbook
Chapters 1 through 3
Purest creative activities in all of history
Creative mind and ability to organize your thoughts
Visualization aids implementation
Greatest limitation is the system's complexity
Simplify code
Make code obvious
Encapsulate complexity
Modular design
Continuous process
Developed in the 1970s as a means for organizing teams
Software development as "manufacturing"
What are the limitations of this approach?
Complexity is anything related to the structure of of a software system that makes it hard to understand and modify.
Not really a system that is large!
Not really a system that has many features!
Complexity of each component
Fraction of time developers invest in that component
Change amplification
Cognitive load
Unknown unknowns
Dependencies
Obscurity
Incremental