Lecture 20: Project Estimation Techniques (Contd.) — Transcript
Full transcript
- 0:00[Music]
- 0:17okay good afternoon
- 0:18now let's start in this section in this
- 0:22lecture we will take up some of the
- 0:24examples for this and rest a function
- 0:28point methods will take few examples so
- 0:30that you can better understand we'll
- 0:33take some more examples on this al Bai G
- 0:36function points then we'll take two more
- 0:38types of concern points that's C months
- 0:40about two function point and the cosmic
- 0:42function points so we have already
- 0:45discussed these parametric models for
- 0:47resides last class I have told will use
- 0:50I will see portrait type shop for these
- 0:55estimations like IP IEP function pants
- 0:59malfunction pants cosmic function pants
- 1:01and Kakuma two one in kokomo two last
- 1:03class already have discussed IEP
- 1:05function points now we'll see this
- 1:07Simmons mark to concern point and cosmic
- 1:10function points before going to that
- 1:11let's take one or two more problems more
- 1:14examples on this IEP G function points
- 1:18so we will take up this example but I
- 1:21hope that before going to this example
- 1:23the let me again tell you the let us
- 1:28take up that a this example and here
- 1:32we'll see that how this previous formula
- 1:37that we can use I have already told you
- 1:39last class first we have to find out the
- 1:41unadjusted function point then we have
- 1:44to refine it by using the value
- 1:47adjustment factor so this formula for on
- 1:50adjusted function point can be written
- 1:53as what I have already shown it in the
- 1:55last slide this will be called do
- 1:57summation of number of elements of the
- 2:08given type may be DJ input or output or
- 2:15query what is the number of elements
- 2:17into the weight the weight I have
- 2:23already given you four simple there can
- 2:26be three
- 2:27the weights can be divided into three
- 2:29categories depending on whether it is
- 2:30simple or medium or high
- 2:33so that table algorithm ulta that
- 2:36complexity classifiers the multipliers
- 2:40we have already given you in the last
- 2:42class and now with this now let us take
- 2:45up this problem so now let us take this
- 2:49one more example this example said that
- 2:53consider a project with the following
- 2:55functional units that are suppose in
- 2:57that project there are 50 user inputs 40
- 3:00user outputs 30 pipe user enquiries and
- 3:036 user files for external interfaces so
- 3:07now let us assume that all the
- 3:09complexity adjustment factors and
- 3:11weighting factors they are average
- 3:12everything is average so then the
- 3:14question is that compute the function
- 3:16points for the project and then compute
- 3:20what will the sides
- 3:21given that the program needs 70 LOC per
- 3:24function point so now let's go you can
- 3:28see that the inputs is equal to 50
- 3:32outputs is you can do 40 and courage is
- 3:3635 and internal files you can see that a
- 3:39number of internal files is 6 and 4 with
- 3:44the external interfaces that 6 and this
- 3:48so use these values in the given formula
- 3:51that I already have given you and then
- 3:54it will give you this value of ufp so
- 3:57basically two things I am taking the
- 3:59possible number of elements from each
- 4:03category input-output inquiry then
- 4:06internal file and external interfaces
- 4:09multiplied by the multiplier the weight
- 4:13which is whether it will vary depending
- 4:15on whether it is simple or average or
- 4:17what hi in my previous problem I have
- 4:20already told you that they are all what
- 4:22average so all the complexity addressed
- 4:25are just meant factors are abolished as
- 4:27well as DC weighting factors they are
- 4:29operates it will be much more easy to
- 4:31compute so now you have P is equal to
- 4:33strict photo perform formula apply this
- 4:35you will get 628 then you have to find
- 4:38out the what value are just one factor
- 4:40again that formula we have told you 0.6
- 4:42a plus 0.65 plus 0.01 into TDI we are a
- 4:47TDI is equal to total degree of
- 4:50influence and here put in parameters
- 4:52since it is told that this is average
- 4:54simplicity I have already told you that
- 4:55these complexity of different factors
- 4:58are average as you like the weighting
- 5:00factors them in the GS see this general
- 5:03system Catholics there they are these
- 5:06are also average so again for average
- 5:07since you have taking a scale from zero
- 5:09to five again this is average you will
- 5:11be coming three so this will go and
- 5:13point zero seven so the AP will be more
- 5:15the adjusted function points will be
- 5:18equal to on other state function points
- 5:20in to be AF so because why we are doing
- 5:25this we want to refine it so the you can
- 5:28get the adjustment function point by
- 5:30what multiplying the unadjusted function
- 5:33point on the value adjustment factor so
- 5:35this is given two six seven two so this
- 5:37is they are just add function points so
- 5:41now what is question again
- 5:43and the second part question is that
- 5:44find out the size of the complete
- 5:46project how can compute if I find out
- 5:48the complete the size of the complete
- 5:50project you have to use this information
- 5:52it said that the program needs 70 LOC
- 5:56part function point that means per
- 5:57function point that can be seventy lines
- 5:59of code so what is the total number of
- 6:01lines of code so sorry how did the total
- 6:04number of AP function point 672 so the
- 6:07total side u will be equal to the
- 6:09function points into LOC parkinson point
- 6:12so 672 into seventy in this way you will
- 6:15get that these total size of the project
- 6:19in terms of LOC is coming to be 474 zero
- 6:23so in this way for small projects you
- 6:26can easily use these formula find out
- 6:29the function points and sites so in the
- 6:32examination some this types of small
- 6:34what questions might be asked and you
- 6:36have to find out the answer so let's
- 6:38take quickly another example in this
- 6:40example a project you have to develop
- 6:44for that you have to find out the
- 6:46function point for that project this
- 6:49project has the following
- 6:50characteristics there are number of user
- 6:52inputs is 30
- 6:54number of future outputs is sixty number
- 6:56of you did incur is twenty port number
- 6:58of piles is equal to eight and number of
- 7:00external interfaces to so and assume
- 7:02that all the complexity are just going
- 7:04to value their average and all the
- 7:06weighting factors are updates so then
- 7:07you have to find out the number of
- 7:09function pairs you can see your P
- 7:11against Pawar formula that I have given
- 7:13summation up on the number of elements
- 7:16from its type into weight whole then
- 7:19take the overall summation you will get
- 7:21applying this formula straight forward
- 7:23you can see that there are 32 number up
- 7:25for what input users and do we know
- 7:28therefore average case this what value
- 7:31it support it is already given these are
- 7:34just reactors are average so the value
- 7:36will be what 32 into port similarly
- 7:38output is 60 the average weight is 5 and
- 7:41this is the enquiries it is 24 number of
- 7:44encourage are there you can see and this
- 7:47average value for inquiry is for unlike
- 7:51this you can compute there are eight
- 7:53numbers of what internal files and two
- 7:56number of external interfaces so 8 into
- 7:58average value for the interfaces 710 and
- 8:01to number of external interfaces average
- 8:04value it's seven so find out this value
- 8:06it's coming 618 then you have to compute
- 8:10the value adjustment factor by using the
- 8:12formula 0.6 here PI plus 0.01 into TDI
- 8:15and since it's a given that these are
- 8:18also these general ket system
- 8:20characteristics they are average so I
- 8:21can put it 14 into 3 so that will 1.07
- 8:25so finally the unadjusted function point
- 8:27can be obtained by multiplying the
- 8:29unadjusted function point and the value
- 8:32adjustment factor so this is giving to
- 8:34be 6 6 1 point 2 6 so the total number
- 8:36of are just add function points or the
- 8:38adjusted function point counts for this
- 8:40project will be equal giving us 606 one
- 8:43point 2 6 so suppose if a poor function
- 8:47point you have to write say 80 lines of
- 8:49code so what will the size in terms of
- 8:51LOC so 661 1 to 1618 so this will give
- 8:55you roughly the size of the proposed
- 8:57project so in this way you can use all
- 8:59breast function pointer method to find
- 9:02out the to estimate the size of a given
- 9:05project so now let us quickly say about
- 9:08these what function points mark 2 this
- 9:12is also another interesting approach to
- 9:15find out the concerned parents this was
- 9:17developed by Charles R Simmons actually
- 9:20the details of each method is available
- 9:23in a book developed it has published a
- 9:26book on suppress IDing and estimating by
- 9:28EULA and John's in 1991 which contains
- 9:31the details of his function pairs that
- 9:33is function points mark 2 it is built on
- 9:36actually an extension up for this al
- 9:39breast function point so it's build on
- 9:41work by Al just one simple method it is
- 9:44developed in parallel to I opinion app
- 9:47it's so simultaneously it was developed
- 9:50in parallel with the AL breast I appear
- 9:53pits so it is rather simple and more
- 9:57readable method so how it works
- 10:00so for each transaction you have to
- 10:03count the data items input the data
- 10:05items output and the entity types assess
- 10:09so these three parameters you have to
- 10:12count and then you can find out the
- 10:16total function point for the whole
- 10:18project by using a formula which we'll
- 10:19see in the next slide
- 10:21see how does it work sighs I already
- 10:23told you you have to supply the input
- 10:25items agile as you will see also three
- 10:29parameters that you could have told the
- 10:31number of input output the number of
- 10:33input out items supplied to the process
- 10:35the number of entities assessed from
- 10:37this data store and the number of output
- 10:40items produced so this in this way this
- 10:43function point mark to this works this
- 10:46is a simple is a simpler method than
- 10:48this al based on some point and it is
- 10:52widely used in UK so what is the final
- 10:55formula for finding out the mark to
- 10:58function point the function count is
- 11:01given by the following equation and I
- 11:04start zero point five eight plus any
- 11:06star one point six six plus I know star
- 11:080.26 we are ni any and I know we have
- 11:11already defined earlier and I did at
- 11:14items input you know the data items
- 11:15output and any the NT drives associated
- 11:18associated or the sorry the entire
- 11:21assess so this value judge do these
- 11:25constants are some weights zero point
- 11:27five eight one point six six and zero
- 11:28point two silhouettes this Simpson okay
- 11:33see months he had found out these values
- 11:38of the constants by performing
- 11:39experiments in his lab so directly he
- 11:41had utilized these values of the
- 11:44constants along with these parameters ni
- 11:46any and they know and he has developed
- 11:48this formula to find out the function
- 11:50points this is known as Simmons mark two
- 11:53function points this is simpler than
- 11:54alastor function point now let's see
- 11:58about the whether these function points
- 12:02so far we have seen the algorithm and
- 12:04some points on the Simmons function
- 12:05points can they be extended to real-time
- 12:08systems and embedded systems see this
- 12:11mark - and IEP purity function points
- 12:14they were mainly designed for
- 12:16information systems under hence they are
- 12:18not suitable for embedded systems why
- 12:20because these two function points they
- 12:23are largely or heavily dominated by the
- 12:27input and output operations the most
- 12:29emphasis is given on the number of input
- 12:31operations on the output operations so
- 12:34in order to overcome this problem so
- 12:36cosmic full point cosmic pull function
- 12:40points they have been developed in order
- 12:42come these problems this cosmic full
- 12:45function points they attempt to extend
- 12:48the concept this concept which concept
- 12:51this the mark to concept or iph concept
- 12:54to embedded systems so now these
- 12:57concepts have been extended to handle
- 12:59embedded systems to apply on embedded
- 13:02systems or real-time systems you know
- 13:03that in an embedded system it's
- 13:07creatures like hidden and etc okay isn't
- 13:11it if in an embedded system its features
- 13:13normally will be hidden because the
- 13:16software the these software's use your
- 13:18probably is not a human being it will be
- 13:21used by some hardware device or another
- 13:24sub third component in order to what
- 13:28overcome these problems
- 13:30cosmics deals with this by decomposing
- 13:33this
- 13:34architecture into a hierarchy of subtile
- 13:37layers and the embedded software is seen
- 13:40as being in one of body or in a
- 13:42particular layer in the system this
- 13:44layer where are this software is present
- 13:47this communicates with other layers I
- 13:49mean upon layers and the below layer and
- 13:51also other components are the same level
- 13:53same level the software component which
- 13:56has to be sized it can receive requests
- 13:59for services from layers above and it
- 14:02can request services from those below it
- 14:04this is shown in the in this figure so
- 14:07the software component represents
- 14:08suppose here it may receive what
- 14:11messages from higher layers it may make
- 14:14a request for a service what from a
- 14:16lower layer and also it may receive a
- 14:19what service from a what a lower layer
- 14:22it may service it will provide some
- 14:24service to some higher layer besides
- 14:26that this software component may
- 14:28communicate with the persistent storage
- 14:32pure component and other components
- 14:34present in the same layer this is the
- 14:36layered software and the based on this
- 14:38concept this embedded systems work so
- 14:40since the address the function point and
- 14:43assumptions upon humans function points
- 14:45they cannot handle this embedded systems
- 14:48that's why this another what function
- 14:52point technology has been developed that
- 14:54will cosmic slate now let's see how
- 14:55cosmics does work so so now I have a
- 15:01little do that here the software
- 15:04component that has to be sized
- 15:06can receive requests for services from
- 15:08layers above and it can equal services
- 15:11from those below it so this identifies
- 15:15what will the boundary of the software
- 15:17component that has to be assessed and
- 15:19thus the points at which it receives
- 15:21inputs and transmits out ports it inputs
- 15:25here the inputs and outputs are
- 15:29aggregated into data groups where each
- 15:32group will bring together data items
- 15:34that relate to the same object of
- 15:37interest let's see what can be these
- 15:39what groups the data groups can move
- 15:42about in four ways as follows and like
- 15:46one each entry and
- 15:48Egypt and reefs another's rights so
- 15:51these are the what data groups which are
- 15:54the four ways in which the data groups
- 15:56can move about so interest means
- 15:58movement of data into this after
- 16:00component that is under consideration
- 16:02from a higher layer or a pure component
- 16:04age it means movement of data out of the
- 16:07software component that a general
- 16:08consideration really means data movement
- 16:11from persistent storage and writes means
- 16:14data moment
- 16:15to persistent storage so in this way
- 16:17before which the data groups can move
- 16:19and what we have to do that each counts
- 16:22so each of the above each counts one
- 16:25cosmic functional side unit and insert
- 16:28we call at CFS you so in this way the
- 16:31cosmic function points can be a
- 16:34calculated in this to the cosmic
- 16:35function points can be computed can be
- 16:38estimated for any embedded system or
- 16:42real-time system the overall pull
- 16:47function point count how how it can be
- 16:50found out the overall pull function
- 16:51point count can be derived by simply
- 16:54adding up the counts for each of the
- 16:56four types of data moment that we have
- 16:58seen in the last slide the cosmic ffh
- 17:02they have been incorporated into ISO
- 17:04standard we have already seen that the
- 17:06LOC etc they are not included
- 17:10incorporated in any ISO standard but
- 17:12this cosmic FFPs they have been
- 17:14incorporated into ISO standard now let
- 17:17us quickly see about the what
- 17:19disadvantages of the cosmic a page it
- 17:22does not take into account any
- 17:23processing of the data groups okay so it
- 17:27does not take it does not consider any
- 17:29processing of the data groups once they
- 17:31have been moved into the software
- 17:32component so once they what data groups
- 17:36they have been moved into the software
- 17:38component this metric does not take care
- 17:40of this this material does not take into
- 17:41account any processing of these data
- 17:43groups normally it is not recommended
- 17:47for use in systems which involve complex
- 17:51mathematical algorithms so this this is
- 17:54not recommended for this system so these
- 17:56are important drawbacks of cosmic
- 17:58function points so now let us
- 18:02what are the pros and cons of
- 18:04difunctional parents on the positive
- 18:07side you can say that function point
- 18:08each language independent we have
- 18:10already seen LOC a language dependent
- 18:12but function points along an independent
- 18:14understandable by the client because she
- 18:17are no technical details are there you
- 18:19just what are the functionalities and
- 18:21they are associated things you are just
- 18:23analyzing so it can be understandable by
- 18:25clients which are non-technical people
- 18:27it is a very simple modeling technique
- 18:29hard to purge and the variable features
- 18:33decrypt and on the flip side you will
- 18:35see that it is very much labor-intensive
- 18:38to compute the what function points
- 18:41extensive training is required in
- 18:43experience may result in inaccuracy so
- 18:46the the function points you have
- 18:50computed if you are quite inexperienced
- 18:52it may result in inaccurate number of
- 18:54function players waited to file
- 18:56manipulation and the transactions there
- 18:58may be errors which are introduced by a
- 19:01single person so multiple raters are
- 19:04advised to if you are just keeping only
- 19:06one person to estimate this some of
- 19:08their sometimes that errors may be
- 19:10introduced so you have to put a multiple
- 19:12what raters to rate these what
- 19:15applications they can find out the
- 19:19different ways so multiple networks are
- 19:21required it does not consider one of the
- 19:23major problem with function point is
- 19:25that it does not consider algorithm
- 19:28complexity of a function so because you
- 19:30know that it rates that if there are
- 19:33some functions every function is handled
- 19:36in Sumeria but you know some of the
- 19:37functions are more complex you have to
- 19:39put more report some of the functions
- 19:41are very straight forward straight
- 19:42forward functions so they require only
- 19:45what less input or less time so it does
- 19:49not consider algorithm complexity of
- 19:50function so it traits all the functions
- 19:53similarly so I have a literal you that
- 19:57function point matrix suffers from a
- 19:58major drawback that means the size of a
- 20:00function is considered to be independent
- 20:02of its complexity which is not true the
- 20:04complexity of the functions are
- 20:06different in order to overcome this
- 20:08problem an extension to the function
- 20:10pointer metric is there which is known
- 20:12as future point metric so this pager
- 20:15bonda metric
- 20:16teksu knock out an extra parameter it
- 20:18considers an extra parameter that is
- 20:20known as algorithmic complexity so this
- 20:24parameter this parameter algorithm
- 20:26complexity it ensures that the computed
- 20:29size using the future point may take it
- 20:31reflects the following fact what if the
- 20:33fact that higher the complexity of a
- 20:35function
- 20:36the greater the important occurred to
- 20:37develop a if the complexity of function
- 20:39is high so you have to put more report
- 20:42to develop it if the complexity of a
- 20:44function is very less just like a small
- 20:46you a kind of a function it remain quite
- 20:49less support therefore it should have
- 20:51larger size compared to a simpler
- 20:53function so if we what the function is
- 20:57having higher complexity if you have
- 20:59larger sides as compared to a simpler
- 21:02function it should have larger function
- 21:04point and hence it should have larger
- 21:06stage as compared to a simpler function
- 21:08so finally let's see what the
- 21:11relationship or how that is the
- 21:14relationship between function points of
- 21:16a so Lucy or how a given a function
- 21:18point how it can be converted to a
- 21:20solution see for different programming
- 21:22languages this conversion rate is
- 21:25different like for C language 100 Port
- 21:29st.lucie is there per one function plane
- 21:33so one function point may contain 100
- 21:36for a solution similarly for C++ or the
- 21:39isola support function point is 53 and
- 21:42like this you can see it it has to in
- 21:44case of RC and you can see that it is
- 21:47almost lowest in case of HTML and visual
- 21:51basic it is 32 okay so how you can still
- 21:56make your estimation more accurate how
- 21:59can do accurate size estimation so here
- 22:02one thing you have to extract that is
- 22:04the risk factors because in the previous
- 22:06things almost we have neglected the next
- 22:10factors so in order to make your size
- 22:13estimates are more accurate you have to
- 22:14take the expected and then you have to
- 22:17multiply so you will take the
- 22:19requirement then estimate the project
- 22:21size then multiplied with the project
- 22:23complexity are just main factors then
- 22:25multiplied with the X factors so this
- 22:27will so these two
- 22:29I have already told you this is given
- 22:31we're in the function point analysis the
- 22:33project sites and they project
- 22:36complexity adjustment this you can say
- 22:39the unadjusted function point and these
- 22:41are the complexity factors by
- 22:43multiplying this you can get some value
- 22:47and that will multiplied by the X Factor
- 22:48so these two factors can be obtained
- 22:50from function burden analysis then by
- 22:54what under these two factors from the
- 22:56definition and the project completion
- 22:58adjustment and respecters they are
- 23:00dependent the situation you have to
- 23:01adjust the situation finally you can if
- 23:04you'll use all those things then by
- 23:07taking the multiplication you can
- 23:08estimate what the what the cost of the
- 23:12import and you can perform the
- 23:14scheduling finally let's quickly say
- 23:17about the object points
- 23:18see I don't compute objects points they
- 23:20have nothing to do with the object
- 23:22oriented programming here only the
- 23:25number of object points is estimated the
- 23:28number of object points is estimated
- 23:30based on three factors first the number
- 23:32of separate screens they are displayed
- 23:34then the number of reports that are
- 23:37produced and the number of modules they
- 23:39are present in the code by taking into
- 23:41account then by using some formula you
- 23:44can find out the object points these
- 23:45object points are normally are the
- 23:48they're usually simpler to estimate and
- 23:50that they take into account the
- 23:52graphical user interfaces so this is a
- 23:55little bit fundamental about object wise
- 23:57so finally we have seen that we have
- 24:00solved two more problems on our breast
- 24:04refugee function points then we have
- 24:07discussed the Simmons mark two function
- 24:10points and the cosmic function points we
- 24:15have seen that how cosmic point it is
- 24:18already included in this what ISO
- 24:21standards also we have discussed or to
- 24:25the concept of future point because we
- 24:26have seen that function point a Hajj one
- 24:29important a drawback that it does not
- 24:32take into account to the algorithmic
- 24:34complexity if two different functions
- 24:36are they are it treats them as equally
- 24:39what in fact the two function though
- 24:42they are there one
- 24:43be very highly complex another might be
- 24:46very less complex so which one is highly
- 24:48complex we have to put more rapport and
- 24:50who generates less complex we have to
- 24:52put less support so these what
- 24:54complexity is not taken into account by
- 24:56function points so that second point has
- 24:59been extended to in consider this
- 25:03complexity it has it has another
- 25:06parameter College algorithmic complexity
- 25:09so this algorithm complexity takes into
- 25:12account that the if the complexity of a
- 25:14function is more more reports will be
- 25:17given if the complexity Hoppe a bro
- 25:20function is less so less you photons to
- 25:22be given so if the complexity of a
- 25:24function is more obviously it should
- 25:26contain it should produce or it should
- 25:29have more number of concern points and
- 25:31hence the size will be more and if the
- 25:34concern is having less complexity then
- 25:37it should have less from some points and
- 25:40hence less size also we have discussed
- 25:42little bit a of deep object points which
- 25:45takes two non-count or three factors
- 25:47that were all three parameters okay
- 25:49object once it takes into three right it
- 25:52is based on three parameters that also
- 25:54we have discussed so these are the
- 25:56things that we have discussed on on
- 25:59today so in the next class we'll see and
- 26:02that goku model we have taken from this
- 26:05books we reference mainly what okay it's
- 26:09both of the books have been used for
- 26:11this these topics and finally we stop
- 26:14here thank you very much
About this transcript
This page contains the full transcript of Lecture 20: Project Estimation Techniques (Contd.) by NPTEL IIT Kharagpur, generated from the public captions YouTube serves with the video. The transcript has 4,134 words across 603 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.