next up previous
Next: Run-time Up: An evolutionary approach Previous: Preliminary observations

Construction-time versus run-time

Figure 1: Construction-time versus run-time.
\begin{figure}\centerline{\psfig{figure=time.eps,height=3.4cm}}\par\par\end{figure}

It is worthwhile to make a distinction between the moments that one is building software and the moments one is executing the resulting programs, see Figure 1. We will call the former construction-time which includes the phases: (i) Design and Build: Requirements Analysis, Design, Implementation (coding); (ii) Maintain; (iii) Renovate: Reengineering and System Renovation (, 1997; Chikofsky & Cross, 1990). The moments one is executing programs will be called run-time and includes the phases: (i) Test: Unit Testing, System Testing; (ii) Operate. One could make a further distinction between test-time and exploitation-time, but for the purposes of this paper we will call them both run-time.

Development of a system can be seen as the first time a system is in the construction-time environment; after delivery it enters the run-time environment. During maintenance or renovation the system enters the construction-time environment again. During its life time, a software system will thus alternate between construction-time and run-time. Two aspects of this approach are worth emphasizing. First, the phase Renovate is usually not included in the life-cycle. We stress its importance by including it as a phase in our evolutionary life-cycle model. Second, only the life-cycle of a complete system is usually taken into consideration. In Section 2.3 we will present an approach that supports the component life-cycle: each part of a system may be in a different phase of its evolutionary life-cycle.

We will now first discuss run-time (Section 2.3) and then construction-time (Section 2.4).


next up previous
Next: Run-time Up: An evolutionary approach Previous: Preliminary observations
Paul Klint 2001-06-12