Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.

Slides:



Advertisements
Similar presentations
Project management.
Advertisements

Prescriptive Process models
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Software Project Management Peking University Fall Semester, 2001.
Software Process Models
Unit 2. Software Lifecycle
CSE 470 : Software Engineering The Software Process.
Software Development Methodologies Damian Gordon.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
SWE Introduction to Software Engineering
Week 1 intro to PM Project Management Introduction to Project Management and the Software Development Lifecycle Week 1 Winter quarter 1/7/02 SOS.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Fundamentals of Information Systems, Second Edition
Ch7: Software Production Process. 1 Questions  What is the life cycle of a software product?  Why do we need software process models?  What are the.
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Software Life Cycle Model
Capability Maturity Model
Introduction to Computer Technology
Chapter 6– Artifacts of the process
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
CSI315 Web Technology and Applications
Sixteenth Meeting 6:30 – 9:20 pm, Thursday, September 20, 2001 Review - Looking Forward (from Part IV, Chapter 15 of Royce’ book) Final Examination.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
N By: Md Rezaul Huda Reza n
Software Project Management Introduction to Project Management.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Eleventh Lecture Hour 9:30 – 10:20 am, Saturday, September 16 Software Management Disciplines Iterative Process Planning (from Part III, Chapter 10 of.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 3 Project Management Chapter 3 Project Management Organising, planning and scheduling software projects.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
An Introduction to Software Engineering
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Dr Izzat M Alsmadi Edited from ©Ian Sommerville & others Software Engineering, Chapter 3 Slide 1 Project management (Chapter 5 from the textbook)
Software Engineering Lecture # 1.
Click to add text Systems Analysis, Prototyping and Iteration.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Development Methodologies (1950s – 1970s) Damian Gordon.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
The Web Application Development Process Models
Software Processes (a)
The Waterfall Model The Waterfall Model Damian Gordon Damian Gordon.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
Software Project Management
Software life cycle models
An Overview of Software Processes
Gathering Systems Requirements
Capability Maturity Model
Software Processes.
Gathering Systems Requirements
Capability Maturity Model
Presentation transcript:

Welcome to Software Project Management

CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development is still highly unpredictable. Only about 10% of software projects are delivered successfully within initial budget and schedule estimates. 2.Management discipline is more of a discriminator in success or failure than are technology advances. 3.The level of software scrap and rework is indicative of an immature process. There is much room for improvement.

THE WATERFALL MODEL Most software engineering texts present the waterfall model as the source of the “conventional” software process. IN THEORY 1.There are two essential steps common to the development of computer programs: analysis and coding.

2. In order to manage and control all of the intellectual freedom associated with software development, one must introduce several other “overhead” steps, including system requirements definition, software requirements definition, program design, and testing.

3. The basic framework described in the waterfall model is risky and invites failure. The testing phase occurs at the end of development cycle. Five necessary improvements : 1.Complete program design before analysis and coding begin. 2.Maintain current and complete documentation. 3.Do the job twice, if possible. 4.Plan,control,and monitor testing. 5.Involve the customer.

FIVE IMPROVEMENTS 1.Program design comes first. The first step is to insert a preliminary program design phase between the software requirements generation phase and the analysis phase. Begin the design process with program designers, not analysts, or programmers. Design, define, and allocate the data processing modes even at the risk of being wrong. Write the overview document that is understandable, informative, and current so that every worker on the project can gain an elemental understanding of the system. The architecture comes first and is designed and developed in parallel with planning and requirements definition as part of the engineering stage of a project.

2. Document the design. Why do we need so much documentation? 1.Each designer must communicate with interfacing designers, managers, and possibly customers. 2.During early phases, the documentation is the design. 3.Real monetary value of documentation is to support later modifications by a separate test team, a separate maintenance team, and operations personnel who are not software literate.

3.Do it twice. 1.If a computer program is being developed for the first time, make an arrangement so that the version finally delivered to the customer for operational deployment is actually the second version in so far as critical design/ operations are concerned. 2. Do it N times. Iterative development.

4.Plan, Control, and Monitor testing 1.The biggest user of project resources is the test phase. 2.This is the phase of greatest risk in terms of cost and schedule. 3.It occurs at the latest point in the schedule, when backup alternatives are least available.

Employ a team of test specialists who are not responsible for the original design. Employ visual inspections to spot the obvious errors. (jumps to wrong address ) Test every logic path. Employ the final checkout on the target computer.

Involve the customer. It is important to involve the customer in a formal way so that he has committed himself at earlier points before final delivery. Customer should be involved in 1.Preliminary software review 2.Critical software design review 3.Final acceptance review

In Practice Projects destined to trouble have following symptoms 1.Protracted Integration and late design breakage 2.Late Risk Resolution 3.Requirements-Driven Functional Decomposition 4.Adversarial Stakeholder Relationships 5.Focus on documents and Review Meetings

Protracted Integration and late design breakage Late Design Breakage Integration Begins Project Schedule % Coded Original Target Date

Projects following conventional process Consumed 40% of life cycle resources

Late Risk Resolution Risk is defined as the probability of missing a cost, schedule, feature, or quality. Requirement Design-Coding Integration Testing Risk Exploration Period Risk Elaboration period Focused Risk Resolution Period Controlled Risk Management Period Project Life Cycle High Low PREPRE PER-Project Risk Exposure

Requirements-Driven Functional Decomposition An attempt is made to provide a precise requirement definition and then to implement exactly those requirements. This approach depends on specifying requirements completely and unambiguously before other development activities begin. It naively treats all requirements as equally important, and depends on those requirements remaining constant over the software development life cycle. Another property of the conventional approach is that the requirements were typically specified in a functional manner.

Adversarial Stakeholder Relationships The conventional process tended to result in adversarial stakeholder relationships, in large part because of the difficulties of requirements specification and the exchange of information solely through paper documents that captured engineering information in ad hoc formats. The lack of rigorous notation resulted mostly in subjective reviews and opinionated exchange of information.

Focus on documents and Review Meetings The conventional process focused on providing various documents that attempted to describe the software product, with insufficient focus on producing tangible increments of the products themselves. The review meetings were costly and not productive.

Modern software projects must use mechanisms that assess project health in early life cycle phases and that continue with objective, periodic checkups. Industrial Software Metrics Top 10 List 1.Finding and fixing a software problem after delivery costs 100 times more than finding and fixing the problem in early design phases. 2.You can compress software development schedules 25% of nominal, but no more. 3.For every $1 you spend on development, you will spend $2 on maintenance. 4.Software development and maintenance costs are primarily a function of the number of source lines of code.

5. Variations among people account for the biggest differences in software productivity. 6. The overall ratio of software & hardware costs is still growing, in 1955 it was 15:85, in 1985, 85: Only about 15% of software development effort is devoted to programming. 8. Software systems and products typically cost 3 times as much per SLOC as individual software programs. Software-system products cost 9 times as much. 9. Walkthroughs catch 60% of the errors % of the contribution comes from 20% of the contributors.