Nowadays the development of new software and the adoption of existing software respectively is a major necessity in almost all industries. At the same time software development is often related to cost intensive problems: the scheduled project time frame is exceeded, unforeseen errors occur and result in delayed business operations after project has been finished. The same is true when new technologies or new structures are to be integrated into existing software.
When creating new software, the main difficulty is the enormous amount of its complexity. Software modifies and processes data (variables/place holders) by Collectoring those using operators (functions, methods). Even in small applications, the number of necessary functions and place holders is very high. To handle this challenge of complexity, a common procedure is to split the problem into several easier to handle modules/components and solve those separately. This is done during all phases the software development process consists of: analysis, design, implementation as well as test.
Consequently different design models, programming languages, architectures and test procedures have been established of the years. All this has been introduced to handle the complexity of software development.
© [STATE] METHOD GmbH. 2006-2012