Chapter 2
description
Transcript of Chapter 2
Planning and Scheduling:
1
• FUNDAMENTAL ENGINEERING.• FIRST DO THE PROBLEM ANALYSIS.• THEN DEVELOP A SOLUTION TO THE DEFINED NEEDS.
– SPECIFY OBJECTIVES.– DETERMINE ACTIVITIES & RESOURCES.– PRESENT RESULTS IN A SCHEMATIC THAT CAN BE USED BY
THE TEAM.
2
PLANNING & SCHEDULING
OBJECTIVES FOR PLANNING AND SCHEDULING
• EFFECTIVE TIME MANAGEMENT.
• OPTIMZE SEQUENCE OF EVENTS.
• DEFINE NECESSARY RESOURCES.
• TIMLY PROJECT PROGRESS.
3
• Allocation of resources to activities over time so that input demands are met in a timely and cost-effective manner
• Most typically, this involves determining a set of activity start and end times, together with resource assignments, which– satisfy all temporal constraints on activity execution
(following from process considerations)– satisfy resource capacity constraints, and– optimize some set of performance objectives to the
extent possible
4
Planning and Scheduling:
Gantt Chart• A Gantt chart is a type of bar chart,
developed by Henry Gantt, that illustrates a project schedule. Gantt charts illustrate the start and finish dates of the terminal elements and summary elements of a project. Terminal elements and summary elements comprise the work breakdown structure of the project. Some Gantt charts also show the dependency (i.e., precedence network) relationships between activities. 5
• Use a Gantt chart to plan how long a project should take. A Gantt chart lays out the order in which the tasks need to be carried out.
Early Gantt charts did not show dependencies between tasks but modern Gantt chart software provides this capability.
Henry Laurence Gantt, an American mechanical engineer, is credited with the invention of the Gantt chart.
6
• Gantt charts have become a common technique for representing the phases and activities of a project work breakdown structure.
• A work breakdown structure (WBS) is a deliverable oriented decomposition of a project into smaller components.
• A work breakdown structure element may be a product, data, a service, or any combination.
7
• Gantt charts only represent part of the triple constraints of projects.
• Gantt charts do not represent the size of a project or the relative size of work elements.
• Magnitude of a behind-schedule condition is easily mis communicated.
8
Planning and Scheduling: Gantt Chart
• List tasks• Graphically represent dependencies among tasks• Show duration and time period of each task• Heavily dependent on prediction regarding:
– Activities involved– Effort and time required
9
Gantt chart example• Programmer working on a small software
project
10
ID Task Name Start FinishDuratio
n
Dec 2002
5 6 7 8 9 10 11 12 13 14 15 16 17 18
1 2d12/6/200212/5/2002Requirement gathering
2 1d12/9/200212/9/2002Analysis
3 2d12/11/200212/10/2002Design
4 4d12/17/200212/12/2002Coding
5 10d12/31/200212/18/2002Testing
19 20 21 22 23 24 25 26 27 28 29 30 31
Explicit start time, end time, and duration (in days )
Explicit calendar bar
Another Gantt
11
Planning and Scheduling: Pert chart
• Alternative to Gantt chart• Different perspective
– Focuses on dependencies more than calendar time
• No fixed format
12
2 12/6/2002
Late Start Slack Late Finish
12/5/2002
Requirement gathering
1 12/9/2002
Late Start Slack Late Finish
12/9/2002
Analysis
2 12/11/2002
Late Start Slack Late Finish
12/10/2002
Design
4 12/17/02
Late Start Slack Late Finish
12/12/2002
Coding
10 12/31/2002
Late Start Slack Late Finish
12/18/2002
Testing
Start time
Duration
End timeTask
Another Pert
13
So how do you know how long a task is going to take?
14
16
17
18
19
20
21
22
Function Points• A.J. Albrecht of IBM, ~1979.• FP is a unit for estimating time and effort
independent of programming language.• Identify set of application activities (building
blocks) and sum the weights assigned to each.• From user’s viewpoint.
23
24
25
26
Determine the Unadjusted Function Point Count• The unadjusted function point count (UFPC) reflects
the specific countable functionality provided to the user by the project or application.
• The application's specific user functionality is evaluated in terms of what is delivered by the application, not how it is delivered. Only user-requested and defined components are counted.
• The unadjusted function point count has two function types—data and transactional.
27
28
Count Data Functions
1. An internal logical file (ILF) is a user identifiable group of
logically related data or control information maintained
within the boundary of the application. The primary
intent of an ILF is to hold data maintained through one
or more elementary processes of the application being
counted.• Tables in a relational database. • Application control information, perhaps things like user
preferences that are stored by the application. 29
2. An external interface file (EIF) is a user identifiable
group of logically related data or control information
referenced by the application, but maintained within
the boundary of another application. This means an
EIF counted for an application must be in an ILF in
another application.
30
Count Transactional Functions
• An external input (EI) is an elementary process that processes data or control information that comes from outside the application’s boundary.
• The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.
31
• An external output (EO) is an elementary process that
sends data or control information outside the application’s
boundary. The primary intent of an external output is to
present information to a user through processing logic
32
• An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information. The processing logic contains no mathematical formula or calculation, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered.
33
Low Medium High
Input files 3 4 6
Output files 4 5 7
Inquiries 3 4 6
Internal files 7 10 15
External interfaces
5 7 10
34
35
Determine the Value Adjustment Factor
The value adjustment factor (VAF) indicates the general
functionality provided to the user of the application. The
VAF is comprised of 14 general system characteristics
(GSCs) that assess the general functionality of the
application. Each characteristic has associated
descriptions that help determine the degree of influence
of the characteristic. The degrees of influence range on
a scale of zero to five, from no influence to strong
influence
Value Adjustment Factor
36
1. System Complexity 2. I/O Complexity 3. Application Complexity
1.1 Data communication
2.1 Reliable and transaction-oriented data management
3.1 Algorithms and processing ability
1.2 Distributed data processing
2.2 Online data management
3.2 Need to reuse the code later
1.3 Relevance of performance
2.3 Usability and efficiency of end user
3.3 Installation easiness
1.4 Configuration of hardware and software
2.4 Online update of the data
3.4 Startup, shutdown, and operation easiness
Partial (1) Partial (2) 3.5 Requirements to run on multiple sites
3.6 Readiness to change
Partial (3)
Total
37
Function Points• 14 “technical factors” related to complexity
– Grouped under 3 classes of complexity:system, I/O, application
– Each factor ranked from 0 to 5• Technical complexity factor (TCF)
• Adjusted function points (AFP or FP)FP = UFP * (0.65 + TCF)
38
01.014
1 i iTCFTCF
The sum of the 14 factors’ ranks
Determine Type of Count
Development Project• Functions provided to the users with the first installation.
Enhancement Project• Measures the modifications to the existing application that add,
change, or delete user functions delivered.• Application function point count must be updated to reflect
changes in the application's functionality.
39
Application Project
• Referred to as the baseline or installed function point count. This number is initialized when the development project function point count is completed. It is updated every time completion of an enhancement project alters the application's.
40
UFP for Making Cappuccino
41
Name Type (building block)
Complexity Value
Milk Input File Medium 4
Coffee Input File Medium 4
Water Input File Low 3
Cappuccino Output File High 7
Water Temperature Inquiry Low 3
External Temperature External Interface Medium 7
Total Unadjusted Function Points 28
FP for Making Cappuccino
42
1. System Complexity 2. I/O Complexity 3. Application Complexity
1.1 Data communication 5 2.1 Reliable and transaction-oriented data management
0 3.1 Algorithms and processing ability
1
1.2 Distributed data processing
3 2.2 Online data management
4 3.2 Need to reuse the code later
0
1.3 Relevance of performance
4 2.3 Usability and efficiency of end user
4 3.3 Installation easiness 5
1.4 Configuration of the hardware and the software
4 2.4 Online update of the data
2 3.4 Startup, shutdown, and operation easiness
3
Partial (1) 16 Partial (2) 10 3.5 Requirements to run on multiple sites
2
3.6 Readiness to change 2
Partial (3) 13
Total = 39
FP for Making Cappuccino
• FP = UFP * (0.65 + TCF) = 28 * (0.65 + (39 * 0.01)) = 29.12
• So what was the time/effort required last time your firm implement 29 FPs?
43