This action might not be possible to undo. Are you sure you want to continue?
But in case you need a hard copy of the book mail to email@example.com . Depending on the book demand we can go for print on demand model
How to prepare Software Quotation
-- By Shivprasad Koirala Beta Version 1.0
Pending activities 1) Spell Checks 2) Estimation models for Datawarehousing 3) Estimation model for customization like SAP , BIZTALK etc
More Books written by Shivprasad Koirala 1) .NET Interview Questions 2) SQL Server Interview Questions 3) Java Interview Questions 4) Software Testing Interview questions 5) C# Projects 6) Java Projects You can buy any of my books from bpb publications mail firstname.lastname@example.org for more details.
Overview of Book.......................................................2
Dedication..................................................................................................... 2 About the author ........................................................................................... 2 Readers Feedback ......................................................................................... 2 Audience ....................................................................................................... 2 How’s Book organized ................................................................................. 3 What’s in CD ................................................................................................ 4
Introduction to Software measure................................6
What’s a Quotation? ..................................................................................... 6 Life Cycle of Quotation ................................................................................ 7 Word Before we start .................................................................................. 11 Introduction ................................................................................................ 15 Definition of software measure .................................................................. 16 Characteristic of a software measure.......................................................... 17 Last Words on Weyuker properties............................................................. 18 What’s a perfect unit of software measurement? ....................................... 19 Dependency of software measure............................................................... 20 What’s so Complex in Software? ............................................................... 20 McCabe Complexity (Logical Complexity) ............................................... 22 Inter-Modular Complexity (Henry and Kafura) ......................................... 27 Halstead’s Measure of Complexity ............................................................ 30 Logical complexity/Algorithm Complexity ............................................... 32 Conclusion .................................................................................................. 33
Lines of Code and COCOMO ................................35
Complexity and Size Measure .................................................................... 35 Lines of Code ............................................................................................. 37 Converting LOC to Effort .......................................................................... 42 COCOMO 81.............................................................................................. 42 Basic COCOMO ......................................................................................... 44 Intermediate COCOMO ............................................................................. 45 COCOMO II ............................................................................................... 50
Function Points ........................................................64
Introduction to Function Points .................................................................. 64 Basics of Function Points ........................................................................... 64 Rating Tables for All elements of Function Points..................................... 86 Steps to Count Function Points .................................................................. 89 Sample Customer Project ........................................................................... 89 Considering SDLC (System Development Life Cycle) ............................. 97 Final Quotation ......................................................................................... 101 GSC Acceptance in Software industry ..................................................... 102 Enhancement Function Points .................................................................. 109
Use Case Points ...................................................... 111
Introduction to Use Case Modeling.......................................................... 111 Parts of Use Case ...................................................................................... 111 Introduction to Use Case Points ............................................................... 113 Steps of Use Case Point Estimation ......................................................... 117 Guide Lines for Technical Factors ........................................................... 124 Use Case Structure Matters ...................................................................... 144 Sample Data Entry Project ....................................................................... 145 Writing use case for Sample Data Entry Project ...................................... 146 Sample Customer Use Case...................................................................... 146 Determining Unadjusted Use Actor Weights (UAW): ............................. 150 Final Quotation ......................................................................................... 160 Advantages and disadvantages of Use Case Points ................................. 162
WBS and SMC .......................................................164
Why WBS and SMC................................................................................. 164 Introduction to WBS................................................................................. 164 Best Way to Design WBS ......................................................................... 165 SMC model ............................................................................................... 166 Tapri Online Shopping Mall ..................................................................... 168 Tapri WBS break up ................................................................................. 169
Project Scenarios and Quotation..........................171
Getting Practical ....................................................................................... 171 Template Explanation (UCP and FP) ....................................................... 173 Backup Project......................................................................................... 183
Researcher Training Institute Project ....................................................... 196 Converting Use Case Points to Function Points....................................... 197 Conversion Factor for Function Points to Use Case Points ..................... 198
Change Request, Maintenance and Quotation ...200
Introduction .............................................................................................. 200 Identifying Billable Change Request ....................................................... 201 Source of CR ........................................................................................... 202 Impact Analysis ........................................................................................ 202 Change Request Form .............................................................................. 204 Impact Analysis Form............................................................................... 205 Software Maintenance ............................................................................. 209 Task per Day (TPD) Approach ................................................................. 211 Points to Remember During Prepare Quotation ....................................... 213 Acronym and Definitions ......................................................................... 216
Over View 1 .
Audience This book is mainly targeted to the following section of readers:Readers who want to have knowledge of know how of LOC(Lines of code).H. adding to chat is also invited.com. FP (Function Points) . whose dads play time has been stolen and given to this book. He is working presently as project lead in one of the multinational companies and in past has led projects in Banking. travel and financial sectors. On professional basis I am thankful to Anish Goenka and AG-TECHNOLOGIES (www.I am extremely thankful to all my friends who reviewed my book and gave feedback to make this book stronger.Overview of Book Dedication This book is dedicated to my kid sanjana.com .Koirala has over 8 years of experience in software industry. I am also thankful to my wife for constantly encouraging me for this assignment. About the author Shivprasad. Readers Feedback Success in any book is not due to authors but by good reviewers. COCOMO (Constructive Cost Model). i know i made some very big mistakes during estimation but still his constant encouragement has brought me till here in estimation field. Any mistake in this book either technical or grammatical is by author himself . adding to chat is also invited. Mail mistakes and feedback of this book to shiv_koirala@yahoo. He can be contacted at shiv_koirala@yahoo. UCP (Use Case 2 . We expect decent criticism from readers for better of the book.ag-technologies.The author of this book does not considers himself a guru in estimation and expects criticism from reader for better understanding of subject. no other person or the publication company is responsible for it. Author also provides consultancy in estimation.com) for providing me opportunity in software estimation . Finally at the top of all thanks to two old eyes my mom and dad for always blessing me.
EI.Over View points). ILF. This section defines all the elements of function points (EO. Book starts with introductory of quotation and life cycle of quotation. Then we proceed towards different old ways of estimation and listing down there advantages and disadvantages. Professor and students who have software estimation in academics. In second chapter we go through one of old methodology of preparing quotation using LOC (Lines of Code). SMC (Simple medium complex) approach and WBS (Work break down structure ) estimation approach. EQ. and EIF) and then estimates a sample customer project. How’s Book organized Book is organized in to eight main chapters. From CEO to programmers who wants to have kick start in estimation.This book provides excel templatesUse Case templates and Function Points templates) and widely used estimation softwares with CD which can be used for estimation. Third chapter of this book revisits one of the most accepted estimation and quotation preparation technology Function Points. Companies who want to implement scientific estimation techniques in there company. New comers who are very new to estimation this book will go from smaller basics to know how of practical estimation. Companies who are migrating from Function points to Use Case Points. Readers interested in comparing different estimation techniques. In this we also have a overview of how COCOMO can be used with LOC for estimation. Process implementers of the company who are looking for ready made templates for implementing scientific software estimation in company. Experienced estimators who are looking to improve there estimation skill. 3 . PHD students who are looking for in depth study in different software methodology. Maintenance project estimation .
The main purpose of this book to go towards practically implementing software estimation methodology. What’s in CD “Thousand words are equivalent to one practical implementation”.Fourth chapter introduces Use Case Points one of the coming up estimation methodology. Fifth chapter introduces a more adhoc estimation methodology using WBS (Work Breakdown Structure) and SMC (Simple. in short to do and to don’ts list for estimator. Medium and Complex). Again this chapter has sample projects for instant practical kick off. in this book it is used from estimation point of view. But other than this there are other types of projects like maintenance projects and change request. Following are list of estimation software’s available in CD:COSTAR ( for COCOMO estimation) Enterprise Architect (For Use Case Points Estimation) Java Open Source(Petalo) ( For Use Case Points Estimation) EzEstimate (For Use Case Point Estimation) 4 . Finally we end with acronym and references for further reading. This chapter focuses from practical implementation what points to be remembered. This chapter focuses on these types of projects. Thanks to all the software companies and individual programmer who have honored this book by giving me copyright to ship there software with CD. From chapter one to six the book mainly concentrates on estimation methodology for early life cycle estimation (i. As usual sample projects are estimated from practical aspect. This chapter goes through all definition of Use Case Point Elements (UAW. when there is no design document on hand.e. Excel templates are shipped with CD for all the sample projects. so as a initiative we have provided CD with this book. The best of the book is that book gives you instant warm up with sample project and excels templates. This is exactly what this book approach will be . UUCW etc) and sample project. This chapter starts with comparison of two most used estimation methodology Use Case Points and Function Points. only small scope text is present). WBS is very popular project management methodology. Sixth chapter steps in to practical estimation ground by estimating sample projects.
Note: . Any bugs and software problems is beyond the scope of the author.Over View Excel Templates ( This is provided by author himself). 5 .Any problem and issues regarding software should be reported directly to the software manufacturer.
Let’s see how the contractor was able to give quotation so precise. He knew his ultimate goal is to deliver 10 tons of steel. 6 . 10 miles etc. This book will in the first half concentrate on measures and then show to convert the measure to quotation.It’s the first financial document to be sent after scoping phase or during scoping phase. Preparing quotation for logical industry is more difficult. Software industry falls in to logical selling or service industry.” That’s the way for that service a simple contractor concluded his estimation. “Quotation is reflection of effort required to fulfill the client service.So 500 X 10 = 5000 $. quick and fast. He knew he has 10 trucks which can take 1 ton. which is in negotiation stage “. The contractor analyses cost as 1 truck can carry 1 ton for 1 miles and costing is 500 $. Quotation can also be called as temporary financial value.” “A contractor receives a contract to deliver 10 tons of steel from one place “A” to other place “B”.Chapter 1 Chapter 1 Introduction to Software measure What’s a Quotation? “Quotation is a document sent from supplier to customer regarding financial details for the service/product provided. So for a better quotation we should be able to measure. He had measures 10 tons. All industries fall in to two major categories: Physical product selling Logical Service selling (Servicing Industry). Place “A” to place “B” is 1 miles away. He knew place “A” and place “B” are 10 miles away. He has 10 trucks with max capacity 1 ton.
Client approaches himself. While reading the steps try to follow Figure 2 give below. To highlight success points of successful quotation and estimation documents. But main intention of drawing diagram is as follows To show depth of financial effort and time investment done in preparing estimation and quotation documents. Prepare Quotation / Estimation 5000 $ Figure 1. Marketing person visits the client company. So let’s understand what’s a software measure and quotation will follow? Life Cycle of Quotation This section will look in to how a quotation cycle flows in a company.Introduction to Software measure Measure Ten tons . one mile between “A” and “B” Calculate Effort One ton / one truck / mile means one truck carries one ton and travel one mile.0 Process of estimation / Quotation.Company receives project enquiry which can be from following sources. Step1 :. 7 . • • • Reference.
they forward it to technical department for following deliverables to prepared: • • Understanding and Scope document.While preparing Understanding document. Marketing department evaluates the client from following perspective • • • Is the client serious or is it just a casual enquiry? What’s the image and status of the client? Most important. Client himself comes to company to clarify doubts. This is called as POC [Proof of Concept]. Client can be contacted in the following ways : • • • • Telephonic conversation Email. How much time and effort will it require to complete the project Step 4.During this clarification small technical samples can also be prepared to ensure technical feasibility of the project. 8 . Example the project has requirement to send reports to mobile. The co-ordination with the client is done normally through co-coordinator who is deployed at client side.Once marketing department is sure . Now is that possible so for this small code samples can be run and seen. Step 7 and 8:. how much is client willing to spend on the project? Clients spending will not be normally known but if known will provide better insight on negotiation table. This step can be exception in many companies where they directly pass it to the technical department. 5 and 6:.If the technical department says it’s not possible then probably again coordinate with the online client coordinator or client himself to clarify things.Chapter 1 Step 2:. if they have difficulty understanding the project they get back to the client. Through Business analyst or coordinator appointed at client side. Step 3 :.This enquiry is passed to marketing department. This can be exception also where the technical team directly coordinates with client.
Client co-ordination investment Telephonic conversation. They review the quotation amount once before sending to the clients. Company has to pay salary for these people.Introduction to Software measure Step 9:. 9 .Technical department starts prepare quotation which will involve estimating effort using Function Points (FP). Preparing POC and prototype screens to understand project better will also need quiet an effort. So probably client will remove some functionality and ask for a fresh quotation or will stress the company management to minimize the quotation amount. initial payment given (if in the terms and conditions) and the project is started. Step 10:. If client gives a positive feedback then understanding document is signed off. Use Case Points (UCP). WBS (Work Break Structure) or ADHOC methodologies [This book will explain all this methodologies in detail later as chapter proceeds].After technical department finishes the effort estimate it passes it to the board of directors. In the whole quotation cycle following are the places where company will have financial investment:Technical and marketing manpower engaged to send the quotation. Traveling charges to client location especially can be problem if the client is international. If the client is not happy with the quotation pricing amount it moves to negotiation table.Finally the quotation is sent to the client. In short telephone bills can be high when its international client. In short after all this investment is waste if there is no client response. Business analyst appointed at client side if any. If the client response is not too good then either some other software company has put a good quotation amount or some other reason. or senior members of the company for final approval. Step 11:. If the client says “No” then marketing people starts follow up for the reason.
So that company at least does not loose the project.Then later director adds his profit is other thing.” 10 .” A good quotation should at least take the company to a negotiation table.“In many companies the quotation life cycle can be different but financial investment areas do not change lot. That is if the project is actual of 1000 $ then your estimate should be either 1200 $ or 900 $.Chapter 1 Following are properties of good quotation: Quotation amount should not be too less or too more than actual effort required to complete the project. so if you look at the quotation life cycle diagram its quiet a decent investment from company’s financial aspect.“Software Estimation and quotation with in 10 to 20 percent of actual estimation is considered very excellent estimation. Note :. Note :..
Introduction to Software measure S te p C o m p a n y R e c e iv e s P r o je c t E n q u ir y 1 C lie n t W h o w a n ts th e s o ftw a re S te p 2 M a r k e t in g D e p a E v a lu a t e s a F o rw a rd s th e E t o T e c h n ic a l D e p rtm e n t n d n q u ir y a rtm e n t S te p 3 T e c h n ic a l D e p a r tm e n t S ta r ts p r e p a r in g U n d e r s ta n d in g D o c u m e n t A n y D o m a in Q u e r ie s ? S te p 6 C o o r d in a to r w ith c lie n t S te p 4 P re p a re P ro o f o f C o n c e p t S te p 5 N o P re p a re Q u o t a tio n C o o r d in a te s w ith te c h n ic a l D e p a rtm e n t Y e s Q u o ta t io n p r e p a r e d u s in g 1 F u n c t io n P o in t s 2 U s e C a s e P o in t s 3 W o rk B re a k D o w n s tru c tu re S te p 7 In t e r n a l R e v ie w d o n e b e fo re s e n d in g to th e c lie n t S te p 9 C lie n t W h o w a n ts th e s o ftw a re N o N e g o t ia tio n T a b le F e e d b a c k f r o m C lie n t F u r th e r E n q u ir y o r d e a l c a n c e lle d S te p S te p 1 0 In it ia l P a y m e n t a n d P r o je c t K ic k o f f 1 1 Y e s C lie n t G iv e s C o s tin g C o n c e rn Figure 2 Estimation / Quotation Life Cycle Word Before we start 11 .
Ok now back to addressing the non-believers. Many scientific way of estimation has been proposed for last 35 years (Around 1000 ways of estimation way proposed and 6000 plus white papers written). Normally upcoming software companies do have this approach to increase there client list. It would be bad on my part if I do not address the group who do not believe. This book will give overview of widely used costing model in software industry. That’s how freelancers come to a fixed charge and for maintenance they charge per visit charges. But every model had there own advantages and disadvantages. Non-believers follow one of the below ways to come to a quotation / estimation: Price-to-Win In this approach the quotation amount is exactly or probably little than what customer pockets are or competitor submitted quotations. Freelancer approach Normally 90 % of freelancers follow this approach. So will this book give a math’s equation or formulae which can give 100 % ball point quote for software? The answer is – NO. The basic equation they follow is Salaries + Overhead = Annual Costs. Which is normally calculated by traveling charges plus how much they want the 12 .Chapter 1 Software Industry is divided in to two groups on who believe that scientific way can be applied to measure software and the other group who do not believe. Many times my programmer friends use to smile and say mathematical equations for preparing quotation you are kidding? But well even I was a part of that category so no comments. Many software companies during recession have followed this approach and have ended no where. So the basis of preparing quotation is the customer and the competitor.Large international bodies have been setup so that these models become mature. Divide the annual cost by annual hours worked. Estimator is asked to modify the quotation. So in price-to-win either programmer works overnight or the company goes under loss. projects but serving them will end up in to loss. This approach is not recommended as probably you will end with large quantity. So if the project is 1000 dollars and customer can afford only 400 dollars. History tells any business follows this type of approach had tough time to survive.
Figure 3 Freelancer Calculation Table S al res ai O ver ead h A nnualhour s $10. 00 + 5000 /2080 = $ a c ae l 0 rt ae 7. But rather is dependent on running cost of company. 1 = appr x $ 7. In this approach we divide the whole project in to small subsystems and there components. 0 2 o 5 Expert Judgment or Sixth sense approach This is the most organized way non-believer works. 00 0 $5000 2080 Tot lcal ul t d houry 10. Below is typical example of Expert judgment: 13 . After the allotment is completed all the man/days for the component is added up to come out with total man/days of the project. Every components of the subsystem is assigned how many man/days will be required.Introduction to Software measure profit in this visit? Again this approach is not recommended as the quotation is independent of project.
When asked on what basis the quotation was prepared. Answer was: Past Experience If no past experience is available then visualizing by sixth sense the complexity and putting the figure (i. 14 . The above quotation was for simple accounting project. I have tried best not to modify any values but only tabularized it.Chapter 1 F unctonalt i iy A ccountng i C r atng C har ofA ccount e i t s M an/ ays D 5 Jour alM ast rm ai t nance 5 n e ne Tr nsacton E nty scr en a i r e R epors t C l si g ofaccount o n s A dm i i tat rm odul nsr o e U serm ai t nance ne U serR i ht g s U serR ol s e H el Fi s p l e T ot lP r j cti M an/ ays a oe n D 2 2 2 2 39 39 10 7 4 Figure 4 Expert Judgement table The above sheet is taken from real project. Man/Days).e.
Quotation can vary from one estimator to other estimator with a huge difference. Scientific way to approach to cost estimation has always got heavy criticism. customer can question authenticity of the quote. As said before software industry is still not matured and unified on common way of estimation. So definitely every good estimator will use the expert judgment when costing model formulae fails for scenarios. The above quotation is for accounting module. suddenly lands on to a embedded system project. Whole quotation is fully relied on estimators forecasting ability. But definitely estimation should be unbiased and should not change with time. Following are drawbacks of expert judgment: It’s difficult that past project will be exact replica of the current project. Many times estimators do use this approach when measuring models can not be applied to some projects. A software company which is more in to database projects. They can not put in the same quotation as one companies accounting approach is very different from other companies accounting approach.Introduction to Software measure The above approach is followed by most small scale companies and even large scale. Introduction “You can not control what you can not measure “[DeMarco 87]. technology and project. but if the company again gets project of accounting module. On what basis will they give estimate? Quotation is prepared more on imaginative basis. As one of the criteria for measurement is past experience. Difficulty to find expertise in all software sectors. So let’s define first what’s a measure? Then let’s see what are we trying to measure in software? “We should no longer ask if we should measure the question is how” [Dieter Rombach at Euro metrics]. Large possibility of either over quote or under quote. because it applies uniformly across all scenarios. 15 .
Gram etc If measurement objective is software????? (Hold your breath) All the above human accepted measurement is objective by nature. If measurement objective is weight we can use Kilogram . Centimeter etc. So what do we measure? . These measuring units have been accepted by human kind across countries and language boundaries. Initial stage means probably in first or in second meeting with client. How do we measure? Definition of software measure Software Measure is numerical value assigned to a software project depending on the complexity of project. we can use Kilometer. Even the conversion from one unit to other unit is consistent.Chapter 1 Right from childhood in school. EUROPE or any other country. 1 Mile = 1.6093 Kilometers This Conversion is true in USA. These units of measurement an also be compared if targeted towards a common objective. That’s it can be physically seen or felt. Data Collected can be any of the documents mentioned below:Project or Software Specification Document :These types of documents are gathered before the implementation stage. But software is logical can not be felt. Meter. Below mentioned are some documents 16 . CANADA. Normally software project quotations have to be given at very initial stage probably when you have no data at all. The complexity of the software can be known from “Data Collected” and “Client Artifacts”.62137Mile Complex mathematical calculations can be performed on these units of measurement. That’s really a challenging part because just on basis of rough idea you have to give quotation. If measurement objective is length. Example:1 Mile = 1. we are taught different unit measurements and its conversion.6093 Kilometers Conversion back 1 Kilometer = 0.
It also means that software measures which assign all programs the same value is not a measure.100 centimeter does not change with climate. UN-EQUALITY: Given any program “P” there exists another program “Q” such that M (P) ! = M (Q). Elaine Weyuker has brought out 9 properties that good software measure should have:“All the measures considered depend only on the syntactic features of the program “ All the nine properties which we will list below depend on the syntax (Grammar) of the programming language used. Measure should be able to convert from one form to other in same objective.6093 Kilometers when the objective is length. 2. Tele-conversation with clients. 1 Mile = 1.Where “M” is the software measure of the program. Now that we are familiar with definition of software measure. Let’s go to the next section of what are characteristics of a good software measure.Introduction to Software measure MOM (Minutes of meeting) with clients Scope document Documentation done at client side.60 Square meter > 20 Square meter when objective is area. country etc Measures from same objective should be comparable. 17 . 1. Example 100 Centimeter > 50 Centimeter when the objective is length. Characteristic of a software measure Till today Human accepted measurement has following characteristics: Measure should not change with environment. EQUALITY: For any program “P” there exists program “Q” such that M(P) = M(Q). In order that software industry to have such accepted measure many people have tried to define characteristic of a good software measure. Email received from client etc Source code (If it’s a migration project) Any type of client received documents should be studied properly to arrive to a good estimate.
3. RE-ARRANGEMENT UN-EQUALITY: There exists program “P” and “Q” such that “Q” is re-arrangement of “P” and M(P) != M(Q).This equation can be valid even if “P” and “Q” are delivering same functionality. 4. IMPLEMENTATION UN-EQUALITY: There exists program “P” and “Q” such that they produce same output given the same input and M(P) != M(Q).That is same type of logic written by two programmers can have different approach. 5. MERGING UN-EUQALITY : For all programs “P” and “Q” then M (P) < = M (P+Q) M(Q) < = M(P+Q) P+Q here mean concatenation. 6. EXTERNAL PROGRAMS MERGING UNEQUALITY: There exists program P,Q and R such that M(P) = M(Q) and M(P+R) != M(Q+R).This equation just says that way one program interacts with other program is quiet different. 7. INTERACTION INCREASES COMPLEXITY: There exists program P and Q such that M (P) + M (Q) < = M (P+Q). 8. FINITENESS: Given a non-Negative number C, there are only finite number of programs entities such that M(P) = C. 9. ROSE PRINCIPLE: If P is a renaming of Q then M (P) = M (Q).
Last Words on Weyuker properties
Weyuker properties if read first time by any reader would think that its is comparison of size i.e. size of executable code or number of lines of code. But definitely any software project can not be measured by its size only, but also how complex it is.Weuyker nine properties also points towards complexity. Example property number (6) M (P) = M (Q) and M (P + R)! = M (Q+R).This property says that a good software measurement should not only take in to account size of the program, but also its complexity. If the comparison was only size of code or number of lines of code this property would not have existed. The above 9 properties will help us gauge a software measure. Before introducing a software measure in a company, we can apply litmus test of these 9 properties. Please note this book does not stress Weyuker properties are golden rules. But definitely they can be used as a good base to test a software measure methodology.
Introduction to Software measure
What’s a perfect unit of software measurement?
After going through all nine properties of Weyuker, what’s the perfect unit of software measurement? Is it Complexity? Can we say Dear customer, the software is of 120 complexities? Is it Size? Dear Customer the software is of 120 MB so we charge you this much invoice? That’s our next question what’s the unit of software which is globally accepted? For past many years software industry has been trying to search for the globally accepted software measure but none accepted globally. Some widely used software measures: Lines of Code Halstead complexity Function points Use Case Points. Object Points Full Function Points And lot more. I am sure many of the readers must not have even heard of the above measure. So definitely if you include any of above measure in quotation, it would lead to blank faces. The right way would be to give Software Cost estimation rather than actual software measures. Software Cost estimation can be given in any of the following ways: Effort ( Usually in Man-Days or Man-Months) Project Duration (Calendar Time) Cost ( In Any currency normally dollar is taken as standard) Software Cost estimation is the process of predicting the effort required to develop a software system. Software Cost estimation rely on software measure as input.
Note: - Many refer Software measure as Software size but many also disagree to it. This book assumes that they are same for simplicity purpose. As we can get in to complexity of difference between them rather than concentrating on main topic.
Dependency of software measure
A measure should be independent of external variations. Like example 1 Kilometer is independent of environment. But when things come to software measure it’s really difficult to answer the question. Different tools, compilers, architecture makes it difficult to come to a consistent way. The first assumption of Weyuker properties says that it’s syntactic dependent. The effort required to complete a module in Assembly will be different from C++.Even though many Software measure approach claim to language and Compiler independent but still considerable differences where noticed. Even architecture of the project makes a big difference on the estimation.
What’s so Complex in Software?
“Human beings in order to make there life easier have introduced complexity, software is the biggest complexity what human beings have made “
Definition of Complexity
“It is a measure of the resources which must be expended in developing and maintaining or using a software product”. As discussed before we are looking at finding a way to measure complexity of the software and give quotation accordingly to the customer. Different people have different way of looking at the complexity:From System Architecture point of view it’s the architecture of how the software will be designed. From programmer point of view its source code and the logic to implement. From testers point of view it’s simulating different environments and trying to make the software bug free. Software complexity can be classified broadly as Follows:-
Introduction to Software measure
This is code complexity. Writing complex Coding logic (Example encryption logic, compression logic), Complex search screens, Complex business validations etc .In short it refers the complexity of algorithm to solve the problem.Theorotically during analysis and design phase logical algorithm can be roughly gauged. But practically algorithmic complexity is crystal clear when your code is ready. “In one of my projects customer has a requirement that all search screen should have sorting logic. During design phase bubble sort algorithm was decided. But at actual implementation stage (Coding) we had to alter the algorithm as some sorting logic just did not fit in bubble sort. Alteration of algorithm costed us 2 % extra of projects total quotation”. Logical complexity forms lowest unit level of complexity. Identifying logical complexity before design phase, i.e. in scope phase is really difficult.
It stands at the top level of logical complexity. How do the logical complexity interact, how will be the structure? In broader level they are also called as “Architecture of the Project”. Some sample listings which fall in Structure Complexity: What level of reusability is the project? As higher the reusability, more we get in to generalized interfaces, deeper inheritance classes, Complex aggregations (Interaction of objects) between objects. Deployment Complexity: Projects where we are looking at sharing data across geographical boundaries, this complexity will come in. If client is also looking for auto-deployment that is as version changes all clients should be updated with the new version on server is again a type of structural complexity. N-Tier architecture, Object pooling etc all will come in structural complexity. Structural complexity can be visualized at the inception stage to a good limit. But it becomes clearer as the project enters the design phase.
We are not considering this complexity as it is more to do with Social scientist and psychologists.It indicates the flow of control from Node to Node. At this moment we will just try to understand the various ways of measurement and its advantages and disadvantages.It corresponds to a program statement.Chapter 1 It measures the effort required to understand the software.Number of nodes in flow graph. Arrow of directed edge indicates the data coming in node and an arrow out 22 . Note for Readers:-The next sections discuss different complexity measures. “Complexity is strongly connected to amount of resource to be allocated to complete it.They are depicted with set of nodes and each directed edge connects pair of node. various complexities are involved in order to complete the software. It also involves mathematical equations. In 1970’s McCabe introduced a way to calculate complexity from actual sourcecode. So do not panic keep reading as most the estimation techniques are outdated and is only for theoretical understanding. McCabe Complexity (Logical Complexity) McCabe (1976) proposed that complexity can be measured by program’s flow graph. The equation is as follows V (F) = E-N +2 V: . Node: . We are looking at preparing quotations in scientific way so we do have to look at different methodology of doing measures. So probably during reading of the below section you will start feeling is this book meant for preparing quotations or a math’s book.Number of directed edges N: .McCabe’s cyclomatic number F: . At this moment there is no complexity model which can encompass all the complexity in one total. Directed Graph: .Flow graph E: .Let’s have a deeper look at this methodology. This complexity has more to do with psychological perception or relative difficulty of undertaking or completing a system. Directed Edge: . “ In short in various software life cycles.
35 End End Node 1 Node 2 Node 3 Node 4 Node 4 Node 4 Node 5 Node 6 23 . var j. var c Begin For I = 1 to 10 For j= 1 to 5 If I=j Begin c++ c=c*10.Introduction to Software measure indicates data coming out of node.Figure Procedure Xyz () Var i.Heres below a sample code for which we will apply McCabe’s formulae: 5.
Chapter 1 1 2 3 4 5 6 6.Figure The diagram represents the flowgraph.So substituting 24 .
McCabe proposed value greater than “10” should be redesigned to reduce errors. This is useful tool and provides very decent information about the complexity of software. coding. So using McCabe Complexity in today’s changed software industry can not be used to quotation. But it does not take in to account Portability Flexibility Complex algorithms Linkage between different modules (Example inheritance.e. Interaction between object etc) This is an old technique of measuring complexity for structural approaches.Introduction to Software measure V (f) = 10 – 6 + 2 = 6 Modules with high values of “V” have high complexity and definitely should be quoted more. but definitely not completely. It also does not include complexity of the whole software development cycle i. Procedure ShowColor (color) Begin Var currentcolor. polymorphism. As quotations have to be submitted during first or second meet of the client and the paths etc can only be clear during implementation stage. design etc. Select case color If color=red Begin Currentcolor=1 End 25 . But in today’s world of object oriented approach it does not fit in. Definitely this below given code according to McCabe’s has high complexity. Analysis. but it’s actually not. calling of sub-routines etc.
Chapter 1 If color=Blue Begin Currentcolor = 2 End If color=White Begin Currentcolor=3 End If color=Yellow Begin Currentcolor=4 End If color=Black Begin Currentcolor=5 End If color=Black Begin Currentcolor=6 End If color=LightYellow Begin Currentcolor=7 End 26 .
Researchers have attempted to quantify several aspects of inter-modular complexity.Simple source code having high McCabe’s complexity Inter-Modular Complexity (Henry and Kafura) McCabe’s complexity concentrates more on control-flow complexity. Direct Flow (Direct Module) Module “A” invokes “B” and “B” passes information back to Module “A”. 8. Henry and kafura’s Information flow Henry and Kafura concentrated more on how the information flows.Henry Kafura’s direct flow Indirect Flow 27 . Below are the different types of information flow. If the inter-modular complexity is more then quotation has to be charges accordingly. In diagrams the dark arrow lines indicate the main caller and the bashed arrow lines indicate that information flows back.Introduction to Software measure End select End 7.Inter-modular complexity stresses more on complexity between modules [Separately compilable modules]. In order to understand Inter-modular complexity we have to capture relationship between modules.
10.Henry and Kafura’s global flow. There are two basic fundamentals in Henry and kafuras information flow Fan-in(FI) 28 .Chapter 1 Module “C” invokes “A” and passes information to “B” 9Henry and Kafura’s indirect flow Global If information flow from module “A” to module “B” through global shared data.
Shepperd (1990) refined it by excluding the length factor. Information Flow complexity (M) = Length (M) X [Fan-in (M) X Fan-out (M)] 2 Length factor in Henry and Kafuras equation can be measured in different ways. The length factor is completely different attribute. Just imagine you are using Henry and Kafura’s complexity and fan-in or fan-out is zero the quotation is zero Dollars. Basically Fan-in is external modules which cause change in module’s state. If fan-in or fan-out is zero the whole complexity will become zero. The above equation is non-linear as complexity nature is non-linear.Arthimetic calculation can be performed on measurement of similar types. But Henry and Kafura’s complexity can be applied during design phase and also at scoping phase if proper information flow block diagrams are drawn. As Henry and kafura complexity higher level of complexity it can be used during initial stage by drawing rough block diagrams depicting information flow. Advantages of Henry and Kafura’s Complexity 1. Multiplication of the factor with complexity has been questioned by expert. Disadvantages of Henry and Kafura’s Complexity 1. McCabe’s complexity encompasses lower level complexity. while Henry and kafura give a higher level of complexity. They look at higher level complexity.Introduction to Software measure Fan-Out(FO) Fan-in is the number of modules which are capable of causing information flow in to the system. Fan-out is total count of other modules which cause information to Flow-out of the module. while McCabe looks at lower level complexity. McCabe’s complexity can only be applied when you have detail source code or pseudocode. 29 . 2. one is to use “Lines of Code”. According to Raps and Weyuker the highest information flow complexity should be looked in to. Example adding 1 litre + 10 volts will yield nothing sensible.
30 . Note: . N1 = Total occurrences of operators. Development time and shepperd complexity is very much co-related.Halstead used attributes to determine the complexity of the software. Halstead’s Measure of Complexity In 1977 Maurice Halstead introduced alternative method to LOC (Lines of Code) for measuring size. n2 = Number of unique operands. Every language have there own way of defining operator and operand. Here are basic definitions of tokens:n1 = Number of unique operators. global flow data structure.Hence forth in this book you will come across acronym do look at the acronym section for further details. N2 = Total occurrences of operand. classified as either operators or operands.Chapter 1 Shepperd complexity (M) = [Fan-in (M) X Fan-out (M)] 2 He also proposed some definition changes with respect to local. McCabe’s complexity was introduced in 1975 and halstead just followed (1977) after that. According to Halstead operators and operand determine the complexity measure. According to halstead Define a program “P” as collection of tokens.
Halstead equation’s Programming Time(Seconds) 31 .”N2”.Introduction to Software measure O perator A rray St i g rn I t en f h El e s < = n1=6 1 2 2 1 2 4 N 1=12 O perand Save A dd X n2=3 7 2 3 N 2=12 11.”N1”/”n2”. Size of vocabulary n=n1+n2 Program Length N=N1+N2 Program VolumeV=N log 2(n) Programming Effort Approximation for N E=(n1*n2*N1*log2(n))/(2*n2) T=E/18 N = n1*log(n1)*n2*log(n2) 12. So for this measurement you will need some automated tool.Table Sample of counting operators and operands Please note the small and capital letters “n1”. Below is the table which has all the equations related to halstead measures. Counting the operator and operand in big projects manually will be huge task.
There are no rules of how to determine algorithm complexity. As in initial stage you will have only explanatory documents which will not give picture of operator and operands. For different languages you have to define operator and operand again and again. Here are some guide lines given by caper Jones (1996):Number of calculation steps or rules required by algorithm. compression logic are typical example of algorithm complexity. Complex financial calculation. It does not have any actual real time evidence.A set of rules which must be expressed in order to solve a significant computational problem (Jones 1996). Volume and effort). More complex the algorithm the more the quotation. From preparing quotation and estimation using halstead source code or pseudocode should be at place. Searching. Halstead and Henry kafura deal with structural complexity.Chapter 1 Volume is number of mental comparisons needed to write a program of length “N”.Halstead complexity gives 3 different views of size(Program length. Logical complexity/Algorithm Complexity McCabe’s. But in software programs structure complexity is not every thing. Attributes like volume and effort relationship is unclear with real world. algorithm etc in order to achieve functionality.Sorting. Halstead measurement can only be done by automated system tool. Definition of algorithm: . You write complex logic.”E” is the element of discrimination needed to understand the program. Advantages of using Halstead measure To define operator and operand is the most difficult and tedious thing in this measure. Halstead assumption that human mind is capable of 18 mental discrimination per second is too exact. 32 . Halstead measure will fail for initial phase of software cycle. Nobody would sit counting operator and operand in huge projects which has 1000 of modules.The number “18” use for calculating programming time is element discrimination per second a human mind can do.
But the problem with all the complexity discussed above is that they demand source code or pseudo-code at the first place. algorithm complexities have become negligible. Conclusion In this chapter we looked in to various ways of measuring complexity. This measure can later be used to prepare quotation. The above two things determine complexity of algorithm. But the following are the problems identified in migration project old source code:The learning curve of understanding the old source code and applying one of the above complexity measures is time consuming. Normally when a software company gets projects enquiry they get client artifacts like Documents (Probably world documents.Introduction to Software measure Number of factors or data element in the algorithm. So preparing quotation purely on basis of the project complexity can be quiet misleading. In today’s world of ready made plug and play components. Today every data display has by default sort algorithm. Excel spread sheet etc) MOM(Minutes of Meeting) Telephonic conversation Emails On any of the above documents applying Halstead. Disadvantages of using Algorithm complexity in preparing quotation Algorithm complexity can not be measured at initial stage. For migration project do get source code at initial stage itself. Henry and Kafura or McCabe measure is difficult. But there are situation where a company gets migration projects. In days of COBOL to write a sorting algorithm was all from scratch. 33 . The basic intention of looking in to different complexity ways was to come out with a measure. Again way of writing algorithm varies from programmer to programmer. In a software project algorithm complexity is very small aspect of project.
So the readings can be completely wrong. That section can be again revisited to improve quality. Moreover it is always supported in all automated tools. But in JAVA for the same functionality you have ready made component. It would be injustice to client also. This book will not use any of the methodologies defined in the previous chapters it was only for education purpose. So even if you are successful applying one of the complexity measures. Today software industry development is more using RAD and code generators which can lead to weird estimations. So by using automated tools you run on the COBOL project files and the tool gives you complexity measure. Normally in migration projects the client does not expect the same functionality. for estimating extra functionality it will be again difficult.NET. 34 . From all above measures McCabe’s complexity is most preferred for error proneness. Let’s say company receives an old code in COBOL (The project is of compressing files) which has to be migrated to Java or . Many of the counting methodologies were defined for old type of development environment. So that the testing department an effectively work on that section.Chapter 1 All above complexity measure depend heavily on program structure. So lets go ahead and explore other methodologies. To measure the quality of code. The above discussed complexity can be used very effectively in the following ways:To see which code can be more error prone. Example if you see a section of program has high McCabe’s complexity. They expect the existing functionality and some thing extra.
you have to take in to consideration total of all type of complexity. This approach will be time consuming and the correctness of the results will not be known.Lines of Code and COCOMO Chapter 2 Lines of Code and COCOMO “Any estimation +. In today’s Object Oriented Programming and RDBMS(Relational Database Management System) approach Structure or Algorithm complexity is not the only aspect.3-tier. Complexity changes with language and implementation. Complexity depth of software can only be better known after actual implementation. The problem with complexity approach is following:It’s difficult to come out with size at initial stage. So it’s not independent of language. So if a new language is adopted by organization. 35 .10 % is a good estimation/quotation.” Complexity and Size Measure In previous chapter we looked at popular ways of measuring complexity. So in order to measure size of software by software complexity approach. Dynamism of polymorphism etc) Distributed Architecture ( 2-tier.N-tier etc).NET or JAVA language. Complexity of COBOL program is different from . But rather new complexity have been introduced :• • • Object Oriented Complexity (Depth of inheritance . you have to reinvent the estimation wheel from scratch. Definition of complexity has changed with software community becoming more matured.Estimation and Quotation preparation for software services is not a bullet proof science and so termed as estimation. Database design complexity etc.
If given a quotation to prepare for the sorting logic following can be results:Newbie programmer – 2 days Medium programmer – 1 day Experienced programmer – 1 hour. now that quantity can be from perspective of :How many lines of code? How many files of database to be maintained? How many modules to be delivered? How much functionality to be completed? Etc To prepare quotation using size will lead us to language independent and technology independent measure. So depending on programming and experience capabilities your estimation and quotation can very to very decent extent. So the best way experts thought is rather than getting in to smaller view. Algorithm complexity or structural complexity or any type of complexity form Basic/ Smallest unit of software. Following can be approaches :• • • Newbie programmer will think writing from scratch.Chapter 2 Complexity solving approach depends on programmer logical capability and programmer’s knowledge about the programming language. take broader view and come out with cost. Experienced programmer will use some existing feature provided by the programming language. 36 . To judge this smallest unit in a software process at initial stage is very difficult. Medium programmer will think of bubble sort. Size means to look at quantity. Example for simple sorting to be incorporated on display grid.. The other approach would be look at size rather than complexity.
Lets start with a popular and most accepted size measure “Lines of Code”. Its history goes back to 1974 (That’s before my birth) when Wolverton made attempt to measure programmers productivity by LOC. The rules for counting logical source statements are used to refine your logical source statement definition. Automated code generation tools. SEI (Software Engineering Institute) released check list table to improve LOC called as “Logical Source Statement of Code”. LOC can not be used to prepare early software life cycle quotation. complexity is more related to programming deliverables and size is more related to end customer deliverables “. The table below is refined and simplified from CMU-SEI-92-TR-20 and should be referred for details to get more insight. In short the counting should be logical. 37 . In short we should have a check list of what should be counted in effort estimation and what should not be counted in effort estimation. Even though it’s most criticized measure. Software industry is matured of what it was ten years back. To make a judgment at initial stage about the quantity of number of Lines of code is difficult. but is one of the earliest attempts towards scientific measurement of software. Example your project is of hundred lines of code and you have used a open source component in your system. Comment lines written by programmers can not be counted as it’s written for understandability of code for third person and from customer perspective it’s of least importance. high use of third party components. free open source code make project size huge.Lines of Code and COCOMO ”Difference between complexity and size is. Lines of Code This is the most criticized method. we should not forget its one of the initial steps to make software measurement scientifically. But these types of things can not be counted in estimation. Open source system coding lines can not be counted in estimation as it’s not coded by your company.
Chapter 2 L i m us T est t I cl de i n u n C ounti g or N ot n D ependi g on S tatem ent T ype n E xecut bl a e Y es N on-E xecut bl a e D ecl ratons a i C om pier D i ectves l r i Y es Y es C om m ent s O n t ei ow n lnes h r i O n lnes w ih Source C ode i t B anners and nonbl nk spacers a B l nk ( m pt )C om m ent a E y s B l nk Li es a n No No No No No H ow produced P rogram m ed== G enerat d w ih Source C ode G enerat rs e t o C onvert d w ih aut m at d t ansl t rs e t o e r ao C opi d or reused w ihout change e t M odii d fe R em oved Y es Y es Y es Y es Y es No O ri i gn N ew W ork: o P ri r E xi t nce n o se Y es Check List of SEI 38 .
i e n l a e o m but not as S our e c Y es Y es Check List of SEI 39 . t er t an r use lbr r es t eo h h e i a i A not er pr duct h o A vendor suppled l nguage suppor i a t lbr r ( nm odi i d) i a y u fe A vendor suppled oper t ng syst m or i ai e ut lt ( nm odi i d) ii y u fe A l calor m odi i d l nguage suppor o fe a t lbr r or oper t ng syst m i a y ai e O t er C om m er i llbr r h ca i a y A r use lbr r ( of w ar desi ned f r e i a y S t e g o r use) e O t er S of w ar com ponent or lbr r h t e i a y Y es Y es Y es No No Y es Y es Y es Y es U sa ge I or as par of pr m ar pr duct n t i y o E xt r alt or i suppor of t e pr m ar e n o n t h i y pr duct o Y es Y es D el v ery i D el vered i D elver d as S our e i e c D elver d i com pied or execut bl f r .Lines of Code and COCOMO L i m u s T est t N ew W or : o P r or E xi t nce kn i se I cl d e i n u n C ount ng or N ot i Y es Pri r w ork: aken or adapt d f om o T e r A pr vi us ver i n. uid or r l ase e o so b l ee C O T S C om m er i lof -t e-shel ca. f h f sof w ar .
Chapter 2 L i m us T est t Incl de i u n C ounti g or N ot n N ot delvered i U nder confi urati n control g o N ot under confi urati n control g o No No F unctionality O perati e v Y es I operati e (D ead. o I o reacti ated for speci lpurpose) v a N onfuncti nal( ni tenti naly present) o u n o l Y es No R eplications M aster Source Statem ents ( ri i al ) o gn s Y es P hysi alreplcates of m aster statem ents . c i Y es stored i m aster code n C opi s i serted .i stanti ted . ypassed.redundant or reparam eteri ed N o s b z system s Check List of SEI 40 . nused.or expanded e n n a No w hen com pii g or lnki g ln i n P ostproducti n replcates – as i o i n di tri uted . nreferenced or n v b u u unaccessed) Functi nal(ntenti nalD ead C ode .
Advantages of LOC Counting LOC is Simple.Lines of Code and COCOMO L i m us T est t I cl de i n u n C ounti g or N ot n D evel pm ent S tatus o E stm at d or pl nned i e a D esi ned g C oded U ni t st C om pl t d t e s ee I t grat d i t com ponent ne e no s T est readi ess revi w com pl t d n e ee Sof w are ( I t st com pl t d t C )e ee Syst m t st com pl t d e e ee No No No No No No No Y es Check List of SEI If you count line of code with out using SEI check list that means it is DLOC (Delivered Lines of code). As they are final deliverables they can be used as Base Line to define companies’ productivity. Earlier estimation is difficult. 41 . Difficult to convince the end customer saying that project is 1000 lines of code so the cost is “XYZ” dollars. Disadvantages of LOC They do not consider algorithmic complexity.
but SLOC is after applying the SEI table rules.So lets says your company has either bought or made your own tool which applies the above SEI rules and does the counting. it does not consider SEI table. Converting LOC to Effort From the above SEI recommended table you get SLOC. If this is your companies first project then best way is give one of your average programmer a small project see his performance and take that as a base line. Then take a average and use that as base line. In case your company has no base lines best is with use of automated tools check your companies past project LOCs. In order that SLOC or DLOC is converted to one of the following forms there are two methods: Base Line Technique COCOMO [Constructive Cost Module] In Base Line technique we take company history. But getting SLOC or DLOC is not enough. Only getting LOC count is not a meaningful thing. Note: Difference between DLOC (Delivered Lines of Code) and SLOC (Source Lines of Code) is that DLOC is everything that’s there in source code.Chapter 2 Need of some tool to count. That means company can deliver consistently 600 SLOC or DLOC in one week with ten programmers. No one will count huge project with 100000 lines of code. COCOMO 81 42 . effort evaluation should be in one of the following form: Man days Man-Month Calendar Days Total Financial amount in dollars or local currency.
Most of the software projects failure emerges from these “X” factors. That is in the first project it took ten days but later as reusable component was in place the same type of project is taking now eight days. COCOMO 81 models have basically two equations:1. COCOMO provides cost drivers and scale drivers to adjust the “x” factor. The solution to this is to have some kind of parametric estimation model which will take in to account these parameters – Welcome to the world of parametric estimation (COCOMO – Constructive Cost Model).Lines of Code and COCOMO In the upper section we have seen how to use base line technique to estimate for LOC. but they do not take in to account “X” factor (Non-Functional specification) of the projects.COCOMO is not a size measurement methodology. customer does not communicate well etc. 43 . But rather it takes input as size and then applies non-functional characteristic of a project (Means “X” factor of project which we will discuss shortly). Project of one Man/ Month stretch to five man / months because programmers resigned rapidly. UCP (Use Case Points) and any other counting methodology measure application size. FP (Function points). Some sample “X” factor of projects: Does the project demand innovativeness? Is the team interaction good or bad? Is it a prototype model? Is the company following CMMI specification? What is the software cycle process project is following? For these “X” factors COCOMO has come in to picture. In this section we will see the basic COCOMO equation and the cost drivers to fine tune the “x” factor according to projects climate. COCOMO is set of matured formulae with cost drivers where you can feed in your size and adjust cost drivers to account for your “x” factor. Development Effort MM = a * KDSIB If you look closely at the equation above “a” coefficient is the multiplicative complexity of project and “b” coefficient is the exponential complexity of the project. But still it needs history and does not take in to account if company starts getting mature with every project completed. LOC (Lines of code).
Delivered Source Instruction (Expressed in thousand). 2.Chapter 2 MM (Man Month):. In the above equation “a” and “b” depends on project development mode. So keep these three things and mind while reading the next section. Note this is Delivered source instruction that means with out applying SEI table check list. Note: In COCOMO there is 152 hours per person month means 19 working days with 8 working hours every day.One month of effort by one person or one staff. KDSI: . That’s excluding Saturdays and Sundays. P roj ct C haracteri ti s e s c D evel pm ent M ode S i e o z O rgani c Sem i D et ched a E m bedded Sm al l M edi m u Large I novati n n o Lite tl M edi m u G reat r e i D eadlne/C onstrai n ts ts N ot T i ht g M edi m u T i ht g D evel pm ent o E nvi onm ent r St bl a e M edi m u C om pl x Hardw are e /C ust m er o I t rf ced ne a Development Mode Table The above two equations and table 14 (Development mode table) forms the base of COCOMO.5 * MM C In the above equation “c” depends on project development mode. Basic COCOMO Using the above given basic equation Boehm proposed three levels of COCOMO 81 mode:44 . Effort and Development Time (TDEV) : TDEV = 2.
5 4 0 3. use of modern tools and techniques.0 and you have the development time. personnel quality and experience. 0 6 2 Basic COCOMO project development mode table So count the KDSI that means actual source code with out applying SEI check list and feed in the first equation and also feed in “a”. Table 15 has the actual measure and the details of how a project is judged as organic. 1. and other project attributes known to have a significant influence on software costs. rough order of magnitude estimates of software costs. 8 3 0. 1. 2 0 1 3.”b” and “c” depending on table 15. semidetached or embedded are shown in table 14. Intermediate COCOMO 45 .Lines of Code and COCOMO Basic COCOMO 81 Intermediate COCOMO 81 Advanced COCOMO Basic COCOMO applies table 15 to the above equation with out any details consideration. 1. Development Effort MM = a * KDSIB Effort and Development Time (TDEV): TDEV = 2. early. 5 3 0. Note the basic equations discussed above section (COCOMO 81) did not change. but its accuracy is necessarily limited because of its lack of factors to account for differences in hardware constraints. Basic COCOMO is good for quick.5 * MM C c 0. 2 3 B asi C O C O M O c O rgani c Sem i D et ched a E m bedded a b 2.
Chapter 2 Basic COCOMO considered the “X” factor but is limited only to type of project. 5 2 0 3. 2 0 1 2. 8 3 0. But as COCOMO started getting used in projects companies started realizing the need for more parameterization of the formulae. 5 3 0.The cost drivers are grouped into four categories: Product Computer Personnel 46 .Coefficient “b” and “c” is same as Basic COCOMO. So the basic COCOMO equation remained same as basic COCOMO ( a*KDSIB). Basic COCOMO gives you flexibility to adjust the “a”. EAF is the product of fifteen cost driver (See table 17 for more details). 1. “b” and “c” coefficient depending on the project mode table. Second coefficient “a” is different in inter mediate COCOMO . 1. So intermediate COCOMO was introduced and for fine tuning the “X” factors fifteen cost drivers where introduced. 1. B asi C O C O M O c O rgani c Sem i D et ched a E m bedded a b c 0. 2 3 3.Adjustment factor is “1” for cost driver which is normal.5 * MM C Man Month (Correction) = MM = EAF * MM (Nominal) The effort adjustment factor (EAF) is calculated using 15 cost drivers. 0 8 2 Ratings of Development Mode Table for intermediate COCOMO Equations remain same Man Month Nominal = a * KDSIB Effort and Development Time (TDEV): TDEV = 2. but in addition to it fifteen cost drivers are rated on scale of “Very Low” to “Very High” to calculate the specific effort multiplier.
Based on the rating. 47 . an effort multiplier is determined using Table 17 (Boehm. 1981).Lines of Code and COCOMO project Each cost driver is rated on a six-point ordinal scale ranging from low to high importance. The product of all effort multipliers is the EAF.
6 y lt 4 A pplcatons i i experi nce e P rogram m er capabiiy lt V i t alm achi e ru n experi nce e Language experi nce e 1. 4 1 1. 1 2 1. 0 0 1. 1 2 1. 6 6 1. 5 9 0. 9 1 1.Intermediate Cost Driver Rating Table 48 . 5 8 1. 6 8 0. 0 9 0. 0 0 1. 9 2 1. 1 1 1. 5 1 1. 0 0 0. 0 0 1. 0 0 1. 0 0 1. 2 8 0. 6 8 0. 0 0 1. 8 8 0. 5 1 1. 0 1 1. 8 0 1. 0 0 1. 5 1 1. 5 1 1. 5 6 E xecuton tm e i i const ai t r n M ai st rage n o const ai t r n V i t alm achi e ru n vol tlt a iiy C om put r e t rnaround tm e u i - 0. 0 0 1. 5 7 0. 0 7 - - 17. 0 3 1. 7 0 1. 7 8 0. 3 1 1. 0 0 1. 6 5 - A nal st capabiiy 1. 0 4 1. 0 3 1. 7 1 1. 2 4 1. 0 7 0. 1 9 0. 0 0 1. 7 0 1.Chapter 2 C ost D ri er v P roduct R E LY D A TA C P LX C om put r e TI E M ST O R VI T R TU RN P ersonnel ACAP A EX P PC A P V EX P LE X P p o D escri ti n V ery L ow L ow N om i Hi h g nal V ery Hi h g E xtra ra Hi h g R equi ed r sof w are t relabiiy i lt D at base si e a z P roduct com pl xiy e t 0. 7 8 1. 1 7 0. 6 0 1. 0 0 1. 0 3 1. 6 1 1. 4 9 0.
For more explanation of “X” factors see section “COCOMO 81” of this chapter. B > 1. It shows the large variance in project schedule due “X” factors. 4 2 1.Lines of Code and COCOMO C ost D ri er v P roj ct e M O DP TO O L SC E D D escri ti n p o V ery L ow L ow N om i Hi h g nal V ery Hi h g E xtra Hi h g M odern program m i g n practi es c Softw are T ool s D evel pm ent o Schedul e 1.0: In this range the project productivity increases as project size increases. 0 1 1. 3 8 1. B = 1. Intermediate Cost Driver Rating Table Coefficient Factor “b” and multiplicative factor “a” Man Month Nominal = a * KDSIB The above basic equation of COCOMO has the exponential factor “B” which reflects abnormalities of software project. This range is a red alert saying that the project can go in to problems and will need planning.0: This is a linear behavior range and is often used for estimating small projects especially for prototyping projects during requirement gathering of projects. This range of scale can be achieved via project specific tool but this range is difficult.0: This coefficient range indicates abnormality in project. 0 1 - 17. 0 0 1. 4 0 0. 0 0 1. 4 2 1. Remember as the project increases more there is more scope of using reusable components thus reducing the project time. 8 0 1. 1 9 1. Large teams having interpersonal communications and large system integration overhead can lead to such 49 . 2 8 0. 0 1 1. Below is the effect of variance: B < 1. 1 9 0. 3 2 1. 0 0 0.
18 – 125. “b” and “c”. Example application model will be used when we are making prototype of projects.89 for organic and for embedded (100) 1. On the contrary coefficient factor “a” captures the multiplicative factor of the project.89 = 37. (100)1.20= 251.05 approximately 1. Change in coefficient “b” will lead to huge change in effort as compared to “a”. Early design model will be used in early stages of project. But it failed in terms to account for prototyping model and different design phases in project.Chapter 2 abnormalities. while simple organic project has value 1. 50 . Post architecture model is used after the detail architecture is in place of the project. Second companies where demanding more detail parameterization of coefficient “a”. COCOMO II Intermediate COCOMO provided better parameterization of the equation by introducing fifteen cost drivers. Looking in to these factors a new version of COCOMO that is COCOMO II was introduced. So COCOMO II provides “cost drivers” and “scale drivers” for parameterization of “a” and “b” coefficient.All the above mentioned three models are used according to project needs.0 which shows the linear behavior. Just a short note when you foresee large teams in project the main problem is technical ego which can lead to problems. The difference is of 251.20 and minimum value is “1. 18. COCOMO II has the following model Application Composition Model (For early Prototyping) Early Design Post architecture model (For subsequent portions of Life cycle) Note: .05 = 125.05” (Organic). If you notice intermediate COCOMO table (Ratings of Development Mode Table for intermediate COCOMO) max value of “b” (Embedded) is 1. This shows embedded project can go little here and there if not properly managed . 188 which show the abnormalities of embedded project and organic projects.
or technology maturity. Object points are also size measuring technology. And said COCOMO takes in the size and applies the “X” factor of projects. First step is from the number of screen count object points complexity for screens. software/system interaction. performance.Lines of Code and COCOMO Application Composition Model The Application Composition model is used in prototyping to resolve potential high-risk issues such as user interfaces. N um ber and S ource of D ata T abl s e N um ber of vi w C ontai ed e n <3 3-7 8+ T otal< 4 Si pl m e Si pl m e M edi m u T otal< 8 Si pl m e M edi m u D ifcul fi t T otal> 8 M edi m u D ifcul fi t D ifcul fi t 51 . Object Points Complexity Level for Screens If the prototyping is having reports count those object points for reports and use table 20. So here we take in object points rather than LOC. Many companies follow the prototyping life cycle model. Object points are used in order to determine size rather than LOC. N um ber and S ource of D ata T abl s e N um ber of vi w C ontai ed e n <3 3-7 8+ T otal< 4 Si pl m e Si pl m e M edi m u T otal< 8 Si pl m e M edi m u D ifcul fi t T otal> 8 M edi m u D ifcul fi t D ifcul fi t 18.
D evel pers o experi nce e and C apabii y lt V ery L ow L ow N om i al n Hi h g V ery H i h g I A SE m at riy V ery C u t and capabiiy lt Low PRO D 4 Low 7 N om i al n 13 Hi h g 25 V ery Hi h g 50 21 Productivity Factor Effort can then be estimated using the following equation (Boehm et al.Complexity Weight for Object Points The weighted instances are summed to provide a single object point number. If company is using r% percent of objects from the previous projects then the formula is: NOP (New Object Points) = (object points) x (100 – r) / 100 A productivity rate (PROD) is determined using Table 21 below (Boehm et al. 1997): E = NOP / PROD 52 .Chapter 2 19. D i fi ul f c t e O bj ct T ype Screen R eport 3G L com ponent S i pl m e 1 2 - M edi m u 2 5 - 3 8 10 20. 1997). For more details see table 10. Object Points Complexity for Reports After we count object points for reports and screen we assign the complexity weight depending on what type of object is it.
3 0 2. 53 . 0 1 1. 7 0 7. 4 2 NM 3. R ati g n Scal Fact rs e o P recedent dness ( R E C ) e P D evel pm ent Fl xi iiy o e b lt ( LE X ) F A rchiect re / R i k t u s R esol ton ( E SL) ui R T eam C ohesi n ( E A M ) o T P rocess M at riy ( M A T ) u t P VL 6. So your technical department would write small sample code that. So now the coefficient “b” is modified and parameterized as b = 0. 0 8 LO 4. As said first that intermediate COCOMO did include parameterization by introducing the fifteen drivers. 5 0 5. If you see in original COCOMO 81 the “b” coefficient value is above 1. 3 8 2. 9 1 3. 6 5 XH 0. 1 0 1. But this experience has shown that his can be controlled through proper management. 0 0 0. According to software companies experiences if projects properly managed the coefficient “a” and “b” can be managed and project time can be reduced. 7 0 5.01 x SUM (Wi) Where W is the set of 5 scale factors shown in Table 22 (Boehm et al. 9 2 4. 8 6 HI 2. 4 2 1. 6 9 4. 0 0 0. 8 4 2. 0 0 0. COCOMO II scale factors. 0 2 5.Lines of Code and COCOMO Early Design Model The Early Design model is used to evaluate alternative software/system architectures and concepts of operation. Scaling drivers affected the “b” that is exponential coefficient of basic COCOMO equation (a* KSLOC * b). Example customer requirement is to integrate email with mobile device. That means it indicates abnormality in project. 1 4 1. 8 3 6. In early design model COCOMO II provided “Scaling drivers” and “Cost drivers”. 4 2 3. 0 0 0. 8 4 7. 2 7 3.0. So some sort of customization was needed in these two coeifficient. 1997).91 + 0. but did not provide any way to parameterize “a” and “b” coefficient. 4 0 4. 2 1 VH 1. is this possible or not. 5 6 4. 0 0 22.
Does the software have to follow any specification with external interface? Does the software need to adhere to standards?. project managers etc etc. based on the Software Capability Maturity Model So again refer the table and scale the factors. designers . Low (L). Big team involves integration and coordination. Each rating has a specific value as shown in Table 22 given up. Will the product need any innovative ideas. Risk resolution: This factor is more subjective factor it Rates the integrity and understanding of the product software architecture and the number/criticality of unresolved risk items. TEAM Cohesion: A big team does not mean that project get fast completed. Cost drivers capture the multiplicative factor of the basic COCOMO equation (a * 54 . Very High (VH). I still remember in one of our projects we had used a third party product as heart of our project. In short it Measures the maturity of the software process used to produce the product. This factor gives the scale for synchronizing projects stake holder like user . and Extra High (XH). Depending on the understanding capability of the project the values are taken from table 22. Captures the consistency of stakeholders' objectives and the willingness of all parties to work together as a team. Means was there any previous experience in making such similar products. Development/Flexibility: This factor expresses the degree of conformance to software requirements and external interface standards. So depending on risk grade this factor from table 22 given up. Later when we came to know about short comings of the third party we spend more time in patching it up. The project’s scale factors are summed and used to determine a scale exponent. Software projects involve risk and if they are identified and foreseen proper estimation can be analyzed. Nominal (N).Chapter 2 Precedentedness: This scale factor captures understanding of product objectives and required technology. High (H). customers . In the same way to parameterize coefficient “a” cost drivers where provided in COCOMO II. Each scale driver has a range of rating levels: Very Low (VL). Process Maturity (PMAT): This rating is given depending on CMM (Capability maturity model) capability of the company and the KPA (Key process areas) compliance in project. programmers .
P C O N A E X P .S I E T SC E D 23. The other phase is next which we will discuss later (Post-architecture) where the design is clear .P E X P . Below are the seven cost drivers.L T E X T O O L . Table 23 clears the mapping between both the phases of COCOMOII. Class diagrams drawn. This cost driver includes four sub-factors: Product Factors 55 . According to COCOMO II there are two basic phases of any software development.P V O L M A C A P .Lines of Code and COCOMO KSLOC * b).S T O R .” E arl C ost D ri er y v D escri ti n p o P roduct relabiiy i lt and com pl xiy e t R equi ed reuse r P l t orm difculy af fi t P ersonnelcapabiiy lt P ersonnel experi nce e Faciii s lte Schedul e C ounterpart C om bi ed P ost-A rchi ecture n t C ost D ri er v RC PX R U SE PD I F PERS PREX FC I L SC E D R E L Y . When I am talking about phase means not complete software life cycle phase. The first phase which we are discussing now is one when the technical design is not clear and very abstract.Early Design cost drivers and Post architecture cost drivers mapping.D A T A . Cost drivers preciseness varies according to software phase.P C A P . So the “a” coefficient is modified as follows : a= 2.the Post-Architecture cost drivers are more than the early cost drivers as in post architecture you have better understanding that at the early stages. Use Cases are already made . Where EM is the effort multiplier that is sum of one to seven cost drivers.C P L X . “Note: .D O C U R U SE T I E . Cost drivers are again “x” factor of project.94 * Sum of one to seven cost drivers ( EM) . Third party component identified with it pros and cons and ready for implementation. These cost drivers are later expanded to Post-architecture cost drivers.
Documentation match to life cycle: needs Evaluated in terms of the suitability of the project’s documentation of its life cycle needs. Software Product Complexity:Complexity is divided into five areas: control operations. The ratings are defined in terms of the percentage of schedule stretch-out or acceleration with respect to a nominal schedule for a project requiring a given amount of effort. Main storage constraint: Measures the amount of constraint imposed on the software due to main memory limitations in the target computer. Database size:The size of the database is important because of the effort required to generate the test data that developers will use to exercise the program. Project Factors This cost driver also includes three sub-factors: Use of software tools :Captures the productivity impact of tools ranging from simple edit and code tools to integrated.) the software product calls on to perform its tasks. Platform volatility:Volatility of the complex of hardware and software (OS. etc. The complexity rating is the subjective weighted average of the selected area ratings. If memory is a problem. DBMS.Chapter 2 Required software reliability: As the required reliability increases. Required reusability:Measures the extra efforts needed to generalize software modules developed specifically for reuse in other software programs. data management operations and user interface management operations. Required development schedule:Measures the schedule constraint imposed on the project team developing the software. proactive life cycle support tools. Platform Factors This cost driver contains three sub-factors: Execution time constraint: Measures the approximate percentage of the available CPU execution time that the software will use in order to achieve the system’s performance objectives. computational operations. more time must be spent on design and coding. more time must be spent in the critical design and testing phases. Accelerated schedules tend to produce more effort in 56 . device-dependent operations.
database. This rating does not consider the level of experience of the analyst with the application. and more effort in the later phases to accomplish more testing and documentation in parallel. efficiency and thoroughness and the ability to communicate and cooperate. program style and formatting. experience on the project’s supporting tool set also affects the development effort. document extraction. language or tool. library management. Multi-site development:Multi-site development is becoming the norm rather than the exception. Determining its cost-driver rating involves the assessment and judgment-based averaging of two factors: site collocation (from fully collocated to international distribution) and communication support (from surface mail and some phone access to full interactive multimedia). consistency checking and planning and control. Software development includes the use of tools that perform requirements and design representation and analysis. networking and distributed middleware capabilities. Platform experience:Recognizes the importance of understanding the use of more powerful platforms. The ratings are defined in terms of the project team’s equivalent level of experience with this type of application.Lines of Code and COCOMO the earlier phases to eliminate risks and refine the architecture. In addition to experience in the project’s programming language. high-level design and detailed design. platform. including graphical user interface. Personnel continuity:Measures the project’s annual personnel turnover. Language and tool experience:Measures the level of programming language and software tool experience of the project team developing the software system or subsystem. Programmer capability:Measures the ability of the programmers who will actually perform the detailed design and write/test the physical code during the coding and unit testing phases. The major attributes that should be considered in this rating are analysis and design ability. Application experience: This rating is dependent on the level of application experience of the project team developing the software system or subsystem. Another set of coefficients measures these factors. Personnel Factors This cost driver encompasses six sub-factors: Analyst capability: Analysts are personnel who work on requirements. configuration management. 57 .
3 7 0. 0 0 1. 0 0 1. 8 2 1. 9 2 1. 5 1 1. 7 1 1. 9 2 1. 0 0 1. 6 2 1. 6 4 0. 4 2 1. 4 3 1. 0 0 1. 3 9 1. 0 0 1. 1 8 0. 3 2 1. 3 4 24. 8 7 0. 9 0 1. 1 9 0. 1 1 1. 1 8 1. 6 7 0. 7 1 1. 0 0 1. 0 0 1. 0 9 0. 0 0 1. 0 0 1. 1 9 0. 4 1 1. 1 9 0. 0 0 VH 1. 1 1 1. 8 8 0. 0 9 0. 9 1 1. 1 8 0.Chapter 2 The explanation of all the above points is now been to put actual value in table 24. 0 1 1. 5 1 1. 1997 A ttri utes b R equi ed R elabiiy ( E LY ) r i lt R D at base Si e ( A T A ) a z D P roduct C om pl xiy ( P LX ) e t C R equi ed R eusabiiy ( U SE ) r lt R D ocum ent ton R equi ed ai r ( O CU ) D E xecuton T i e C onst ai t i m r ns ( I E) T M M ai St rage C onst ai t n o r n ( TO R) S P l t orm V ol tlt ( V O L) af a iiy P A nal st C apabiiy ( C A P ) y lt A VL 0. 5 9 0. 3 6 1. 9 1 1. 5 8 0. 2 9 0.Full list of Post-Architecture cost drivers 58 . 0 0 HI HI 1. 0 1 1. 2 i i e A 2 P rogram m er C apabiiy ( C A P ) lt P P ersonnelC ontnuiy ( C O N ) i t P P l t orm E xperi nce ( LE X ) af e P Language and T ool E xperi nce s e ( TEX ) L U se of Sof w are T ool ( O O L) t s T M uli l Sie D evel pm ent tp e t o ( I E) ST R equi ed D evel pm ent Schedul r o e ( C ED ) S 1. 8 8 0. 0 0 1. 2 8 0. Boehm et al. 1 7 0. 7 0 1. 0 8 - A pplcatons E xperi nce ( P E X ) 1. 0 0 1. 0 0 1. 2 1 1. 4 3 1. 0 0 1. 7 8 1. 9 0 1. 0 0 1. 2 2 1. 5 0 1. 0 0 1. 0 9 0. 4 7 1. 2 4 LO LO 0. 0 2 1. 0 3 0. 5 8 0. 9 0 1. 6 8 1. 4 1 NM 1. 0 0 1. 9 0 1. 0 0 XH 1. 7 8 0. 4 8 0. 5 1 0. 7 1 1.
Lines of Code and COCOMO “Note : Table 23 shows the mapping between the both the phases. DATA. just see the mapping and give rating accordingly by taking average” 25.Sample of CO-Star software showing customization of Cost Driver. So if I have not shown the table of how the early design cost drivers will be calculated. CPLX =1 and DOCU =1 as that is the nominal rating of the cost drivers For more details see Table 24. DATA =1 . CPLX. So RCPX = RELY+DATA+CPLX+DOCU. If we say RCPX is nominal then RELY = 1. Cost driver like RCPX in early phase is later expanded in to RELY. DOCU. 59 .
The Early Design model equation is same as the basic equation defined in upper basic COCOMO equation but the “a” and “b” coefficient equations are modified: E = a KSLOC b 60 . it’s in “COCOMO” folder of the CD.Sample screen of COSTAR showing full view of software. Costar evaluation version is provided with CD feel free to install it and use it.Chapter 2 26.
b = 0.2 * (b-0.91) Note the Size is in KSLOC (Source lines of code which is after achieved by applying SEI check list for lines of code). Time to develop = (3. An unadjusted function point count (UFC) is used for sizing.01 x SUM (Wi) Time to develop is calendar time in months.91 + 0.94 * Sum of one to seven cost drivers ( EM) . That is converting from one measure to other measure using practical data.67) *(E) F F = 0. 1996). So beware of using backfiring technologies. excerpted in Table 23 below (Jones. Practical experiences has shown that very weird result come out. “This technique is also termed as backfiring. This value is converted to LOC using tables such as those published by Jones.Lines of Code and COCOMO Where modified “a” and “b” coefficients are as follows (brief explanation of both coefficients is given in this section above): a= 2. In this scenario we are converting from Unadjusted function points to LOC.28 + 0.” 61 .
5 M ax 416 170 85 140 - 27.28 + 0. 0 5 20. b = 0. In early design it was sum of seven cost factors and in post-architecture its sum of seventeen cost drivers. Function points or LOC can be used for sizing.91 + 0.Chapter 2 L anguage M achi e n Language A ssem bl y C RPG I I C ++ V i ualC ++ s P ow er B uider l E xcel L evel 0. 1992). Other things in equations that is Calculating Time for development. with modifiers for reuse and software breakage. 0 0 57. 0 5 6.2 * (b-0. Calculation of “b” coefficient etc remain same. E = a * KSLOC b a= 2.91) 62 .67) *(E) F F = 0. 0 0 2. 0 1 1. 0 5 5. 0 0 9. The Post-Architecture model includes a set of 17 cost drivers ( A shown in table 24 above ) and a set of 5 factors determining the projects scaling component. 0 0 M i n 237 60 40 40 - M ode 640 320 128 58 55 34 16 5. The difference between early design and Post-architecture is the coefficient “a”.94 * Sum of one to seventeen cost drivers (EM) .Programming language levels and ranges of source code statements per function point The Post-Architecture Model The Post-Architecture model is used during the actual development and maintenance of a product.01 x SUM (Wi) Time to develop = (3. Boehm advocates the set of guidelines proposed by The Software Engineering Institute in counting lines of code (Park.
Lines of Code and COCOMO The EAF is calculated using the 17 cost drivers shown in Table 24 above (Boehm et al. 1997). 63 .
The method was first published in 1979. then total up all the subsystem estimate to come up with final estimate. It was an attempt to overcome difficulties associated with lines of code as a measure of software size. “The best way to understand any complicated system is breaking the system in to smaller subsystem and try to understand those smaller sub-systems . and to assist in developing a mechanism to predict effort associated with software development.” Basics of Function Points Following are some terms used in FPA [Function Point analysis]. There are two types of major boundaries: Internal Application Boundary External Application Boundary 64 . In Function Point you break complicated huge system into smaller systems and estimate those smaller pieces.Chapter 3 Chapter 3 Function Points Introduction to Function Points “This document contains material which has been extracted from the IFPUG Counting Practices Manual. then later in 1983.” Function Point Analysis was developed first by Allan J. when the International Function Point User Group (IFPUG) was set up. It is reproduced in this document with the permission of IFPUG. Albrecht in the mid 1970s. Application Boundary The first step in FPA is defining boundary. In 1984 Albrecht refined the method and since 1986. several versions of the Function Point Counting Practices Manual have been coming out.
When elementary processes come together they form a software application. Tax department has his own website where companies can connect and report there Tax transaction. So we can define elementary process as small units of self contained functionality from user perspective. which is not developed by you. These maintenance screens are used internally by the Tax department.Function Points I will state features of external application boundary. Software application is combination of set of elementary processes. Tax department application has other maintenance and reporting screens been developed by tax software department. If you have full rights or command to change then its internal application boundary or else external application boundary. thus we can identify Tax website reporting as External Application. EP is smallest unit of activity that is meaningful to the user. so that internal application boundary would be self explained. 65 .EP must be self contained and leave the application in a consistent state. Elementary Process As said in introduction FPA is breaking huge systems in to smaller pieces and analyzing them. you have to report to tax department. Note:-Elementary process is not necessarily completely independent or can exist by itself. The best litmus test is to ask yourself do you have full access over the system. So Tax online interface has other interface to maintain its data which is not your scope. Does your program have to go through a third party API or layer? In order your application interacts with Tax Department Application probably your code have to interact through Tax Department API. Example: Your Company is developing an “Accounts Application” and at the end of accounting year. External Application Boundary can be identified using following litmus test: Does it have or will have any other interface to maintain its data.
Static elementary process maintains data of application either inside application boundary or in external application boundary. Examples of dynamic elementary process: Input data screen where user inputs data in to application. Display reports which can come from external application boundary and internal application boundary. Internal Logical Files (ILF) Following are points to be noted for ILF ILF are logically related data from user point of view. They reside in Internal Application boundary and are maintained through elementary process of application. 66 .Chapter 3 Dynamic and static elementary process There are two types of elementary process Dynamic Elementary process Static Elementary process Dynamic elementary process moves data from internal application boundary to external application boundary or vice-versa.Data moves from the input screen inside application. Examples of static elementary process: In a customer maintenance screen maintaining customer data is static elementary process. Elements of Function Points Following are the elements of FPA. ILF can have maintenance screen or probably not. Transaction exported in export files in XML or any other standard.
but from ILF point of view its only Supplier. Example Supplier database design will have tables like Supplier. EIF reside in external application boundary. SupplierPhonenumbers.Figure External Interface File (EIF) They are logically related data from user point of view. Supplier Address. 28. The main difference between ILF and technical database is ILF is logical view and database is physical structure (Technical Design). 67 .Do not make a mistake of mapping one to one relationship between ILF and technical database design.Function Points Caution: . As logically they are all Supplier details. then FPA can go very misleading.
A group of RET’s within ILF are logically related.Supplier had multiple addresses and every address can have multiple phone numbers (See detail image below which shows database diagrams). If there is no sub-group of ILF then count the ILF itself as one RET.Figure Please note the whole database is one supplier ILF as all belong to one logical section. 68 . Most probably with a parent child relationship. SupplierAddress and Supplier phone numbers are RET’s.RET quantifies the relationship complexity of ILF and EIF. EIF is maintained by external application. Example: . 29. Record Element Type (RET) Following are points to be noted for RET RET are sub-group element data of ILF or EIF.So Supplier.Chapter 3 EIF is used only for reference purpose and are not maintained by internal application.
So count each ILF or EIF read during process.Same folds true for “Supplieraddressid_fk”. Count foreign keys as one DET. Example: . “Supplierid” does not qualifies as DET but its relationship in “supplieraddress” table is counted as DET. Example: . If the EP is maintaining an ILF then count that as FTR. 69 . but it’s not compulsory rule.So by default you will always have one FTR in any EP. its only from software designing aspect . Example in the above given figure we have kept auto increment field (Supplierid) for primary key. File Type Reference (FTR) Following are points to be noted for FTR FTR is files or data referenced by a transaction. EI may maintain ILF of the application.Function Points DET (Data element types) Following are the points to be noted for DET counting Each DET should be User recognizable. So “Supplierid_fk” in supplieraddress table is counted as DET.Supplierid field from user point of view never exists at all . it should be counted only once. External Input (EI) Following are points to be noted for EI It’s a dynamic elementary process [For definition see “Dynamic and Static Elementary Process” Section] in which data is received from external application boundary. so does not qualifies for DET. DET should be non-recursive field in ILF. when data comes from User Interface to Internal Application.User Interaction Screens.A calculator application does not maintain any data. FTR should be ILF or EIF. but still the screen of calculator will be counted as EI. DET should not repeat in the same ILF again.
External Output (EO) Following are points to be noted for EO It’s a dynamic elementary process in which derived data crosses from Internal Application Boundary to External Application Boundary. Derived data means any complex calculated data. Derived data is not part of ILF or EIF. In this EP some input request has to enter the application boundary.Chapter 3 Most of time User Screens will be EI. EQ does not update any ILF or EIF. but still should be counted as EI as it helps passing data from External Application Boundary to Internal Application Boundary. 70 . they are generated on fly. Simple reports form good base as EQ. Output results exits the application boundary. EO can update an ILF or EIF. Derived data is not just mere retrieval but are combined with additional formulae to generate results. EQ does not contain any derived data. EQ activity should be meaningful from user perspective. Note:. again no hard and fast rule.No hard and fast rules that only simple reports are EQ’s.Example: An import batch process running from command line does not have screen. DET and processing logic is different from other EQ’s.Simple view functionality can also be counted as EQ. External Inquiry (EQ) Following are points to be noted for EQ It’s a dynamic elementary process in which result data is retrieved from one or more ILF or EIF. EP is self contained and leaves the business in consistent state.
he normally will skip everything and come to GSC first. They relate only to application. There are 14 points considered to come out with VAF (Value Added factor) and its associated rating table. All the above discussed sections are counting sections. When you submit a function point to a client. Second important difference is in EQ its non-derived data and EO has derived data. They have derived data or formulae calculated data.Exporting Accounts transaction to some external file format like XML or some other format. But there are other things also to be considered while making software. Major difference between EO and EQ is that data passes across application boundary. These are external factors which affect the software a lot and also the cost of it. DET is different from other EO’s. what's the performance level the user is expecting etc these other factors are called GSC. General System Characteristic Section (GSC) This section is the most important section. Example: . EP is self contained and leaves the business in a consistent state. 1) Data Communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system? 71 . GSC gives us something called as VAF (Value Added Factor). Which later the external accounting software can import.Function Points Process should be the smallest unit of activity that is meaningful to end user in business. like are you going to make it an N-Tier application.So this ensures to us that we do not count EO’s twice.
and support m ore t an O ne i i s h r s h t pe of T P com m uni atons prot col y c i o . h e s D at i prepared f r t ansf r. y D i t i ut d processi g and dat t ansf r are onlne and i B ot di ectons. Table 72 . D i t i ut d processi g and dat t ansf r are onlne and i O ne di ecton s rb e n a r e i n r i onl . 30. s rb e n a r e i n h r i P rocessi g f nctons are dynam i aly perf rm ed on t e m ost A ppropri t n u i c l o h ae com ponent of t e syst m .t en i t ansf rred and processed on a s o r e h s r e anot er com ponent of t e syst m ( ot f r end-userP rocessi g) h h e n o n . r o c e A pplcaton i m ore t an a f ont end. h e 31.Table 2) Distributed data processing How are distributed data and processing functions handled? R ati g n 0 1 2 3 4 5 D escri ti n p o A pplcaton does not ai t e t ansf r of dat or processi g Functon i i d h r e a n i bet een com ponent of t e syst m .but support onl one T ype of i i s h r s y T P com m uni atons prot col c i o .Chapter 3 R ati g n 0 1 2 3 4 5 D escri ti n p o A pplcaton i pure bat h processi g or a st ndal ne P C . i i s c e a r e ni A pplcaton i bat h but has rem ot dat ent y and rem ot P ri tng i i s c e a r e ni A pplcaton i cl des onlne dat colecton or T P ( el processi g) i i n u i a l i T e n f ont end t a bat h process or query syst m . i i s c n a o A pplcaton i bat h but has rem ot dat ent y or rem ot P ri tng. A pplcaton i m ore t an a f ont end. w s h e A pplcaton prepares dat f r end user processi g on anot er com ponent i i a o n h of t e syst m such as P C spreadsheet and P C D B M S.
Function Points 3) Performance Did the user require response time or throughput? 73 .
Chapter 3 R ati g n 0 1 D escri ti n p o N o speci lperf rm ance requi em ent w ere st t d by t e U ser. a i r R esponse tm e or t roughput i crii alduri g peak hours. a o r s ae h P erf rm ance and desi n requi em ent w ere st t d and R evi w ed o g r s ae e but no speci lactons w ere requi ed. rocessi g a g o ii i r P n deadlne i f r t e next busi ess day. m e ai o T ae user perf rm ance requi em ent . I addii n. e r nn I addii n. o r s 2 3 4 5 32.N o speci ldesi n f r C P U utlzaton w as n a g o ii i requi ed. o i h s tc n N speci ldesi n f r C P U utlzaton w as requi ed.perf rm ance anal si t ol w ere used i t edesi n.Table 4) Heavily used configuration How heavily used is the current hardware platform where the application will be executed? 74 . rocessi g deadlne requi em ent w ih i t rf ci g r P n i r s t ne a n syst m sA re const ai i g. i s o h n R esponse tm e or t roughput i crii alduri g al i h s tc n l busi esshours. n to o y s o s n h g devel pm ent and/or i pl m ent ton phases t m eet he st t d o .st t d user perf rm ance requi em ent are st i gent n to ae o r s rn enough t requi e perf rm ance anal si t sks i t e D esi n o r o y s a n h g phase.
h i i s n u St t d operaton rest i tons requi e speci l ae i rc i r a const ai t on t e applcaton i t e cent alprocessor r ns h i i n h r or a dedi at d P rocessor. t i n d i n u Specii processor requi em ent f r a specii pi ce fc r s o fc e of t e A pplcaton i i cl ded. c e I addii n. e 1 2 3 4 5 33. s o h rc i Som e securiy or tm i g consi eratons are i cl ded. etc.t ere are speci lconst ai t on t e n to h a r ns h applcaton i T he di t i ut d com ponent of t e i i n s rb e s h syst m .? 75 . daily. n u O peratonalrest i tons do exi t but are l ss i rc i s. e rest i tve t ana t pi alapplcaton. weekly.Function Points n R ati g 0 D escri ti n p o N o explci or i plci operatonalrest i tons are i t m i t i rc i i cl ded.Table 5) Transaction rate How frequently are transactions executed. monthly.N o speci lef ort rc i h y c i i a f i needed t m eet t eR est i tons.
n h g H i h t ansact on r t ( )st t d by t e user i t e g r i aes ae h n h applcat on r qui em ent or ser i e l velagr em ent i i e r s vc e e s ar hi h enough t r qui e per or ance anal si t sks e g o e r f m y s a and. y r i i s i p e D aiy peak t ansact on per od i ant ci at d. o r i ne i a r 8% t 15% of t ansactons are i t ractve dat ent y.quar er y. l A l s i p e W eekl peak t ansact on per od i ant ci at d.r qui et e use of per or ance n to e r h f m anal si t ol i t e desi n. m ont l . o i st lat on phases.Figure 76 . r 34. r M ore t an 30% of t ansactons are i t ractve dat h r i ne i a ent y. Table 6) On-Line data entry What percentage of the information is entered On-Line? R ati g n 0 1 2 3 4 5 D escri ti n p o A l t ansactons are processed i bat h m ode. nnualy)i ant ci at d. l r i i s i p e H i h t ansact on r t ( )st t d by t e user i t e g r i aes ae h n h applcat on r qui em ent or ser i e l velagr em ent i i e r s vc e e s ar hi h enough t R equi e per or ance anal si t sks e g o r f m y s a i t e desi n phase. n al i 4 5 35. hy t l seasonaly. . r i i s i p e P eak t ansact on per od ( . o r i ne i a r 16% t 23% of t ansactons are i t ractve dat o r i ne i a ent y.i addi i n. lr i n c 1% t 7% of t ansactons are i t ractve dat ent y. r 24% t 30% of t ansactons are i t ractve dat o r i ne i a ent y. evel pm ent and/ r y s o s n h g D o . r i i eg.Chapter 3 i R at n g 0 1 2 3 D escri t o n p i N o peak t ansact on per od i ant ci at d.
36.col rs d g i i o underlni g. n A s f w screens as possi l t accom plsh a busi ess e be o i n f ncton u i B ii gualsupport ( upport t o l nguages.and ot er i di at rs i n h n c o Hard copy user docum ent ton of onlne t ansactons ai i r i M ouse i t rf ce ne a P op-up w i dow s.hi hlghtng. S r no 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 E nd-user E ffi i ncy F actor ce N avi atonalai s ( or exam pl .j m ps. g i d f e u i u dynam i aly generat d m enus) c l e M enus O nlne hel and docum ent i p s A ut m at d cursor m ovem ent o e Scroli g ln R em ot pri tng ( i onlne t ansactons) e n i va i r i P reassi ned f ncton keys g u i B at h j bs subm it d f om onlne t ansactons c o te r i r i C ursor sel cton of screen dat e i a Heavy use of reverse vi eo.count as f ur ln s s w a o iem s) t M ulii gualsupport ( upport m ore t an t o l nguages.Function Points 7) End-user efficiency Was the application designed for end-user efficiency? There are seven end-user efficiency factors which govern how this point is rated. tln s s h w a count as si iem s) x t .f ncton keys.Table 77 .
o i h Si or m ore of t e above. o h h Four t fve of t e above. Si or m ore of t e above. e nm z r m z a t use of t m pl t s) e ae .and st t d requi em ent x h ae r s f r end-user ef i i ncy are st ong enough t requi e o fc e r o r use of speci lool and processes t dem onst at at s o r e t at t e obj ctves have B een achi ved. h O ne t t ree of t e above.but t ere are no specii x h h fc user R equi em ent rel t d t ef i i ncy. h h e i e 4 5 37.Chapter 3 R ati g n 0 1 2 3 D escri ti n p o N one of t e above.Table 8) On-Line update How many ILF’s are updated by On-Line transaction? 78 .and st t d requi em ent x h ae r s f r end-user ef i i ncy are st ong enough t requi e o fc e r o r desi n t sks f rhum an f ct rs t be i cl ded ( or g a o a o o n u f exam pl . r s a e o fc e Si or m ore of t e above.m i i i e keySt okes.m axi i e def uls.
n u 5 38. n u V u i s o s O nlne updat of f ur or m ore cont olfl s i i e o r ie s i cl ded.hi h vol m es bri g cost consi eratons i t n to g u n d i no t e R ecovery process.Table 9) Complex processing Does the application have extensive logical or mathematical processing? 79 .Hi hl aut m at d recovery h g y o e procedures W ih m i i um operat r i t rventon are t nm o ne i i cl ded. ol m e of updatng i l w and recovery i easy. i e o ne o c ie s n u I addii n.prot cton agai st dat l st i essentaland n to e i n a o s i has B een speci ly desi ned and program m ed i t e al g n h syst m . ol m e of updatng i l w and recovery easy.Function Points R ati g n 0 1 2 3 4 D escri ti n p o N one of t e above. h O nlne updat of one t t ree cont olfl s i i e o h r ie s i cl ded. n u V u i s o O nlne updat of m aj r i t rnall gi alfl s i i cl ded. e I addii n.
m i si g dat val es. h A ny one of t e above.speci laudi tv r f e a t processi g)and/or applcaton specii securiy n i i fc t P rocessi g n E xt nsi e l gi alprocessi g e v o c n E xt nsi e m at em atcalprocessi g e v h i n M uch excepton processi g resuli g i i com pl t i n tn n n ee t ansactons t at m ust be processed agai .f r r i h n o exam pl .f r exam pl . h h A ny f ur of t e above.Table 10) Reusability Was the application developed to meet one or many user’s needs? 80 . h A ny t o of t e above.m uli edi .or devi e b lte o e tm a c i dependence n 4 5 39.i com pl t A T M t ansactons caused by T P e n ee r i i t rrupton.Table R ati g n 0 1 2 3 4 5 D escri ti n p o N one of t e above.Chapter 3 S r no 1 2 3 C om pl x P rocessi g F actor e n Sensii e cont ol( or exam pl . o h A l fve of t e above li h 40. w h A ny t ree of t e above.or f ied edis ne i s n a u al t C om pl x processi g t handl m uli l i put out ut e n o e tp e n / p possi iii s.
and t e e o h applcaton i cust m i ed f r use by m eans of i i s o z o user param et r m ai t nance. e R eusabl code i used w ihi t e applcaton. e s t n h i i Less t an 10% of t e applcaton consi ered h h i i d m ore t an one user' needs. e ne 4 5 41.and t e e o h applcaton i cust m i ed by t e user at source i i s o z h code l vel e . d h s T he applcaton w as specii aly packaged i i fc l and/or docum ent d t ease re-use.Table 11) Installation ease How difficult is conversion and installation? 81 . T he applcaton w as specii aly packaged i i fc l and/or docum ent d t ease re-use. h s T en percent ( 0% )or m ore of t e applcaton 1 h i i consi ered m ore t an one user' needs.Function Points R ati g n 0 1 2 3 D escri ti n p o N o reusabl code.
aut m at d conversi n and i st laton T ool w ere n to o o e o n al i s provi ed and t st d. d e e 2 3 4 5 42.T he i pact of o n al i d d e e m conversi n on t e proj ct i C onsi ered t be i port nt o h e s d o m a . r o n al i N o speci lconsi eratons w ere st t d by t e user but speci lset p i requi ed a d i ae h a u s r f r i st laton. I addii n t 2 above.Chapter 3 n R ati g 0 1 D escri ti n p o N o speci lconsi eratons w ere st t d by t e user.Table 12) Operational ease How effective and/or automated are start-up.aut m at d conversi n and i st laton T ool w ere n to o o e o n al i s provi ed and t st d.and o n al i r s ae h conversi n and i st laton gui es w ere provi ed A nd t st d. d e e I addii n t 3 above. and recovery procedures? 82 .and no speci lset p i a d i ae h a u s requi ed f r i st laton. o n al i C onversi n and i st laton requi em ent w ere st t d by t e user. C onversi n and i st laton requi em ent w ere st t d by t e user.and o n al i r s ae h conversi n and i st laton gui es w ere provi ed and t st d.T he i pact of o n al i d d e e m conversi n on t e proj ct i not consi ered t be i port nt o h e s d o m a . back up.
and recovery processes w ere f i a provi ed.back-up.or al of t e f low i g iem s appl t t e A pplcaton. l h ol n t y o h i i Sel ct al t at appl . o i s e u h i i 5 43.but operat r i t rventon i requi ed. T he applcaton m i i i es t e need f r t pe m ount .back-up. d o ne i s r 1-4 E f ectve st rt up.Table 13) Multiple sites Was the application specifically designed.Function Points R ati g n 0 D escri ti n p o N o speci loperatonalconsi eratons ot er t an t e norm al acka i d i h h h B up procedures w ere st t d by t e user.except e lh y t n u as not d ot erw i e. and supported to be installed at multiple sites for multiple organizations? 83 .and recovery processes w ere f i a P rovi ed. i i nm z h o i T he applcaton i desi ned f r unat ended operaton. i i nm z h o a s T he applcaton m i i i es t e need f r paper handlng.but no operat r i t rventon i requi ed ( ount asT w o d o ne i s r c iem s) t . h e h h o a D h i i A ut m atc error recovery i a f at reO f t e applcaton. ae h O ne. developed.som e. nat ended i i s g o t i U t operaton m eans no operat r i t rventon i requi ed t operat i o ne i s r o e t e syst m ot er t an t st rt up or shut ow n t e applcaton. e h s E f ectve st rt up.E ach iem has a poi t V al e of one.
r s N eeds of m uli l sies w ere consi ered i t e tp e t d n h desi n. The following characteristics can apply for the application: 84 .and t e applcaton i desi ned t operat g h i i s g o e under dif rent ardw are and/or sof w are fe H t envi onm ent .Table 14) Facilitate change Was the application specifically designed. t h i i s b 1 2 3 4 5 44. and supported to facilitate change?.Chapter 3 R ati g n 0 D escri ti n p o U ser requi em ent do not requi e consi eri g r s r d n t e needs of M ore t an one user/i st laton sie. developed. D ocum ent ton and support pl n are provi ed ai a d and t st d t support t e applcaton at m uli l e e o h i i tp e sies and t e applcaton i as descri ed by 3.and t e applcaton i desi ned t operat g h i i s g o e onl under si iar Hardw are and/or sof w are y m l t envi onm ent . r s D ocum ent ton and support pl n are provi ed ai a d and t st d t support t e applcaton at m uli l e e o h i i tp e sies and t e applcaton i as descri ed by 1 or t h i i s b 2.and t e applcaton i desi ned t operat g h i i s g o e onl under i entcal ardw are and sof w are y d i H t envi onm ent . h h n al i t N eeds of m uli l sies w ere consi ered i t e tp e t d n h desi n. r s N eeds of m uli l sies w ere consi ered i t e tp e t d n h desi n.
and/or l gi appled t m ore t an one e o c i o h i t rnall gi alfl ( ount as t o iem s) ne o c ie c w t . or e s e t f exam pl .f r exam pl . nd/or e m e s o ea l gi appled t onl one i t rnall gi alfl ( ount o c i o y ne o c ie c as one iem ) t .but changes t ke ef ect onl on t e a f y h next busi ess day. nd/or e e s o ea l gi com bi atons on one or m ore i t rnall gi al o c n i ne o c fl s ( ount as t ree iem s) ie c h t . 1 2 3 4 5 45.Function Points S r no 0 F acii ate factors lt N one of above Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl si pl request .f r exam pl . Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl request of average com pl xiy.Table 85 . Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl com pl x request . n B usi ess cont oldat i kept i t bl s t at are n r a s n a e h m ai t i ed by t e user w ih onlne i t ractve n an h t i ne i P rocesses and t e changes t ke ef ect i m edi t l h a f m a ey ( ount as t o iem s) c w t . B usi ess cont oldat i kept i t bl s t at are n r a s n a e h m ai t i ed by t e user w ih onlne i t ractve n an h t i ne i P rocesses.
Chapter 3 n R ati g 0 1 2 3 4 5 D escri ti n p o N one of t e above. h A ny t o of t e above. Note: .65 + ((sum of all GSC factor)/100). 86 .Then VAF is calculated from the equation below VAF = 0. o h A l fve of t e above. h h A ny f ur of t e above.GSC has not been accepted in software industry widely. w h A ny t ree of t e above. ISO has also removed GSC from its books and only kept unadjusted function points as the base for measurement. Many software companies use Unadjusted Function point rather than adjusted. h A ny one of t e above. li h All the above GSC are rated from 0-5. Read GSC acceptance in software industry Rating Tables for All elements of Function Points Below shown are look up tables which will be referred during counting.
if your DET (data element) exceeds >15 and FTR (File Type Reference) is greater than 2. The rest down tables also show the same things. then this should be the FP (Function Point).Function Points E I R ati g T abl n e D ata E l m ents e FT R Less t an 2 h E qualt 2 o G reat r t an 2 e h 1 to 4 3 3 4 5 to 15 3 4 6 G reater than 15 4 6 6 47.Table 87 . E O R ati g T abl n e D ata E l m ents e FT R Less t an 2 h 2 or 3 G reat r t an 2 e h 1 to 5 4 4 5 6 to 19 4 5 7 G reater than 19 5 7 7 48. These tables will be there before us when we are doing function point count. Example. if your DET count (Data Element) and FTR (File Type Reference) exceed these limits. The best is put these values in Excel with formulae so that you have to only put quantity in the appropriate section and you get the final value. then the Function Point count is 6.Table This table says that in any EI (External Input).
Table 88 .Table I F R ati g T abl L n e D ata E l m ents e RET 1 RET 2t 5 o G reat r t an 6 e h 1 to 19 7 7 10 20 to 50 7 10 15 51 or m ore 10 15 15 E I R ati g T abl F n e RET 1 RET 2t 5 o G reat r t an 6 e h 1 to 19 5 5 7 20 to 50 5 7 10 51 or m ore 7 10 10 50.Chapter 3 E Q R ati g T abl n e D ata E l m ents e FT R Less t an 2 h 2 or 3 G reat r t an 2 e h 1 to 5 3 3 4 6 to 19 3 4 6 G reater than 19 4 6 6 49.
On basis of performance factor. Formula for VAF = 0. This is also called as "Performance factor". RET. FTR (this is basically all sections discussed above): This whole FP count will be called as "unadjusted function point". Counting the ILF.Function Points Steps to Count Function Points This section will discuss the practical way of counting the FP and coming out with a Man/Days on a project.65 + (sum of all GSC factor/ 100). Formula: Total function point = VAF * Unadjusted function point. EI. DET. EQ. you can calculate Man/Days Let’s try to implement these details in a sample customer project. EIF. Adding total of all 14 GSC to come out with total VAF. Make estimation how many function points you will do per day. Finally. Then put rating values 0 to 5 to all 14 GSC. Sample Customer Project 89 . make the calculation of adjusted function point.
Chapter 3 We will be evaluating the customer GUI.Figure There is one ILF in the above screen: The customer ILF. They will be verified credit card check. Every Customer can have multiple addresses. 90 . After putting the customer code and Customer name. update functionality 51. So i will just scope what the customer GUI is all about. Following is the scope of the customer screen:Customer screen will be as shown below. Customer will have add. Credit Card check is a external system.
t e address lst box.Table EIF lie outside the application boundary. Credit Card System Following the ILF counting rules ILF are logically related data from user point of view. ILF reside in Internal Application boundary and are maintained through elementary process of application. So accordi g t t e above I F ranki g n o h L n t bl a e T ot lf ncton a u i 1 7 52. 91 .Function Points There is one EIF in the above form. So hence goes the counting below for ILF I F C ustom er L D escri ti n p o N um ber of D E T N um ber of R E T T here are t t l9 D E T s. i le 9 T here i onl one R E T .check box t h i actve.t e cust m er s y h o addresses.even t e credi check e t h t but on. Customer resides in inside application boundary as we have full access over it.al t xt boxes.aladd and oa l updat but ons.Customer and Customer addresses belong logically to customer category.
but it’s not compulsory rule. T here' onl one t xt ox credi s y e b t card num ber and hence one D E T i put i t e si e col m n.Customer detail is received from external boundary that is customer input screen. 92 . ooki g at t e above L n h ratng t bl t e t t lFP i 5.and s n h d u R E T 0. Its is two because processing logic for add and update is very different. So there are two EI one for Add and one from update. In this sample project Customer ILF is maintained.Chapter 3 E I C redi card I form ati n F t n o D escri ti n p o T he credi card i f rm aton t no i ref renced i E I .Table Following EIF rules define in the previous sections: It’s a dynamic elementary process [For definition see “Dynamic and Static Elementary Process” Section] in which data is received from external application boundary. ot t i fl i e s F N e h s ie s onl ref renced f r credi card y e o t check. i a e h oa s So accordi g t t e above n o h ranki g t bl n a e N um ber of D E T N um ber of R E T 1 1 T ot lf ncton a u i 5 53. EI may maintain ILF of the application.
al t xt i i le boxes. s o m f So accordi g t t e above n o h ranki g t bl n a e T ot lf ncton a u i 3 6 55.one i t e s h address and t e second i t e h s h credi card i f rm aton and t i d t no i hr i cust m er hi sel.al add oa l and updat but ons.Table E I U pdate C ustom er D escri ti n p o N um ber of D E T N um ber of R E T T here are t t l9 D E T s.al add oa l and updat but ons. 9 T here are 3 FT R s.Function Points E I A dd C ustom er D escri ti n p o N um ber of D E T N um ber of F T R T here are t t l9 D E T s.t e address t t h lst box.one i t e s h address and t e second i t e h s h credi card i f rm aton and t i d t no i hr i cust m er hi sel s o m f So accordi g t t e above n o h ranki g t bl n a e T ot lf ncton a u i 3 6 54.t e address t t h lst box. 9 T here are 3 FT R s.even t e e t h credi check but on.check box actve.even t e e t h credi check but on.al t xt i i le boxes.Table 93 .check box actve.
Data that is credit card information crosses from credit card system to Customer system E O check credi card t D escri ti n p o O ne D E T C redi C ard num ber t and one R E T credi card isel. t t f N ot i t ere are no R E T w e e f h count def ul as one.That means we are going to do all CRUD functionality (ADD. But later when some refers to your FP sheet he will be completely lost.Look f r a t o R E T countng rul s defned i i e i n previ us secton. o i So accordi g t t e above n o h ranki g t bl n a e N um ber of D E T N um ber of R E T 1 1 T ot lf ncton a u i 4 57. For editing the customer we will need to retrieve the customer details.Table Following are rules to recognize EQ: It’s a dynamic elementary process in which result data is retrieved from one or more ILF or EIF. UPDATE. In this EP some input request has to enter the application boundary. The customer code is inputted from the same screen. Here the customer screen has add and update.Chapter 3 While counting EI I have seen many people multiplying it by 3. Following are rules to recognize EO Data should cross application boundary and it should involve complex logic. and DELETE). The customer details is displayed while the customer is editing the customer data. Output results exits the application boundary. Credit card check process can be complex as the credit card API complexity is still not known. 94 .This is not fair as it just shows laziness of the Cost estimation team. I can say the 2 * 6 that's = 12 FP for this EI customer.
nl o O y cust m er det is and cust m er o al o address w ilbe ref renced. E Q D i pl y C ustom er E di I form ati n s a t n o D escri ti n p o N um ber of D E T N um ber of F T R T here are 5 D E T s t be ret i ved o re C ust m er C ode.C ust m er A ddress.Table So now.Function Points EQ does not contain any derived data. The above customer data which is displayed does not contain any complex calculations. redi C ard num ber.Table 95 . ctve C t A i 5 . let’s add the total function point got from above tables: S ecti n N am e o I F C ust m er L o E O C redi C ard check t syst m e E I credi card F t i f rm aton no i E IC ust m er (A dd and o updat ) e E Q di pl y cust m er s a o edi i f rm aton tno i T ot lU nadj st d a u e Functon P oi t i ns F uncti n P oi t o n C ounted 7 4 5 12 3 31 59. l e So accordi g t t e above n o h ranki g t bl n a e T ot lf ncton a u i 2 3 58. ust m er o C o N am e.
TableSo using formulae: 96 . Language we will use. what architecture etc etc). G SC D at com m uni atons a c i D i t i ut d dat processi g s rb e a n P erf rm ance o Heaviy used confguraton l i i T ransacton rat i e O n-Li e dat ent y n a r E nd-user ef i i ncy fc e O n-Li e updat n e C om pl x processi g e n R eusabiiy lt I st laton ease n al i O peratonalease i M uli l sies tp e t Faciiat change lt e T ot l a V al e( -5) u 0 1 1 4 0 1 0 4 0 0 3 4 4 0 0 22 60. we have to calculate and tabulate the GSC and come out with the VAF.Chapter 3 So unadjusted function point comes to 31. In order to make it adjusted function point.Please note i have said this as Unadjusted function as we have not accounted other variance factor of project (Programmers leaving job.
Systems have become complex.97 = rounded to 27 FP. Now we know that the complete FP for the customer GUI is 27 FP. This section we will go in to fair depth of different SDLC models. But at heavy sacrifice of quality. huge team members are involved. programmers. Quotations are heavily affected by which development cycle you follow. Considering SDLC (System Development Life Cycle) This section is introduced to give an insight of different development software cycle.87 * 31 = 26. This factor affects the whole FP like anything. architects. implementation and maintenance. So. To manage this number of SDLC models have been created. Build and Fix model. Incremental Model. we say that we will complete 3 FP per day that is 9 working days. Example if client is not looking at quality and interested in only product rather than quality. That’s why programmer works at night. Rapid prototyping Model. be very particular with this factor. Now calculating the efficiency factor. calculating the Adjusted FP = VAF * Total unadjusted FP = 0.Function Points VAF = 0.65 + ((sum of all GSC factor)/100). analyst. I know upper manager people will say make it 7 FP per day and over load the programmer.SDLC is overall process of developing information systems through multi-step process systems from investigation of initial requirements through analysis. As the quotation depends heavily on which type of SDLC you will follow. So now. Following are popular models which are listed:Waterfall Model. testers. design.65 + (22/100) = 0. = 0. test and implement software systems. 97 . users etc. the cost of the project will be less.87. The days are gone when one COBOL programmer used to analyze. the whole customer GUI is of 9 working days (Note do not consider Saturday and Sundays in this). Spiral Model.
In this stage detail requirements. process diagram. pseudo code and other documentations are prepared.This is least glamorous phase which runs forever.Depending on the design document actual code is written here. each producing an early prototype representing a part of entire project. Implementation: . correction. On broader level it’s a series of short waterfall cycles. Waterfall is suited for low risk in areas of User Interface and performance requirements. Integration and Testing: . This is first step in technical phase. 98 .This is final stage where software is put in production and runs actual business. by providing emphasis to go back and reiterate earlier stages a number of times as project progresses. Following are stages in Waterfall model:System Requirement: .All pieces are brought together and tested. It also helps demonstrate a Proof of Concept at early software life cycle. But unfortunately requirement grows and changes through various stages. business rules. Bugs are removed in this phase. It has sequence of stages. Maintenance: . addition etc are done in this phase. Changes. output of one stage becomes input of other. System Design: . There is detail introduction about how to put maintenance quotation later in this book. Acceptance. so it needs feedback from one stage to other. but high risk in budget and schedule predictability and control.This initial stage of the project where end user requirements are gathered and documented. screen layout. Waterfall assumes that all requirements can be specified in advance. Spiral Model Spiral Model removes the drawback of waterfall model.Chapter 3 Water Fall Model This is the oldest model. Installation and Deployment: .
implementation (coding) and testing . Here errors are found in requirement phase itself. The initial emphasis is on creating prototype that looks and acts like the desired product. But for prototyping models in addition to the documents above we will also need to deliver the rough prototype. The problem with this model is that sometimes the prototype moves ahead to become the final live product which can be bad from design point of view. For build and fix model we will not deliver any of the documents and the only document delivered will be source code. So according to SDLC model deliverables change and hence the quotation. It’s a effective model but can have higher costing than other models as you require programmers during the initial phase of the software cycle. The main intention of introducing this section is because quotations are heavily affected by which software life cycle you follow. Rapid Prototyping Model This model is also called as Rapid Application Development. Example for waterfall model we will have Requirement documents. Prototype can be created by using tools which is different from those used for final product. where section of product are created and tested separately. We will divide the estimation across requirement. This book will mainly concentrate on waterfall model and spiral model deliverables. This approach can be quite dangerous and risky. Once the prototype is approved. its discarded and real software development is started from scratch. 99 . Source code and testing plans. Incremental Model In this model we divide products in to builds.Function Points Build and Fix Model This is the most way freelancers work Write some code and keep modifying it until the customer is happy. Because deliverables change according to SLDC model the project manager chooses for the project. Design documents.In what way the estimation has to divide across all deliverables is all up to the project manager and his plans. user feedback is taken for each stage and code is tested after it’s written. design.
Table The above table shows the division of project man/days across project.2 * Function Points 100 . D i tri uti n of m an/days s b o across phases 0. Total number of Test Cases = (Function Point) raised to power of 1.Chapter 3 P hase R equi em ent r s D esi n P hase g C odi g n T estng i P ercentage di tri uti n effort s b o 10 % of t t lef ort oa f 20 % of t t lef ort oa f 60 % of t t lef ort oa f 10 % of t t lef ort oa f 61. Number of Acceptance Test Cases = 1. But as said it up to the project manager to change according to scenarios.Now let’s put down the final quotation. days 9 1.2. days 4 0.This is as suggested from caper Jones. Ok now from the above function point estimation the estimation is 7 days let’s try to divide it across all phases. days 8 5. Just a small comment about test cases.Table The above sample is total 100 % distribution of effort across various phases. days 9 9 days P hase P ercentage di tri uti n s b o effort R equi em ent 10 % of t t lef ort r s oa f D esi n P hase g C odi g n T estng i T ot l a 20 % of t t lef ort oa f 60 % of t t lef ort oa f 10 % of t t lef ort oa f 62.
Test cases are non-deterministic. But still if interested http://www. Final Quotation One programmer will sit on the project with around 1000 $ salary / Month.W est rn road 17. The upper quotation format is in its simplest format.C alf rni . m t e io a Q uot ton num ber:90 ai D at :1/1/2004 e C ust m er I :. That means if test passes it takes “X” amount of time and if it does not then to amend it take “Y” amount of time etc etc.com/mac/resources/ templates.aspx?pid=templates has good collection of decent templates.20090D A T A E N T R Y o D Q uantt iy 1 D escri ton pi C ust m er o P roj ct e D i count s 0% T axabl e 0% T ot l a 290 dolars l Q uot ton V ald f r 100 days ai i o G oods delvery dat w ih i 25 days of hal paym ent i e t n f Q uot ton P repared by:. X Y Z SO FT W A R E C O M P A N Y T o: T N C Li ied.X Y Z estm aton depart ent ai i i m A pproved by : SP E G depart ent X Y Z m 101 .microsoft.Function Points 20-25 % of total effort can be allocated to testing phase. So his 9 days salary comes to 290 dollars approx. So no hard and fast rule of quotation template. Every company has his quotation format accordingly.
GSC Acceptance in Software industry GSC factors have been always a controversial topic. If you have downloaded e-book then you will need to download cddata. AFP. Let’s do a small experiment to view relationship between FP. So the formulae is VAF = 0.zip for all files. GSC and VAF.65 + (GS/100).Chapter 3 CustomerSampleFP. Most of the software companies do not use GSC. Here’s the table with every five incremental values in formulae and plot. but they also use UAFP rather than AFP.xls is provided with the CD which has all estimation details which you can refer for practical approach. ISO has also adopted function point as unit of measurement. rather than they base line UAFP or construct there own table depending on company project history.In this experiment we will assume UAFP = 120 and then lot graph with GSC increment of five. 102 .
Table 103 .Function Points FP FP 78 84 90 96 102 108 114 120 126 132 138 144 150 156 162 G SC 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 63.
Figure The following are the observation from the table and plot:Graph is linear.65” is taken. Readers must be wondering why 0. half of 70.65 + (70/100) = 1.So the VAF = 1.65” is required.35.35 when GSC is 35 to complete the one factor “0. VAF will be one when GSC is 35 i. 104 . That means complexity decreases. When GSC < 35 then AFP < UAFP.GSC = 35 AFP = UAFP.65? There are fourteen GSC factor from zero to five. Note value is 0.65. UAFP = FP VAF should be one. When GSC > 35 then AFP > UAFP. So in order to complete value “1” value “0. It also captures that nature of complexity is linear. So the graph starts from UAFP*0. So the maximum value of VAF = 0. In order that VAF does not have any affect i.65.e.Chapter 3 64. That means complexity increases.e. If the GSC value is zero then VAF is 0.
The project is of 100 UAFP and there is no consideration of installation previously by client so the 11th factor is zero.Function Points But following is the main problem related to GSC. 105 . Here’s the example to demonstrate GSC problem. Let’s take 11th GSC factor “installation ease”. GSC is applied throughout FP even when some GSC does not apply to whole function points.
Chapter 3 G S C w i h i stalati n ease w i h Z E R O t n l o t G SC D at a com m uni atons c i D i t i ut d dat s rb e a processi g n P erf rm ance o Heaviy used l confguraton i i T ransacton rat i e O n-Li e dat n a ent y r E nd-user ef i i ncy fc e O n-Li e updat n e C om pl x e processi g n R eusabiiy lt I st laton ease n al i O peratonalease i M uli l sies tp e t Faciiat change lt e T ot l a V al e( -5) u 0 1 1 4 0 1 0 4 0 0 3 0 4 0 0 18 65.Table 106 .
83. So we change out GSC table with installation ease to 5. So the FP = 100 * 0. But later the client demanded for full blown installation for the project with auto updating when new version is released. GSC with installation ease “5” 107 .65 + (18/100) = 0.83 = 83 Function Points.Function Points VAF = 0.
Chapter 3 G S C w i h i stalati n ease w i h F I E t n l o t V G SC D at a com m uni atons c i D i t i ut d dat s rb e a processi g n P erf rm ance o Heaviy used l confguraton i i T ransacton rat i e O n-Li e dat n a ent y r E nd-user ef i i ncy fc e O n-Li e updat n e C om pl x e processi g n R eusabiiy lt I st laton ease n al i O peratonalease i M uli l sies tp e t Faciiat change lt e T ot l a V al e( -5) u 0 1 1 4 0 1 0 4 0 0 3 5 4 0 0 23 Figure 66 108 .
88 = 88. This value is achieved by counting all new EP (Elementary process) given in change request.When CR is for removing some functionality this value is counted. VAFB: . FTR. 109 . Example previously the application was desktop and now is changed to web so the GSC factor is affected. Function point group has come out with a methodology called as “Enhancement Function Points”. ILF. CHGA: . EO and EQ which are affected. updating any database structure changes etc etc. Down is the formulae Formulae of EFP (Enhanced Function Points) = (ADD + CHGA) * VAFA + (DELFP) * VAFB ADD: . Well from this book point of view we have to evaluate this changes which can be addition or deletion of requirements.88 so the FP = 100 * 0. Believe me programmers get pissed if the customer is changing his plans every fortnight. Enhancement Function Points Major software project fail not because of programmer’s or project managers but due to moody and changing customers.65 + (23/100) = 0. DELFP: . The project started of well but customer called ten times in a day to change something or other. VAFA: . but if they ever estimator has to take note of it by counting the deleted elementary process.Function points which are affected due to CR. just think downloading new version . Do not count elements which are not affected. very enthusiastic. EI. deleting the old version . It’s rare that customer removes functionalities (at least in India).Function Points So VAF = 0. To make an autoupdation for a software versioning can no way be done in 5 function points . Best ways is baseline your UAFP and make your estimation on base of UAFP.Again removal affects Value added factor.This is VAF factor which is because of CR. The difference is of only 5 FP which from no way a proper effort estimate.This is new function points added. This value is achieved by counting all DET. In one of our huge projects we had good programmers. So that’s the reason GSC is not accepted in software industry.
CHGA: . CR (Change request) is covered in more detail in Change request chapter. DELFP: . 110 . CHGB: . Enhancement function points is not covered from practical angle in this book and is left to the user’s as exercise. it time to count total function points of the application.Function points previously counted before enhancement.Deleted function points. ADD: .Chapter 3 Once we are through with calculating enhanced function points.Changed function points counted after enhancements. Total Function points = [UFPB + ADD + CHGA] – [CHGB – DELFP] UFPB: .Newly added functionality which leads to new function points after enhancements.Changed function points before enhancements.
It also serves as handover when any new programmer comes in the project. Credit Card information is validated with payment gateway. They capture interest of the stake holders of the system. Use Case document also serve as valuable input to the design of software. Use Case is document which describes “WHAT” our system will do at highlevel and from user perspective. Its document which stands between the Customer and Programmers/Architecture/Business analyst/Etc. Ok let’s make one good sweet definition of Use Case which comes from Ivar Jacobson’s “Object-oriented Software Engineering (OOSE)” “Use Case is a sequence of transactions in a system. It’s the document which can stand not only for programmer. Alistair Cockburn constructed the 'Actors and Goals conceptual model' while writing use case guides for the IBM Consulting Group. Thanks to Ivar Jacobson to come out with such a wonderful way of communication by using Use Case Documents. Use Case does not capture “HOW” the system will do. In 1994. Use Cases can also be termed as smallest unit of delivery. architecture but also for the stake holders.Use Case Points Chapter4 Use Case Points Introduction to Use Case Modeling Working in Ericsson in the late 1960s Ivar Jacobson devised Use-Case Documents. In short it serves in the whole life cycle of software development. Example a simple narrative statement about a system can also be a Use Case. Use Case Documents are user’s vision in more understandable format. After credit card information is valid user is validated inside the system. . It provided guidance as how to structure and write use cases. whose task is to yield a measurable value to an individual actor of the system” Parts of Use Case There is no standard in writing Use Cases. Later Use Case Documents became subset of UML.” 111 . A detail description can also be a Use case. Example a simple statement something like this:“User enters his credit card information.
The above requirement gathered is narrative and at very high level of abstraction, but it’s a Use Case. Below is a detail version of it. 1. 2 3. 4. 5. Use enters Credit Card information. Credit Card length is checked. If length is appropriate the information is sent to payment gateway or else appropriate error messages are displayed. Payment gateway sends back details saying that does the credit card have enough balance to complete the transaction. If amount in his account is not enough “Insufficient amount error message” is displayed. If amount is sufficient to complete the transaction appropriate amount is deducted from his account. Simple narrative. Tabular column Maintained in software. Use Case structure and depth can vary from organization to organization and from individual to individual. Let’s try to understand various terminologies in Use Case modeling.
Use Case can be any format example:
Actor is “A ROLE” that someone or something in the environment can play in relation to the business. Example: - Accountant is role in accounting system.
Actor who initiates the transaction.
In order to achieve goals primary actor uses other actor they are called as Supporting Actor.
Use Case Points
An atomic set of activities that are performed either fully or not at all.
The performance of the task (or transaction) has some visible, quantifiable impact on primary actor who initiated the task or transaction.
It’s a sequence of steps that can have success and failure scenarios.
Use Case is a sequence of transactions in a system, whose task is to yield a measurable value to an individual actor of the system.
Use Case can have linkages one use case can use others. Example Use Case “Validate User” will be used by “Order Product” to complete a transaction.
Introduction to Use Case Points
Karner identified that this document can also be used to measure and estimate effort. This section will make a walk through of karners work and give one sample example. So let’s start with the definition. Use Case Point is software sizing and measurement based on Use Case Document." Use Case Point" is based on work by gustav karner in 1993.It was written as a diploma thesis at university of linkoping This work is modification of work by Allen Albrecht on function points. As said before Use Case says “WHAT” a system can do rather than “HOW” it will do it. We will be using Use Case documents for estimation so the “WHAT” of the Use Case document has to very precisely defined. Requirements and scope of the project becomes clearer as the project proceeds. Scope is clearer at the design phase rather than requirement phase. But quotations are prepared at very early phase so it’s difficult to revert back once
the quotation is given to client. In short Use Case has to be in detail so that estimation has good accuracy. While requirements are gathered the writer of the Use Case can write in one of the following modes:Summary Goal Level. User Goal Level Sub-Function Level. Summary Goal level are the most top in hierarchy. Summary level Use Cases run over hours, days or years. They are long running Use Cases which is collection of Use goal level Use Cases. They provide a table of content for the User Goal level Use Cases. User-Goal level Use Cases are the greatest interest from user perspective. It’s a elementary process. As compared to Summary Goal level they are not long running. User Goal levels are completed in one sitting (1-20 minutes). They can have Sub-Function Use Cases below them.Sub-Function level Use Cases are smallest unit of Use Case Types. Mostly required to carry out User-Goal level Use Cases. They are mostly introduced to improve clarity or to be used by other Use Cases. Example: - Save File, Search Supplier etc. Let’s try to see a sample and take that sample to all three levels of goal describes up. Here’s a simple summary-goal level Use Case for opening a new bank account. This book has taken simple template later more detail templates will be explored.
Use Case Points
U se C ase N am e A ct r o G oal St ps of U se C ase e
C reate B ank A ccount. C ust m er o Sum m ary G oalLevel C ust m er Fili personaldet i f rm . o l n al o P ersonalD et i f rm i subm it d t al o s te o t e scrutny depart ent f r h i m o genui eness of t e det is. n h al A f er scrutny i t e det is are not t i f h al proper t e cust m er i i tm at d t fl h o s n i e o il det is agai .I det is are proper t e al n f al h bank account det i i sent t al s o cust m er by post o .
“Create Bank Account “Use Case is a summary level goal level as this Use Case is not completed in one sitting. The whole process will take some time (that’s minimum of one day).Estimation using summary level Use Case can give very misleading results. So we will not use summary level Use Case for estimation. Now let’s take the same summary level goal level to a user goal level. So “Create Bank Account” will further be broken down in to Elementary process type of Use Case. User goal level Use Case is the right level of Use Case on which estimation can be done. Note: - A User goal level Use Case can be easily mapped to an elementary process of Function Points. Use Case “Create Bank Account” is further divided in to:Use Case “Customer Applies for New Account”. Use Case “Scrutiny of Account Details”. Use Case “Intimate Customer about Bank Details”.
116 .he has t no i o s il t put i address i f rm aton. iy. i code.Table This Use Case does not involve different scenarios and other details of the Use Case.Savi g A ccount et ) C n c A f er personali f rm aton of cust m er i fled. C ust m er i f rm aton i al o sent t t e pri t r so t at o no i s s o h ne h cust m er has one hardcopy of t e applcaton f rm . o h i i o 67.Landlne) l i . ount y A A Pn C t C r A f er A ddress i f rm aton i fled C ust m er fls i t e t no i s il o il n h P hone i f rm aton. Now the above Use Case “Customer Applies for New Bank Account “ can be completed in one sitting (Max this process will take 30 minutes on Computer Screen). ast N am e.C ust m er can fl m uli l o n no i o il tp e addresses.Chapter 4 U se C ase N am e A ct r o G oal St ps of U se C ase e C ustom er A pples for N ew B ank A ccount i C ust m er o U ser-G oalLevel C ust m er Fil i personaldet i i f rm aton lke Fi st o ls n al n o i i r N am e. ddress2. ype of B ank A ccount L M d e T ( urrent A ccount . So at least let’s promise our self that before starting estimation using Use Case points our Use Case should at least be user goal level Use Case. hone h ol n n o i P P T ype (M obie .P hone num ber i o il n tp e has t e f low i g i f rm aton : hone N um ber. i dl N am e. A f er al i f rm aton i fled up det is are pushed t t e t ln o i s il al o h scrutny pool i .A ddress i f rm aton has t e f low i g det is no i h ol n al : ddress1.C ust m er w ilbe provi ed w ih no i o l d t opton t fl i m uli l phone num bers. As the whole intention was to show what a user goal level use case is.So it’s a User Goal level. If you look the Data details in user goal level gives more detail picture and estimation will be more refined. The other two Use Cases “Scrutiny of new bank details” and “Intimate Customer about status” is left to users as home work.
s s a t y h U ser can sel ct and vi w t e bank account t pe det is.Use Case Points Let’s try introducing some sub-function level Use Cases for the above project. Define transaction and steps for the actor to achieve the goal. So we introduce one more Use Case “Select Bank Account Type”. Sub-Function Use Cases are mainly helper Use Cases. Define alternate scenarios if any present for the Use Case 117 . But at least have user goal level during requirement phase. U se C ase N am e A ct r o G oal St ps of U se C ase e S el ct B ank A ccount T ype e C ust m er o Sub-Functon T ype i U ser put i account t pe t search. Having Sub-Function level Use Cases during estimation is very good. But sub-function level Use Cases mainly becomes clear only during design phase and not during requirement. Note the last step returns back to “Customer Applies for New Bank Account” Use Case. But yes if you have it nothing like it.Table The above described is a sub-function level type Use Case. Identify Actors. Identify Goals for the Actors. n y o U ser i di pl yed w ih bank account t pes t e bank has. So there will be a search screen for bank account type. which are either extended or used. Steps of Use Case Point Estimation The first four steps are steps for normal identification of Use Case and after that are steps for Use Case Points. Application form of the bank also needs bank account type to be filled in. e e h y al W hen user doubl clck he i ret rned back t e i s u o “ C ust m er A pples f r N ew B ank A ccount o i o ” 68.
A o c a o Fl R D B M S) V al e/F actor u Si pl act rs m e o A verage act rs o 1 2 C om pl x e C om pl x act r i i t ractng norm aly e o s ne i l t rough G U I h . Second column is the litmus test for making decision which type of actor falls in which category. T P .or h o ( F probabl som e user defned prot col y i o ) 2) ct r w hi h are dat st re( ies. Table 2.Table Determine number of UUCW (Unadjusted Use case Weight): The second step is to count Use Cases and assign weights depending on number of scenarios and number of transactions. 3 69. The last column provides the factor of complexity C l ssi i ati n a fc o L i m us T est to R ecogni e t z C l ssi i ati ns a fc o Si pl act rs are t ose w hi h m e o h c com m uni at t Syst m t rough A P I c e o e h A verage act rs are recogni ed i t ey o z f h f low i g propertes : ol n i 1)A ct rs w ho are i t ractng t e syst m o ne i h e t rough som e prot colHT T P .Chapter 4 Determine the UAW (Unadjusted Actor weight): The first step is to classify all the actors in to following classification.0 will give you clear idea of how to classify the actors. 118 .
All technical factors will be assigned a value from 0 to 5 depending on complexity.Table Determine Total UUCP (Unadjusted Use Case Point) : Total UUCP = Total UAW + Total UUCW Computing technical and environmental factor: Final step is to take in to account the technical complexity. 119 .Use Case Points U se case T ype L i m us test to t deci e the d C l ssi i ati n a fc o G reat r t an or equal e h t 3 t ansactons o r i B et een 4 t 7 w o t ansactons r i G reat r t an 7 e h t ansactons r i V al e/F actu or or 5 10 15 Si pl m e A verage C om pl x e 70.
n al c e B ut i t e clent i l oki g f r f h i s o n o som e cust m i st laton o n al i probabl dependi g on m odul y n e w i e .I c e n al f t e requi em ent i such t at h r s h w hen t ere i a new versi n t ere h s o h shoul be aut i st laton. 5 120 .heavy t x cal ul ton r n a c ai et .nvent ry s o n I o t acki g. h g e t I clent l oki g f r i st laton s i o n o n al i ease? B y def ul w e get m any a t i st lers w hi h creat package. 5 T7 E asy use 0. ne of our clent has s O i requi em ent t at w hen t e clent r h h i w ant t i st l he can choose s o n al w hi h m odul s he can i st l. c D o w e i t nd t keep t e ne o h reusabiiy hi h? So w ili crease lt g l n t e desi n com pl xiy.T hese d o n al i f ct rs w ilcount w hen assi ni g a o l g n val e t t i f ct r u o hs a o I user f i ndl at t e t p s re y h o pri riy? o t T2 1 T4 1 T5 R eusabl e C ode I st laton n al i E ase 1 T6 0.Chapter 4 T echni al c factor T1 D i t i ut d s rb e Syst m e R esponse tm e i C om pl x e I t rnal ne P rocessi g n W ei ht g 2 D escri ti n p o I t e syst m havi g di t i ut d s h e n s rb e archiect re or cent alzed t u r i archiect re? t u D oes t e clent need t e syst m h i h e t f st I tm e response one of o a ? s i t e i port nt crieri ? h m a t a I t e B usi ess process very s h n com pl x? Li e com plcat d e k i e account cl si g.
o c o i D oes t e proj ct depend i usi g h e n n t i d part cont ol ? So f r hr y r s o underst ndi g t e t i d-part a n h hr y cont ol and st dyi g is pros r s u n t and cons consi erabl ef ort w il d e f l be requi ed.Table 121 .So o z i n h uu t at al o i creases t e h s n h A rchiect re desi n com pl xiy t u g e t and hence t i f ct r. d e n y W ilt e sof w are f om user l h t r perspectve be so com pl x t at i e h separat t ai i g has t be e r nn o provi ed? So t i f ct r w ilvary d hs a o l accordi gl n y T 10 C oncurrent 1 T 11 Securiy t obj ctves e i 1 T 12 D i ect access r t t id o hr partes i 1 T 13 U ser t ai i g r nn f ciii s a lte 1 71.So t i f ct r r hs a o shoul be rat d accordi gl . e t hs u I t e C ust m er l oki g at s h o o n havi g heavy securiy lke SSL n t i or have t w rie cust m code o t o l gi f r encrypton. hs a o I t e cust m er l oki g at l rge s h o o n a num bers of users w orki g w ih n t l cki g support T hi w il o n ? s l i crease t e archiect re n h t u com pl xiy and hence t i val e.Use Case Points T echni al c factor T8 T9 P ort bl a e E asy t o change W ei ht g 2 1 D escri ti n p o I t e cust m er l oki g f r al o s h o o n o s cross pl t orm i pl m ent ton? af m e ai I t e cust m er l oki g f r hi h s h o o n o g cust m i aton i t e f t re?.
5 D escri ti n p o A re al t e peopl w orki g i t e lh e n n h proj ct f m ii r w ih dom ai and e a la t n t chni aldet is of t e proj ct So e c al h e ? probabl you w ilspend your m ost y l tm e i expl i i g t em al know i n an n h l how ' .Chapter 4 Equation for Tfactor = sum(T1.I s i port nt e e e g t m a t at peopl on t e proj ct shoul h e h e d have basi know l dge of O O P ' c e s concept . How t e anal st w ho i l adi g t e h y s e n h proj ct ..6 + (0.D oes he have enough e ? know l dge of t e dom ai ? e h n E2 A pplcaton experi nce i i e 0. EF(Environmental Factor): There are other factors like trained staff. 5 122 . 5 E3 O bj ct -ori nt d e s e e E xperi nce e 1 E4 Lead anal st capabiiy y lt 0. motivation of programmers etc which has quiet a decent impact on the cost estimate E nvi onm entalF actor W ei ht r g E1 Fam ii riy w ih proj ct la t t e 1...01 * Tfactor). s How m uch i t e applcaton s h i i experi nce? e A s use-case docum ent are i put t s n s o O bj ct ori nt d desi n.T13) TCF (Technical Complexity Factor): TCF = 0.
T hi Fact r you can put o s o accordi g t how sof w are i dust y i n o t n r s goi g on? E xam pl i t e sof w are n e f h t m arket i very good put t i at s hs m axi um val e. e n f h A nd t e hand over becom es realy h l t ugh. ++. Calculating Environmental Factor = EF = 1. m A re t ere part tm e st f s i proj ct h -i af n e lke consulant et ? i t s c How t e l nguage com pl xiy h a e t A ssem bl .AUCP = UUCP * TCF * EF Multiplying by Man/Hours Factor: AUCP * Person/Hours/AUCP.Table Efactor = SUM (e1. l u I t e clent cl ar of w hat he w ant ?. et yV c c c E6 St bl requi em ent a e r s 2 E7 E8 P art T i e St f .Use Case Points E nvi onm entalF actor W ei ht r g E5 M otvaton i i 1 D escri ti n p o A re t e program m ers m otvat d f r h i e o w orki g on t e proj ct A s i st biiy n h e ? n a lt i proj ct w ilal ays l ad t peopl n e l w e o e l avi g hal w ay t ere source code.I s h i e s have seen clent expect tons are t e i s ai h m ost i port nt f ct r i st biiy of m a a o n a lt requi em ent .. Karner  proposed a factor of 20 staff hours per use case point for a project estimate.I t e clent i of hi hl r s f h i s g y changi g nat re put t i val e t n u hs u o m axi um ..m af D ifcul program m i g fi t n l nguage a -1 -1 72.e8).4 + (-0.A s good t e m arket m u h m ore t e j bs and m ore t e h o h program m ers w ilj m p. b6.03 * Efactor) AUCP (Adjusted Use Case Points): Finally calculating the Adjusted Use case points. 123 .
the general idea is to use twenty staff hours per UCP. in this case. D i t i ut d processi g and dat t ansf r are onlne and i O ne di ecton s rb e n a r e i n r i onl . Please note there is no official release as such for these ratings. So following is the methodology adopted by this book. Schneider and winters proposed number of staff hours per use case point depends on the environmental factors. r i P rocessi g f nctons are dynam i aly perf rm ed on t e m ost n u i c l o h A ppropri t com ponent of t e syst m . 1 . From points 1 to 9 it’s brought from Function Point rating table and the later tables are calibrated on my experience of using Use Case Points.Distributed System R ati g n 0 1 2 3 4 5 D escri ti n p o A pplcaton does not ai t e t ansf r of dat or processi g Functon i i d h r e a n i bet een com ponent of t e syst m . Guide Lines for Technical Factors This section will define guidelines how to rate from 0 – 5 the ratings for technical factors. w s h e A pplcaton prepares dat f r end user processi g on anot er com ponent i i a o n h of t e syst m such as P C spreadsheet and P C D B M S. ae h e 124 . y D i t i ut d processi g and dat t ansf r are onlne and i B ot s rb e n a r e i n h di ectons.Chapter 4 While sharks states that field experience has shown that effort can range from 15 to 30 hours per use case point. use twenty-eight staff hours per UCP.If the number exceeds 5. Another possibility is to increase the number of staff hours to thirty-six per use case point.t en i t ansf rred and processed on a s o r e h s r e anot er com ponent of t e syst m ( ot f r end-user P rocessi g) h h e n o n . it is usually recommended that changes should be made to the project so the number can be adjusted because. the risk is unacceptably high. The number of factors in E1 through E6 that are below 3 are counted and added to the number of factors in E7 through E8 that are above 3. if the total is 3 or 4. h e s D at i prepared f r t ansf r. If the total is 2 or less.
125 . End User Efficiency- Was the application designed for end-user efficiency? There are seven end-user efficiency factors which govern how this point is rated.Use Case Points 73. i s o h n R esponse tm e or t roughput i crii alduri g al i h s tc n l busi esshours. a i r R esponse tm e or t roughput i crii alduri g peak hours. o i h s tc n N speci ldesi n f r C P U utlzaton w as requi ed.Table 3.Table 2. o r s 2 3 4 5 74. n to o y s o s n h g devel pm ent and/or i pl m ent ton phases t m eet he st t d o .perf rm ance anal si t ol w ere used i t edesi n.st t d user perf rm ance requi em ent are st i gent n to ae o r s rn enough t requi e perf rm ance anal si t sks i t e D esi n o r o y s a n h g phase. I addii n. m e ai o T ae user perf rm ance requi em ent . rocessi g deadlne requi em ent w ih i t rf ci g r P n i r s t ne a n syst m sA re const ai i g. a o r s ae h P erf rm ance and desi n requi em ent w ere st t d and R evi w ed o g r s ae e but no speci lactons w ere requi ed. e r nn I addii n. rocessi g a g o ii i r P n deadlne i f r t e next busi ess day. Performance Objectives R ati g n 0 1 D escri ti n p o N o speci lperf rm ance requi em ent w ere st t d by t e U ser.N o speci ldesi n f r C P U utlzaton w as n a g o ii i requi ed.
count as f ur ln s s w a o iem s) t M ulii gualsupport ( upport m ore t an t o l nguages.Table 126 .and ot er i di at rs i n h n c o Hard copy user docum ent ton of onlne t ansactons ai i r i M ouse i t rf ce ne a P op-up w i dow s.col rs d g i i o underlni g.hi hlghtng.Chapter 4 S r no 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 E nd-user E ffi i ncy F actor ce N avi atonalai s ( or exam pl . n A s f w screens as possi l t accom plsh a busi ess e be o i n f ncton u i B ii gualsupport ( upport t o l nguages. tln s s h w a count as si iem s) x t . g i d f e u i u dynam i aly generat d m enus) c l e M enus O nlne hel and docum ent i p s A ut m at d cursor m ovem ent o e Scroli g ln R em ot pri tng ( i onlne t ansactons) e n i va i r i P reassi ned f ncton keys g u i B at h j bs subm it d f om onlne t ansactons c o te r i r i C ursor sel cton of screen dat e i a Heavy use of reverse vi eo. 75.f ncton keys.j m ps.
e nm z r m z a t use of t m pl t s) e ae .and st t d requi em ent x h ae r s f r end-user ef i i ncy are st ong enough t requi e o fc e r o r desi n t sks f rhum an f ct rs t be i cl ded ( or g a o a o o n u f exam pl . h h e i e 4 5 76.m i i i e keySt okes. Complex Processing Does the application have extensive logical or mathematical processing? 127 .but t ere are no specii x h h fc user R equi em ent rel t d t ef i i ncy.m axi i e def uls. h O ne t t ree of t e above. o i h Si or m ore of t e above. Si or m ore of t e above.Use Case Points R ati g D escri ti n n p o 0 1 2 3 N one of t e above. o h h Four t fve of t e above.and st t d requi em ent x h ae r s f r end-user ef i i ncy are st ong enough t requi e o fc e r o r use of speci lool and processes t dem onst at at s o r e t at t e obj ctves have B een achi ved. r s a e o fc e Si or m ore of t e above.Table 4.
f r r i h n o exam pl . h A ny t o of t e above. w h A ny t ree of t e above.speci laudi tv r f e a t processi g)and/or applcaton specii securiy n i i fc t P rocessi g n E xt nsi e l gi alprocessi g e v o c n E xt nsi e m at em atcalprocessi g e v h i n M uch excepton processi g resuli g i i com pl t i n tn n n ee t ansactons t at m ust be processed agai .or devi e b lte o e tm a c i dependence n 4 5 77.or f ied edis ne i s n a u al t C om pl x processi g t handl m uli l i put out ut e n o e tp e n / p possi iii s. 128 Reusable Code .m uli edi .Table 5.Chapter 4 S r no 1 2 3 C om pl x P rocessi g F actor e n Sensii e cont ol( or exam pl . h h A ny f ur of t e above. o h A l fve of t e above li h 78. h A ny one of t e above.i com pl t A T M t ansactons caused by T P e n ee r i i t rrupton.m i si g dat val es.f r exam pl .Table n R ati g 0 1 2 3 4 5 D escri ti n p o N one of t e above.
and t e e o h applcaton i cust m i ed f r use by m eans of i i s o z o user param et r m ai t nance. e ne 4 5 79. h s T en percent ( 0% )or m ore of t e applcaton 1 h i i consi ered m ore t an one user' needs.Use Case Points R ati g n 0 1 2 3 p o D escri ti n N o reusabl code. Easy to Install 129 . e s t n h i i Less t an 10% of t e applcaton consi ered h h i i d m ore t an one user' needs.Table 6. d h s T he applcaton w as specii aly packaged i i fc l and/or docum ent d t ease re-use.and t e e o h applcaton i cust m i ed by t e user at source i i s o z h code l vel e . e R eusabl code i used w ihi t e applcaton. T he applcaton w as specii aly packaged i i fc l and/or docum ent d t ease re-use.
aut m at d conversi n and i st laton T ool w ere n to o o e o n al i s provi ed and t st d.and o n al i r s ae h conversi n and i st laton gui es w ere provi ed and t st d.and no speci lset p i a d i ae h a u s requi ed f r i st laton. Easy to Use 130 .aut m at d conversi n and i st laton T ool w ere n to o o e o n al i s provi ed and t st d.and o n al i r s ae h conversi n and i st laton gui es w ere provi ed A nd t st d. o n al i C onversi n and i st laton requi em ent w ere st t d by t e user.Chapter 4 n R ati g 0 1 D escri ti n p o N o speci lconsi eratons w ere st t d by t e user.T he i pact of o n al i d d e e m conversi n on t e proj ct i C onsi ered t be i port nt o h e s d o m a . I addii n t 2 above.Table 7. d e e 2 3 4 5 80.T he i pact of o n al i d d e e m conversi n on t e proj ct i not consi ered t be i port nt o h e s d o m a . r o n al i N o speci lconsi eratons w ere st t d by t e user but speci lset p i requi ed a d i ae h a u s r f r i st laton. d e e I addii n t 3 above. C onversi n and i st laton requi em ent w ere st t d by t e user.
or al of t e f low i g iem s appl t t e A pplcaton.but operat r i t rventon i requi ed.except e lh y t n u as not d ot erw i e.and recovery processes w ere f i a P rovi ed. i i nm z h o i T he applcaton i desi ned f r unat ended operaton. h e h h o a D h i i A ut m atc error recovery i a f at reO f t e applcaton. ae h O ne. l h ol n t y o h i i Sel ct al t at appl .and recovery processes w ere f i a provi ed. i i nm z h o a s T he applcaton m i i i es t e need f r paper handlng. o i s e u h i i 5 81. nat ended i i s g o t i U t operaton m eans no operat r i t rventon i requi ed t operat i o ne i s r o e t e syst m ot er t an t st rt up or shut ow n t e applcaton.back-up.but no operat r i t rventon i requi ed ( ount asT w o d o ne i s r c iem s) t . e h s E f ectve st rt up. T he applcaton m i i i es t e need f r t pe m ount .Table 8.back-up.Use Case Points R ati g n 0 D escri ti n p o N o speci loperatonalconsi eratons ot er t an t e norm al acka i d i h h h B up procedures w ere st t d by t e user.E ach iem has a poi t V al e of one. Portable 131 .som e. d o ne i s r 1-4 E f ectve st rt up.
developed. The following characteristics can apply for the application: 132 .Chapter 4 R ati g n 0 D escri ti n p o A pplcaton shoul cat r t onl operatng syst m . i i d e o y i e A pplcaton shoul cat r t onl one t pe of f m iy i i d e o y y a l of operatng syst m . i e A pplcaton shoul cat r t f ur dif rent f m iy of i i d e o o fe a l operatng syst m . and supported to easy to change?. a l e n n A pplcaton shoul cat r t t ree dif rent f m iy i i d e o h fe a l of operatng syst m .Table 9.M eans i w ilcat r t w i dow s i e t l e o n O S f m iy exam pl w i dow s 2000. a le A pplcaton shoul cat r t at l ast t o dif rent i i d e o e w fe f m iy of O S exam pl W i dow s and Li ux.A pplcaton shoul not cat r t m uli l c i i d e o tp e f m ii s of O S.w i nt w i dow s a l e n n . i e 1 2 3 4 5 82. i e A pplcaton shoul cat r t fve dif rent f m iy of i i d e o i fe a l operatng syst m . n 9x et . Easy to Change Was the application specifically designed.
but changes t ke ef ect onl on t e a f y h next busi ess day. Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl com pl x request .Table 133 .f r exam pl .and/or l gi appled t m ore t an one e o c i o h i t rnall gi alfl ( ount as t o iem s) ne o c ie c w t .Use Case Points S r no 0 F acii ate factors lt N one of above Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl si pl request . n B usi ess cont oldat i kept i t bl s t at are n r a s n a e h m ai t i ed by t e user w ih onlne i t ractve n an h t i ne i P rocesses and t e changes t ke ef ect i m edi t l h a f m a ey ( ount as t o iem s) c w t .f r exam pl . or e s e t f exam pl . nd/or e m e s o ea l gi appled t onl one i t rnall gi alfl ( ount o c i o y ne o c ie c as one iem ) t . Fl xi l query and report f ciiy i provi ed t at e be a lt s d h can handl request of average com pl xiy. 1 2 3 4 5 83. nd/or e e s o ea l gi com bi atons on one or m ore i t rnall gi al o c n i ne o c fl s ( ount as t ree iem s) ie c h t . B usi ess cont oldat i kept i t bl s t at are n r a s n a e h m ai t i ed by t e user w ih onlne i t ractve n an h t i ne i P rocesses.
Concurrent R ati g n 0 1 2 3 4 5 D escri ti n p o N o C oncurrency requi ed r C oncurrency requi ed i r n 10% of proj ct dat . o h A l fve of t e above. li h 84. h h A ny f ur of t e above. w h A ny t ree of t e above. h A ny one of t e above.Table 134 . e a C oncurrency requi ed i r n 30% of t e proj ct dat . h e a C oncurrency requi ed i r n 70% of t e proj ct dat .Chapter 4 n R ati g 0 1 2 3 4 5 p o D escri ti n N one of t e above. h e a C oncurrency requi ed i r n 100% of t e proj ct dat . h e a C oncurrency requi ed i r n 50% of t e proj ct dat . h A ny t o of t e above. h e a 85.Table 10.
Table 12.Use Case Points 11. Providing Direct Access to Third Parties 135 . Special Security Features R ati g n 0 1 2 D escri ti n p o Securiy aspect i not i port nt t s m a .100 % o n e n n of securiy i i corporat d by usi g t i d t s n e n hr part A P I s i t rough codi g. o n 3 4 5 86. a n o a A pplcaton i com bi aton of t i d part A P I i i s n i hr y ' and cust m securiy s o t Ful securiy of applcaton i i corporat d by l t i i s n e cust m codi g. t For i pl m entng securiy t i d part A P I s m e i t hr y ’ needed t be i corporat d i codi g. Si pl T hi d part i st laton w ilt ke care m e r y n al i l a of securiy.B ut t e y ’ n h n h A P I s are w el know n i m arket and easy t ’ l n o underst nd. a A P I s are not w el know n and needs a l rger ’ l a underst ndi g curve t underst nd.
hr y t s O nl 10% of f nctonalt y u i iy needed t be accessed by o t i d part sof w are' .Chapter 4 n R ati g 0 D escri ti n p o N o access needed t t i d o hr part product y . Special User Training Required 136 . O nl 5% of f nctonalt y u i iy needed t be accessed by o t i d part sof w are' . hr y t s O nl 50% of f nctonalt y u i iy needed t be accessed by o t i d part sof w are' . hr y t s 1 2 3 4 5 87.Table 13. hr y t s 100% of f nctonalt u i iy needed t be accessed by o t i d part sof w are' . hr y t s O nl 20% of f nctonalt y u i iy needed t be accessed by o t i d part sof w are' .
Table Guide Lines for Environmental Factors Guide lines for environmental factors. 2 3 4 5 88. 1. There are no guidelines as such provided by any governing body these are all based on my personal experience and should be used at there own risk.Use Case Points R ati g n 0 1 p o D escri ti n N o user t ai i g requi ed. d n n ta a Speci lt ai i g needed t be a r nn o provi ed. d Speci lt ai i g i requi ed a r nn s r and certfcaton has t be ii i o acqui ed i order t at user i r n h s elgi l t use t e product i be o h . r nn r Si pl i st uctons are m e n r i requi ed t m ake user r o underst nd t e syst m . Familiarity with project 137 . a h e Hel fl s are suppled t p ie i o user w hi h w ilbe ref rred c l e by user duri g usi g t e n n h sof w are. t W ih hel fl s user has t be t p ie o provi ed w ih expert d t gui ance i i ii lst ge.
40 % percent f m ii riy w ih a la t t proj ct e .Table 138 . 60 % percent f m ii riy w ih a la t t proj ct e .Chapter 4 R ati g n 0 1 2 3 4 5 D escri ti n p o N one. e 40 % percent applcaton i i experi nce. 90. e 80 % percent applcaton i i experi nce. 89. 20 % percent applcaton i i experi nce. 80 % percent f m ii riy w ih a la t t proj ct e . e 60 % percent applcaton i i experi nce.Table 2. e E xpert . 100 % f m ii riy w ih a la t t proj ct e . 20 % percent f m ii riy w ih a la t t proj ct e . Application experience R ati g n 0 1 2 3 4 5 D escri ti n p o N one.
e e e s 15 years experi nce i e n O bj ct O ri nt d C oncept e e e s f l expert ul . e e s 4 years experi nce i O bj ct e n e O ri nt d C oncept . y h i e 2 years experi nce i O bj ct e n e O ri nt d C oncept .Table 4. e e s 10 years experi nce i e n O bj ct O ri nt d C oncept . Lead analyst capability 139 . Objects-oriented Experience n R ati g 0 1 2 3 4 D escri ti n p o N o pri r experi nce i o e n O bj ct O ri nt d C oncept . 5 91.Use Case Points 3. e e e s O nl t eoretcalexperi nce.
Table 5. E xpert w ih 15 years of t experi nce as l ad anal st e e y . 92. 3 years experi nce l ad e e anal st i proj ct y n e . 5 years experi nce l ad e e anal st i proj ct y n e 8 years experi nce l ad e e anal st i proj ct y n e .Chapter 4 R ati g n 0 1 2 3 4 5 D escri ti n p o N o l ad anal st i t e e y n h proj ct e . 10 years experi nce l ad e e anal st i proj ct y n e . Motivation 140 .
no speci li ii tve r e a n ta i exi t f om t ese t am ss r h e m em bers.T eam i i w orks onl w hen di ect d. n ta i n l 1 2 3 4 5 93. 50 % t am n ta i e m em bers w ork onl as y di ect d. 90 % t am n ta i e m em bers w ork onl as y di ect d. Stable requirements 141 .Table 6. 20 % of t am are hi h e g m otvat d and have sel i e f i ii tve.no speci li ii tve r e a n ta i exi t f om t ese t am ss r h e m em bers. e 5 % of t am are hi h e g m otvat d and have sel i e f i ii tve. y r e N o speci li ii tve f om a n ta i r t am m em bers. 80 % t am n ta i e m em bers w ork onl as y di ect d. Hi h m otvaton and sel g i i f i ii ton i al m em bers. i i Low m otvaton.no speci li ii tve r e a n ta i exi t f om t ese t am ss r h e m em bers.Use Case Points R ati g n 0 D escri ti n p o N o m otvaton. 50 % of t am are hi h e g m otvat d and have sel i e f i ii tve.
Table 7.Chapter 4 R ati g D escri ti n n p o N o st biiy. r s R equi em ent changi g r s n around 5 % of t e ori i al h gn requi em ent . a e 0 1 2 3 4 5 94.E very m eetng a lt i w ih cust m er changes t o around 80 % devi ton f om ai r ori i alrequi em ent . Part time staff 142 . r s R equi em ent changi g r s n around 40 % of t e ori i al h gn requi em ent . r s St bl . r s R equi em ent changi g r s n around 20 % of t e ori i al h gn requi em ent . gn r s R equi em ent changi g r s n around 60 % of t e ori i al h gn requi em ent .
Use Case Points R ati g n 0 1 2 3 4 5 D escri ti n p o N o part tm e st f . i af 80 % of m em bers are part tm e st f .Table 8. i af 95. i af 100 % of m em bers are part tm e st f . Difficult programming language 143 . i af 50 % of m em bers are part tm e st f . i af 10 % of m em bers are part tm e st f . i af 30 % of m em bers are part tm e st f .
If two Use Cases have 60 % scenario in common try to accommodate then in one Use Case using alternate scenario. D ifcul needs onl fi t y experence peopl . i e 1 2 3 4 5 96. a c A tl astt o w eek i needed e w s t pi k up t e l nguage.Chapter 4 R atng i 0 i i D escrpton E asy w ih i one w eek t e t n h l nguage can be pi ked up. Role/Actor should be non-recursive. Example CRUD (Create.K Sjoberg and Magne jorgensen) the following aspects of structure has an impact : Use Case scenarios should be non-recursive and processing logic should be different from other Use Cases. Update and Delete) should be fitted in one Use Case using alternate scenario.Table Use Case Structure Matters The structure of use-case matters a lot. o c h a A tl astone m ont i needed e h s t pi k up t e l nguage. Read. 144 . o c h a S peci ltai i g needed f r a r nn o t e l nguage. Minimum Use Goal level Use Case should be present.Hege Dreiem. According to (Bente Anda. h a S peci ltai i g needed f r a r nn o t e l nguage and need hel h a p durng t e pr j ct i h oe .Dag I.
Sample Data Entry Project Let’s start with a sample fiction project. TNC company till now was using manual way of maintaining its customer database and there credit card information. TNC is looking for the following automation: Customer Code assigned should be checked for uniqueness automatically. In some use cases they found include and extended use cases as essential functionalities and reducing them will reduce steps and hence the estimation. Customer Address.TNC has already given the API documentation of how to interact with the third party payment system.Heres the scope of the project.Hege Dreiem. Function level Use Case should be used to capture algorithmic complexity If two actors have 80 percent in common put them in generalization relationship and count them only once. Data entry operator manually validates credit card information from external payment gateway. Karner recommends that included and extending use case should not be counted.Dag I.K Sjoberg and Magne Jorgensen) have a different opinion in there practical experience. Every transaction in Use Case should add business value from User Point of view. Customer phone and validated Customer Credit card information in Customer registry.TNC wants the data entry project to be automated. But according to (Bente Anda. Credit card validation should be automatic for the current System. They maintain Customer Code. Credit card length should not exceed more than 10 length. Customer Code should not exceed 8 length. Customer Name. Customer Code is unique for a customer So TNC manually check for the validations and enters in the customer registry. 145 . This will increase the accurate of the estimate.Use Case Points If Use Case is exceeding more than 25 transactions split them in to two Use Cases.
user clicks on add button or any GUI is not valid business transaction step. The database will be in the TNC head office and only data entry operators will be allowed to use the Data entry Software. What is a use case transaction and what’s not just see if the transaction is adding any business value or else do not include it as a transaction. As the depth of the Use Case Document will affect estimation by 40%. What will matter is what steps you write in the Use Case. But example the Customer Code is validated for credit card information is a valid business transaction. Example the user switches on the computer. Use Case points are heavily affected by the way the Actors and its transactions are identified.Chapter 4 Data entry operator should be able to add/update/Delete customer information. Use Case Template varies from person to person. At this moment TNC has Windows 2000 client installed in all computers. So Use Case Document should be written by predefined guidelines. project to project and organization to organization. Writing use case for Sample Data Entry Project I have used Alistair Cockburn's template for the "Use Case point" example. Software should work on Windows platform. But there's no hard and fast rule that you have to follow this template. 146 . Use Case Transactions It’s an atomic set of activities that are either performed entirely or not all. Sample Customer Use Case Applying Use Case Points Let Start Applying Use Case Points to the upper given document. uniformly in a project. I found Alistair's template to be complete so just took it. Just take a meeting with whole project team before starting writing Use Case.
no i a)I t e credi card l ngt i m ore t an 10 l ngt t en " redi f h t e h s h e h h C t card l ngt lm i crossed"error i rai ed. s s b)I t e C ust m er C ode i m ore t an 8 l ngt t en f h o s h e h h " ust m er code l ngt lm i crossed"error i rai ed. D a r o h h o n a 147 . a r o v o no i 2)D at ent y operat r ent rs f low i g i f rm aton C ust m er a r o e ol n n o i o C ode : a)C ust m er N am e o b)C ust m er A ddress o c)C ust m er P hone o 3)C ust m er C ode i checked i i exi t i C ust m er T abl . at ent y operat r ent rs C redi t e s D a r o e t C ard i f rm aton. C o e h i t s s 4)A f er st p 3 i passed ok.Use Case Points U se C ase # A cton i M ai success scenari n o ( r basi Fl w ) o c o D A T A E N T R Y P R O JE C T C U S T -1009 A dd N ew C ust m er o 1)D at ent y operat r recei es cust m er i f rm aton. o s ft ss n o e a)I t e C ust m er C ode i exi tng t en " uplcat C ust m er f h o s si h D i e o C ode"error i rai ed.A ppropri t A P I of t e ext rnalpaym ent gat w ay e ae s h e e w ilbe used f r valdiy. i e s l u N D l 7) at ent y operat r t en adds t e cust m er i dat base. e h i t s s 5)C redi card i f rm aton i send t t e ext rnalpaym ent t no i s o h e gat w ay. l o i t 6) xt rnalP aym ent G at w ay ret rns " K "i credi card i E e e u O f t s valdat d or el e w ilret rn " O T V A LI "fag.
l o i t 6) xt rnalP aym ent G at w ay ret rns " K "i credi card i E e e u O f t s valdat d or el e w ilret rn " O T V A LI "fag. o s ft ss n o e a)I t e C ust m er C ode i exi tng t en " uplcat C ust m er f h o s si h D i e o C ode"error i rai ed.. no i a)I t e credi card l ngt i m ore t an 10 l ngt t en " redi f h t e h s h e h h C t card l ngt lm i crossed"error i rai ed..A ppropri t A P I of t e ext rnalpaym ent gat w ay e ae s h e e w ilbe used f r valdiy..Chapter 4 U se C ase # A cton i M ai success scenari n o ( r basi Fl w ) o c o D A T A E N T R Y P R O JE C T C U S T -1009 A dd N ew C ust m er o 1)D at ent y operat r recei es cust m er i f rm aton. at ent y operat r ent rs C redi t e s D a r o e t C ard i f rm aton.. s s b)I t e C ust m er C ode i m ore t an 8 l ngt t en f h o s h e h h " ust m er code l ngt lm i crossed"error i rai ed. C o e h i t s s 4)A f er st p 3 i passed ok. a r o v o no i 2)D at ent y operat r ent rs f low i g i f rm aton C ust m er a r o e ol n n o i o C ode : a)C ust m er N am e o b)C ust m er A ddress o c)C ust m er P hone o 3)C ust m er C ode i checked i i exi t i C ust m er T abl . 148 . e h i t s s 5)C redi card i f rm aton i send t t e ext rnalpaym ent t no i s o h e gat w ay. i e s l u N D l 7) at ent y operat r t en adds t e cust m er i dat base. D a r o h h o n a Use Case continued in next page.
a 149 . re h o c o ee 2) at E nt y O perat r D el t s t e C ust m er.Use Case Points U se C ase # A lernat scenari t e o ( xt nsi ns) E e o D A T A E N T R Y P R O JE C T C U S T -1009 U pdat E xi tng C ust m er e si o 1) at E nt y operat r ent r C ust m er C ode t ret i ve D a r o e o o re t e cust m er w hi h has t be updat d.D at D a r o ee h o a E nt y O perat r i al rt d " re you sure you w ant t r o s e e A o del t t e C ust m er?” ee h o 3)f t e D at ent y operat r clcks " es" T hen t e I h a r o i Y . r o o s e 3) at E nt y operat r updat t e cust m er i f rm aton. D a r o e h o no i A lernat scenari t e o ( xt nsi ns) E e o D el t E xi tng C ust m er ee si o 1) at E nt y O perat r ent rs C ust m er C ode t D a r o e o o ret i ve t e C ust m er w hi h has t be del t d. o s ee r h a 4)f t e D at ent y operat r clck " O "no acton i I h a r o i N i s t ken. h cust m er i del t d f om t e dat base.A l st ps and busi ess valdaton o no i l e n i i f om t 6 of A dd new C ust m er i repeat d. h o c o e 2) at E nt y operat r m ake appropri t changes t t e D a r o ae o h cust m er i f rm aton.
0.0 UUCW=15. Now calculating the total UUCP = 15 + 3 = 18.Chapter 4 U se C ase # D A T A E N T R Y P R O JE C T C U S T -1009 Success G uarant e 1) ust m er i added t C ust m er D at base. o n y Determining Unadjusted Use Actor Weights (UAW): In this project we have identified only one actor “Data Entry Operator”. Determine number of UUCW (Unadjusted Use case Weight): There are 12 transactions [Adding also the alternative flows] in Table 6.So referring Table: 3. The upper Actor (Data entry operator) is complex as data entry operator will be interacting through GUI. C o s e o o a 3) ust m er i del t d f om C ust m er D at base C o s ee r o a Speci l a R equi em ent r s (ncl di g i u n B usi ess rul s) n e T echnol gy and o D at V ari tons a ai Li t s Frequency of occurrence N ot s and O pen e I sues s I C redi C ard P aym ent G at w ay A P Ichanges t e f t e h i t racton of t e dat ent y cust m er m odul w ilhave ne i h a r o e l t changed accordi gl . So the above Use Case is complex according to Table: 3.0.So UAW=3 as per table Table: 2. Determining the technical Factor 150 .0 Use Case. e C o s o o a ( ost condii ns) P to 2) ust m er i updat d t C ust m er D at base.
Use Case Points T echni al c factor T1 D i t i ut d s rb e Syst m e W ei ht g V al e u W ei hted g D escri ti n p o V al e= W ei ht u g u * V al e 2 I t e syst m s h e havi g di t i ut d n s rb e archiect re or t u cent alzed r i archiect re? t u D oes t e clent h i need t e syst m t h e o f st I tm e a ? s i response one of t e h i port nt crieri ? m a t a How ' t e ends s h users ef i i ncy? fc e I t e B usi ess s h n process very com pl x? Li e e k com plcat d i e account cl si g. s o n I vent ry t acki g. n o r n heavy t x a cal ul ton et . c ai c D o w e i t nd t ne o keep t e reusabiiy h lt hi h? So w il g l i crease t e desi n n h g com pl xiy. e t 2 1 T2 R esponse tm e 1 i 4 4 T3 T4 E nd user ef i i ncy fc e C om pl x e I t rnal ne P rocessi g n 1 1 3 2 3 2 T5 R eusabl C ode 1 e 1 1 151 .
ne of our clent O i has requi em ent r t at w hen t e clent h h i w ant t i st l he s o n al can choose w hi h c m odul s he can e i st l.T hese n al i f ct rs w ilcount a o l w hen assi ni g g n val e t t i f ct r u o hs a o I user f i ndl at s re y t e t p pri riy? h o o t I t e cust m er s h o l oki g f r al o o n o s cross pl t orm af i pl m ent ton? m e ai T7 T8 E asy use P ort bl a e 0.B ut i t e f h clent i l oki g f r i s o n o som e cust m o i st laton n al i probabl dependi g y n on m odul w i e e s .I t e n al f h requi em ent i such r s t at w hen t ere i a h h s new versi n t ere o h shoul be aut d o i st laton. 5 0 I clent l oki g f r s i o n o i st laton ease? n al i B y def ul w e get a t m any i st lers n al w hi h creat c e package.Chapter 4 T echni alfactor W ei ht V al e c g u W ei hted g V al e= u g W ei ht * u V al e 0 D escri ti n p o T6 I st laton E ase n al i 0. 5 2 4 1 2 2 152 .
So t at h uu h al o i creases t e s n h A rchiect re desi n t u g com pl xiy and e t hence t i f ct r. i T 10 C oncurrent 1 0 0 T 11 Securiy t obj ctves e i 1 0 0 153 . hs u I t e C ust m er s h o l oki g at havi g o n n heavy securiy lke t i SSL or have t o w rie cust m code t o l gi f r o c o encrypton.Use Case Points T echni alfactor W ei ht V al e c g u W ei hted g V al e= u W ei ht * g V al e u 0 D escri ti n p o T9 E asy t change o 1 0 I t e cust m er s h o l oki g f r hi h o n o g cust m i aton i o z i n t e f t re?. hs a o I t e cust m er s h o l oki g at l rge o n a num bers of users w orki g w ih n t l cki g support o n ? T hi w ili crease s l n t e archiect re h t u com pl xiy and e t hence t i val e.
6 + (0.Table Depending on the table calculating the Technical Factor: TCF = 0.01 * 19) = 0.01 * Tfactor) = 0.So l r t i f ct r shoul hs a o d be rat d e accordi gl .79 Calculating environmental factor 154 .6 + (0. n y W ilt e sof w are l h t f om user r perspectve be so i com pl x t at e h separat t ai i g e r nn has t be provi ed? o d So t i f ct r w il hs a o l vary accordi gl n y T 13 U ser t ai i g r nn f ciii s a lte 1 0 0 T ot l a 19 98.Chapter 4 T echni alfactor W ei ht V al e c g u W ei hted g V al e= u g W ei ht * u V al e 3 D escri ti n p o T 12 D i ect access t r o t i d partes hr i 1 3 D oes t e proj ct h e depend i usi g n n t i d part hr y cont ol ? So f r r s o underst ndi g t e a n h t i d-part hr y cont ol and r s st dyi g is pros u n t and cons consi erabl ef ort d e f w ilbe requi ed.
s How m uch i t e s h applcaton i i experi nce? e A s use-case docum ent are s i put t O bj ct n s o e ori nt d desi n. 5 155 . 5 5 2. How t e anal st h y w ho i l adi g t e s e n h proj ct . 5 E2 A pplcaton i i experi nce e 0. e e g I ’ s i port nt t m a t at peopl on t e h e h proj ct shoul have e d basi know l dge of c e O O P ' concept s . 5 5 2. 5 5 7. 5 E3 O bj ct -ori nt e s e ed E xperi nce e 1 5 5 E4 Lead anal st y capabiiy lt 0.Use Case Points E nvi onm ental r W ei ht g F actor V al e u W ei hted g V al e= W ei ht u g * V al e u D escri ti n p o A re al t e peopl lh e w orki g i t e n n h proj ct f m ii r e a la w ih dom ai and t n t chni aldet is of e c al t e proj ct So h e ? probabl you w il y l spend your m ost tm e i expl i i g i n an n t em al know h l how ' .D oes he e ? have enough know l dge of t e e h dom ai ? n E1 Fam ii riy w ih la t t proj ct e 1.
++.Table 156 . l u I t e clent cl ar of w hat he s h i e w ant ? Ihave seen clent s i s expect tons are t e m ost ai h i port nt f ct r i st biiy m a a o n a lt of requi em ent . hs u o m A re t ere part tm e st f s h -i af i proj ct lke consulant n e i t s et ? c How t e l nguage h a com pl xiy e t A ssem bl .Chapter 4 E nvi onm ental W ei ht r g F actor V al e u W ei hted g V al e= u W ei ht * g u V al e 1 D escri ti n p o E5 M otvaton i i 1 1 A re t e program m ers h m otvat d f r w orki g on i e o n t e proj ct A s i st biiy i h e ? n a lt n proj ct w ilal ays l ad t e l w e o peopl l avi g hal w ay e e n f t ere source code.A s good m u t e m arket m ore t e j bs h h o and m ore t e program m ers h w ilj m p.m af 0 0 E8 D ifcul fi t program m i g n l nguage a T ot l a -1 3 -3 23. b6.T hi Fact r you can o s o put accordi g t how n o sof w are i dust y i goi g t n r s n on? E xam pl i t e sof w are e f h t m arket i very good put t i s hs at m axi um val e.A nd t e h h hand over becom es realy l t ugh. 5 99.I t e clent r s f h i i of hi hl changi g nat re s g y n u put t i val e t m axi um . et yV c c c E6 St bl a e requi em ent r s 2 4 8 E7 P art T i e St f -1 .
4 + (-0. If we apply sixth sense we will find karner approach is coming to round about figure.03 * Efactor) = 1. If programmer works for 8 hours then 35 days. Even small adjustments of an environmental factor.e. I have put the approximation as its only creates 3 to 4 hours of difference.03 * 23.and from e7 to e8 there are none value above 3. Difference 3 to 2.79 X 0.4 + (-0.5) = 0. for instance by half a point. It really depends what you want to follow karner or Schneider approach.695 Calculating AUCP = UUCP * TCF * EF = 18 X 0. Calculating According to Karner i. A slight variation will increase the use case point by very very drastic amount. there may be disastrous results -. This means that if the values for the environmental factors are not set correctly. from 10831 to 15411 hours. or 42.Use Case Points According to [Kirsten Ribu Master of Science Thesis] Environmental factor play very important role in the estimation. Best is that after 2 or 3 projects what’s ever is coming accurate from history take that approach.So the total is 3 so we use 28 staff hours. If this step is not understood look at the steps defined in theory of use case points.3 percent. Using formulae for calculating EF = 1. Calculating according to Schneider and winters from e1 to e6 there are only 3 properties that are below 3. If programmer works for 8 hours for a day then 340/8 = 25 days.Sources [Kirsten Ribu Master of Science Thesis] do see links below. 157 . The best thing with using EA is that if you are logging your project details in EA it will use the existing Use Cases in project and estimate.10 X 28 = 280 hours. Best approach is to use excel and incorporate formulae's properly.5 increased the estimate by 4580 hours. With CD “Enterprise Architect“ developed by Sparx Systems is given.695 = 9. 20 staff hours per use case points = 10 X 20 = 200 hours for the total project. can make a great difference to the estimate.88 approx = 10 Use Case Points. It’s a full blown UML tool but they have a very decent section for calculating “Use Case Metrics”.
Chapter 4 100.Process to access Use Case Points section in EA 158 .
Use Case Points 101. EA Use Case Point screen 159 .
Chapter 4 EzEstimate sample screen one more use case point software Final Quotation 160 .
W est rn road 17. m t e io a Q uot ton num ber:90 ai D at :1/1/2004 e C ust m er I :. But Still if interested http://www.Use Case Points X Y Z SO FT W A R E C O M P A N Y T o: T N C Li ied.com/mac/resources/ templates. So no hard and fast rule of quotation template. So his 25 days salary comes to 840 dollars approx. Can actor rating (1 – simple. Please note many people have asked this question so thought to put it in the book. 2 – medium and 3 – complex) and Use Case rating (5 – simple.20090D A T A E N T R Y o D Q uantt iy 1 D escri ton pi D at E nt y a r M odul e D i count s 0% T axabl e 0% T ot l a 840 $ Q uot ton V ald f r 100 days ai i o G oods delvery dat w ih i 25 days of hal paym ent i e t n f Q uot ton P repared by:. In this chapter we are not showing phase wise distribution as shown in Function points it’s given as exercise to readers. Every company has his quotation format accordingly.C alf rni . One programmer will sit on the project with around 1000 $ salary. The upper quotation format is in its simplest format.X Y Z estm aton depart ent ai i i m A pproved by : SP E G depart ent X Y Z m In this quotation I have taken karners value that’s 25 days.aspx?pid=templates has good collection of decent templates. 10 – medium and 15 – complex) be customized and changed? So let’s try to get what will be consequences of customizing my views are the following:- 161 .microsoft.
Even the writing matter to a large extent. So during earlier stage this document will not be available. For initial phase of project you can use “Function points”. No Standard Use Case Document: The document structure of use is not standard still. So my suggestion is not change the ratings rather play around with productivity factor (Hours / use case) in order you are feeling the ratings are not matching. Advantages and disadvantages of Use Case Points Advantages of Use Case Points Automation: Use Case document if structured properly for a company (Uniformly) we can use automation tools. Use case documents are mostly prepared after the project sign off.Chapter 4 If the rating tables are customized two companies can not compare estimation for the same project. When we say earlier means during the first and second meet with the client. UCP to FP conversion can go very inconsistent. In case of FP this is difficult. And also how one does identifies use-case 162 . Refer Function Points Chapter in this book. So the estimation has significant variance according to structure of Use Case documents. The basic purpose of consistent software measure will be defeated. Disadvantages of Use Case Points Can not be used during initial phase: Estimations are normally done at earlier stage of projects. It varies not only from company to company but also from project to project. For function points no formal document is needed. Preparing Use Case document during first and second meet with client means wasting your resources in case you do not get the project.
So estimation can be done by technical guys.Use Case Points and the transaction associated with it. 163 . Actor identification need technical details: In order that the actor is classified we need to know technical details like which protocol the actor will use. But still its not recommended solution. Use Case was derived from function points so same holds true for Use Case Points. There is a round way to prepare quotation amount for maintenance projects which is described later in this chapter. Use Case is technical dependent. Maintenance estimation problems: Function point [Refer Function Points in this book] failed for maintenance projects. Free textual descriptions may lead ambiguous specification [AP98].
but is approach which I use when all methodologies fail. LOC can not be applied. data facilities-----.Chapter 5 Chapter 5 WBS and SMC Why WBS and SMC Function Points. Psychologist say human brains can comprehend 7-9 items simultaneously.[IT] displays and defines the products to be developed and/or produced and relates the elements of work to be accomplished to each other and to the end products”. WBS was initially developed by US defense establishment and it is described in military standard (MIL-STD) 881B (25 Mar 93) as follows: “A Work Break Down Structure is a product oriented family tree composed of hardware. Later add up all smaller task cost and come out with total project cost.Theres where WBS with SMC approach will come to rescue. 164 . Use Case Points.Definelty you can not give a reason to upper management saying no we can not give estimation. software. You have to give quotation amount with risk and assumptions. services. group them logically and assign cost to smaller task. The Basic fundamental is large and complex projects are organized and broken down in smaller units. WBS breaks thousand of tasks in to smaller manageable chunks. estimating cost and also planning. So from Quotation point of view we will break project in to smaller task. Use Case Points and other scientific estimation ways are useful in most situation for preparing estimation and quotation. Introduction to WBS “Work Break Down” Structure is a result oriented family tree that captures all the work of project in a organized way. This approach is improved way of freelancer and expert judgment approach [See chapter 1 for details]. A project with 1000 tasks will be difficult to understand. The main use of WBS is at beginning of a project for defining project scope. A 1000000 $ project is simply small $500 projects. But many times you will find yourself in situation where function points. Please note this approach does not have international body or recognition.So do not shy way to use this approach when you find yourself in panic.
165 . The basic approach Hotel management has taken to make this WBS is as follows: In primary level or top level he categorized department.WBS and SMC Best Way to Design WBS Everybody has designed WBS in day to day life knowingly or unknowingly. Below is simple WBS of hotel day to day process. For him its simple department and activities “TODO” list. 102.Figure The hotel management who has prepared this list does not even know if this is a WBS structure.
If the project is too activity based or process based example a simple call centre project has Agent Make Outbound Call Agent Received Inbound Call Agent Hangs up the phone For this kind of project process oriented approach is best. If project is noun based or end item approach WBS is appropriate example: Hardware Systems Server Space Technical Manuals Accounts Modules Invoice Module But in real software projects the WBS will be both product and process oriented. Then using sixth sense and past experience tidy up the man-days. SMC model Once the project is broken down in smaller components. 166 .Chapter 5 For every department work activity was logically classified. Now man-days or rating value is completely a judgment or sixth sense depending on past experience. its time to assign effort to it. But to comprehend huge complexity process-oriented WBS structure where introduced. WBS was initially defined as product oriented family tree. Medium or Complex. This type of WBS is called as “Activity oriented structure “.Now management can estimate cost for every activity and later total up to come out with total running cost of Hotel. This is the biggest disadvantage of WBS approach. The approach of the book will be following To apply SMC model in first iteration of estimation. There are two ways either to assign man-days or to assign rating is the task Simple.WBS structure can be built on Noun and Verbs.
Also note that rating table is also taking in to consideration Analysis. Please note if wanted according to project requirements this table can be tailored. 167 . In software project to say that any simple task will require 7 days or a complex task will require 30 days can make estimation completely wrong. Design and testing phase which is also important part of software cycle. I know many readers would not just agree to my assumption table.Table But for sample Tapri project we will use the Simple WBS table rating.WBS and SMC Again SMC model will have table for Man-days Rating Table n R ati g Si pl m e M edi m u C om pl x e M an/D ays 7 15 30 103.Table This table is an assumption that in general according to rating this much man-day will be needed by a single person. If wanted estimator can customize the rating table something like this:- R ati g n V ery Si pl m e Si pl m e Sem i m edi m u M edi m u Sem i C om pl x e C om pl x e M an/D ays 2 4 6 8 15 20 Hi hl C om plcat d 30 g y i e 104.
It needs a technical guy who knows HTML and FTP. Tapri marketing people should be able to see the following reports Which is the maximum selling product? Top 100 customers according to country for giving them selling points. They cater to various types of products right from household products to office products. In every country again the retail shop are in every state and every region.Tapri has its main head office in India . but has sub head offices scattered all over the world. Tapri is not looking forward to change neither the look and feel of the current website nor any matter of the current website to be changed. Due heavy volume demand from customer they are looking at online selling of these products. 168 . Tapri already has a static website. Customer see’s the product and then sends email to the respective head office region for delivery of the product. there is no payment gateway at this moment.Chapter 5 Tapri Online Shopping Mall Tapri is largest retail shop all over world. Only the products page of the current website has to be made dynamic and integrated with the payment gateway. but has following limitation: New products can not be added or change by simple users. If customer wants to order a product. Tapri is looking for the following features in website: Tapri office people should be able to upload new products and update there prices.
Figure Table of all root task and there Man-days 169 .WBS and SMC Tapri WBS break up 105.
In this chapter we are not showing phase wise distribution as shown in Function points it’s given as exercise to readers.Table The above simple rating table is used and these results are evaluated. 170 .Chapter 5 R oot T ask M ai t nance ne P roduct f rm o D i pl y s a product Form R N D ( now K how of t e h A P I of ) paym ent gat w ay e C onnectng i O rder f rm t o o P aym ent G at w ay e M ax P roduct R eport Sal e T op 100 C ust m er o A ccordi g t n o C ount y r R ati g n M edi m u Si pl m e M an/D ays 15 7 Si pl m e 7 Si pl m e 7 Si pl m e 7 Si pl m e 7 50 106.
The best way to go to convince them is to apply software measure methodology to past project and come out with figures and then compare them with the actual results of the project. So take Use Cases of the past project and start counting. 171 . But if you are in a company which has just started and you are the guy who has been given the task to implement process its tough believe me. JAVA etc do not mix there productivity factors up.6 UCP / DAY that becomes your productivity factor.The productivity factor should be averaged with the same category project. IN short productivity factor will be different for Microsoft. Please note: . Following are the broader level guidelines to incorporate software measure:- Know your productivity factor If you are thinking by just making PowerPoint presentation non-believers of your company will be convinced forget it. Even I understand its time to be practical and talk figures. you have people who have belief in software measures. but the project took one month that’s approximately 30 days that is approx 1. Example developing accounting project and developing a B2B site using commerce server has different productivity factor. After that take those results and compare with the actual project figures. SAP. Do the similar analysis for other past project and then make a average which is the productivity factor of the company. and JAVA etc. SAP. For example you have thought to implement Use Case Points methodology in your company. which can not be categorized in one or averaged. what’s the best methodology and how to implement it in organization. Example your one of the past project is 50 UCP . If your organization is already using some methodologies its fine.Project Scenarios and Quotation Chapter 6 Project Scenarios and Quotation Getting Practical After reading different methodologies readers must have got to a saturation point. Example if you have a project department for Microsoft.
Streamline your process 172 . Try to understand estimation is not minimized by not counting some elements.Chapter 6 Power Point Presentation Once you have the productivity factor from past projects and the analysis. or simple Excel. I had tried to give estimation to programmers but the effect was not impressive. Note: If the estimator tries to estimate from the point of view of getting project or to give less quotation it will end no where. But rather proper project plan and automation tools. Define your mechanism Once your management has given you green flag. Are you going to use any software for it. Believe me estimation and counting becomes boring in long term. give a nice presentation to the management. Choose right people and Training Once you have defined the mechanism it time to give training about the template and the fundamentals of the software measure. Rather let this be shared and consecutive work load.org. With this book CD is provided with Excel templates (TemplareFPandUCP. Do not ever think to appoint resource on full time basis as estimator. Marketing person tend to be on more negotiation mood rather than proper estimation. Do not every give it to marketing persons. probably manually etc etc?. define the mechanism by which you will implement software measure.xls) so that you can kick start software measure in your company. If there is any certification for the software measures try to pursue people to acquire the certificate. This book will use Excel to implement software measure. Example Function Points has certification which is conducted by www.ifpug. Always keep the gap between estimation and negotiation. Never mix them up. You can also modify excel according to your company requirements. Project manager with technical background are the right persons to assign this task. who can make estimation in terms of getting the project rather than calculating estimation.
In order to open the template you will need MS excel 2002 minimum. They use other section and give analysis of Function Point Data.xls has provision for two types of software measure Function Point and Use Case Points (As this Project only deals with preparing quotation and estimation at initial stage. TemplateFpandUCP.Project Scenarios and Quotation Once you have the template and the resource allocated for estimation. “Total estimation” is divided in to three main sections “Function Point Analysis” section gives analysis of Function Point data. so this book is focusing on this two methodology). leaving the project name.xls) in CD.xls has following tabs or sections:Brief Description of project This section has free text of project scope. Stream line how a sales enquiry flows in your company and how the project managers will co-ordinate with the marketing department to incorporate estimation methodology. None of the section is allowed to be filled. This section will make a walk through the excel template (TemplateFCandUP. TemplateFPandUCP. Template Explanation (UCP and FP) In the CD provided with this book excel templates are provided so that you can practically implement software measure in your company. Total Estimation This section has complete summary of estimation template. If you have downloaded free E-book from website then you need to download ZIP file for getting these templates. 173 .
i t a o T hi i al o read-onl fel and gi es you s s s y i d v m an days dependi g on productviy n i t f ct r col m n. a o u 1 P roj ct N am e e 2 3 4 5 6 7 8 IF L EI F EO EQ EI T ot lU nadj st d a u e Functon P oi t i ns T ot lG SC a T ot lA dj st d a u e Functon P oi t i ns P roductviy i t Fact r o T ot lM an days a 9 10 11 107. T hi i al o read-onl fel and does sum s s s y i d of al E O f om t e E O sheet l r h . T hi i al o read-onl fel and does sum s s s y i d of al E I f om t e E I sheet l F r h F . u e i ns . C ol m n 7 * C ol m n 8 u u T hi i al o read-onl fel and i i t e s s s y i d ts h productviy f ct r of your com pany. s s i s s y T hi i al o read-onl fel and t kes s s s y i d a dat f om G SC sheet a r .Table 174 . y T hi i al o read-onl and does sum of s s s y al I F f om t e I F sheet lL r h L .T hi i t e onl i o s s h y fel i t i secton w hi h i not readi d n hs i c s onl .T ot l s s s y i d a unadj st d Functon poi t * G SC . T hi i sum of I F + E I + E O + E Q + E I s s L F . T hi i al o read-onl fel . T hi i not i put secton and does sum of s s n i al E Q f om t e E Q sheet l r h .ie. T hi i secton al o i read-onl .Chapter 6 No F i l N am e ed E xpl nati n a o P ut t e nam e of t e proj ct w hose h h e countng has t be done. T hi i al o read-onl fel and does sum s s s y i d of al E If om t e E Isheet l r h .
I short i appled t e u n t i h f low i g f rm ul e ol n o a Hours D ays ( y K arner W ay) B 2 T ot lU U C W a 3 T ot lU U C P a 4 A dj st d U C P u e U U C P * TC F * EF M uli l i by 20 tp y t f r t e hours. No 1 F i l N am e ed T ot lU A W a E xpl nati n a o T hi i read-onl fel and i s s y i d s sum of al act r w ei ht f om l o g s r t e “ U A W ” sheet h .I s s s y i d t uses t e “ T echni al h c Fact r” and o “ E nvi onm ent lFact r” r a o val es.. 175 .Project Scenarios and Quotation “Use Case Point Analysis” section gives analysis of Use Case Point data. T hi i read-onl fel and i s s y i d s sum of al U se C ase w ei ht l g s f om t e “ U U C W ” sheet r h . This section is specially introduced for companies who are looking to migrate from “Function Points” to “Use Case Points” and some to compare estimation with your business partner. T hi i read-onl fel and i s s y i d s addii n of U A W + U U C W to T hi i read-onl fel .Table “Comparison between Unadjusted Function Points and Unadjusted Use Case Points” section gives analysis of difference between both software measure methodologies. 5 6 108. o h T hat s accordi g ’ n t karner di i e by o vd ei ht ie A dj st d g . u e U C P / 8.
F i l N am e ed T ot lD if rence a fe bet een w U nadj st d u e V al es ( U C P u U U A FP ) Fact r D if rence o fe U A FP /U U C P N um ber of el m ent i FP e s n
E xpl nati n a o R ead onl fel w hi h uses U U C P and U A FP f om above y i d c r t o sectons.I s m at em atcaldif rence bet een w i t h i fe w U U C P -U A FP . R ead onl fel w hi h uses U U C P and U A FP f om above y i d c r t o sectons.I gi es m uli lcatve f ct r by di i i g w i t v tp i i a o vdn U A FP /U U C P . T hi i j st a capton s s u i T ot lnum ber of E Ii t i proj ct N ot w e have E I a n hs e . e secton i t e frst secton " uncton P oi t anal si " i n h i i F i n y s t at s t e sum and t i i t t lnum ber of E Ii t i h ' h hs s o a n hs proj ct e . T ot lE O ' i t i proj ct a s n hs e . T ot lnum ber of E Q ' i t i proj ct a s n hs e . T ot lN um ber of I F' i t i proj ct a L s n hs e . T ot lN um ber of E I ' i t i proj ct a F s n hs e . T hi i t t lel m ent t at s sum of T ot lnum ber of E I s s oa e s h ' a + EO + EQ + I F + EI . L F T ot lnum ber of U se C ase i t i proj ct a n hs e . T ot lnum ber of act rs i t i proj ct a o n hs e . Sum of t t lnum ber of U se C ase and act rs. oa o
5 6 7 8 9 10 11 12
EO EQ IF L EI F T ot lE l m ent i a e s n FP N um ber of U se C ase i U C P n N um ber of act rs o T ot lE l m ent i a e s n U CP
T ot lD if rence i T hi i read-onl col m n and i t e dif rence bet een a fe n s s y u s h fe w E l m ent ( P e s F t t lnum bers of el m ent i FP subt act d f om T ot l oa e s n r e r a U C P) num ber of el m ent i U C P . e s n
Project Scenarios and Quotation
No 1 2 3 4 5 6
F i l N am e ed Functonalt i iy D ET RET V al e u D ET’ s C onsi ered d RET’ s consi ered d
E xpl nati n a o T ype i descri ton of t e I F el m ent ry n pi h L e a process. T ype i D E T ’ s i t i el m ent ry process. n n hs e a T ype i R E T ’ s i t i el m ent ry process. n n hs e a T hi i read-onl and does t e cal ul ton s s y h c ai usi g D E T and R E T f om Functon poi t t bl . n r i n a e Short not of t e D E T ’ s consi ered i t i e h d n hs el m ent ry process. e a Short not of t e R E T ’ s consi ered i t i e h d n hs el m ent ry process. e a
No 1 2 3 4 5 6
F i l N am e ed Functonalt i iy D ET RET V al e u D ET’ s C onsi ered d RET’ s consi ered d
a o E xpl nati n T ype i descri ton of t e E I el m ent ry n pi h F e a process. T ype i D E T ’ s i t i el m ent ry process. n n hs e a T ype i R E T ’ s i t i el m ent ry process. n n hs e a T hi i read-onl and does t e cal ul ton s s y h c ai usi g D E T and R E T f om Functon poi t t bl . n r i n a e Short not of t e D E T ’ s consi ered i t i e h d n hs el m ent ry process. e a Short not of t e R E T ’ s consi ered i t i e h d n hs el m ent ry process. e a
No 1 2 3
F i l N am e ed Functonalt i iy D ET FT R
E xpl nati n o a T ype i descri ton of t e E O n pi h el m ent ry process. e a T ype i D E T ’ s i t i n n hs el m ent ry process. e a T ype i FT R ’ s i t i n n hs el m ent ry process. e a T hi i read-onl and does t e s s y h cal ul ton usi g D E T and FT R c ai n f om Functon poi t t bl . r i n a e Short not of t e D E T ’ s e h consi ered i t i el m ent ry d n hs e a process. Short not of t e FT R ’ s e h consi ered i t i el m ent ry d n hs e a process.
V al e u
D ET’ s C onsi ered d FT R ’ s consi ered d
Project Scenarios and Quotation
No 1 2 3
F i l N am e ed Functonalt i iy D ET FT R
E xpl nati n a o T ype i descri ton of t e E Q n pi h el m ent ry process. e a T ype i D E T ’ s i t i n n hs el m ent ry process. e a T ype i FT R ’ s i t i n n hs el m ent ry process. e a T hi i read-onl and does t e s s y h cal ul ton usi g D E T and FT R c ai n f om Functon poi t t bl . r i n a e Short not of t e D E T ’ s e h consi ered i t i el m ent ry d n hs e a process. Short not of t e FT R ’ s e h consi ered i t i el m ent ry d n hs e a process.
V al e u
D ET’ s C onsi ered d FT R ’ s consi ered d
e a T ype i D E T ' i t i el m ent ry n s n hs e a process. r i n a e Short not of t e D E T ' e h s consi ered i t i el m ent ry d n hs e a process. T ype i FT R ' i t i el m ent ry n s n hs e a process.Table GSC section 180 . 4 V al e u 5 D ET' s C onsi ered d FT R ' s consi ered d 6 114. T hi i read-onl and does t e s s y h cal ul ton usi g D E T and FT R c ai n f om Functon poi t t bl . Short not of t e FT R ' e h s consi ered i t i el m ent ry d n hs e a process.Chapter 6 No 1 2 3 F i l N am e ed Functonalt i iy D ET FT R E xpl nati n o a T ype i descri ton of t e E I n pi h el m ent ry process.
o i a e Short not of w hat t e act r i al about e h o s l . t b e s T hi w here you w ili put t e ratng of t e s l n h i h G SC .ifpug.Project Scenarios and Quotation No 1 2 3 4 F i l N am e ed G SC at ri ut t b e D efnii ns i to V al e u G SC E xpl nati n a o T hi i read-onl and i capton. UAW No 1 2 F i l N am e ed A ct r N am e o W ei ht g D escri ton so t at pi h t i d person can hr underst nd a E xpl nati n a o E nt r act r nam e here. These are guidelines provided by www.Table UUCW 181 . e o W ei ht 1. l s r T hi i read-onl and apples t e f rm ul e s s y i h o a : 0.org. 5 + SU M ( f al G SC at ri ut ) 100. I t ol s s y s i n o tp you w ilsee t e ratng gui elnes. . i l h i d i T hi i read-onl and i short descri ton s s y s pi of w hat T he G SC at ri ut i . 3 116.A l G SC i f om 1-5.Table Counting rule for FP This is rules and regulation for counting FP.2 or 3 accordi g t U se C ase g n o A ct r ratng t bl .6 o l t b e/ 115.
r i o c ae u Iuse t i t put t e t ansacton hs o h r i descri ton here. g o h e c a o E nt r t e ratng f r t e t chni alf ct r val e. n h 118. pi 3 W ei ht g D escri ton so t at pi h t i d person can hr underst nd a 4 117.T hi fel uses t e s s y i d s i d h Look up secton and N um ber of i t ansacton t cal ul t val es.Chapter 6 No 1 2 F i l N am e ed U se C ase N am e N um ber of t ansacton r i E xpl nati n a o E nt r U se C ase N am e. n u t t e o T hi i read-onl fel .T hi i readg u g e u s s onl fel .Table Technical Factor No 1 2 3 4 5 F i l N am e ed T echni alFact r c o W ei ht g V al e u W ei ht d V al e g e u D escri ton so t at t i d pi h hr person can underst nd a E xpl nati n a o R ead-onl fel . e E nt r num ber of t ansacton i t e U se e r i n h C ase i cl ded w ih alernat scenari . e h i o h e c a o u W ei ht * val e = w ei ht d val e. y i d Short not of w hy t e t chni alf ct r scal d e h e c a o e i t at w ay.Table Environmental Factor 182 . e c a o T hi i read-onl fel w hi h specii s t e s s y i d c fe h w ei ht f r t e t chni alf ct r.a short descri ton of t e y i d pi h t chni alf ct r.
The data maintained is of prime importance to Fast Track. All employees store there backup information on file server located inside the office premises. These guidelines are all on my experience basis and have no governing body as such. Later in evening the network administrator backs up the file on tape. e n h 119. Backup Project Fast Track Company is an Accounting firm established some one year back.a short descri ton of t e y i d pi h envi onm ent lf ct r.Project Scenarios and Quotation No 1 2 3 4 5 F i l N am e ed E nvi onm ent lFact r r a o W ei ht g V al e u W ei ht d V al e g e u D escri ton so t at t i d pi h hr person can underst nd a E xpl nati n a o R ead-onl fel . 183 . u W ei ht * val e = w ei ht d val e.T hi i readg u g e u s s onl fel . Fast Track wants the back up procedure to be automated. So for your company purpose you can make these guidelines more mature. Accounting section is maintaining huge data in excel and word. y i d Short not of w hy t e E nvi onm ent lf ct r e h r a a o scal d i t at w ay. g o h r a a o E nt r t e ratng f r t e envi onm ent lf ct r e h i o h r a a o val e. This section is made only for formulae purpose and should not be changed. r a a o T hi i read-onl fel w hi h specii s t e s s y i d c fe h w ei ht f r t e envi onm ent lf ct r. The second section specifies the mapping between Function points and Use Case points so that both software measures can be compared. Counting Rules for UCP There are two sections first section specifies Guidelines to write a Use Case.Table Lookup This is look up table for Use Case values. They have around twenty employees in there accounting section.
NET Let’s write the Use Case. If you are raising your eyebrows about how timer is an actor cool down.Chapter 6 Following parameters govern the way backup process is processed:Start time when the backup process will start. a m 1)D efne B ackup P olcy. Back ups are not incremental they just override existing back up’s. i i 2)St rt B ackup a So we have identified two actors and three Use Cases.NET framework installed. Actor has roles. Let’s start first with writing a Use Case Assumptions: . Path where the log file will be stored. Requirements windows 2000 server with .Trust me having a good assumption list helps out. 184 . Let’s start writing them in detail. Identifying Roles of Actor :A ctor T i er m N et ork w A dm i i t at r nsr o R ol e St rt T i er.There are two actors Network Administrator and Timer. Timer is playing a role of initiating back up process on specific time. Programming language is VB. Identifying the Actor: . Let’s revisit our definition of actors in Use Case. In case of back up fails a report is generated and stored in log file. Log file has only details when the back up failed and which file the back up failed. Folder where the back up will be done. Folders that has to be backed up.
T hi i ii tes the " tart T i er" ns s n ta S m U se C ase. d c s s s tp e e c)B ackup fol er w here the backup w ilbe done. 4)A dm i i trator al o has opti n to start the back up at that m om ent.B ack up polcy screen starts w ih N ns n i i t defaul val es for start ti e equalto " 2: 0 P M "i there i not polcy defi ed t u m 1 0 f s i n previ usl . d l d)Log fies l cati n w here the l g detais w ilbe stored. s g 185 . etw ork adm i i trator can speciy the folow i g detais N ns f l n l a)Start ti e i he w ants to change.Project Scenarios and Quotation U se C ase # U se C ase N am e D escri ti n p o S cope and L evel L evel P ri ary and secondary m actors S takehol ers and Interests d g T ri ger P recondi i ns to A ssum pti ns o F aied E nd C ondi i n l to A cti n o M ai success scenari (or n o c o basi F l w ) U C 1001 " efi e B ack U p P olcy" D n i T hi use case i used by netw ork adm i i trator for speciyi g back up param eters. etw ork A dm i i trator opens defi e B ackup P olcy. m f b)Fol ers w hi h i to be backed up. l o o o l l 3)A dm i i trator can then start the “ B ack up T ask” .I that case ns s o n “ Start B ackup” U se C ase i tri gered.T hi i m uli l entri s data. s s ns f n U ser-G oalLevel N etw ork A dm i i trator i the pri ary actor ns s m N etw ork adm i i trator clcks on m enu “ D efi e B ackup P olcy” ns i n i Shoul have adm i l velri hts d n e g 1. o y 2.
i er checks the current ti e w ih ti e specii d by the N etw ork A dm i i trator.N etw ork A dm i i trator. ns T ri ger g P recondi i ns to A ssum pti ns o F aied E nd C ondi i n l to A cti n o M ai success scenari (or n o basi F l w ) c o 1. ns t 3.Chapter 6 U se C ase # U C 1002 U se C ase N am e D escri ti n p o S cope and L evel L evel " efi e B ack U p P olcy" D n i T hi U se C ase defi es how the ti er task w ilw ork i backend. Tm m t m fe ns 2.m S econdary A ctor: . f the ti e i E qualto or greater than the ti e specii d by the netw ork I m s m fe N etw ork adm i i trator clcks on m enu “ D efi e B ackup P olcy” ns i n i Shoul have adm i l velri hts d ne g adm i i trator i start the “ Start B ackup process” .f the ti e i l ss than ti e specii d by netw ork adm i i trator i goes to step 1 I m se m fe ns t agai of thi use case. n s 186 . s n m l n U ser-G oalLevel P ri ary and secondary actors P ri ary A ctor : T i er m m .
l o l l m 187 . e l l d l 3)P rogram checks i any fol ers are rem ai i g to be backed up.N etw ork A dm i i trator m . ns 2)P rogram copi s al fies to the fol er w here the backup w ilbe saved.m ns 1)P rogram pi ks the fol er from fol ers specii d by the netw ork c d d fe adm i i trator to be backed up.I any f d nn f fol er are rem ai i g to be backed up i repeats step2 of thi U se C ase d nn t s 4)I there are no fol ers rem ai i g i returns the controlto U se C ase f d nn t i voki g i.Project Scenarios and Quotation U se C ase # U se C ase N am e D escri ti n p o S cope and L evel L evel P ri ary and secondary actors m S takehol ers and Interests d T ri ger g P recondi i ns to A ssum pti ns o F aied E nd C ondi i n l to A cti n o M ai success scenari (or basi n o c Fl w ) o U C 1003 " tart B ackup" S T hi U se C ase w ildefi e how the actualB ack U p P rocess w orks. s l n Sub-Functi n Level o P ri ary A ctor : T i er .T hat m eans eiher “ Start T i er” or “ D efi e B ackup n n t t m n P olcy” . i A l ernate scenari (E xtensi ns) t o o 1.f there i faiure i backup the program w ries the folow i g I s l n t l n detais to l g fie Fienam e and D ate and ti e.
Technical Factor 188 . Table 2. Calculating Unadjusted Actor Weights: .xls which has all details of the Use Case Point estimation of BackupProject.N O dat base i t racton or u i iy a ne i G U Ipresent N et ork w 3 A dm i i t at r nsr o T i er m 1 121. A ctor N am e W ei ht g D escri ti n so that thi d person can p o r understand N et ork adm i i t at r has G U Iw hi h w il w nsr o c l be used f r defni g backup polcy o i n i I w ilonl use si pl A P If r tm er t l y m e o i f nctonalt .There are two actors Network Administrator and Timer.Chapter 6 120. But here’s the explanation 1. Table Applying Use Case points For Use Case Points refer TemplateFpandUCP. Calculating Unadjusted Use Case Weight : - U se C ase N am e N etw ork A dm i i trator ns Start T i er m Start B ackup N um ber of T ransacti n o 4 3 5 W ei ht g 10 5 10 D escri ti n so that thi d person can p o r understand Has 4 transacti n l ok at the U se C ase o o R efer U se C ase R efer U se C ase 3.
Table 189 . nsr o T here i ext nsi e s e v l gi alprocessi g o c n i t rm s of n e brow si g t rough n h f l ers and f l s od ie and copyi g t em n h across T hi i f rst t m e s s i i t e com pany i h s m aki g t i n hs applcat on so no i i reusabl code i e s avaiabl and l e second t ere i no h s scope f r o reusabii y i lt n applcat on i sel i i t f as i s t o sm al t o l 1 0 0 E nd user ef i i ncy fc e C om pl x e i t rnal ne processi g n 1 0 0 1 2 2 R eusabl e code 1 0 0 123.Project Scenarios and Quotation T ech n i al c facto r g W ei h t V al e u W ei h ted V al e= g u W ei h t * V al e g u D escri ti n p o D i t i ut d s rb e S yst m e R esponse tm e i 2 1 2 A pplcat on copi s i i e f l s t m ai back ie o n up syst m e N o speci l a requi em ent as i s r t bat h process c w hi h runs at c ni ht speed i of g s not pri e m i port nce m a S i pl navi at on m e g i f r N et ork o w adm i i t at r.
s n i s A netw ork adm i i trator are them ns sel qui t techni alguys. 5 4 2 P ortabl e 2 0 0 E asy to change C oncurrent Securiy t obj cti es e v D i ect access r to thi d r parti s e U ser trai i g nn faciii s lte T otalT C F 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 N etw ork adm i i trator can ns understand the applcati n by i o them sel es v 0. Environmental Factor 190 . f e c O nl shoul w ork on w i dow s y d n 2000 server. 5 0 W ei hted V al e= g u W ei ht * V al e g u 0 D escri ti n p o N etw ork adm i i trator are ns techni alguys w ho can do c them sel es v A s used by netw ork adm i i trator no speci luser ns a frei dlness i needed.See assum pti ns o for detais l N o speci lrequi em ent as such a r for now . 6 6 123.Table 4. N o requi em ent as such r I s i house no requi em ent as t n r such N o requi em ent as such r 0.Chapter 6 T echni al c factor I stalati n n l o ease E asy use g u W ei ht V al e 0.
Project Scenarios and Quotation
E nvi onm ental r F actor
W ei ht g
V al e u
W ei hted V al e= g u W ei ht * V al e g u
D escri ti n so that p o thi d person can r understand everybody know t e h proj ct very w el as t e e l h requi em ent are very r s cl ar e 20 % percent applcaton i i experi nce peopl are e e avaiabl l e Have 2 years of O O P s experi nce e Have around 2 years experi nce l ad anal st e e y l adi g t e proj ct e n h e 20 % percent applcaton i i experi nce peopl are e e avaiabl l e Have 2 years of O O P s experi nce e Have around 2 years experi nce l ad anal st e e y l adi g t e proj ct e n h e P roj ct bei g sm al t am e n le has l ss m otvaton e i i R equi em ent do no r s changes N o part tm e st f i af P rogram m i g l nguage i n a s V B . ET N
Fam ii riy w ih la t t proj ct e
A pplcaton i i experi nce e O bj ct ori nt d e - e e program m i g n experi nce e Lead anal st y capabiiy lt A pplcaton i i experi nce e O bj ct ori nt d e - e e program m i g n experi nce e Lead anal st y capabiiy lt M otvaton i i St bl a e requi em ent r s P art tm e St f -i af D ifcul fi t program m i g n l nguage a T ot l a
1 2 -1 -1
0 5 0 1
0 10 0 -1 0. 85 7
Total Unadjusted Use Case = UAW + UUCW = 29
6. 7. 1.
Adjusted Use Case Point = 29 * 0.66 * 0.785 = 15 approx. Total Man days = 37 man days approx. Counting ILF
F uncti nalty o i B ackup P olcy i D ET 7 RET 2 V al e u 7
Applying Function Points
Following are the DET’s considered in ILF
D E T ' consi ers s d St rt tm e,Fol ers t be backed up, a i d o B ackup f l er nam e ,Log fl pat , od ie h A dd back f l ers ,St rt B ackup , od a St rt tm er a i R E T ' consi ered s d
Fol ers t be backed up,B ackup polcy d o i
126. Table 2. 3. Counting EIF Counting EO There are no EIF in this project There is no EO in this project 4. Counting EQ
F uncti nalty o i D ET RET 1 1 V al e u 3 3
D i pl y f l ers t be s a od o 2 backed up Load B ackup polcy i D et is f r E di al o t 7
Project Scenarios and Quotation
D E T ' consi ers s d Fol er N am e d R E T ' consi ered s d Fol ers d
St rt tm e,Fol ers t be a i d o backed up,B ackup f l er od B ackup polcy i nam e ,Log fl pat ,A dd ie h back f l ers ,St rt B ackup od a ,St rt tm er a i
128. Table 5. Counting EI
F uncti nalty o i A dd B ackup P olcy i U pdat B ackup e P olcy i C heck tm er and i st rt back up a
D ET 7 7 8
FT R 2 2 4
V al e u 4 4 6
D E T ' consi ers s d St rt tm e,Fol ers t be backed up, a i d o B ackup f l er nam e ,Log fl pat ,A dd od ie h back f l ers ,St rt B ackup ,St rt tm er od a a i St rt tm e,Fol ers t be backed up, a i d o B ackup f l er nam e ,Log fl pat ,A dd od ie h back f l ers ,St rt B ackup ,St rt tm er od a a i T i e of t e tm er , t rt tm e,Fol ers t m h i S a i d o be backed up,B ackup f l er nam e ,Log od fl pat ,A dd back f l ers ,St rt B ackup ie h od a ,St rt tm er a i
F T R ' consi ered s d
B ackup ,Fol ers t be backed d o up B ackup ,Fol \ ers t be backed d o up
C urrent tm e ,backup polcy , i i backup f l ers and l g fl od o ie
daiy.and r cover a t e y pr cedur s? o e W as t e applcat on speci i aly h i i fc l desi ned.et .Project Scenarios and Quotation G S C A t ri u t t b e D ef n i i n s i to H ow m any com m uni at on f cii i s ar c i a lt e e t er t ai i t e t ansf r or exchange h e o d n h r e of i f r at on w i h t e applcat on or n o m i t h i i syst m ? e H ow ar di t i ut d dat and e s rb e a pr cessi g f nct ons handl d? o n u i e D i t e user r qui e r sponse t m e or d h e r e i t r ughput h o ? H ow heaviy used i t e cur ent l s h r har w ar pl t or w her t e d e af m e h applcat on w ilbe execut d? i i l e H ow f equent y ar t ansact ons r l e r i execut d. 3 2 131.devel ped.w eekl .m ont l . e l y hy c? W hat per ent ge of t e i f r at on i c a h n o m i s ent r d O n-L i e? e e n W as t e applcat on desi ned f r endh i i g o user ef i i ncy? fc e H ow m any I F ’ s ar updat d by O nL e e L i e t ansact on? n r i D oes t e applcat on have ext nsi e h i i e v l gi alor m at em at calpr cessi g? o c h i o n W as t e applcat on devel ped t m eet h i i o o one or m any user s needs? ’ H ow di f cul i conver i n and fi t s so i st lat on? n al i H ow ef ect ve and/ r aut m at d ar f i o o e e st r -up.and suppor ed t g o t o be i st led at m ul i l si es f r n al tp e t o m ul i l or ani at ons? tp e g z i W as t e applcat on speci i aly h i i fc l desi ned.back up.and suppor ed t g o t o f cii at change? a lt e V al e u D at com m uni at ons: a c i 1 D i t i ut d dat s rb e a pr cessi g o n P er or ance f m 5 5 H eaviy used conf gur t on l i ai 1 T r nsact on r t a i ae O n-L i e dat ent y n a r E nd-user ef i i ncy fc e O n-L i e updat n e C om pl x pr cessi g e o n R eusabii y lt I st lat on ease n al i 5 5 1 5 5 5 5 O per t onalease ai 5 M ul i l si es tp e t 5 F acii at change lt e G SC 5 1.devel ped. Table 195 .
Following is the data collected during enquiry : Personal details (Name .Chapter 6 7. 9. provides education training in various sector. Last Name . This enquiry sheet is filled by the counselor during initial interview with client. These sector categories can be Computer Tele-communications Personality Improvement etc Until date researcher training institute have been maintaining data manually. First Name . Date of Birth) Address Details Educational Details Courses Enquiry Done When the enquiry is completed and the trainee is ready to take a course.23 = 33. The course initiation form has following details Course Name 196 .85 = 39 man / days approx. 8. There is one excel sheets provided with CD “TemplateFpandUCP.21 * 0. But due to volume of work and market expectation researcher institute now wants the get automised. From here onwards this book will describe the project but the estimation will be in excel file which is supplied in CD.21 Productivity factor = 0. course initiation form is filled.Following are the data they are maintaining manually When a trainee comes for enquiry counselor enters the enquiry in enquiry sheet. Researcher Training Institute Project Researcher Training institute established in 1994. Total Man days from function points = 33.85 FP per day 10.xls” which will give you more clarity about how the counting is done. Total Unadjusted Adjusted Function Points = 27 Total Adjusted Function Points = 27 * 1.
and what’s the factor that can convert Function points to Use Case points. This test is oral and marks are entered manually. Almost all software shops have adapted to UML which makes UCP easier to adopt.Use Case Points has the following Actors / Role and Use Case. Function Points have the following elementary process EO. how do they apply FP productivity factor to UCP.xls” provided in CD. On other hand function points is popular because of its maturity and the user perceptiveness nature approach to estimation. In order the Function points and Use Case Points should have consistent conversion factor. Many companies are migrating to UCP because of its simplicity and availability of Use Case Documents. EQ. but the base lined productivity factor which is collected across years. The popularity of Use Case Points is because Use Case documents are integral part of UML. Counselor and trainer should have facility to add new categories (Computer. Trainer then prints a certificate for the trainee and the course is closed. this mapping should be proper.Project Scenarios and Quotation Trainer Name Course Start Date Course End Date After course is completed trainer takes a test. Please note the main problem is not of learning or getting acquainted to UCP counting procedure. So let’s define our guidelines of mapping and comparison between Function points and Use Case Points so that we can conclude our difference factor:- 197 . The question arises how does a company migrate? Companies who have estimated hundred of projects using function points and already developed a good baseline of productivity factor. For answer of estimation see “ReseacherTrainingFPAndUCP. Let’s try to analyze how we can map elements of Use Case points to Function Points. ILF and EIF. First try to estimate yourself and then compare the results from the excel. EI. Converting Use Case Points to Function Points Use Case Points have started becoming very popular in most software shops now. telecommunications etc) and new courses in the categories.
Every elementary process should be mapped to Use Case or at least a group of elementary process should belong to Use Case. 198 . Its possible EP and Use Cases will not have one to one mapping. Group of EP’s can map in one Use Case.9 UUCP These results where obtained when the “Use Case Structure Matters” (See the use case chapter section) guidelines where followed. So any deviations from those guidelines this conversion can go weird. Unadjusted Function Points approx equal 0. Every EIF and its associated EI should be mapped to Use Case. So our comparison will be only on unadjusted values of UCP and FP for accuracy. Because after multiplying there respective non-functional factors (i. Multiplication factor (i.e.Chapter 6 Comparison can only be done on unadjusted values. Follow Use Case writing guidelines as mentioned in “Use Case Structure Matters” Section so that the use case writing is uniform and hence the conversion. In case of Function Points it’s GSC and in case of Use Case Points its TF and EF) the comparison will be baseless. Every ILF and its associated EI should be mapped to Use Case. UAFP = (Approx) 0. Every EI. Conversion Factor for Function Points to Use Case Points After observing around 50 plus projects the following are things observed:Unadjusted Function Points is higher than Unadjusted Use Case Points. That means comparison can be done only between Unadjusted Use Case points and Unadjusted Function points.9) increases with increase of difference in following equation.e.9 * Unadjusted Use Case Points. Actors have no equivalent mapping in Function Points. EO and EQ should be mapped to Use Case. 0.
Project Scenarios and Quotation Number of (ILF + EIF + EO + EQ + EI) – Number of (Actor + Use Case) So more the difference the more is the multiplication factor. 199 . Strictly speaking the difference should be in between 0.9 to 1.3 but anything more varying than this then some elements is not mapping or there is some serious error in counting.
But scope changes during design phase and continues till implementation and deployment phase... but meeting changing expectation with out financial loss is a biggest achievement. Customer : I want a customer screen which should have following things Customer Code Customer Name Customer Address Customer Pin code Customer Phone number Day 2 :Mr. 200 .Chapter 7 Chapter 8 Change Request. Customer: The customer screen should also have facility to add multiple phones according to each address. changed during design phase and again something new popped during implementation phase? Software companies put there quotation amount depending on scope gathered during requirement phase. How many times do you remember client said something during requirement phase. Here’s a beautiful example of how customer can change his requirement Day1 :Mr.. Day 3 :Mr. Not always” In software projects meeting client’s expectation is an achievement.. Maintenance and Quotation Introduction “When there’s a change there’s an opportunity . Customer: The customer screen should also have facility to add multiple addresses...
There are two types of basic CR from client: Adding new modules in the existing project. that software is not free. This section will deal with how CR affects various phases of software cycle and hence the quotation. one extra master form etc etc. they try only to stick to that. considerable effort will be required. Amendments given by customer can range from adding or removing extra field to changing whole business logic. Project Manager should be able to differentiate between billable and non-billable CR. they amount to one billable CR.CR means change request hence forth I will be using this acronym. But again saying no to the customer for changes will not be healthy for software project. It cost’s to pay programmers salary .For software companies to give these changes free of cost will lead only to loss for the project. Revising when a CR is billable 201 . The basic thumb rule can be if the CR by client is changing business logic it falls under billable CR category. Identifying Billable Change Request First let’s define change request before even deciding what’s a billable change request? “Change request is a change or enhancement from the current project specification “.During initial stage of the project whatever quotation amount is given. Believe me no client understands billable CR. Now’s is the next question which type of CR you should bill. All CR can not be billable.Change Request . So in this section will try to differentiate between billable and non-billable change request. Until the client is expecting everything for free. when number of unbillable CR does above certain amount. one extra report . Changes like changing color. sir there are extra changes. You try to tell the customer. and they will just not accept things. Maintenance and Quotation’s On day 1 what looked like a simple customer screen has now been heading towards customer ERP. All new modules are 90 percent times billable. Please note that does not mean you do not record unbillable CR.Many customer just say oh its one extra field . caption etc do they come under billable change request. Amendments in the existing project. That’s where software companies have to educate the clients. To identify billable CR in amendments given by client is little difficult. infrastructure etc.
Normally I take ten unbillable CR as one billable CR. To be honest if CR is big then it can change almost all document if the software life cycle. When CR amendments change business logic.SDD documents have technical know how of the 202 . 3.Definetly this document will change as there is CR. Put the classification diagram here If you look at the classification diagram internal CR is initiated because of external CR.Stake holders (Example – Customer) Project team member (Project manager .Chapter 7 When CR is for a new module.SRS document is prepared during requirement phase. In short any changes initiated other than client is non-billable. Following are sources from which CR can originate: 1 2. If project team is changing something technically may be for speed purpose.If internal CR is independent of external CR then it can be non-billable. When unbillable CR reached certain amount. Project reviewers Any CR raised other than stake holder is mostly non-billable. Source of CR In previous section we have seen the source of CR only from end customer who will use your product. Here are some lists below. project leader .SDD documents are prepared after requirement phase. But there is no hard and fast rule that changes will emerge only from customer. As many times in project technical changes are made even when there is no external CR raised. 4. SDD (System Design Document) :. Impact Analysis From project team point of view it only affects the source code. . programmers etc) Project testing department. But source code is not the only document that is changed. for better design can not be billable. SRS (System requirement Specification) Document:.
UTP documents have unit test plan of the project. If company is following strict process of documentation then these all documents are impacted in case company maintains it. that type of testing is called as SITP. SITP ( System integrated Test plan) Document : As said in previous section UTP is testing smaller unit in isolation. but can in most of the cases. You can test this class in isolation using tools like NUNIT. Estimation and Quotation documents: The quotation amount will change depending on whether it’s billable CR or not. UML documents (Class diagrams . use cases etc).SITP is testing all UTP’s in integration example in UTP you have tested Invoice business class but later invoice is integrated with accounting and printing modules and tested . internal CR or external CR. method. You have made a class for its maintenance.SDD documents are most affected due to CR SDD document change leads to source code document change.Change Request . dead line et. PMP (Project Management Plan): PMP document is the bible of project. There’s no hard and fast rule that CR will change IA but it can in many cases.Depending on complexity this document can change heavily.CR can affect UTP. resources allocated. Small units of project can be class. Source code: This is the only one document which surely changes with any CR i. Example you have “country master “maintenance module. IA: IA documents are screen shots sent to client about look and feel of user interface during initial stage of the project.SDD can have database Design . function etc. It is not necessary that CR will change this document.CR can affect SITP documents. If company is not following any process than source code is the only one document which is affected.e. Maintenance and Quotation’s projects.As said UTP is testing small units of project in isolation. object diagrams .UTP is testing plan for small units of project.It’s very rare that company will maintain so many documents. 203 . UTP (Unit Test Plan) Document: . It has the whole plan.
Figure Change Request Form 204 .Chapter 7 133.
Then comes the CR No which is just a unique number assigned to CR so that it can be tracked. Many software companies maintain there CR through software.Change Request .Table Impact Analysis Form 205 . C hange R equest F orm C om pany N am e : X yz Sof w are C om pany t P roj ct N am e : A ccountng P roj ct e i e A pproved by:T depart ent Head I m CR No 1 2 D escri ton of C R pi C hanged C ol r of o A ccountng Screen i A ccount shoul cl se s d o accordi g t Fi anci lY ear n o n a A dd check box ext a fel i r i d n voucher f rm pri t yes or o n no B il bl la e No Y es Source C ust m er o C ust m er o 3 No C ust m er o 134. The first two sections are companies name and project name. Maintenance and Quotation’s Below is given a sample change request form. A short description followed by is it Billable CR. The below CR form is just a sample and there is no hard fast rule to follow it in this way.Then source who made the CR followed by effort estimation in Man/Days. It better to maintain CR in excel as you can filter it by billable and source. Software companies normally fill in CR forms for bunch of CR rather than filling one CR by one. Please note Billable CR has no meaning if it’s not approved by customer end. Then there is approved by section which says that has client agreed to treat this as a valid CR.
1 4 0.SITP.Impact analysis form also has which sections have been updated SDD.If you see CR No 1 “Changed Color of accounting screen” is definitely a CR which will not be charged but a lot of this kind of CR will become one billable CR. Also note for non-billable CR No 1 and 2 we have put the value as 0. 1 135.1. Incase if you are just wondering. Let the client know changes can not continue indefinetly. Estimating CR As said before there are two types of CR Adding New Modules Changes in existing system 206 .SRS.1 man/hours = 1 man/hour. just to show to the client various places the impact is done and to guide during estimation.Table Impact analysis is done once customer has agreed on the change request form.CR No is used from change request form.UAT etc . Impact analysis form is indirectly estimation or the quotation for the CR raised.SC means source code. Note backward tracking is done by CR No Column.Chapter 7 I pact A nal si F orm m y s I pact d Secton m e i C R N o SD D 1 2 3 NO YES YES SR S NO YES YES SI P T NO YES YES U AT NO YES NO PM P NO YES YES E ST NO YES NO SC YES YES YES N o of M an hours 0. That’s 10 Non-billable CR * 0.
medium and complex. Changing stored procedure. Main challenge is in estimating changes in CR. 207 .CR changes from customer to customer and also what type of request it is. UCP and WBS do read them once so that this chapter goes like a simple breeze. GUI design changes etc. Below is some typical example of CR Change of textbox size. This book recommends WBS for amendment type of CR and for any new functionality you can use FP.Its know fact that effort required to make changes in existing system requires more effort than creating new systems.Table Our normal rating table for WBS had only simple. We have added one extra level Non-billable CR. Rating Table for CR R ati g n N on-bil bl C R la e Si pl C R m e M edi m C R u C om pl x C R e H ours 0. UCP or WBS can be used. database design etc. In short there is no fixed pattern of CR. Above all unstructured and undocumented code has more learning curve. Color.Change Request . If you have skipped FP.Due to this estimating using current metric methods is difficult. Changes in business logic. 1 1 2 3 136. Below is simple modified WBS CR rating table. UCP or WBS.WBS rating table can be further modified to fit according to project.CR does not have fixed pattern as such. Maintenance and Quotation’s For new modules FP.
Heres how the impact analysis sheet will look like when WBS rating table is applied.Table Impact analysis sheet gives the most detail view of CR.We will try to apply this WBS rating table to impact analysis sheet. 1 1 2 3 4 5 6 137.Chapter 7 R ati g n N on-bil bl C R la e Sem i Si pl C R . 1 3 0. I pact A nal si F orm m y s I pact d Secton m e i CR No 1 2 3 SD D NO YES YES SR S NO YES YES SI P T NO YES YES U AT NO YES NO PM P NO YES YES E ST NO YES NO SC YES YES YES W BS R atng i NBCR CCR NBCR M an/Hours 0. 1 3.m e Si pl C R m e Sem i M edi m C R u M edi m C R u Sem i C om pl x e CR C om pl x C R e H ours 0. 2 208 .
The main work that he will be doing is as follows:Rectify electrical faults if they occur. Software Company is stable and mature when it has large maintenance projects rather than new projects. Software Maintenance Recently in our building we appointed electrical maintenance engineering. Ok that was maintenance from electrical business model point of view.Table Note effort is in man/hours this is because CR is the smallest unit of effort. Apply your WBS rating table to the impact analysis estimation sheet. In software industry practically maintenance also involves making new modules and handling CR. Now let’s see what does maintenance stands in software industry. The management of the software company just asks a question how much full time engineers will be required. Normal trend in software industry is to complete the project . Construct your WBS rating table. To prevent any faults to occur by checking current electrical systems on daily basis. If lets say two engineers then quotation is 209 . Let’s try to understand definition of maintenance first “Software maintenance is to rectify any bugs that occur in production system and to ensure future bugs do not occur by proper house-keeping” Maintenance are boring job from programmer point of view. Maximum resignations occur on maintenance types of jobs.Change Request . Also note the extra column added WBS rating column. when product goes under production appoint one or two software engineers for maintenance. Maintenance and Quotation’s 138. Most software companies use sixth-sense to prepare quotation. Remember it’s during maintenance you get CR and also new projects.Whateever definition is defined in upper section is theoretical. hence productive level is very low as motivation is very low. Let’s revise the steps to estimate CR Fill in the CR form get its approval by customer. Prepare impact analysis from the CR form.
After the project is completed customer decided to give maintenance to the same company. Total UCP for masters is 100 and transaction is 50 UCP. Let’s say the project is of 100 UCP (Use Case Points) and that project has ten masters and one transaction maintenance screen. If the software before going to production has already all house keeping screens in place. Company decided to appoint one FTE. I am sure one FTE will be seen in canteen whole day. That means is it one FTE (Full Time Engineers) can handle 100 Function Points . It has following master tables Country Master City Master Region Master Customer Master It has two transaction tables Sales Invoices All the tables need to have a maintenance screen.They look at how many engineer can handle how many software metric points. These all work is not part of the software project at all. Consider the following sales project. internet connection etc. But this approach can be quiet misleading as there is large possibility that the guy who is doing maintenance can be overloaded or with out work. company will probably have no maintenance.Total project is of 150 UCP (Please note above estimation are just assumptions). it gives a evaluation of how good the software is. From my perspective it depends on how customized software and how many bugs are there.Chapter 7 Quotation = Two engineers salary + profit to be earned by company.If the quotation is prepared on basis of FTE / Software Metric Points . Bugs normally occurs in transaction screen rather than master screens.But if you closely look at the 210 .Two FTE (Full Time Engineers) can handle twenty Use Case Points (UCP) . That is if suppose you have ten FTE / 100 FP. that means there is some serious problem with the software design. If you go according to metric rules FTE/FP and you appoint two FTE for the work. So many times customer expects from the FTE to handle not only software bugs but also look at other problems like networking issues. one FTE can handle 20 WBS. Master screens are used once in a month. software installation. Software metrics had different approach for maintenance . But this approach has some serious drawbacks. probably has to be made from scratch or a change in architecture.
Software maintenance can involve: Enhancements Changes New modules So the approach of FTE/ Software points can be very misleading.Definetly he will be quiet overloaded. in this situation you will either appoint extra guy for supervising or increase his salary for the overload. In previous section we had talked about electrical maintenance. just chalk down what how many tasks he will perform in day and put quotation according to that. security work etc. 211 . The next section will cover a better way of quoting maintenance project rather than proportional way FTE/Software points. Same holds true for software maintenance.Now think the other scenario also customer also expects that FTE should look after : Hardware problem.Change Request . Task per Day (TPD) Approach As we seen in previous section definition of maintenance in software industry is different than in other industries. Let’s say he is also given extra responsibility to supervise other works like gardening work. Maintenance and Quotation’s project programmer would only be maintaining 50 UCP. Down shown is a simple task sheet or daily house-keeping the maintenance engineer has to do. If a FTE is getting appointed at client side. Internet Connection Train users In these situations FTE will be quiet overloaded.
new enhancements in project if any etc. 212 . 0 3 0. antivirus updates . But on demand task is difficult to predict and can only be done with understanding with client.Chapter 7 T ask per D ay to be perform ed C heck al servi es are l c w orki g n Look at error l g fl s and o ie t ke appropri t actons a ae i B acki g dat base daiy n a l C heck f r i t rnet o ne connectons i A nt vi us updat s i r e A t end any probl m s users t e are f ci g on sof w are a n t N um ber of H ours 1 2 0. 5 1 0. Fixed tasks are easy to predict as you have know how of what is to be done before hand.Task Per Day Table Looking at TPD to be performed and number of hours required you easily forecast number of FTE to be required. log file supervision etc On demand work example bugs in software. Basically there are two types of maintenance task: Fixed maintenance work example backing database . 0 3 2 139.
But User Acceptance phase is not simple as it looks. This is also the closing phase and probably when you will get the final delivery amount. Many times client due there daily schedule do not give time to user acceptance and it gets delayed for several reason. Let’s say if the project is of 1 year and after 1 year still they want to make some minor changes. look and feel of website take a lot time. Warranty periods are provided to attract customers. Now it’s up to the companies policies would they like to charge for this warranty period? 2) Creative documents: Creative documents like flash movies. Estimator overlooks creative aspect of the project which can overshoot if your client is very keen about the look and feel aspects. Depending on companies policies you can give warranty period of 1 month. There is no estimation technology as such for creative documents. 3) User Acceptance: User Acceptance is phase when user accepts your product and goes live. There are two ways you can estimate User Acceptance:Take User Acceptance as 5% of the total cost of project. best go the ADHOC way and append the figure to the final estimate.Points to remeber during Quotation Chapter 8 Points to Remember During Prepare Quotation The below points are not related to any quotation procedure as such. images. But if kept in mind will help you to come out with confident quotation 1) Warranty periods: Warranty periods are normally given to customer if they want any amendments or touch up. 213 . From your side some programmers are unnecessarily engaged in user acceptance phase. Specially if the estimator is programmer himself he is least bother about the creative aspect. User signs off saying yes the delivery are according to specification. In web projects creative aspect can consume huge effort.
Example your final client is "A" but you have got this project from company "B". 4) Change of psychology: Estimator should not be biased. So but natural many of the areas there can be creep. LOC etc) are evolving and under practice. User Acceptance can pretty complicated if there there is third party in between. In short estimator should not be bothered about negotiation phase and will we get this project or not?. Function points. After looking the figure try to give Sixth sense based on your past experience. These all things will be handled at the negotiation tables between the software company director and the customer.So here you will have Twice user acceptance phase.Chapter 8 Ask the user how much time he will take for user acceptance. Estimate them differently so that on negotiation table with client you can show him the complete break up. Leave that work to the companies’ director. Example if any customer says that he needs chat module and no clarification is made till 214 . 6)Modular Estimation: In huge projects with 100 of modules its better to estimate modular wise. 5)Sixth Sense Approach: Any of the software measurement ways ( Use case. Client can decide either to not take the module (Due to financial concerns) or move it to phases. And if you are the director of the company think that thing after estimation is over. Second this approach is very useful for phase wise estimation. A estimator job is to show the real cost of the software to the company. Supplier module and Accounts module. Example if a client is asking for a customer module.So your company coordinates with "B". Some time estimation will be fair if went the ADHOC way. So estimate accordingly. If you are employee of the company do not add extra charge or subtract extra charges. The best way for such situation is to think the maximum possibility and estimate. 7)Information Creep and Grey Areas: Estimation are normally done at the initial phase itself probably with one or two meets with client we have to give estimation.
And Use case Point during the System requirement phase. Example 215 . Iterations: Iterate it as many as times possible and at various phases. 12)Adding buffer: The most tempted thing a estimator can do is add buffer. If the software is using any third-party components example crystal reports etc estimate them in a ADHOC way. Any training involved estimates them separately. Buffers are normally added if the estimator is the programmer himself so that he does not have to sit late night.Points to remeber during Quotation what the depth it is. 9)Assumptions: As estimation is done at the initial stage there can be lot of creep and gray areas. So according to the client financial budget changes will be made. Example use function point to iterate during scoping phase that's initial phase. Later during negotiation table show client the estimation basis. Due to gray areas estimation has to be supported by proper assumptions. Example if in the project company is also providing web hosting. 8)Other Costing: Any of the Software estimation methodology do not give cost for non-software factors. 10)Review from Third Party: Before sending the costing to the client review it internally from third person who is not involved in the project. Any traveling charges if it’s an On-Shore project. So that cross verification can be done on the error percent of the estimation. domain name. This gives a good idea before implementing that is the costing proper 11)Two teams Estimation: During estimation have two teams which will do the estimation. estimate to maximum possibility of how can chat application are made. hard ware etc put them separately.
This information will be available for any repeat reviews and for final closing.) along with related status information throughout the project lifecycle. changed requirements. FP(Function Points):-A sizing methodology for software projects based on functions of the software. Leave it to the upper director and management level to add buffer Acronym and Definitions LOC(Lines of code):-Measurement methodology which uses Lines of code to determine the size of software. Data can be sorted in any order and tables of information are easily related or joined to each other. Estimator adds a buffer for his comfort 1 week. enhancement requests. This list is done in a hierarchical fashion. grouping sets of related tasks under a common parent task. All change history will be maintained with the Change Request. etc. 216 . and Software Engineering Technical Practices. The SEI carries out its mission through two principal areas of work: software Engineering Management Practices. including all state changes along with dates and reasons for the change.Chapter 8 for programming integration with payment gateway maximum you will require 3 days (which includes understanding the API and coding a sample to connect with payment gateway). As said in point Change of psychology think unbiased way. CR (Change Request):-A formally submitted artifact that is used to track all stakeholder requests (including new features. MOM(Minutes of Meeting):-A document which describes what was discussed in the meeting.):-A federally funded research and development center that is under contract to Carnegie Mellon University and is devoted to the advancement of software engineering and the quality of software support systems. SEI(Software Engineering Institute. defects. RDBMS(Relational Database Management System):-A database management system in which data can be viewed and manipulated in tabular form. OOP(Object Oriented Programming):-A programming technology in which program components are put together from reusable building blocks known as objects WBS(Work Break Down Structure):-The list of tasks and subtasks defined for a project.
Actual number of lines in a source document.Use Case points method is a software sizing and estimation based on Use case document.A numeric sum of value of Use cases after classifying and before multiplying the technical complexity factor of the system. EP(Elementary process) UCP(Use Case Points):. (When you go through steps of how to calculate UAW this will be more clear) UUCW(Unadjusted Use case Weight):. that is based on graphics instead of text. UAW(Unadjusted actor weights):. (When you go through steps of how to calculate UUCW this will be more clear) UUCP(Unadjusted Use Case Points):. Use Case Transactions:-Its an atomic set of activities that are either performed entirely or not all. often across a network or via a modem. FPA(Function Point Analysis) SMC(Simple .Points to remeber during Quotation SLOC(Source Lines of Code):-(Source Line of Code) One line in a computer program.Resources working full time in a work.Sum of UAW and UUCW API(Application Programming Interface):-Application programs used for accessing services provided by some lower-level module (such as operating system) GUI(Graphical User Interface):-A computer terminal interface. each SLOC ends with a semicolon. 217 . Web browsers read HTML and display the page. commercially available products that can be purchased and integrated with little or no customization. SLOC is used in COCOMO and PROBE as the basis for estimating software-development time.a mechanism for transferring files from one computer to another. FTE(Full time Engineers) :. such as Windows. In many languages. DLOC(Delivered Lines of Code):. thus facilitating customer infrastructure expansion and reducing costs.A numeric sum of value of actors after giving the classification and before multiplying the technical complexity factor of the system. COTS(Commercial off-the-shelf software):-Commercial off-the-shelf. HTML(Hyper Text Markup Language):-The document format language used on the World Wide Web. Medium and Complex) FTP(File Transfer Protocol):-File Transfer Protocol .
See table 4. 218 .Chapter 8 Tfactor(Technical factor):-Total of all technical factor.TCF is calculated from Tfactor. EA(Enterprise Architect):-Software program shipped with CD for Use Case Points. See for more details in steps in estimation.0 for more details TCF(Technical Complexity Factor):-Factor which defines the complexity of the project. For more details see steps for UCP estimation. EF(Environment Factor):-This is multiplying factor. AUCP(Adjusted Use Case Points):-This the value obtained after multiplying with Efactor and Tfactor.
Points to remeber during Quotation 219 .
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.