--- 02/assignment2.tex 2003/12/11 14:44:50 1.1 +++ 02/assignment2.tex 2003/12/11 18:49:54 1.4 @@ -24,19 +24,88 @@ These three supplements each other adding references to each other. None of these is useful by itself, but by adding them up one can get a better perspective of the - size of the software. + size of the software. The length itself don't tell + anything of how large the completed software will be, but + together with functions and complexity one can understand + the size of the software. Once the size of the software is + established one may come with effort estimations, and + based on those make a budget for what resources the + project will need. Given these three it is possible to get + an idea of how productive a programmer is during a time + unit. It will not be a perfect answer, but it will be + something that could be used to measure deviations in work + etc. \subsection{Give an example where code length measure can be useful and an example where source code length measure is not useful.} - svar + Code length is useful if it is not going to be used by + itself. One example of this could be if we are interested + in how much work is done in a week. Then we could look at + loc, and also take into account the complexity and the functions provided + (like loc * complexity / functions or something similar). + Then loc could be useful. + + Code length is useless if it is used by itself. For + example the statement I am a good programmer since I + produce more then n loc per week useless. \subsection{Explain what are the main ideas behind Albrecht's Function Points. Discuss advantages and disadvantages of the measure. Motivate.} - svar + %denna var bra http://www.spr.com/products/function.htm + The main idea behind FP's are to provide language + independent metric that can be used no matter what + language are used. Albrech thought it was wrong that the + only way to tell effort and cost per effort until he begun + was in loc. A often used metric to tell productivity was + cost/loc, and that don't tell anything since different + languages require different number of loc's to solve the + same problem. This cost could be lover if the language + requires a lot of code, but the end cost could still get + higher if the program takes longer time to complete. + The main idea behind FP's is to give ways to + tell cost and productivity in a way that is language + independent. FP's does satisfy this idea. A easier + language will get a lower cost/FP and a greater number of + FP's/person\&month then a more complex language. + + The great advantage with this method is that it is (almost) truly + language independent, while a disadvantage would be that + if this is established in the beginning of a project and + should be used to choose a appropriate language to use, if + the language is unfamiliar, then these metrics can't be + computed (like FP's/person\&month). Also this way of presenting + the result does not take into account training and + inexperience while showing the result. Also this should + not be used to compare different projects or groups to se + the difference between them since this does not take + everything into account. Also one might be tempted to + always use the language with the highest productivity, + this is good in most cases, but sometimes there are other + factors to sum in, like speed, security etc. \subsection{Describe structural measures presented by Fenton. (Control flow structure, Data flow structure, Data structure). Give an example where you explain how one could use the structural measures (specify which structural measure) to ensure the quality of the software product.} - svar + %http://sern.ucalgary.ca/~kliewerc/SENG/623/summaries.htm#sum02 var lite halvbra... det bästa jag kunde hitta dock, + F4... + Control flow is a diagram with nodes, connected via the + directed connections showing the possible routs the + program (or actually the flow of data in the program) may + take. This could be broken down to several diagrams if it + gets to large and complex. This diagram can be used to + decide how many test cases is needed to test the program + completely. + + The data flow structure could be shown in a module-call + graph. The module-call graph shows what modules calls what + other modules, and thereby showing more the flow of + information within the program. This may also be used to + show coupling and cohesion in the program. + + The data structure can be measured both locally and + globally. Locally it is interesting how much data + structure each data item has, and globally it is the + amount of data for the system. For the local data + structures very little research has been done, but for the + global there are more. \subsection{Draw the flow graph for the program, which based on the data provided by everyday measurements of the air temperature will calculate the maximum, minimum and the most