Process model for software development
A process model for software development is a process model adapted for software development in professional ("engineering") application development. It is used to make software development clearer and to make it manageable in terms of complexity.
Since complex software is difficult to create and maintain, make use of software developers a plan for the development of software . This plan (the procedural model) divides the development process into manageable phases that are limited in terms of time and content. The software is thus completed step by step. The actual development process is accompanied by project management and quality assurance.
Procedure models split individual activities into different phases in the development process and these are then - u. U. with minor modifications - run once (e.g. waterfall model ) or several times (e.g. spiral model ). If it is run several times, the individual software components are refined iteratively (i.e. repeatedly). There is disagreement about the optimal procedural models. As a rule, they differentiate between at least two large groups of activities in the development process: the analysis of business processes ( business process model and data model) (independent of the programming implementation ) on the one hand, and IT implementation (design and programming ) on the other.
Procedure models differ significantly in their level of detail. OOTC-Approach , Rational Unified Process , Rapid Application Development, etc. are detailed procedures that provide those involved in the development with specific work instructions . The V-model does not assume the way, a hybrid position a: It is both a principle (each stage of development corresponds to a test phase) as well as (as usually in use) a detailed model.
The agile software development deals with methods that the developer creative work and let rescind administrative aspects. Alternative software technologies ( universal application , software factory, etc.) pursue approaches that fundamentally question the conventional approach of software design and subsequent programming by adapting ready-made, universalized software to the respective requirements via configuration.
Types of process models
There are three different types of procedural models:
Software development processes are used to control software development from conception to use in real operation, including any changes to software that occur in real operation. One of the oldest models is the waterfall model , which assumes a rigid sequence of the individual phases. On the other hand, further developments such as the spiral model provide for iterations, i. H. the same work step (e.g. the analysis) is run through several times and the results of the work step are refined and improved per run.
See also: List of software development processes
Software life cycle management extends the phases over the entire life cycle of a software . The procedural model defines the requirements for operational processes (the "WHAT") and describes the concrete, IT-technically implemented processes (the "HOW"). This type is a mixture of an actual description and normative specification. Depending on the degree of standardization, different development stages are assigned. Companies can have these stages of development certified by external bodies.
- ISO / IEC 12207 standard
- Capability Maturity Model (CMM)
- Capability Maturity Model Integration (CMMI)
Software development philosophy corresponds to a programmer's philosophy, a particular approach to how the proponents believe software should best be developed. These philosophies very often also contain process elements and are therefore also referred to as process models.
- A general advantage of process models is that project management processes, quality assurance processes and the actual product-creating process are mapped together.
- A targeted approach improves the clarity of the overall project, the coordination of teams and helps to identify errors at an early stage. This usually has a positive effect on the quality of the entire system or allows an exact reconstruction of the development process and the decisions on which it is based.
- Advantages of a procedure according to a procedure model:
- Separation of the analysis of business processes (WHAT) from IT-technical implementation (HOW)
- System Development Guide
- documentation accompanying the project
- Personal independence
- Early error detection through established test activities
- Process models provide a framework in which a project can run in an orderly manner. The process model helps to structure and understand the course of a project, as it describes the process and the documents of the software development. In contrast, the quality of the software to be created also depends on the project participants. It is important that they have a lot of prior knowledge, work well together, and trust their common sense . The project success and not the process model is the primary goal.
- Several proposals existed in parallel without one of the procedural models having established itself with broad impact in practice.
- The providers of procedural models are biased. Process models are a business, therefore the developer of a process model advises in his interest. Vendors present their model as the panacea for all problems. This is the cornerstone for a consequence of the process and everything will be fine - mentality. A project fails when those involved no longer look at it objectively and only work through the given checklists, for example .
- Due to the project structure that a process model creates, a management consultancy offers specialized consultants for each individual activity. Due to the fragmentation of the tasks on individual specialists, the coordination effort increases disproportionately.
- Process models can help Parkinson's law for administration and management to flourish, as they open up the possibility of requesting new employees for new tasks according to the process model. This phenomenon particularly affects those institutions that are not subject to close economic control because they cannot become insolvent ( public authorities , offices and institutions ). As a warning, the public sector software projects such as INPOL -Neu (police), Nivadis (Lower Saxony police), FISCUS (tax office), Hercules (German armed forces), which failed until 2004, were significantly delayed, turned out to be unsuitable and / or significantly more expensive , Online job exchange (employment agency), Toll Collect , A2LL (employment agency, " Hartz IV " software), POLIKS (Berlin police) etc.
- It is controversial whether the development process of software is understood so well that an “engineering-like production” is possible: Critics argue that software is nothing more than “executable knowledge”. However, knowledge cannot be produced in an engineering way (such as a bridge or a high-rise building ), but is found in a creative process. The opposing position argues that it is precisely in the “creative process” that there is a risk of maintenance problems and structural uncleanliness. The critics' argument also does not apply to other technical development processes (e.g. building a bridge, a house, a factory).
- Tilo Pfeifer, Robert Schmitt (editor): Quality Management in Software Development , Part IV in: Masing Handbook Quality Management , Carl Hanser Fachbuchverlag Munich Vienna, 6th revised edition (2014), ISBN 978-3-446-43431-8