Actors are identified, representing the various users, and any other system that may interact with the system being developed. Use-Cases are identified; representing the behavior of the system. Because use cases are developed according to the actor's needs, the system is more likely to be relevant to the users. Figure 9 shows an example of a use-case model for a recycling-machine system. Is easy to change when requirements change; i.
Design phase results in a design model, and analysis phase optionally results in an analysis model. The design model serves as an abstraction of the source code; that is, the design model acts as a 'blueprint' of how the source code will be structured and written. The design model consists of design classes structured into packages and subsystems with well-defined interfaces, representing what will become components in the implementation. It also contains descriptions of how objects of these design classes collaborate and interact to perform use cases. To test the developed components as units.
To integrate the results produced by individual implementers or teams into an executable system. Integration and interfacing tests and used here. Systems are realized through implementation of components.
The process describes how to reuse existing components, or implement new components with well-defined responsibilities, making the system easier to maintain, and increasing the possibilities of their reuse. Components are structured into Implementation Subsystems. Subsystems could be regarded as, or take the form of subdirectories, with additional structural or management information in them. To ensure that all the defects are fixed, retested, and closed. Validation mainly deals with making sure the system is valid; i.
Verification mainly deals with making sure that the behaviors of the system are correct; i. The Rational Unified Process proposes an iterative approach, which means that you test throughout the project. This allows you to find defects as early as possible, which radically reduces the cost of fixing the defects.
Tests are carried out along four quality dimensions: reliability, functionality, application performance, and system performance. For each of these quality dimensions, the process describes how you go through the test in particular phases; i. This is particularly needed; as well as useful, in agile environments .
The Deployment and Environment workflows of the Rational Unified Process contain less detail than other workflows . It describes the activities required to develop the guidelines in support of a project. The purpose of the environment activities is to provide the software development organization with the software development environment - both processes and tools - that will support the development team s.
If the users of RUP do not understand that RUP is a process framework; not just a methodology for development, they may perceive it as a weighty and expensive process. A step-by-step procedure is provided describing how you implement a process in a certain environment or organization. It also contains a Development Kit providing software engineers with the guidelines, templates and tools necessary to customize the process. However, certain aspects of the Environment discipline are not covered in the process such as selecting, acquiring, and making the tools work, and maintaining the development environment.
This was initially done manually, i. So process engineers and project managers could more easily customize the RUP for their particular project needs. Figure 10 below shows the OpenUP lifecycle. Historically, as the RUP is often customized for each project by a RUP process expert, the project's overall success can be somewhat dependent on the abilities of that one person. Artifacts such as documents and models need to be under version control and these changes must be visible.
It also keeps track of dependencies between artifacts so all related articles are updated when changes are made. CRM keeps track of the proposals for change. A change request also has attributes such as root cause, or nature like defect and enhancement , priority, etc These states and attributes are stored in a database so useful reports about the progress of the project can be produced.
Rational also has a product to maintain change requests called ClearQuest.
Shop with confidence
In this discipline we describe how to control the numerous artifacts produced by the many people who work on a common project. One release could be at customer site being used, while another is in test, and the third is still in design. If problems are found in any one of the versions, fixes need to be propagated between them. Confusion can arise leading to costly fixes and re-work unless changes are carefully controlled and monitored .
This discipline focuses mainly on the important aspects of an iterative development process: risk management, planning an iterative project through the lifecycle and for a particular iteration, monitoring progress of an iterative project, and metrics for management and progress. However, this discipline of the RUP does not attempt to cover all aspects of project management. The fact that so few projects are unarguably successful is enough comment on the difficulty of the task. This discipline focuses mainly on the specific aspect of an iterative development process.
The goal of the six practices is to minimize faults and maximize productivity. The six best practices are: a.
However, this is usually not the case. Therefore, software must be developed iteratively; i. Agility deals with this very specific issue . The need for iterative development emerges naturally as you gain an increasing understanding of the problem. RUP addresses the highest risk items at each stage of the lifecycle. This helps decrease the project overall risk.
Ambler Scott W Nalbone John Vizdos Michael J
The software development team focuses on producing running results because each iteration ends with an executable release. RAD Rapid Application Development ; specially phased or versioned methodolgy, is typically used for such scenarios . It is pointless to develop software that does not fulfill requirements because it will be useless; or at least not really beneficial, to the end users. Use components: It is unavoidable to break down a large project into smaller, more manageable components. Individual components are not only easier to develop but also easier to test before they are integrated to form a complete system.
Another advantage is that code developed for one component might be usable in another component; i. This will help save time and money when developing future projects. However, a minor disadvantage is there; need for integration of components later on. But this disadvantage is typically far outweighed by advantages. Model visually: Diagrams should be used to represent all major components, users and their interaction.
Clear diagrams make it easier to understand the system and individual processes by hiding technical details. Verify quality: Poor performance and reliability are problems that hinder the acceptance of a new software product.
The Enterprise Unified Process: Extending the Rational Unified Process by Scott W. Ambler
Therefore, in order to ensure quality, testing should be a key component of the project at any point of time. Although testing becomes more difficult and time-consuming as the project progresses, it is necessary and should be constantly carried out throughout all stages.
RUP places great emphasis on quality and that is why quality assessment is a main part of each process. It is incorporated in all activities and involves all team members. It is not treated as something unimportant to be done by a separate group at a lter time. Control changes: A project can be made by several teams that work in different locations. Therefore, it is important to ensure that changes made to a system are coordinated and verified constantly to prevent misunderstandings or unneeded work because the RUP environment encourages constant changes .
It is based on best practices that have been refined over many years of experience in numerous projects. It has been successfully applied by many organizations in many different domains. People are increasingly becoming proficient with the RUP. This makes it easier to find a professional with RUP experience.
It does not really make sense to develop your own processes for software development; when such a vast amount of proven practices and information is available. The RUP can be tailored to meet almost any user requirements. Organizations can choose the parts they need; i.