Science 7 - LAND and SEA BREEZE and its Characteristics
Software Engineering Lec 3-project managment
1. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1
Software Project Management
2. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
Project
A project is a temporary endeavor undertaken to create
a unique product or service. It implies
a specific timeframe
a budget
unique specifications
working across organizational boundaries
3. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
Project Management
The application of knowledge, skills, tools, and
techniques to project objectives to meet
stakeholder needs and expectations.
4. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
When Projects Succeed!
Project Sponsorship at executive level
Good project charter
Strong project management
The right mix of team players
Good decision making structure
Good communication
Team members are working toward common goals
5. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Laws of Project Management
No major project is ever installed on time, within budget,
or with the same staff that started it. Yours will not be the
first.
Projects progress quickly until they become 90% complete,
then they remain at 90% complete forever.
When things are going well, something will go wrong.
When things just cannot get any worse, they will.
6. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Laws of Project Management
When things appear to be going better, you have overlooked
something.
No system is ever completely debugged. Attempts to debug a
system inevitably introduce new bugs that are even harder to
find.
A carelessly planned project will take three times longer to
complete than expected
A carefully planned project will take only twice as long.
Project teams detest progress reporting because it vividly
manifests their lack of progress.
7. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Why Projects Fail
Failure to align project with organizational objectives
Poor scope
Unrealistic expectations
Lack of executive sponsorship
Lack of project management
Inability to move beyond individual and personality
conflicts
Politics
8. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Project Charter
Project Goal & Objective
Sponsor
Stakeholders
Timeline
Resources required
Deliverables
Risks
Business process changes
Project manager
Project team
Budget
Signatures
9. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Proposal writing.
Project planning and scheduling.
Project costing.
Project monitoring and reviews.
Personnel selection and evaluation.
Report writing and presentations.
Management activities
10. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Project Management Context:
Project Phases and Life Cycle
Stakeholders
Leadership Skills
General Management Skills
Communications Skills
11. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Project Phases and Life Cycle:
Divide Project into Phases
Better Management Control
Review Deliverables and Performance
Fast-tracking
12. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Example of Project Phases:
Conceptual Design
Detailed Design
Coding and Testing
Training and Documentation
Deployment
13. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Stakeholders:
Individuals and Organizations
Actively Involved in Project
Interests Affected by Project
14. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Leadership Skills:
Vision and Strategy
Establishing Direction
Aligning People
Communicating
Negotiating
Motivating and Inspiring
Influencing Organizations
Overcoming Barriers to Change
15. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
General Management Skills:
Planning
Finance and Accounting
Personnel Administration
Technology
Organizational Development
Delegation
Team Building
Conflict Management
Solving Problems
16. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Communications Skills:
Writing
Listening
Speaking
Presenting
Media Relations
Meeting Management
17. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Scope Management:
Initiation
Scope Planning
Scope Definition
Scope Verification
Scope Change Control
18. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Time Management:
Activity Definition (Microsoft Project)
Activity Sequencing (Microsoft Project)
Activity Duration Estimating
Schedule Development
Schedule Control
19. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Cost Management:
Resource Planning
Cost Estimating
Cost Budgeting
Cost Control
20. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Quality Management:
Quality Planning: are techniques to examine and measure
customer expectations for quality
Quality Assurance: is the activity of providing evidence needed
to establish quality in work, and that activities that require good
quality are being performed effectively.
Quality Control: quality control and quality engineering are
involved in developing systems to ensure products or services
are designed and produced to meet or exceed customer
requirements
21. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Human Resource Management
Organizational Planning
Staff Acquisition
Team Development
22. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
Communications Management:
Communications Planning
Information Distribution
Performance Reporting
Administrative Closure
23. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23
Risk Management:
Risk Identification
Risk Quantification
Risk Response Development
Risk Response Control
24. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24
Integration Management:
Project Plan Development
Project Plan Execution
Overall Change Control
25. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25
Management Processes:
Initiating Processes
Planning Processes
Executing Processes
Controlling Processes
Closing Processes
26. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26
Concerned with activities involved in ensuring
that software is delivered on time and on
schedule and in accordance with the
requirements of the organisations developing
and procuring the software
Project management is needed because software
development is always subject to budget and schedule
constraints that are set by the organisation developing
the software
Software project management
27. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27
Project Management Activities
Establish project objectives
Defining work requirement
Determining work timing
Establishing resource availability and requirements
Establishing a cost baseline
Evaluating and optimising the baseline plan
Freezing the baseline plan
Tracking the actual costs
Comparing the progress and cost to the baseline plan
Evaluating performance
Forecasting, analysing and recommending corrective action
28. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28
Software Projects
• size
• delivery deadline
• budgets and costs
• application domain
• technology to be
implemented
• system constraints
• user requirements
• available resources
Factors that influence the end result ...
29. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29
Project Management Problems
Resources inadequate
Meeting (“unrealistic”) deadlines
Unclear goals/direction
Team members uncommitted
Insufficient planning
Breakdowns in communications
Changes in goals and resources
Conflicts between departments or functions
30. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30
Large projects often fail for two principal reasons:
Communication: Inadequate communication leads to
project failure
Coordination: Lack of communication implies that the
team can not coordinate. Thus each group moves in an
independent direction and the project will grind to a
halt.
31. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31
Team Organizational Models
Marilyn Mantei model:
Democratic decentralized (DD). -- Does not have a defined
leader. “Task Coordinators” are appointed to assure that a
particular job is to be executed. These are later replaced by
other “Task Coordinators” as new tasks arise.
Controlled decentralized (CD) -- Has a defined leader who
coordinates tasks, and secondary leaders who carry out
subtasks. Problem solving is done by the group,
implementation is done by subgroups.
Controlled Centralized (CC) - Top-level problem solving and
team coordination managed by the team leader. The
communication between the leader and members is vertical.
32. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32
Project scheduling
Split project into tasks and estimate time and
resources required to complete each task.
Organize tasks concurrently to make optimal
use of workforce.
Minimize task dependencies to avoid delays
caused by one task waiting for another to complete.
Dependent on project managers intuition and
experience.
33. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33
Terminology
Deliverable
Work product that is provided to the customer (report,
presentation, documentation, code, etc.)
Milestone
Completion of a specified set of activities (e.g., delivery
of a report, completion of part of the system design)
Activity
Part of a project that takes place over time (also called a
task).
34. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34
Terminology
Event
The end of a group of activities.
Dependency
An activity that cannot begin until some event is reached
Resource
Staff time, equipment, or other resource required by an activity.
Slack
The amount that an activity can be delayed without delaying the
next milestone.
35. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35
General Approach to Project Planning
Identify deliverables and milestones
Divide project into activities (tasks)
For each task estimate:
• time from when the task begins to when it is complete
• dependencies on events before beginning
• resource requirements
Build a model that uses this data to create a work-plan,
including schedule, resource allocation, and flexibility
(slack).
36. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36
Project Planning Methods
Critical Path Method, Gantt charts, Activity bar charts, etc.
• Build a work-plan from activity data.
• Display work-plan in graphical form.
Project planning software (e.g., Microsoft Project)
• Maintain a database of activity data with input tools
• Calculate and display schedules
• Provide progress reports
37. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37
Project Planning Methods
All project planning methods are best when:
1. Plan is updated regularly (e.g., weekly or monthly)
2. The structure of the project is well understood
3. The time estimates are reliable
4. Activities do not share resources
Unfortunately, #2, #3, #4 are difficult with software
development
38. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38
A Simple Gantt Chart
39. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39
Gantt Charts
• Dates run along the top (days, weeks or months).
• Each row represents an activity. Activities may be scheduled
sequentially, in parallel or overlapping.
• The schedule for an activity is a horizontal bar. The left end
marks the planned beginning of the task. The right end marks the
expected end date.
• The chart may be updated by filling in each activity to a length
proportional to the work accomplished.
• Progress to date can be compared with the plan by drawing a
vertical line through the chart at the current date.
40. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40
A More Complex Gantt Chart
Source: SmartDraw
41. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41
Staff allocation
4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
T4
T8 T11
T12
T1
T3
T9
T2
T6 T10
T7
T5
Fred
Jane
Anne
Mary
Jim
42. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42
Risks and risk types
Risk type Possible risks
Technology The database used in the system cannot process as
many transactions per second as expected.
Software components which should be reused contain
defects which limit their functionality.
People It is impossible to recruit staff with the skills required.
Key staff are ill and unavailable at critical times.
Required training for staff is not available.
Organisational The organisation is restructured so that different
management are responsible for the project.
Organisational financial problems force reductions in the
project budget.
Tools The code generated by CASE tools is inefficient.
CASE tools cannot be integrated.
Requirements Changes to requirements which require major design
rework are proposed.
Customers fail to understand the impact of requirements
changes.
Estimation The time required to develop the software is
underestimated.
The rate of defect repair is underestimated.
The size of the software is underestimated.
43. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43
Risk management
Risk management is concerned with identifying risks
and drawing up plans to minimise their effect on a
project.
A risk is a probability that some adverse circumstance
will occur.
Project risks affect schedule or resources
Product risks affect the quality or performance
of the software being developed
Business risks affect the organisation developing
or procuring the software
44. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44
The risk management process
Risk identification
Identify project, product and business risks
Risk analysis
Assess the likelihood and consequences of these risks
Risk planning
Draw up plans to avoid or minimise the effects of the risk
Risk monitoring
Monitor the risks throughout the project
45. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45
Measure, Metrics, and Indicator
Measure -- Provides a quantitative indication of the extent,
amount, dimensions, capacity, or size of some product or
process attribute.
Metrics -- A quantitative measure of the degree to which a
system, component, or process possesses a given attribute.
Software Metrics -- refers to a broad range of measurements
for computer software.
Indicator -- a metric or combination of metrics that provide
insight into the software process, a software project, or the
product itself.
46. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46
Software Metrics
Direct measures
Cost and effort applied (in SEing process)
Lines of code(LOC) produced
Execution speed
CPU utilization
Memory size
Defects reported over certain period of time
Indirect Measures
Functionality, quality, complexity, efficiency, reliability,
maintainability.
47. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47
Software Measurement
Size-Oriented Metrics
are derived by normalizing quality and/or productivity measures
by considering the “size” of the software that has been produced.
lines of code often as normalization value.
project LOC effort $(000) pp.doc errors defects people
alpha 12,100 24 168 365 134 29 3
beta 27,200 62 440 1224 321 86 5
gamma 20,200 43 314 1050 256 64 6
. . . . ... . . . .
. . . . .
48. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48
Typical Size-Oriented Metrics
Errors per KLOC
Defects per KLOC
Dollars per KLOC
Pages of documentation per KLOC
Errors per person month
LOC per person month
Dollars per page of documentation
49. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 49
Measures of Software Quality
Correctness
is the degree to which the software performs its required function.
the most common measure for correctness is defects per KLOC
Maintainability
the ease that a program can be corrected
adapted if the environment changes
enhanced if the customer desires changes in requirements
based on the time-oriented measure mean time to change.
50. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50
Measures of Software Quality (Cont’d)
Integrity
to measure a system’s ability to withstand attacks (both accidental
and intentional) on its security threat and security are defined
integrity = sum [ 1 - threat * (1- security)]
Usability - an attempt to quantify “user friendliness”
physical/intellectual requirement to learn
time required to become moderately efficient
the net increase in productivity
user attitudes toward system
51. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51
End of slides
Editor's Notes
People sometimes talk about a goal of metrics to improve the quality of a software product. Bull. Metrics provide information with which one may be able to improve the process.
Example metrics: SLOC, # errors found per day in test, # errors occurring when product is in the field. SLOC produced per year by a programmer,
Often, metrics will be combined with other information to help improve the process. For example, finding that teams that used formal design reviews had fewer errors occurring in test, might lead one to require formal design reviews.
Recall example of how many new GPCs to use. Looked at metric of number of errors found per OI with level of testing done.