1 / 22

Advanced Computer Programming

Advanced Computer Programming. Project Management: Methodologies. Overview. What is a Project Management Methodology? Waterfall Rational Unified Process (RUP) eXtreme Programming (XP). What is a methodology?.

anahid
Télécharger la présentation

Advanced Computer Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced Computer Programming Project Management: Methodologies

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

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

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

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

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

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

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

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

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

  11. Rational Unified Process Disadvantages • Commercial product, not free to use • Only available in electronic format • Complex • Requires special training to use

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

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

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

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

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

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

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

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

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

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

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

More Related