1 / 46

CS101 Introduction to Computing Lecture 24 Design Heuristics

Learn about design heuristics for system architecting and explore popular rules and lessons for sound and practical systems. Understand the importance of simplicity, customer needs, and iterative development. Discover key principles and guidelines to enhance system reliability and reduce costs.

stevenpaul
Download Presentation

CS101 Introduction to Computing Lecture 24 Design Heuristics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS101 Introduction to ComputingLecture 24Design Heuristics

  2. During the last lecture … • We became familiar with the various phases of the process that developers follow to develop SW systems of reasonable complexity • We looked at a couple of problems related to the Waterfall SW development model

  3. In order to understand anything, you must not try to understand everything Aristotle

  4. efficiency  1 universality

  5. focus!

  6. Today’s LectureHeuristics for System Architecting • We will try to understand the role of heuristics in architectural (or high-level) design • We will become familiar with a few popular design heuristics

  7. Heuristic?

  8. Heuristic Rule of thumb learned through trial & error Common sense lesson drawn from experience Qualitative principle,guideline,general judgement Natural language description of experience

  9. Heuristic Wisdom ?

  10. Caution! Caution!Heuristicsdon’talways lead to the best resultsAt times they even lead to the wrong ones, but mostly to results that are good-enough

  11. system?

  12. System A collection of elements which working together produces a result not achieved by the things alone

  13. System Architecture?

  14. System Architecture The structure (in terms of components, connections, constraints) of a product or a process

  15. ? Design == Architecture

  16. Heuristics for system architecting Rules and lessons learnt by system architects after long experiences which when followed result in sound, stable, practical systems

  17. My favorite system architecting(and other relevant)heuristics--- in no particular order ---

  18. Given many parts of a system to be designed/built,do thehardpart1st

  19. # 3All the serious mistakes are madeon the very first day

  20. # 4Simplify, simplify,simplify!Probably the most useful heuristics for increasing reliability while decreasing cost & time-to-build

  21. Caution!Everything should be as simple as possiblebut not simplerAl Einstein

  22. # 5If you can’t explain it in 5 minutes, either you don’t understand it or it does not work

  23. # 6A system will develop & evolve much more rapidly if there are stable intermediateforms than if there are notBuild iteratively; add features gradually

  24. # 7Success is defined by theuser,notthebuilder

  25. Customer is always right?

  26. It depends! # 8 It’s more important to know what the customer needs instead of what he says he wants

  27. # 9If you think that your design is perfect, it is only because you have not shown to anyone else--- Get your designs reviewed ---

  28. # 10A good solution to a problem somehow looks nice & elegant

  29. #11 In partitioning, choose the chunks so that they are as independent as possibleChunks should have low external complexity & high internal complexityOrganize personal tasks to minimize the time individuals face interfacing

  30. 5 1 3 6 2 4

  31. 5 1 3 6 2 4

  32. 5 1 3 6 2 4

  33. 8 4 1 2 5 7 9 3 6

  34. #12Partition/repartition the problem until a model consisting of7±2 chunksemerges

  35. Life is the art of drawing sufficient conclusionsfrom insufficient premisesSamuel Butler

  36. #13 When choices must be made with unavoidably inadequate info:Choose the best available & then watch to see:whether further solutions appear faster than future problemsIf so, the choice was at least adequateIf not, go back & choose again

  37. #14 The Triage1. Let the dying die2. Ignore who’ll recover on their own3. Treat only those who’ll die without your help

  38. # 15Don’t just remove the defect; ...

  39. # 15Don’t just remove the defect; correct the process that caused it

  40. #16The number of defects remaining in a system aftera given level of tests is proportional to ...

  41. #16The number of defects remaining in a system aftera given level of tests is proportional to the number found during the test

  42. #17Programmers deliver the same number of LOC/day regardless of the language they are writing inUse the highest-level language

  43. There are many more!Please post any that are familiar to you on the message board

  44. In Today’s Lecture • We became familiar with the the role of heuristics in design • We also discussed a few well-known design heuristics for architectural design

  45. Next Lecture:Web Design for Usability • To become able to appreciate the role of usability in Web design • To become able to identify some of the factors affecting the usability of a Web page

More Related