Wednesday, November 23, 2011

Principals Of Design

• Use models to design systems
• Use hierarchical, top-down design
• Work on high-risk entities first
• Prioritize
• Control the level of interacting entities
• Design the interfaces
• Produce satisficing designs
• Do not optimize early
• Maintain an updated model of the system
• Develop stable intermediates
• Use evolutionary development
• Understand your enterprise
• State what not how (polymorphism)
• List functional requirements in the use cases
• Allocate each function to only one component
• Do not allow undocumented functions
• Provide observable states
• Rapid prototyping
• Develop iteratively and test immediately
• Create modules (al la Unix)
• Create libraries of reusable entities
• Use open standards
• Identify things that are likely to change
• Write extension points
• Group data and behavior
• Use data hiding
• Write a glossary of relevant terms
• Envelope requirements
• Create design margins
• Design for testability
• Design for evolvability
• Build in preparation for buying
• Do a sensitivity analysis
• Create a new design process
• Search for unintended consequences
• Change the behavior of people

Share This!

No comments:

Powered By Blogger · Designed By Seo Blogger Templates