�Software Project Management�(SPM)
Course Objectives
Course Outcomes
At the end of this course, the student will be able to
Introduction
What is Software?
What is Project?
Project Characteristics
What is Management?
Management Functions
What is Software Project Management?
There are three needs for software project management. These are:
Management
Project
Software
23. Appraising Performance
24. Handling Intellectual Property
25. Holding Effective Meetings
26. Interaction and Communication
27. Leadership
28. Managing Change
29. Negotiating Successfully
30. Planning Careers
31. Presenting Effectively
32. Recruiting
33. Selecting a Team
34. Teambuilding
12. Building a WBS
13. Documenting Plans
14. Estimating Costs
15. Estimating Effort
16. Managing Risks
17. Monitoring Development
18. Scheduling
19. Selecting Metrics
20. Selecting Project Mgmt Tools
21. Tracking Process�22. Tracking Project Progress
1. Assessing Processes
2. Awareness of Process Standards
3. Defining the Product
4. Evaluating Alternative Processes
5. Managing Requirements
6. Managing Subcontractors
7. Performing the Initial Assessment
8. Selecting Methods and Tools
9. Tailoring Processes
10. Tracking Product Quality
11. Understanding Development Activities
34 Competencies Every Software Project Manager Needs to Know
People
Project
Product
People
Project
Product
Unit-I Syllabus
Conventional Software Management
CONVENTIONAL SOFTWARE MANAGEMENT�
Conventional Software Management
Conventional Software Management
Three important analyses of the state of the software engineering industry are
The three analyses provide a good introduction to the magnitude of the software problem and the current norms for conventional software management performance.
The Waterfall Model
In Theory
The Waterfall Model
Three main primary points are
Analysis and coding both involve creative work that directly contributes to the usefulness of the end product.
Analysis
Coding
The Waterfall Model
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. These steps supplement the analysis
and coding steps.
The Waterfall Model
The Waterfall Model
3. The basic framework described in the waterfall model is risky and invites failure. The testing phase that occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. The resulting design changes are likely to be so disruptive that the software requirements upon which the design is based are likely violated. Either the requirements must be modified or a substantial design change is warranted.
The Waterfall Model
The Waterfall Model
The Waterfall Model
The Waterfall Model
In Practice
Protracted Integration and Late Design Breakage
In the conventional model, the entire system was designed on paper, then implemented all at once, then integrated. Table 1-1 provides a typical profile of cost expenditures across the spectrum of software activities
Late Risk Resolution
Requirements-Driven Functional Decomposition
Figure 1-4 illustrates the result of requirements-driven approaches: a software structure that is organized around the requirements specification structure.
Adversarial Stakeholder Relationships
Focus on Documents and Review Meetings
Table 1-2 summarizes the results of a typical design review.
�Conventional Software Management Performance
Conventional Software Management Performance
����Evolution of Software Economics
Evolution of Software Economics
Software Economics
Software Economics
Software Economics
The relationships among these parameters and the estimated cost can be written as follows:
Effort = (Personnel) (Environment) (Quality) ( Sizeprocess)
Software Economics
Software Economics
2. Transition: 1980s and 1990s, software engineering. Organizations used more-repeatable processes and off- the-shelf tools, and mostly (>70%) custom components built in higher level languages. Some of the components (<30%) were available as commercial products, including the operating system, database management system, networking, and graphical user interface.
3. Modern practices: 2000 and later, software production. This book's philosophy is rooted in the use of managed and measured processes, integrated automation environments, and mostly (70%) off-the-shelf components. Perhaps as few as 30% of the components need to be custom built
Software Economics
Pragmatic Software Cost Estimation
Pragmatic Software Cost Estimation
Pragmatic Software Cost Estimation
Pragmatic Software Cost Estimation
Improve Software Economics
Improving Software Economics
These parameters are given in priority order for most software domains.
Table 3-1 lists some of the technology developments, process improvement efforts, and management approaches targeted at improving the economics of software development and integration.�
Reducing Software Product Size
Reducing Software Product Size
Languages
Object-oriented Methods And Visual Modeling
Object-oriented Methods And Visual Modeling
Reuse
The cost of developing a reusable component is not trivial. Figure 3-1 examines the economic trade-offs. The steep initial curve illustrates the economic obstacle to developing reusable components.
Commercial Components
Improving Software Processes
Improving Software Processes
Improving Team Effectiveness
Improving Team Effectiveness
Improving Team Effectiveness
Improving Automation Through Software Environments
Improving Automation Through Software Environments
For example, it is easy to find statements such as the following from companies in a particular tool.
Achieving Required Quality
Achieving Required Quality
Achieving Required Quality
Peer Inspections: A Pragmatic View
Peer Inspections: A Pragmatic View
The Principles of Conventional Software Engineering
1.Make quality #1.
2.High-quality software is possible.
3.Give products to customers early.
4.Determine the problem before writing the requirements.
5.Evaluate design alternatives.
6.Use an appropriate process model.
7.Use different languages for different phases.
8.Minimize intellectual distance.
9.Put techniques before tools.
10.Get it right before you make it faster.
11.Inspect code.
12.Good management is more important than good technology.
The Principles of Conventional Software Engineering
13.People are the key to success.
14.Follow with care.
15.Take responsibility.
16.Understand the customer's priorities.
17.The more they see, the more they need.
18.Plan to throw one away.
19.Design for change.
20.Design without documentation is not design.
21.Use tools, but be realistic.
22.Avoid tricks.
23.Encapsulate.
24.Use coupling and cohesion.
The Principles of Conventional Software Engineering
25.Use the McCabe complexity measure.
26.Don't test your own software.
27.Analyze causes for errors.
28.Realize that software's entropy increases.
29.People and time are not interchangeable.
30.Expect excellence.
�The Principles of Modern Software Management
The Principles of Modern Software Management
Transitioning to an Iterative Process
The following paragraphs map the process exponent parameters of COCOMO II to my top 10 principles of a modern process.
Transitioning to an Iterative Process
Transitioning to an Iterative Process