List of software development philosophies information
Part of a series on
Software development
Core activities
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Paradigms and models
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall
Methodologies and frameworks
ASD
DevOps
DAD
DSDM
FDD
IID
Kanban
Lean SD
LeSS
MDD
MSF
PSP
RAD
RUP
SAFe
Scrum
SEMAT
TDD
TSP
OpenUP
UP
XP
Supporting disciplines
Configuration management
Documentation
Software quality assurance
Project management
User experience
Practices
ATDD
BDD
CCO
CI
CD
DDD
PP
SBE
Stand-up
TDD
Tools
Compiler
Debugger
Profiler
GUI designer
UML Modeling
IDE
Build automation
Release automation
Infrastructure as code
Standards and bodies of knowledge
CMMI
IEEE standards
ISO 9001
ISO/IEC standards
PMBOK
SWEBOK
ITIL
IREB
OMG
Glossaries
Artificial intelligence
Computer science
Electrical and electronics engineering
Outlines
Outline of software development
v
t
e
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.[1][2] The trend towards agile methods in software engineering is noticeable,[3] however the need for improved studies on the subject is also paramount.[4][5] 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.[6][7][8][9]
^Gruszczynski, B. (May 2006). "An overview of the current state of software engineering in embedded automotive electronics". 2006 IEEE International Conference on Electro/Information Technology. pp. 377–381. doi:10.1109/EIT.2006.252190. ISBN 0-7803-9592-1. S2CID 34164454.
^Patel, B. K.; Litchfield, V.; Tamanaha, D.; Davis, A. (February 1991). "Real time systems/Software methodologies for large aerospace systems". 1991 IEEE Aerospace Applications Conference Digest. pp. 2/1–2/9. doi:10.1109/AERO.1991.154537. ISBN 0-87942-686-1. S2CID 151614328.
^Yau, Stephen S; Jia, Xiaoping; Bae, Doo-Hwan (1992-05-01). "Software design methods for distributed computing systems". Computer Communications. Software aspects of future trends in distributed systems. 15 (4): 213–224. doi:10.1016/0140-3664(92)90104-M. ISSN 0140-3664.
^Stavru, Stavros (2014-08-01). "A critical examination of recent industrial surveys on agile method usage". Journal of Systems and Software. 94: 87–97. doi:10.1016/j.jss.2014.03.041. ISSN 0164-1212.
^Dybå, Tore; Dingsøyr, Torgeir (2008-08-01). "Empirical studies of agile software development: A systematic review". Information and Software Technology. 50 (9): 833–859. doi:10.1016/j.infsof.2008.01.006. ISSN 0950-5849. S2CID 2244031.
^Taylor, P. (November 2011). "Designerly thinking: What software methodology can learn from design theory". Proceedings International Conference on Software Methods and Tools. SMT 2000. pp. 107–116. doi:10.1109/SWMT.2000.890426. ISBN 978-0-7695-0903-7. S2CID 110041968.
^Yau, Stephen S; Jia, Xiaoping; Bae, Doo-Hwan (1992-05-01). "Software design methods for distributed computing systems". Computer Communications. Software aspects of future trends in distributed systems. 15 (4): 213–224. doi:10.1016/0140-3664(92)90104-M. ISSN 0140-3664.
^Gomaa, Hassan (1994-05-01). "Software design methods for the design of large-scale real-time systems". Journal of Systems and Software. 25 (2): 127–146. doi:10.1016/0164-1212(94)90002-7. ISSN 0164-1212.
^Budgen, David (July 1995). "'Design models' from software design methods". Design Studies. 16 (3): 293–325. doi:10.1016/0142-694X(95)00001-8. ISSN 0142-694X.
and 24 Related for: List of software development philosophies information
In software engineering, a softwaredevelopment process or softwaredevelopment life cycle (SDLC) is a process of planning and managing software development...
Agile softwaredevelopment is the mindset for developing software that derives from values agreed upon by The Agile Alliance, a group of 17 software practitioners...
the effectiveness of reviewing process in finding bugs and security issues. Software quality Listofsoftwaredevelopmentphilosophies IEEE Std . 1028-1997...
disciplined way. ListofsoftwaredevelopmentphilosophiesSoftware review Egolessness Weinberg, Gerald M. (1971). The Psychology of Computer Programming...
customer Listofsoftwaredevelopmentphilosophies Agile softwaredevelopment Big design up front Chaos model DevOps Iterative and incremental development Monitoring...
Inheritance (object-oriented programming) Listofsoftwaredevelopmentphilosophies Martin, Robert C. "Principles Of OOD". ButUncleBob.com. Archived from the...
Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular softwaredevelopment. It is...
Lean softwaredevelopment is a translation of lean manufacturing principles and practices to the softwaredevelopment domain. Adapted from the Toyota Production...
Occam's razor WYSIWYG Listofsoftwaredevelopmentphilosophies User experience design Alternatively a law of least surprise or rule of least surprise. Seebach...
Practices Listofsoftwaredevelopmentphilosophies Dynamic program analysis Software metrics Integrated development environment (IDE) and comparison of integrated...
Minimalism Unix philosophy Arch Linux Slackware Linux Chartjunk Listofsoftwaredevelopmentphilosophies Reduced instruction set computing Rule of least power...
within two years. Committer Software review Software quality Best coding practices Listofsoftwaredevelopmentphilosophies Five Code Review Antipatterns...
(XP) is a softwaredevelopment methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software...
(like everything else on a Scrum project) incrementally." Listofsoftwaredevelopmentphilosophies "Big Modeling Up Front (BMUF) Anti-Pattern". AgileModeling...
Free software, libre software, or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as...