Very general process models that provide the rough structure of software processes without going into detail
Software process model framework
Follows the structure specified in the process paradigm and adds detailed descriptions of roles, responsibilities, specific activities, and their dependencies
Individual software process model
Describes how a development process should run transparently for all those involved in an organization
Waterfall model
1. Requirements
2. Analysis
3. Design
4. Implementation
5. Test
6. Operation
Waterfall model
Step-by-step processing of individual phases in a defined sequence
Like a waterfall, a software project "falls" one after the other from "top to bottom"
Each individual phase is fully completed before moving to the next phase
Possibility of feedback between adjacent phases
Waterfall model (from management perspective)
Divides software process into clear phases with defined results
Allows clear organizational responsibilities to be defined
Allows current status and project progress to be monitored
Allows task areas to be clearly structured, especially in distributed projects
Demands comprehensive and complete documentation of results
The definition of a rigid sequence of activities in the waterfall model is the opposite of the knowledge-driven nature of software projects
The waterfall model prevents the start of successor phases for individual elements that have already been completed
The waterfall model should only be used as a rough guide when creating software process models for industrial information systems
model
1. Requirements analysis
2. Construction phases
3. Test phases
model
1:1 assignment of construction phases (left half of V) and phases to be tested (right half of V)
Path through software process is a result of the sequence of the defined phases
Each phase of the construction is assigned a specific test level
Evolutionary/Agile development
1. Determine functions to be implemented
2. Implement functions
3. Integrate new functions into existing system
4. Test and evaluate current software version
Evolutionary/Agile development
Software process "turns in a circle" around a finished piece of software
Software engineering core activities are not carried out and documented in full in one phase, but in smaller parts that interlink in each cycle
Considers that many insights into requirements and technological solutions can only be gained during software development
Allows new knowledge to be incorporated directly in each new cycle
Allows errors and inaccuracies to be quickly identified and eliminated
Provides rapid availability of a basically executable system
Evolutionary/Agile development has no phases with clearly defined results, but all software engineering core activities are repeated in small parts in short cycles
Evolutionary/Agile development does not create a complete specification at the beginning of the software process, so the specific functional scope of the system is only precisely defined during development
Agile software development
A thought scheme or design principle for software development activities, not specific techniques or processes
Ensures that all important decisions are made based on knowledge gained during the project (knowledge-driven)
Classic software development
Focuses more on plans that were created in the run-up to the project or in the early project phases (assumption-driven)