|[ Team LiB ]|
In most real-world problems, the requirements of a system are never complete at the start of the solution. Customers always want changes to be incorporated during the life cycle of the project development and beyond. This often leads to chaos right through the different phases of the software and continues into production. Methodologies have evolved to discipline the software development process and make software development more manageable, resulting in a predictable solution. But most of the methodologies are heavy in nature and don't solve the problem of software development effectively. Most of the methodologies are predictive in nature (that is, all parts of the software are planned to minute detail), which involves a lot of time. This works fine until the changes to the requirements start rolling into software development. Apart from being predictive, most heavy methodologies are process oriented.
The lightweight methodologies work toward eliminating these deficiencies. In the next section, we go over one of the most popular lightweight methodologies that's evolved in the last few years: extreme programming or XP. Following that, we discuss the Rational Unified Process (RUP) methodology, which might not be categorized as light, but answers some of the questions posed by the heavyweight methodologies. RUP is extensive in nature, but at the same time it can be used in parts, too.
Extreme Programming—Core Practices
Extreme programming (XP) was developed in response to the situations mentioned earlier. XP gives an effective solution to all systems in which a change in requirements is a routine affair. XP is adaptive in nature, accepting changes throughout the development life cycle. The foundation of XP is based on the following values: simplicity, communication, feedback, and courage. Based on these four values, the XP outlines 12 core practices for a successful execution of a project. Most of these practices are time tested but are often forgotten. XP makes the most of these core practices by integrating them intelligently. The core practices advocated by XP are as follows:
As you can see, some of the steps have been adapted from other methodologies. The software evolves through the many steps, relying on simple design and improvements through the many cycles of re-factoring and adding business value in every iteration. This helps to build a very disciplined and adaptive design methodology for complex enterprise problems.
The disciplined approach has been well adapted by the J2EE development community. The Java community has developed tools through community processes that have aided the J2EE application development. Some of the tools are
Rational Unified Process
The Rational Unified Process (RUP), as its name suggests, was developed at Rational. It complements the Unified Modeling Language (UML). This process is a framework that can be used to model different processes that constitute the software system. Table 5.5 lists the fundamental workflow processes that govern the RUP.
These processes are not governed by time. They extend during the different phases of the project. RUP defines four phases through which the processes in Table 5.5 are executed. The phases identified by the RUP are
RUP helps manage projects through the many iterations of the processes listed in Table 5.5 from inception to the transition phase. The four phases help to define milestones during the software development and also define a boundary for producing different artifacts. The biggest advantage of this process is its capability to respond to changes in the business needs.
RUP, similar to XP, provides an excellent process framework for developing J2EE applications. For a detailed discussion of RUP and the tool support for incorporating in WebLogic Server development, refer to the Web site http://www.rational.com/products/rup/index.jsp.
|[ Team LiB ]|