Note: this is a continued series in sketching a software development body of knowledge, unofficial and un-definitive. You may find the part (1) Joy of Cooking, or Tools of Trade here
The second part is named "Design Essential, or Art of War"
"A good scientist is a person with original ideas. A good engineer is a person who makes a design that work with as few original ideas as possbile" - Freeman Dyson
"The architects will get all the creative fun and shut out the inventiveness of the implementers? Implementation is also a creative activity of the first order". - Mythical Man-Month
Contrary to what many people believe, I always consider architecture the natural extension of design and implementation activity, it is a by-product of necessity. Therefore, design, being it from bottom up or from top down, could only be an activitiy based on the smaller skillsets and knowledges, and fluent use of knowleges.
ADT (Abstract Data Type)
Data Structure
Container
STL, or modern C++ for separation of container from algorithm
OO
Principles of Object-Oriented? Design
SRP - Single Responsibility Principle
OCP - Open-Closed? Principle
LSP - Liskov Substitution Principle
DIP - Dependency Inversion Principle
ISP - Interface Segregation Principle
REP - Release-Reuse? Equivalency Principle
CCP - Common Closure Principle
CRP - Common Reuse Principle
ADP - Acylcic Dependencies Principle
SDP - Stable Dependencies Principle
SAP - Stable Abstractions Principle
UML
User Cases
Just "Expression of Design"
Design Patterns (GoF)
Composition of Data Structures
http://www-eleves-isia.cma.fr/documentation/DesignPatterns/
POSA (Pattern-Oriented Software Architecture)
Volume 1: A System of Patterns
http://www.hillside.net/patterns/books/Siemens/abstracts.html
Volume 2: Patterns for Concurrent and Networked Objects
http://www.cs.wustl.edu/~schmidt/POSA/
Classic Powerpoint Slides: http://www.cs.wustl.edu/~schmidt/posa2.ppt
SOA/SOC (Service-Oriented Architecture/Computing)
Connectivity is the Spirit
Constructing Software For Service Oriented Architecture
http://www.ebpml.org/csfsoa.ppt
Composition is the Paradigm
Composite Applications: Value Proposition and Architecture
http://www.ebpml.org/capp.ppt
Algorithm
Art of Optimization
Beautiful Book: "Algorithm Design Manual"
http://www2.toki.or.id/book/AlgDesignManual/
Another Beautiful Book: Introduction to Algorithms
Yet Another Beautiful Book: Introduction to the Design and Analysis of Algorithms
Completeness of Test
Truth Table Method
Usability
First Principle: "Don't make me think"
Visualization of Information
Classic Book: "Visual Explanations: Images and Quantities"
<to be continued>
Posted
Dec 07 2006, 09:42 PM
by
blackinkbottle