Download Rational Unified Process

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Reactive programming wikipedia , lookup

Structured programming wikipedia , lookup

Transcript
Advanced Computer
Programming
Project Management:
Methodologies
Copyright © Texas Education Agency, 2013
1
Overview

What is a Project Management Methodology?



Waterfall
Rational Unified Process (RUP)
eXtreme Programming (XP)
Copyright © Texas Education Agency, 2013
2
What is a methodology?
Project Management methodologies are
essentially a set of guidelines to follow to
provide a structure for how to develop
software.
There are numerous methodologies to choose
from. The methodology you should use
depends on the situation under which you are
developing software.
Copyright © Texas Education Agency, 2013
3
Waterfall
The water fall model is one of the most
commonly used software development
models.
The premise is that software should be
developed in a series of steps. Each step is
to be completed before moving onto the next
step.
Copyright © Texas Education Agency, 2013
4
Waterfall (cont)
The purpose for the steps is to find faults early and “plan and design”
them out before moving on. For example, if a fault is found in the
design phase, more requirements are solicited.
Requirements
Design
Implementation
Verification
Deployment
Maintenance
Copyright © Texas Education Agency, 2013
5
Waterfall (cont)
Advantages
 Enforced discipline approach helps find faults
more rapidly.
 Each phase has testing built in to find faults
early.
 There is considerable documentation
produced providing a roadmap for
development.
Copyright © Texas Education Agency, 2013
6
Waterfall (cont)
Disadvantages
 Requirements are locked up front making
change in the middle of development very
difficult
 The rigor of the process can take an
excessively long time.
 Because requirements are locked, the
product may be outdated when completed.
Copyright © Texas Education Agency, 2013
7
Rational Unified Process
The Rational Unified Process (RUP) is a
software based, commercial, Iterative
Development Process.
Design and implementation occur in cycles.
This allows both the design and programming
team to work in tandem, saving time and
effort.
Copyright © Texas Education Agency, 2013
8
Rational Unified Process
An iterative approach gives the RUP an ability to provide support for
mid-development changes to the system.
Copyright © Texas Education Agency, 2013
9
Rational Unified Process
Advantages
 Since development is in cycles, programmers
don’t have to wait for completion of design
 Since requirements aren’t locked, it is easy to
implement changes in design
Copyright © Texas Education Agency, 2013
10
Rational Unified Process
Disadvantages
 Commercial product, not free to use
 Only available in electronic format
 Complex
 Requires special training to use
Copyright © Texas Education Agency, 2013
11
eXtreme Programming
eXtreme Programming (XP) is a process
designed to reduce risk by reducing the cost
of delaying design decisions.
XP is centered around the idea of releases
done in iterations very similar to RUP.
In XP, the first release is an initial working
version of the program and subsequent
releases add functionality and correct errors
in the system.
Copyright © Texas Education Agency, 2013
12
eXtreme Programming
XP functions almost identically to RUP in that it
shares its iterative nature. In addition to
iterative design and development, XP also
uses a few other performance enhancing
tools:
 Test Driven Design (TDD)
 Pair Programming
 User Stories, Use Cases
Copyright © Texas Education Agency, 2013
13
eXtreme Programming
Test Driven Design is a technique of
developing software that involves creating
and implementing tests to determine the
“correctness” of a program BEFORE you
write the program.
Copyright © Texas Education Agency, 2013
14
eXtreme Programming
Example of Test Driven Design:
Let’s say you wanted to write a program that includes a function to
calculate the area of a Rectangle. We already know the area of
some rectangles, so we would write a test like this:
public void testArea()
{
double area = areaOfRect(10,5);
assert area == 50;
}
We know the answer to 10 * 5 is 50, so this is a valid test.
Copyright © Texas Education Agency, 2013
15
eXtreme Programming
Once you have a series of tests written, then
you write the program and check to make
sure all of your tests pass.
Many professionals use some type of Unit
Testing suite. In Java, the most common
Unit Testing suite is JUnit.
Copyright © Texas Education Agency, 2013
16
eXtreme Programming
Pair Programming is a practice of having two
people sitting at the same computer working
on the same piece of code.
Copyright © Texas Education Agency, 2013
17
eXtreme Programming
One person in pair programming takes the role
of “Driver”. The driver types in the code and
discusses what they are doing as they work.
Copyright © Texas Education Agency, 2013
18
eXtreme Programming
The other person in pair programming is the
“Navigator”. The navigator watches the code
as it is being typed in and helps to correct
errors as they happen. The navigator should
also ask questions like why they chose the
solution they did or for clarification on how a
solution works if they are unsure.
Copyright © Texas Education Agency, 2013
19
eXtreme Programming
To achieve maximum effectiveness in pair
programming, the driver and navigator should
periodically exchange roles.
Copyright © Texas Education Agency, 2013
20
eXtreme Programming
User Stories are a technique for gathering
requirements from a client. A user story
gives an example of how a client might want
to use the software. For example:
“I open the banking software and I want to
transfer money from my savings account to
my checking account.”
Copyright © Texas Education Agency, 2013
21
eXtreme Programming
A Use Case is a specific path in a User Story.
In the previous example, it might turn out that
there aren’t enough funds to make the
transfer, so one case would be the
“Insufficient Funds” case. Yet another case
would be a “Successful Transfer” case.
Copyright © Texas Education Agency, 2013
22