list of software development philosophies

{{short description|None}}

{{Software development process}}

This is a list of approaches, styles, methodologies, and philosophies in software development and engineering. It also contains programming paradigms, software development methodologies, software development processes, and single practices, principles, and laws.

Some of the mentioned methods are more relevant to a specific field than another, such as automotive or aerospace.{{Cite book|last=Gruszczynski|first=B.|title=2006 IEEE International Conference on Electro/Information Technology |chapter=An overview of the current state of software engineering in embedded automotive electronics |date=May 2006|chapter-url=https://ieeexplore.ieee.org/document/4017727|pages=377–381|doi=10.1109/EIT.2006.252190|isbn=0-7803-9592-1|s2cid=34164454}}{{Cite book|last1=Patel|first1=B. K.|last2=Litchfield|first2=V.|last3=Tamanaha|first3=D.|last4=Davis|first4=A.|title=1991 IEEE Aerospace Applications Conference Digest |chapter=Real time systems/Software methodologies for large aerospace systems |date=February 1991|chapter-url=https://ieeexplore.ieee.org/document/154537|pages=2/1–2/9|doi=10.1109/AERO.1991.154537|isbn=0-87942-686-1|s2cid=151614328}} The trend towards agile methods in software engineering is noticeable,{{Cite journal|last1=Yau|first1=Stephen S|last2=Jia|first2=Xiaoping|last3=Bae|first3=Doo-Hwan|date=1992-05-01|title=Software design methods for distributed computing systems|url=https://dx.doi.org/10.1016/0140-3664%2892%2990104-M|journal=Computer Communications|series=Software aspects of future trends in distributed systems|language=en|volume=15|issue=4|pages=213–224|doi=10.1016/0140-3664(92)90104-M|issn=0140-3664}} however the need for improved studies on the subject is also paramount.{{Cite journal|last=Stavru|first=Stavros|date=2014-08-01|title=A critical examination of recent industrial surveys on agile method usage|url=https://www.sciencedirect.com/science/article/pii/S0164121214000764|journal=Journal of Systems and Software|language=en|volume=94|pages=87–97|doi=10.1016/j.jss.2014.03.041|issn=0164-1212}}{{Cite journal|last1=Dybå|first1=Tore|last2=Dingsøyr|first2=Torgeir|date=2008-08-01|title=Empirical studies of agile software development: A systematic review|url=https://www.sciencedirect.com/science/article/pii/S0950584908000256|journal=Information and Software Technology|language=en|volume=50|issue=9|pages=833–859|doi=10.1016/j.infsof.2008.01.006|s2cid=2244031 |issn=0950-5849}} Also note that some of the methods listed might be newer or older or still in use or out-dated, and the research on software design methods is not new and on-going.{{Cite book|last=Taylor|first=P.|title=Proceedings International Conference on Software Methods and Tools. SMT 2000 |chapter=Designerly thinking: What software methodology can learn from design theory |date=November 2011|chapter-url=https://ieeexplore.ieee.org/document/890426|pages=107–116|doi=10.1109/SWMT.2000.890426|isbn=978-0-7695-0903-7|s2cid=110041968}}{{Cite journal|last1=Yau|first1=Stephen S|last2=Jia|first2=Xiaoping|last3=Bae|first3=Doo-Hwan|date=1992-05-01|title=Software design methods for distributed computing systems|url=https://dx.doi.org/10.1016/0140-3664%2892%2990104-M|journal=Computer Communications|series=Software aspects of future trends in distributed systems|language=en|volume=15|issue=4|pages=213–224|doi=10.1016/0140-3664(92)90104-M|issn=0140-3664}}{{Cite journal|last=Gomaa|first=Hassan|date=1994-05-01|title=Software design methods for the design of large-scale real-time systems|url=https://dx.doi.org/10.1016/0164-1212%2894%2990002-7|journal=Journal of Systems and Software|language=en|volume=25|issue=2|pages=127–146|doi=10.1016/0164-1212(94)90002-7|issn=0164-1212}}{{Cite journal|last=Budgen|first=David|date=July 1995|title='Design models' from software design methods|url=https://www.sciencedirect.com/science/article/abs/pii/0142694X95000018|journal=Design Studies|language=en|volume=16|issue=3|pages=293–325|doi=10.1016/0142-694X(95)00001-8|issn=0142-694X}}

==Software development methodologies, guidelines, strategies==

= Large-scale programming styles =

= Comprehensive systems =

=== Rules of thumb, laws, guidelines and principles ===

=== Other ===

  • Davis 201 Principles of Software Development{{Cite book|last=Davis, Alan Mark.|title=201 principles of software development|date=1995|publisher=McGraw-Hill|isbn=0-07-015840-1|location=New York|oclc=31814837}}
  • Don't Make Me Think (Principles of intuitive navigation and information design){{Cite book|last=Krug, Steve|title=Don't make me think, revisited : a common sense approach to Web usability|others=Bayle, Elisabeth,, Straiger, Aren,, Matcho, Mark|year=2014|isbn=978-0-321-96551-6|edition=Third|location=[San Francisco, California]|oclc=859556499}}
  • The Art of Computer Programming (general computer-science masterpiece by Donald E. Knuth)
  • The Cathedral and the Bazaar - book comparing top-down vs. bottom-up open-source software
  • The Philosophy of Computer Science{{Citation|last1=Turner|first1=Raymond|title=The Philosophy of Computer Science|date=2020|url=https://plato.stanford.edu/archives/spr2020/entries/computer-science/|encyclopedia=The Stanford Encyclopedia of Philosophy|editor-last=Zalta|editor-first=Edward N.|edition=Spring 2020|publisher=Metaphysics Research Lab, Stanford University|access-date=2020-09-01|last2=Angius|first2=Nicola}}
  • Where's the Theory for Software Engineering?{{Cite journal|last1=Johnson|first1=Pontus|last2=Ekstedt|first2=Mathias|last3=Jacobson|first3=Ivar|date=2012|title=Where's the Theory for Software Engineering?|journal=IEEE Software|volume=29|issue=5|pages=96|doi=10.1109/MS.2012.127|issn=0740-7459|s2cid=38239662}}
  • The Yo-yo problem

== Programming paradigms ==

== Software development methodologies ==

== Software development processes ==

== See also ==

Further reading

  • ISO/IEC/IEEE 26515:2018(E) - ISO/IEC/IEEE International Standard - Systems and software engineering — Developing information for users in an agile environment{{Cite book|date=December 2018|title=ISO/IEC/IEEE International Standard - Systems and software engineering — Developing information for users in an agile environment|url=https://ieeexplore.ieee.org/document/8584455|publisher=Iso/Iec/IEEE 26515:2018(E)|pages=1–32|doi=10.1109/IEEESTD.2018.8584455|isbn=978-1-5044-5297-7 }}

Other materials, books, articles, etc.

References