1 advanced computer programming project management: methodologies copyright © texas education...

22
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

Upload: elinor-richards

Post on 28-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

1

Advanced Computer Programming

Project Management:

Methodologies

Copyright © Texas Education Agency, 2013

Page 2: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

Overview

What is a Project Management Methodology? Waterfall Rational Unified Process (RUP) eXtreme Programming (XP)

2Copyright © Texas Education Agency, 2013

Page 3: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

3Copyright © Texas Education Agency, 2013

Page 4: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

4Copyright © Texas Education Agency, 2013

Page 5: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

Waterfall (cont)

5

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

Maintenance

Verification

Deployment

Copyright © Texas Education Agency, 2013

Page 6: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

6Copyright © Texas Education Agency, 2013

Page 7: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

7Copyright © Texas Education Agency, 2013

Page 8: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

8Copyright © Texas Education Agency, 2013

Page 9: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

Rational Unified Process

An iterative approach gives the RUP an ability to provide support for mid-development changes to the system.

9Copyright © Texas Education Agency, 2013

Page 10: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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

10Copyright © Texas Education Agency, 2013

Page 11: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

Rational Unified Process

Disadvantages Commercial product, not free to use Only available in electronic format Complex Requires special training to use

11Copyright © Texas Education Agency, 2013

Page 12: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

12Copyright © Texas Education Agency, 2013

Page 13: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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

13Copyright © Texas Education Agency, 2013

Page 14: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

14Copyright © Texas Education Agency, 2013

Page 15: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

15Copyright © Texas Education Agency, 2013

Page 16: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

16Copyright © Texas Education Agency, 2013

Page 17: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

eXtreme Programming

Pair Programming is a practice of having two people sitting at the same computer working on the same piece of code.

17Copyright © Texas Education Agency, 2013

Page 18: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

18Copyright © Texas Education Agency, 2013

Page 19: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

19Copyright © Texas Education Agency, 2013

Page 20: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

eXtreme Programming

To achieve maximum effectiveness in pair programming, the driver and navigator should periodically exchange roles.

20Copyright © Texas Education Agency, 2013

Page 21: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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

21Copyright © Texas Education Agency, 2013

Page 22: 1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013

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.

22Copyright © Texas Education Agency, 2013