B. Agile Software
Development
Component-based development is a
software development approach where the entire lifecycle of the software
creation, development deployment and maintenance is centred on the
start-to-finish concept of component lifecycle. Figure 3 depicts a
component-based development (CBD) process. The CBD process has five phases,
namely Requirements, Analysis, Design, Implementation and Testing. Artifact is produced
at each phase which in turn is the inputs to different types of testing shown
in Figure 3.
The component has its own
lifecycle and it is related with the whole system lifecycle. Agile software development
can be applied in component-based software development. Further reading for the
adaptation of agile techniques into traditional software methodology for Rational
Unified Process (RUP), for example, is described in [19]. Any of the agile
software development methodologies such as extreme programming (XP) [11], IBM
Rational Unified Process (RUP) [11], etc can be applied to component-based
software development:

Fig. 3: An
Illustration of CBD Process
The following Figure 4 gives a
snapshot of software development lifecycle activities, for RUP.

Fig. 4: A typical
software development lifecycle activities
The context for Web Services
activities in each of the software lifecycle phases is absent from the methodology.
The best approach of bridging this gap is to analyze the special
characteristics of Web Services and its best practices to be considered at
different phases of the software lifecycle. The following section discusses the
Web Services development steps and its characteristics.