Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational Unified Process (RUP)
Preface The goal of this process is to produce, within a predictable schedule and budget, high quality software that meets the needs of its end users. 2
Symptoms of failed projects Different software development projects … fail in different ways It is possible identify a number of common symptoms that characterize these kinds of projects 3
Symptoms of failed projects Inaccurate understanding of end-user needs Inability to deal with changing requirements Modules that don't fit together Software that's hard to maintain or extend 4
Symptoms of failed projects Late discovery of serious project flaws Poor software quality Unacceptable software performance 5
Symptoms of failed projects Team members making it impossible to reconstruct who changed what, when, where, and why An untrustworthy build-and-release process 6
Root causes of failed projects different projects fail in different ways most of them fail because of a combination of the following root causes: Not popular requirements management Ambiguous and imprecise communication Brittle architectures Overwhelming complexity 7
Root causes of failed projects Undetected inconsistencies in requirements, designs, and implementations Insufficient testing Subjective assessment of project status Failure to attack risk Uncontrolled change propagation Insufficient automation 8
Software Best Practices If you treat these root causes, … not only will you eliminate the symptoms… you'll also be in a much better position to develop and maintain quality software in a repeatable and predictable fashion. 9
Software Best Practices There are " best practices “: not so much because you can precisely quantify their value but … because they are commonly used in industry by successful organizations. 10
Software Best Practices Six important best practices : 1) Develop software iteratively. 2) Manage requirements. 3) Use component-based architectures. 4) Visually model software. 5) Continuously verify software quality. 6) Control changes to software. 11
What is the Rational Unified Process It is a software engineering process. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high- quality software that meets the needs of its end users within a predictable schedule and budget 12
RUP as a Product Rational Unified Process is designed, developed, delivered, and maintained like any software tool. 13
RUP as a Product RUP shares many characteristics with software products: IBM releases regular upgrades. It is delivered online using Web technology, so it is literally at the fingertips of the developers. It can be tailored and configured to suit the specific needs of a development organization. 14
RUP as a Product RUP shares many characteristics with software products: …… It is integrated with many of the software development tools in the IBM Rational Suites so that developers can access … process guidance from within the tool they are using 15
RUP as a Product- Benefits treating the process as a software product provides the following benefits : The process is never obsolete; at regular intervals companies get new releases with improvements and up-to-date techniques. All project members can access the latest version of their process configuration on an intranet. 16
Java applets, such as a process browser and a built-in search engine, allow developers to reach instantaneously process guidance or policies, including the latest document templates they should use. 17 RUP as a Product- Benefits
Hyperlinks provide navigation from one part of the process to another, eventually branching out to a software development tool or an external reference or guideline document. 18 RUP as a Product- Benefits
Local, project- or company-specific process improvements or special procedures are included easily. Each project or department can manage its own version or variant of the process. 19 RUP as a Product- Benefits
RUP has a tool Rational Method Composer 20 RUP as a Product
In a process configuration : you will find not only a complete description of the process itself but also the following: Tool mentors, guidance when you're working with any of the tools offered by IBM Rational Software Templates for all major process artifacts Examples of artifacts for simple projects 21 RUP as a Product
overall architecture of RUP: 22 RUP as a Product
The Process has two structures: 1) The horizontal axis represents: time and shows the lifecycle aspects of the process as it unfolds. 2) The vertical axis represents: core process disciplines, which group activities logically by nature. 23 RUP as a Product
Software Best Practices Six important best practices : 1) Develop software iteratively. 2) Manage requirements. 3) Use component-based architectures. 4) Visually model software. 5) Continuously verify software quality. 6) Control changes to software. 24
It Has …. 25 Software Best Practices in RUP
Other Key Features: 1) Use-Case-Driven Development Use cases are not required in object orientation, but they provide important links between: system requirements and other development artifacts such as design and tests. 26 Software Best Practices in RUP
2) Process Configuration A process should not be followed blindly, generating useless work and producing artifacts that are of little added value. Instead, the process must be made as lean as possible The adopting organization should complement the process with its own best practices and with its specific rules and procedures. 27 Software Best Practices in RUP
The RUP is a process framework that the adopting organization can modify, adjust, and expand to accommodate the specific needs, characteristics, constraints, and history of its organization, culture, and domain. 28 Software Best Practices in RUP
3) Tools Support A process must be supported by adequate tools. 29 Software Best Practices in RUP