System Architecture


In line with the project stages, we divide the software system into a core system with extension levels [Krabbel+1996]. The core system is an operative part of the overall software system that addresses important domain-related needs. It is developed first and put into operation. Because the core system is usually still quite complex, it is subdivided into extension levels that are built successively. An example of a core system with extension levels is shown in Figure 46.1 (taken from the domain of hot rolling mills). The upper extension levels use the functionality of the lower extension levels. This way, we get an application-oriented structure that is useful for planning and scheduling. It is obvious that the lowest extension level must be created first, followed by the next-higher one, and so on.

Figure 46.1. Example of a core system with extension levels

graphics/46fig01.gif

Specialized systems are separated from the core system. They add well-defined functionality. An example of a core system with specialized systems is shown in Figure 46.2 (again taken from the domain of hot rolling mills). The specialized systems are drawn as circles.

Figure 46.2. Example of a core system with specialized systems

graphics/46fig02.gif

Because specialized systems depend only on the core and not vice versa, we can deliver an operative and useful core system very early on and get feedback from the users. In parallel, different software teams can build specialized systems. Adhering to the one-way dependency of specialized systems, we achieve maximum independence among the special systems. They can be created in any order or even in parallel. Obviously, the core system has to provide the basic functionality for the whole system because it is the only way for the specialized systems to exchange information. The core system usually provides a set of basic communication mechanisms enabling information transfer between different parts of the overall system.

The concept of a core system and specialized systems can easily be used in the planning game. Users and client get an impression of the whole system and can negotiate on the different values and priorities (users' needs, client's goals, technical constraints) to reach a compromise on the project's development schedule.

In addition, project stages are used to control the project's progress and timelines for the overall plan.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net