软件开发方法历史
60s:
Systems development life cycle (SDLC)
Idea: to pursue the development of information systems in a very deliberate, structured and methodical way, requiring each stage of the life cycle from inception of the idea to delivery of the final system, to be carried out in rigidly and sequentially
Structured programming Since 1969
70s:
Cap Gemini SDM, originally from PANDATA, the first English translation was published in 1974. SDM stands for System Development Methodology
80s:
Structured Systems Analysis and Design Methodology (SSADM) from 1980 onwards
90s:
Other software development practices and techniques
Other methodology practices and techniques include:
- Object oriented development methodology approaches, such as Grady Booch's Object-oriented design (OOD), also known as object-oriented analysis and design (OOAD). The Booch model includes six diagrams: class, object, state transition, interaction, module, and process.[7]
- Top-down programming: evolved in the 1970s by IBM researcher Harlan Mills (and Niklaus Wirth) in developed structured programming.
- Unified Process (UP) is an iterative software development methodology framework, based on UML. UP organizes the development of software into four phases, each consisting of one or more executable iterations of the software at that stage of development: Inception, Elaboration, Construction, and Guidelines. There are a number of tools and products available designed to facilitate UP implementation. One of the more popular versions of UP is the Rational Unified Process (RUP).
- Agile Software Development refers to a group of software development methodology approaches based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated.
Agile methods
Agile practices
Test Driven Development (TDD)
Behavior Driven Development (BDD)
- Integrated Software Development refers to a deliverable based software development framework utilizing the three primary IT (project management, software development, software testing) life-cycles that can be leverage using multitude (iterative, waterfall, spiral, agile) software development approaches, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.