ArticleslgStudy

computer science

List of software development philosophies

List of software development philosophies is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand List of software development philosophies rather than just read about it. In short: 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.

Key takeaways

  • List of software development philosophies belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect List of software development philosophies to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of List of software development philosophies from memory before moving on to harder problems.

Reference excerpt

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. The trend towards agile methods in software engineering is noticeable, however the need for improved studies on the subject is also paramount. 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.

Software development methodologies, guidelines, strategies

Large-scale programming styles Behavior-driven development Design-driven development Domain-driven design Secure by design Test-driven development Acceptance test-driven development Continuous test-driven development Specification by example Data-driven development Data-oriented design

Specification-related paradigms Iterative and incremental development Waterfall model Formal methods

Comprehensive systems Agile software development Lean software development Lightweight methodology Adaptive software development Extreme programming Feature-driven development ICONIX Kanban (development) Unified Process Rational Unified Process Agile Unified Process

Rules of thumb, laws, guidelines and principles 300 Rules of Thumb and Nuggets of Wisdom (excerpt from Managing the Unmanageable - Rules, Tools, and Insights for Managing Software People and Teams by Mickey W. Mantle, Ron Lichty) ACID Big ball of mud Brooks's law C++ Core Guidelines (Stroustrup/Sutter) P1 - P13 Philosophy rules CAP theorem Code reuse Command–query separation (CQS) Conway's law Cowboy coding Do what I mean (DWIM) Don't repeat yourself (DRY) Egoless programming Fail-fast Gall's law General Responsibility Assignment Software Patterns (GRASP) If it ain't broke, don't fix it Inheritance (OOP) KISS principle Law of Demeter, also known as the principle of least knowledge Law of conservation of complexity, also known as Tesler's Law Lehman's laws of software evolution Loose coupling Minimalism (computing) Ninety–ninety rule Open–closed principle Package principles Pareto principle Parkinson's law Principle of least astonishment (POLA) Release early, release often Robustness principle, also known as Postel's law Rule of least power SEMAT Separation of concerns Separation of mechanism and policy Single source of truth (SSOT) Single version of the truth (SVOT) SOLID (object-oriented design) There's more than one way to do it Uniform access principle Unix philosophy Worse is better You aren't gonna need it (YAGNI)

Other Davis 201 Principles of Software Development Don't Make Me Think (Principles of intuitive navigation and information design) 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 Where's the Theory for Software Engineering? The Yo-yo problem

Programming paradigms Agent-oriented programming Aspect-oriented programming (AOP) Convention over configuration Component-based software engineering Functional programming (FP) Hierarchical object-oriented design (HOOD) Literate programming Logic programming Modular programming Object-oriented programming (OOP) Procedural programming Reactive programming

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 Local-first software Model-based system engineering (MBSE) Pair programming Mob programming Rapid application development (RAD) Rational Unified Process (RUP) Rubber duck debugging Scrum Structured systems analysis and design method (SSADM) Twelve-Factor App methodology Unified Process (UP)

Software development processes Active-Admin-driven development (AADD) Behavior-driven development (BDD) Bug-driven development (BgDD) Configuration-driven development (CDD) Readme-driven development (RDD) 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) Software review Software quality assurance

See also Anti-pattern Coding conventions 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 Outline of software development Outline of web design and web development Outline of computers Category:Programming principles

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

Other materials, books, articles, etc. Don't Make Me Think (book by Steve Krug about human computer interaction and web usability)

References

Worked examples

Example 1 — a first encounter with List of software development philosophies

Start with the simplest possible case. Write down what List of software development philosophies claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to List of software development philosophies before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about List of software development philosophies ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of List of software development philosophies

In research
List of software development philosophies appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses List of software development philosophies in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
List of software development philosophies is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computing-related lists, Methodology, Software development philosophies, so understanding it makes those chapters shorter.
In everyday life
Look for List of software development philosophies outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “List of software development philosophies” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study List of software development philosophies in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what List of software development philosophies means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain List of software development philosophies out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is List of software development philosophies in simple terms?

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.

Why does List of software development philosophies matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study List of software development philosophies?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on List of software development philosophies.

Tags

  • Computing-related lists
  • Methodology
  • Software development philosophies
  • Software development process

Keep exploring