Software design

from Wikipedia, the free encyclopedia
This article was due to content flaws on the quality assurance side of the computer science editorial added. This is done in order to bring the quality of the articles from the subject area of ​​computer science to an acceptable level. Help to eliminate the shortcomings in this article and take part in the discussion !  ( + )

Reason: The article is only about modeling languages ​​and not about software design in general, which is a much broader field. - SK ( discussion ) 07:58, May 7, 2012 (CEST)

Software design (also software design) is the design process for planning a software solution and part of the entire software development process . Software design is usually necessary to make the complexity , which most computer programs have, manageable for the programmer and to reduce the risk of undesirable developments.

In general, in the course of the requirements elicitation before the software design, the client and the contractor first determine the requirements that arise from the stakeholder or client point of view for the software to be created. In the course of this, one of the parties involved - typically the client - creates the so-called specification sheet .

Then the contractor worked together with the client through various procedures, a concept with which program structures , programming techniques and algorithms meets these requirements and are to be programmed. The contractor records the results of this concept in the so-called specification sheet.

These procedures are described below:

Various conventions and modeling languages ​​have been defined for the written and graphic recording of the planned programming method.


The tasks arising in the context of software design can be carried out by one or more people who can take on different roles. These roles are named differently depending on the company. Common names for the roles of employees involved with specialist knowledge in software modeling are software architect , IT consultant or software developer (also called "programmer" or "software engineer").

Languages ​​and resources

Different modeling languages ​​are used for this. Examples are the Unified Modeling Language (UML) - a graphic modeling language for the specification, construction and documentation of software parts and other systems, the Fundamental Modeling Concepts (FMC) - a semi-formal method for communication about complex software systems, as well as the IDEF - a group of modeling languages ​​from the American government environment.

The focus in design is different. While UML enables the representation of object-oriented structures (see also object-oriented analysis and design ), for example with class diagrams , from which code can also be generated under certain circumstances , FMC concentrates more on the creation of plans for communication via complex software systems.

Design pattern

During the design of software architectures, developers are often faced with recurring problems for which there are already known solutions. By reusing such design patterns, the software development process can often be accelerated because the patterns have already been tested and tried.

See also

Web links

Individual evidence

  1. ^ Judith Bishop: C # 3.0 Design Patterns: Use the Power of C # 3.0 to Solve Real-World Problems . C # Books from O'Reilly Media. Retrieved May 15, 2012: "If you want to speed up the development of your .NET applications, you're ready for C # design patterns - elegant, accepted and proven ways to tackle common programming problems."