Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Engineering (CoCSE)
Individual Assignment
Registration: NM-AIST/M/335/T16
Agile software development methods focus on iterative and incremental development, customer
software development models which are characterized by extensive planning, ordered process,
(Abrahamsson, SALO, Ronkainen, & Warsta, 2002; Boehm, 2002). One of these emerging agile
model is the rational unified process (RUP) (Kruchten, 2002). RUP captures many of the best
practices in modern software development in a form that is suitable for a wide range of projects
and organizations (Kroll & Kruchten, 2003, p. 32). This paper aims at providing an overview and
Rational Unified Process (RUP) is a software engineering process framework maintained by the
Rational Software, a division of IBM (IBM Corporation, 2007). RUP was first introduced by
Rational Software in mid 1990s (Kruchten, 2003). The process was further improved by adding
other disciplines such as business modelling and configuration and change management
(Kruchten, 2003). RUP provides a disciplined approach towards software development through
assigning tasks and responsibilities to different teams within a development organization. Its main
goal is to ensure production of high-quality software that meets the needs of its end-users, within
RUP uses methodologies and techniques, such as development lifecycle approach used in other
software development models (Kroll & Kruchten, 2003, p. 38). It is organized into two dimensions
named phases and disciplines. Phases which can be considered as project states, defines lifecycles
or iterations, while the disciplines define set of activities and milestones. In addition, RUP is a risk
driven framework. During each phase, associated risks should be identified and properly mitigated.
For example, at inception phase, deals with business risks, and project feasibility risks; elaboration
phase technical risks; construction and transition phases deals with logistical risks (Kroll &
Kruchten, 2003, pp. 4041). Figure.1 below provides the phases and disciplines dimensions of
RUP framework.
RUP software development framework is designed to follow four phases namely, inception,
elaboration, construction and transition. As figure 1 above indicates, the activities defined in the
disciplines are distributed across the phases. For example, business modelling starts early during
inception phase, and continues towards construction and transition phases. However, this activity
needs more effort during the early phases than the last phase. Below is a brief discussion on each
phase.
1.2.1 Inception
This phase deals with several objectives such as understanding the software to be built, identifying
schedules and risks associated with the project and deciding processes and tools to use. For large
projects, there can be several iterations on this phase, but for smaller projects one iteration is
1.2.2 Elaboration
use, technical risks, accurate schedules and costs estimates and refinement of the software
development case. The number of iterations depends on the size and scope of the project.
1.2.3 Construction
This is the most time consuming phase of the project. Experience shows that more than 50 percent
of the scheduled time goes in this phase. This phase aims at minimizing development costs through
parallel development of components, and having a complete product that is ready for transition to
the end user. This phase naturally has more iteration than other phases.
1.2.4 Transition
This is the final phase of the RUP framework, which is entered when the beta version of the
software is completed together with supporting documentations and training materials. The focus
on this phase is to ensure that the software fully meets the user requirements. The objectives of
this phase are to test and ensure user expectations are met, users are trained, deployment site is
constructed, launching packages are prepared, sales personnel are trained, and improvement of the
Kroll & Kruchten (2003, pp. 3336) provides several principles that support successful iterative
software development which represents the spirit of RUP. Some of the principles are itemized
The first principle on which RUP is designed is how we deal with risk. This principle requires
risks to be attacked early and continuously throughout the project. Rather than addressing business
risks, technical risks, or other risks later in a project, identify and attack major risks as early as
possible.
The second principle focuses on value to the customer. The project should be to ensure that
customer value of the project is maximized at reasonable budget. Customer requirements are
documented in the form that is easily understood, and the team should work closely with the
The third principle focuses on change management. Today's applications are too complex to enable
us to get the requirements, design, and implementation correct the first time. This means that to
develop a good enough system, we need to allow and adapt to change as we progress with the
project.
The fourth principle focuses on system architecture. Applications built with components are more
resilient to change and can have radically reduced system maintenance cost. Components facilitate
reuse, allowing for building higher quality applications faster than using functional decomposition.
The fifth principle focuses on the project leadership and communication management. Software
development has become a team sport and an iterative approach emphasizes the importance of
good team communications and a team spirit where each team member feels responsible for the
completed product.
The sixth principle focuses on product quality. Ensuring high quality involves more than just the
testing team. It involves all team members and all parts of the lifecycle. An iterative approach
focuses on early testing and test automation for more effective regression testing, thus reducing
Several projects have applied the RUP framework in software development projects. One such is
detailed on the IBM rational website (Wei, Field, Alladi, & Rhoad, n.d.). This project done as a
joint effort between Ford and Ford Financial Credit. Ford Financial Credit is a fully owned
Some of the challenges of the project were difficulty in sharing project deliverables across several
projects, late involvement customer service teams, and late identification of project risks. Every
team had its own set of templates and its own methodology. When people moved from one team
to another, they had to learn new methods. Moreover, risks were left to the last-minute only to
The choice of RUP framework was motivated by having internal expertise in RUP their
organization. Some individuals on the frameworks team knew a lot about RUP framework.
The project was done by first piloting RUP on six projects, covering four different business areas.
Then promoted RUP awareness through presentations at community forums. Some of these forums
had a standing room only crowd, which gave the team a lot of encouragement. Subject matter
experts were identified throughout the company. Then two projects were designed. One to develop
a customized version of RUP and one to deploy what was developed. The result was a model based
on RUP customized for Ford with specific organizational and project needs. The model included
other internal Fords controls considerations and data and record retention policies. In addition, it
In conclusion, they discovered that RUP framework has all the tools and necessary for an
organization such as Ford. The framework was easily customized to meet their needs. The great
3.1 Advantages
Info-Tech Research Group, (2014), a globally recognized corporation for providing IT research
and advice, provides the following challenges based on market trends for software industry
The need to track multiple release schedules and operational changes concurrently requires strong
source code management, release scheduling, and data to support risk management
Considering the above challenges, the RUP promotes an iterative risk driven approach to software
development with continuous testing and integration. Ambler (2002) gives several advantages of
Firstly, RUP allows for an improved governance of the project. The project leader can easily
determine if the teams are on the right track based on the regular outputs produced in each phase
Secondly, RUP allows stakeholders to understand what is going on with the project at each stage.
Stakeholders can see portions of the system sooner and receive assurances that they will receive
what they want. Moreover, as they work with teams iteratively, they can provide corrections early
Thirdly, RUP provides improved risk management. Working incrementally allows any risks to be
addressed from the beginning. Correction actions can be determined before project goes too far.
Moreover, developers implement the actual requirements. At each iteration, changes can be taken
on board as expecting static requirements from the beginning of the project is unrealistic.
In addition, developers can discover what works early. During the elaboration phase, any faulty
architecture can be modified/corrected as many architectures and algorithms works on paper but
Finally, developers focus on what matters. When using RUP, developers immediately focus on
what matters that means the actual software development. With traditional software development,
a team of designers spends a lot of time modelling and writing technical specifications which have
Firstly, the RUP process is too complex to apply by organization which are in many cases resource
constrained. Unless you have a real expert in applying the framework, software development teams
who are ready to learn, and financial resources, it is unlikely for a company to succeed in adapting
to this process (IBM Corporation, 2007). The process is too complex, too difficult to learn, and
Moreover, the disintegrated nature of the Rational Unified Process may lead to a totally
undisciplined form of software development. This may happen when team are free to apply
different techniques in development and causing integration problems in the future (Kruchten,
2003).
4. Conclusion
The RUP is a process framework that enables production of customized process configurations
that are iterative and risk-driven, with continuous integration and testing. Many projects can
benefit from taking an iterative approach and using a RUP. To accomplish this, teams need to gain
experience with iterative development; have good process support, mentoring, and training; and
Recent trends show that there are significant benefits of using RUP (Wei et al., n.d.), but
experience and technical know-how, good process support, and good software development
Abrahamsson, P., SALO, O., Ronkainen, J., & Warsta, J. Agile software development methods:
Review and analysis, VVT Publications (2002). Espoo: VTT Electronics. Retrieved from
http://www.pss-europe.com/P478.pdf
Ambler, S. W. (2002). Agile modeling. John Wiley & Sons New York.
Boehm, B. (2002). Get ready for agile methods, with care. Computer, 35(1), 6469. Retrieved
from http://www.csis.pace.edu/~ctappert/cs615-02/boehm-2002-agile.pdf
IBM Corporation. (2007). IBM Rational Unified Process: Best Practices for Software
http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestp
ractices_TP026B.pdf
application-lifecycle-management
Kroll, P., & Kruchten, P. (2003). The Rational Unified Process Made Easy: A Practitioners
https://doi.org/10.1109/ICSE.2002.146346
Shahid, N., & Khan, O. (2009). Rational Unified Process. Online Notes on RUP. , (1110), 48.
Wei, J., Field, M., Alladi, V., & Rhoad, W. (n.d.). A Case Study: Using IBM Rational Unified
https://www.ibm.com/developerworks/rational/library/4474.html