diff --git a/software-design/README.md b/software-design/README.md new file mode 100644 index 0000000..4a0328b --- /dev/null +++ b/software-design/README.md @@ -0,0 +1,17 @@ +# Software Design +What does it mean to design good software? Clearly this is a learnable skill - what is required to learn and practice is? + +## SUPER for software design + +## Reference Material +### Projects / Exercises +* KWIC +### Papers +* _[On the Criteria To Be Used in Decomposing Systems into Modules](https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf)_ by D.L. Parnas +### Books +* _Clean Architecture_ by "Uncle Bob" Martin +* _A Philosophy of Software Design_ by Ousterhout +* _Design It!_ by Keeling +* _Head First Design Patterns_ by Freeman and Bates +* _The Architecture of Open Source Applications_ by Brown and Wilson +* _UNIX: A History and a Memoir_ by Kernighan