KEMBAR78
Software Engineering Lec 3-project managment | PPT
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1
Software Project Management
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
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.
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Human Resource Management
 Organizational Planning
 Staff Acquisition
 Team Development
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
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
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
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
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
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
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 ...
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
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.
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.
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.
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).
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.
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).
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
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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38
A Simple Gantt Chart
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.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40
A More Complex Gantt Chart
Source: SmartDraw
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
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.
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
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
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.
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.
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
. . . . ... . . . .
. . . . .
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
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.
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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51
End of slides

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

  • #46 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.