SgDotNet
Singapore Professional .NET User Group -For Cool Developers

Software Development Body of Knowledge (2) - Design Essential, or Art of War

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
Copyright SgDotNet 2004-2008
Powered by Community Server (Commercial Edition), by Telligent Systems