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

Slides:



Advertisements
Similar presentations
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
MIS 2000 Class 20 System Development Process Updated 2014.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
System Development Life Cycle Process of creating and altering systems or software by using methodologies or models to develop the systems in a logical.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
SECOND MIDTERM REVIEW CS 580 Human Computer Interaction.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Fundamentals of Information Systems, Second Edition
Software Development Life Cycle (SDLC)
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
1 Advanced Computer Programming Project Management: Software Life Cycle Copyright © Texas Education Agency, 2013.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 CMPT 275 Software Engineering Software life cycle.
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object Oriented Analysis and Design Introduction.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
1 Software Development By Rick Mercer with help from these sources: Rational Unified Process Computing Fundamentals with C++, Rick Mercer Designing Object.
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
Safety methods within Agile and RUP methods TORGRIM LAURITSEN BUCS project.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development - Methodologies
Software Development.
Teaching slides Chapter 2
Methodologies and Algorithms
Appendix B Agile Methodologies
Fundamentals of Information Systems, Sixth Edition
Methodologies By Akinola Soyinka.
Information Technology Project Management – Fifth Edition
CS 425/625 Software Engineering Software Processes
Software Process Models
Models of Software Development Life Cycle (SDLC)
Software Development Process
Methodologies For Systems Analysis.
Teaching slides Chapter 1.
Lecture 2 Revision of Models of a Software Process
Chapt 2 Iterative Evolutionary Agile.
Applied Software Project Management
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Baisc Of Software Testing
Appendix B Agile Methodologies
Software Development Process
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

eXtreme Programming To achieve maximum effectiveness in pair programming, the driver and navigator should periodically exchange roles. 20Copyright © 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

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