List of software development philosophies
This is a list of approaches, styles, and philosophies in software development. It also contains programming paradigms, software development methodologies, software development processes, and single practices, principles and laws.
Software development |
---|
Core activities |
Paradigms and models |
Methodologies and frameworks |
Supporting disciplines |
Practices |
Tools |
Standards and Bodies of Knowledge |
Glossaries |
Outlines |
Software development philosophies
Large-scale programming styles
Specification-related paradigms
Comprehensive systems
Rules of thumb, laws and principles
- KISS principle
- Minimalism (computing)
- Open–closed principle
- Release early, release often
- Robustness principle, also known as Postel's law
- Rule of least power
- There's more than one way to do it
- Unix philosophy
- Worse is better
- You aren't gonna need it (YAGNI)
- Don't repeat yourself (DRY)
- SOLID (object-oriented design)
- Single source of truth (SSOT)
- Single version of the truth (SVOT)
- Principle of least astonishment (POLA)
- Do what I mean (DWIM)
- Fail-fast
- If it ain't broke, don't fix it
- Law of Demeter, also known as the principle of least knowledge.
- Gall's law
- Command–query separation (CQS)
- Separation of mechanism and policy
- Uniform access principle
- Law of conservation of complexity, also known as Tesler's Law
- Pareto Principle
- Parkinson's law
- Service loose coupling principle
Other
- The Cathedral and the Bazaar - book comparing top-down vs. bottom-up open-source software
- Davis 201 Principles of Software Development[1]
- Where's the Theory for Software Engineering?[2]
- The Philosophy of Computer Science[3]
- Don't Make Me Think (Principles of intuitive navigation and information design)[4]
Programming paradigms
Software development methodologies
- Agile Unified Process (AUP)
- Constructionist design methodology (CDM)
- Dynamic systems development method (DSDM)
- Extreme programming (XP)
- Iterative and incremental development
- Kanban
- Lean software development
- Open Unified Process
- Pair programming
- Rapid application development (RAD)
- Rational Unified Process (RUP)
- Scrum
- Structured systems analysis and design method (SSADM)
- Unified Process (UP)
Software development processes
- Active-Admin-driven development (AADD)
- Behavior-driven development (BDD)
- Bug-driven development (BgDD)
- Configuration-driven development (CDD)
- Design-driven development (D3)
- Domain-driven design (DDD)
- Feature-driven development (FDD)
- Test-driven development (TDD)
- User-centered design (UCD) (User-Driven Development (UDD))
- Value-driven design (VDD)
See also
- Anti-pattern
- Design pattern
- Programming paradigm
- Software development methodology
- Software development process
- Outline of computer science
- Outline of software engineering
- Outline of computer engineering
- Outline of computer programming
- Category:Programming principles
References
- Davis, Alan Mark. (1995). 201 principles of software development. New York: McGraw-Hill. ISBN 0-07-015840-1. OCLC 31814837.
- Johnson, Pontus; Ekstedt, Mathias; Jacobson, Ivar (2012). "Where's the Theory for Software Engineering?". IEEE Software. 29 (5): 96. doi:10.1109/MS.2012.127. ISSN 0740-7459. S2CID 38239662.
- Turner, Raymond; Angius, Nicola (2020), "The Philosophy of Computer Science", in Zalta, Edward N. (ed.), The Stanford Encyclopedia of Philosophy (Spring 2020 ed.), Metaphysics Research Lab, Stanford University, retrieved 2020-09-01
- Krug, Steve (2014). Don't make me think, revisited : a common sense approach to Web usability. Bayle, Elisabeth,, Straiger, Aren,, Matcho, Mark (Third ed.). [San Francisco, California]. ISBN 978-0-321-96551-6. OCLC 859556499.
- Don't Make Me Think (book by Steve Krug about human computer interaction and web usability)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.