Software development process

A process model for software development is a software development process model tailored for the professional ( " engineering-based " ) application development. It serves to make the software development more clearly and to make manageable in complexity.

Development Plan

Because complex software is difficult to create and maintain software developers a plan for the development of software use. This plan ( the process model ) divides the development process into manageable, temporary and limited phases. Thus, the software is completed step by step. The actual development process is accompanied by the project management and quality assurance.

Process models split individual activities on different phases in the development process and these are then - possibly with minor modifications - once (eg waterfall model ) or run through several times (eg spiral model ). In repeated runs carried out an iterative (ie repeated ) refinement of individual software components. To the best practice models of disagreement. In general, they differ in the development process at least two major groups of activities: the ( independent of the programmed technical realization ) Analysis of business processes ( business process model and data model) on the one hand and the IT technical implementation (design and programming) on the other.

Process models differ significantly in their level of detail. There are OOTC Approach, Rational Unified Process, Rapid Application Development, etc. in detail elaborated procedures that give the concrete participants developing work instructions at hand. The V-Model does not assume the way a hybrid role: It is both a principle ( every stage of development corresponds to a test phase) as well as ( as is usually common) a detailed model.

The Agile software development is concerned with methods that work creative and let the developer to withdraw administrative aspects. Alternative Software Technologies ( Universal Application, software factory, etc.) pursue approaches which make the conventional approach of software design and subsequent programming principle in question by pre universalized software is customized by configuration to the respective requirements.

There are different procedures for assessing the software process, including the Capability Maturity Model (integration) or " Spice".

Types of process models

There are three different types of process models:

Software development processes are used for control of software development from design to deployment, including the costs incurred in real operational changes of software in real operation. One of the oldest models is the waterfall model, which assumes a rigid sequence of the individual phases. Developments such as the spiral model, however, provide for iterations, that is, one and the same operation (eg, analysis) will run through several times and the results of the work step per run refined and improved.

See also: List of software development processes

Software Lifecycle Management extends the phases over the entire life cycle of a software. The process model defines the requirements for operational processes (the " WHAT " ) and describes the concrete, computer technically realized processes ( the "AS "). This type is a mixture of actual description and normative specification. Depending on the degree of standardization of various stages of development will be awarded. Companies can be certified by external bodies, these stages of development.

Software development philosophy corresponds to a programmer philosophy, a particular approach, such as software should be best developed of the proponents of the view. These philosophies often include process elements and are therefore also referred to as the process model.

Criticism

Positive

  • A general advantage of process models is that project management processes, quality assurance processes and the actual produkterstellende process are mapped together.
  • A targeted approach improves the clarity of the overall project, the coordination of teams and helps to detect errors early. This has a generally positive effect on the quality of the entire system off or permits an accurate reconstruction of the development process and the underlying decisions.
  • Benefits of a procedure for a process model: Separation of business process analysis (WAS) of computer technical realization (AS )
  • Guidelines for System Development
  • Project-related documentation
  • People independence
  • Early fault detection by uncommitted testing activities

Negative

  • There were several proposals to each other in parallel, without that approach one of the models would have prevailed in practice with broad appeal.
  • The provider of process models are biased. Process models are a business, so the developer of a process model advises in his interest. Vendors provide just their model as the panacea for all problems dar. Here lies the foundation for a series of process and everything is good mentality. A project fails if the parties can not objectively look at and example only process the specified checklists.
  • Due to the project structure that creates a process model offers a consulting company for each individual activity to specialized consultants. Due to the fragmentation of responsibilities to individual specialists in the coordination effort increases disproportionately.
  • Process models can help the Parkinson 's law for administration and management to full bloom, as they open up the possibility to ask new employees for new tasks by process model. Affected by this phenomenon are especially those facilities that are not subject to tight economic control, because they can not become insolvent ( authority, office and public institution ). As a warning like that up to 2004 failed to significantly delayed, be exposed to be inappropriate and / or significantly more expensive software projects in the public sector, as INPOL New ( police), Nivadis (police Lower Saxony), FISCUS ( Tax Office ), Hercules (Bundeswehr), online job market ( employment agency ), Toll Collect, A2LL ( employment agency, " Hartz IV" software), POLIKS ( Berlin police ), etc. are used.
  • It is disputed whether the development process of software is so well understood that an " engineering- production" is possible: Critics argue that software is nothing more than " executable knowledge." Knowledge but let not engineering- produce ( how about a bridge or a skyscraper can be produced ), but would be found in a creative process. The opposing view argues that it is precisely in the " creative process " is the risk of maintenance problems and structural uncleanliness. The argument of the critics also does not apply to other technical development processes (such as building a bridge, a house, a factory).
663493
de