Professional Documents
Culture Documents
SE403 Software Project Management Chapter 4 PDF
SE403 Software Project Management Chapter 4 PDF
SE403 Software Project Management Chapter 4 PDF
SOFTWARE PROJECT
MANAGEMENT
CHAPTER 4
SOFTWARE SIZE &
EFFORT ESTIMATION
Assist. Prof. Dr. Volkan TUNALI
Faculty of Engineering / Maltepe University
Overview
2
Size
Effort
Cost
Duration
Quality
Software Size Estimation Techniques
7
How to estimate:
Divide the project into subunits
Estimate LOC for each subunit
Minimum, Average (most likely), Maximum
Estimation = (Min + 4Avg + Max)/6
Technical Size Estimation Techniques
9
Example 1:
for (i=0; i<100; ++i) printf ("hello"); /* How many lines of code is
this? */
1 Physical code line
2 Logical code lines (for & printf)
1 Comment line
Technical Size Estimation Techniques
11
Function Points – FP
IFPUG Function Points Analysis – IFPUG FPA
Mark II Function Points – MK II FP
Nesma Function Points
Full Function Points – FFP
COSMIC Full Function Points – COSMIC FFP
Object Points
Object-Oriented Function Points – OO FP
Object-Oriented Method Function Points – OOmFP
Function Points – FP
14
FP SLOC
Function Points Conversion to SLOC
Adjustment with
Technical Complexity Factors
Function Points – FP
16
4. Heavily used configuration How heavily used is the current hardware platform where the application will be executed?
5. Transaction rate How frequently are transactions executed daily, weekly, monthly, etc.?
9. Complex processing Does the application have extensive logical or mathematical processing?
10. Reusability Was the application developed to meet one or many user’s needs?
13. Multiple sites Was the application specifically designed, developed, and supported to be installed at multiple sites
for multiple organizations?
14. Facilitate change Was the application specifically designed, developed, and supported to facilitate change?
Function Points – FP
19
1. In the same city there are 5 branches of a medical laboratory which performs blood analysis. There are about 10
data entry operators at each branch.
2. System will store the prices of the analyses.
3. System will store patient information.
4. New analyses can be added & updated.
5. Analysis result can be seen only after the authorized lab officer approves the results.
6. System will calculate the cost of the analyses requested and will print invoice.
7. System will print result reports. If there are previous records of the patient, then the report will include the
previous results.
8. System will allow customers to login the system over the Net using the passwords given to them, and allow them
to learn the analysis results using the analysis numbers.
9. System will have an interface to the blood analysis device, and results will be transferred to the system directly.
10. System will do material management, and stock of each material will be stored. Every lab will make a weekly
material request from the main store. The main store will reside in one of the labs. Every material movement in-
to-store & out-to-branches will be recorded. System will give warning message and give report for every material
that is under critical stock level. System will provide a monthly material report for each branch.
11. Main server of the labs will reside in one of the branches. In case of failure, the system will continue operation
seamlessly using the backup server which will reside in another branch. Communication will be provided over a
leased-line infrastructure.
12. The development team of the system have a medium-level experience with Java and system analysis. The team
has almost no experience with the functionality. The team has previously developed e few information systems.
Developers will use a CASE tool.
Sample Project: Architecture
21
E B Main Server
System
System Fiber
Optic
D Router
Web Inquiry
Analysis Info Analysis Result Report
Password,
Result
Analysis Comparative
Patient
No Analysis Result
Info
Report
Analysis Invoice
Approval
Laboratory System
Monthly
Invoice Data
Material Report
1 How many communication facilities are there to aid in the transfer or exchange of information with the application or system? 3
2 How are distributed data and processing functions handled? 3
3 Was response time or throughput required by the user? 4
4 How heavily used is the current hardware platform where the application will be executed? 4
5 How frequently are transactions executed daily, weekly, monthly, etc.? 5
6 What percentage of the information is entered On-Line? 5
7 Was the application designed for end-user efficiency? 3
8 How many ILF’s are updated by On-Line transaction? 5
9 Does the application have extensive logical or mathematical processing? 2
10 Was the application developed to meet one or many user’s needs? 5
11 How difficult is conversion and installation? 3
12 How effective and/or automated are start-up, back-up, and recovery procedures? 5
13 Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple 3
organizations?
14 Was the application specifically designed, developed, and supported to facilitate change? 3
DI = i=1.. 14 Answeri = 53
FP = UFP x (0.65 + 0.01 x DI) = 144 x (0.65 + 0.01 x 53) = 169.92
LOC = 46 x 169.92 = 7816.3
IFPUG Function Point Analysis
25
2 people 5 months
Software Effort Estimation Techniques
30
SLOC
Techniques:
Using past projects data
Effort = Size x Productivity Rate
Using Models
Effort Estimation Constructive Cost Model (COCOMO) (Boehm)
Putnam’s Model (SLIM)
Use-case Points
Class Points
UML Points
Software Effort Estimation Techniques
31
Class Points
UML Points
f o rt
Ef
LOC COCOMO
Model
Du
rat
ion
COCOMO – Project Modes
35
Organic Mode
Relatively small software with flexible interface
requirements
Developed by a small team of developers
In a highly familiar in-house environment
Sofware like informations systems running on LAN
Embedded Mode
Software has to operate within very tight constraints
Changes to the system are very costly
Semi-detached Mode
Combines elements of both organic and embedded modes.
COCOMO (Constructive Costing Model)
36
Project Effort
Product Attributes
RELY – Required Software Reliability
DATA – Database Size
Computer Attributes
TIME – Execution Time Constraint
STOR – Main Storage Constraint
Personnel Attributes
ACAP – Analyst Capability
AEXP – Application Experience
Project Attributes
MODP – Modern Programming Practices
TOOL – Use of Software Tools
Project Attributes
MODP Modern Programming Practices 1,24 1,1 1 0,91 0,82 0,91
TOOL Use of Software Tools 1,24 1,1 1 0,91 0,83 0,91
SCED Schedule Constraints 1,23 1,08 1 1,04 1,1 1,04
Effort Adjustment Factor - EAF 1,23
COCOMO – Sample Project
42
Use-Case
No. of Transactions Weight
Classification
Simple 1 to 3 transactions 5
Average 4 to 7 transactions 10
Complex 8 or more transactions 15
4th step in use-case analysis is the calculation of Technical Complexity Factor – TCF.
5th step in use-case analysis is the calculation of Environmental Complexity Factor – ECF.
6th step in use-case analysis is the calculation of the Use-Case Point – UCP.
UCP = UUCP x TCF x ECF
Last step in use-case analysis is the calculation of Effort:
Effort = UCP x PF
PF: Productivity Factor (20 man-hour per Use-Case Point on the average)
PROJE
PROJE İLE İLGİLİ BİLGİLER A B C
Aktör Sayıları
Basit Tanımlı bir Uygulama Programlama Arayüzüne (API) sahip başka bir sistemi temsil eder. 0 1 0
Orta TCP/IP gibi bir protokol ile haberleşen başka bir sistemi temsil eder. 0 6 4
Karmaşık Bir web sayfası veya GUI aracılığıyla karşılıklı etkileşen bir kullanıcıyı temsil eder. 5 11 7
Basit bir kullanıcı arayüzüne sahiptir. Tek bir veritabanı nesnesiyle iletişim kurar. Normal (başarılı) senaryosu 3 veya daha az basamaktan oluşur ve tasarımı 5 veya daha az
Basit 8 0 2
sınıf içerir.
Ortalama bir kullanıcı arayüzüne sahiptir. İki veya daha fazla veritabanı nesnesi ile iletişim kurar. Normal (başarılı) senaryosu 4 ile 7 arasında basamaktan oluşur ve tasarım 5
Orta 12 21 17
ile 10 arasında sınıf içerir.
Karmaşık bir kullanıcı arayüzüne sahiptir. Üç veya daha fazla veritabanı nesnesiyle iletişim kurar. Normal (başarılı) senaryosu 8 veya daha fazla basamaktan oluşur ve tasarımı
Karmaşık 5 63 8
11 veya daha fazla sınıf içerir.
FP-like approach
Focus on the size of O-O system
System-level estimation
Focus on classes (Logical building blocks)
Local methods
Interaction of the class
The attributes
Class Points – CP
50
CP2
Above all & NOA (Number Of Attributes)
Evaluate the complexity level
Class Points – CP
53
Evaluation of Complexity Level of a Class for CP1 Evaluation of Complexity Level of a Class for CP2