The Rational Unified Process RUP Yazd University Electrical

  • Slides: 36
Download presentation
The Rational Unified Process (RUP) Yazd University, Electrical and Computer Engineering Department Course Title:

The Rational Unified Process (RUP) Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki

Preface The goal of this process is to produce, within a predictable schedule and

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

Preface In this section we will learn: § what the RUP is and what

Preface In this section we will learn: § what the RUP is and what it is not; § master the vocabulary of the RUP and understand its structure; § develop an understanding for the best practices that we have synthesized in this process; § understand how the RUP can give you the guidance you need for your specific 3 responsibility in a project

Symptoms of failed projects Different software development projects … fail in different ways It

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 4

Symptoms of failed projects § Inaccurate understanding of end- user needs § Inability to

Symptoms of failed projects § Inaccurate understanding of end- user needs § Inability to deal with changing requirements § Modules that don't fit together 5 § Software that's hard to maintain or

Symptoms of failed projects § Late discovery of serious project flaws § Poor software

Symptoms of failed projects § Late discovery of serious project flaws § Poor software quality § Unacceptable software performance 6

Symptoms of failed projects § Team members making it impossible to reconstruct who changed

Symptoms of failed projects § Team members making it impossible to reconstruct who changed what, when, where, and why 7 § An untrustworthy build-and-release

Symptoms of failed projects For example: the late discovery of serious project flaws …

Symptoms of failed projects For example: the late discovery of serious project flaws … 8 is only a symptom of larger problems … namely: subjective (personal feeling) project status assessment and undetected inconsistencies in the project's requirements,

Root causes of failed projects 9 different projects fail in different ways most of

Root causes of failed projects 9 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

Root causes of failed projects § Undetected inconsistencies in requirements, designs, and implementations §

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 10

Software Best Practices If you treat these root causes, … not only will you

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 11 repeatable and predictable

Software Best Practices They are "best practices“: not so much because you can precisely

Software Best Practices They are "best practices“: not so much because you can precisely quantify their value but … because they are commonly used in industry by successful organizations. 12

Software Best Practices Six important best practices: 1) Develop software iteratively. 2) Manage requirements.

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. 13

What is the Rational Unified Process It is a software engineering process. It provides

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 14

What is the Rational Unified Process The RUP is a process product. It is

What is the Rational Unified Process The RUP is a process product. It is developed and maintained by Rational Software and integrated with its suite of software development tools It is available from IBM on CD/DVD or through the Internet. 15

What is the Rational Unified Process In this course… § We learn an integral

What is the Rational Unified Process In this course… § We learn an integral part of the Rational Unified Process but § represents only a small fraction of the Rational Unified Process knowledge base. 16

RUP as a Product Rational Unified Process is designed, developed, delivered, and maintained like

RUP as a Product Rational Unified Process is designed, developed, delivered, and maintained like any software tool. 17

RUP as a Product RUP shares many characteristics with software products: § IBM releases

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. 18

RUP as a Product RUP shares many characteristics with software products: §… § It

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 19

RUP as a Product- Benefits treating the process as a software product provides the

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 20 latest version of their process configuration on an intranet.

RUP as a Product- Benefits § Java applets, such as a process browser and

RUP as a Product- Benefits § 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. 21

RUP as a Product- Benefits § Hyperlinks provide navigation § from one part of

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. 22

RUP as a Product- Benefits § Local, project- or company-specific process improvements or special

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. 23

RUP as a Product RUP has a tool Rational Method Composer as: Best practices:

RUP as a Product RUP has a tool Rational Method Composer as: Best practices: Includes practices that use process expertise and experience in § § § 24 § agile development; systems engineering; real-time, embedded software development; requirements management; quality management; and change and release management.

RUP as a Product RUP has a tool Rational Method Composer: Process configuration: Lets

RUP as a Product RUP has a tool Rational Method Composer: Process configuration: Lets you configure processes by … selecting only those practices that … address your operational objectives. 25

RUP as a Product 26 RUP has a tool Rational Method Composer: Process authoring:

RUP as a Product 26 RUP has a tool Rational Method Composer: Process authoring: Enables you to manage, author, evolve, measure, and deploy effective processes tailored to your project needs.

RUP as a Product RUP has a tool Rational Method Composer: Process tailoring: Captures

RUP as a Product RUP has a tool Rational Method Composer: Process tailoring: Captures and maintains your practices and combines them with IBM practices and processes for maximum results. 27

RUP as a Product In a process configuration: you will find not only a

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 28 artifacts

RUP as a Product overall architecture of RUP: 29

RUP as a Product overall architecture of RUP: 29

RUP as a Product The Process has two structures: 1) The horizontal axis represents:

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. 30

Software Best RUP It Has …. 31 Practices in

Software Best RUP It Has …. 31 Practices in

Software Best Practices Six important best practices: 1) Develop software iteratively. 2) Manage requirements.

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. 32

Software Best RUP Practices in Other Key Features: 1) Use-Case-Driven Development 33 Use cases

Software Best RUP Practices in Other Key Features: 1) Use-Case-Driven Development 33 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.

Software Best RUP Practices in 2) Process Configuration A process should not be followed

Software Best RUP Practices in 2) Process Configuration A process should not be followed blindly, generating useless work and producing artifacts that are of little added value. 34 Instead, the process must be made as lean as possible The adopting organization should complement the process with its own best practices and

Software Best RUP 35 Practices in The RUP is a process framework that the

Software Best RUP 35 Practices in 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.

Software Best RUP Practices in 3) Tools Support A process must be supported by

Software Best RUP Practices in 3) Tools Support A process must be supported by adequate tools. 36