| 1 |
%Assignment is conducted in pairs. Max. 8 pages. |
| 2 |
\documentclass[12pt, a4paper]{article} |
| 3 |
\usepackage[latin1]{inputenc} |
| 4 |
|
| 5 |
\begin{document} |
| 6 |
\pagenumbering{roman} |
| 7 |
\thispagestyle{empty} |
| 8 |
\begin{centering} |
| 9 |
Assignment 1 - PAC003: Software Metrics, 5p\\ |
| 10 |
Jonas Petersson \& Mathias Börjeson\\ |
| 11 |
\emph{jopd01@student.bth.se \& tb00mbo@student.bth.se}\\ |
| 12 |
\end{centering} |
| 13 |
\tableofcontents |
| 14 |
\newpage |
| 15 |
\pagenumbering{arabic} |
| 16 |
\section{Internal product attributes} |
| 17 |
\subsection{Explain how the three aspects of the software size (Length, |
| 18 |
Functionality and Complexity) are supplementing each other to describe |
| 19 |
the notion of software size.} |
| 20 |
%length = is a physical size of the product |
| 21 |
%functionality = counts the functions supplied by the product |
| 22 |
%complexity = measures the complexity od underlying problem, or a solution |
| 23 |
%utan att ha en aning om hur notationen ser ut drar jag till med följande |
| 24 |
These three supplements each other adding references to |
| 25 |
each other. None of these is useful by itself, but by |
| 26 |
adding them up one can get a better perspective of the |
| 27 |
size of the software. The length itself don't tell |
| 28 |
anything of how large the completed software will be, but |
| 29 |
together with functions and complexity one can understand |
| 30 |
the size of the software. Once the size of the software is |
| 31 |
established one may come with effort estimations, and |
| 32 |
based on those make a budget for what resources the |
| 33 |
project will need. Given these three it is possible to get |
| 34 |
an idea of how productive a programmer is during a time |
| 35 |
unit. It will not be a perfect answer, but it will be |
| 36 |
something that could be used to measure deviations in work |
| 37 |
etc. |
| 38 |
\subsection{Give an example where code length measure can be useful and an |
| 39 |
example where source code length measure is not useful.} |
| 40 |
Code length is useful if it is not going to be used by |
| 41 |
itself. One example of this could be if we are interested |
| 42 |
in how much work is done in a week. Then we could look at |
| 43 |
loc, and also take into account the complexity and the functions provided |
| 44 |
(like loc * complexity / functions or something similar). |
| 45 |
Then loc could be useful. |
| 46 |
|
| 47 |
Code length is useless if it is used by itself. For |
| 48 |
example the statement I am a good programmer since I |
| 49 |
produce more then n loc per week useless. |
| 50 |
\subsection{Explain what are the main ideas behind Albrecht's Function Points. |
| 51 |
Discuss advantages and disadvantages of the measure. Motivate.} |
| 52 |
%denna var bra http://www.spr.com/products/function.htm |
| 53 |
The main idea behind FP's are to provide language |
| 54 |
independent metric that can be used no matter what |
| 55 |
language are used. Albrech thought it was wrong that the |
| 56 |
only way to tell effort and cost per effort until he begun |
| 57 |
was in loc. A often used metric to tell productivity was |
| 58 |
cost/loc, and that don't tell anything since different |
| 59 |
languages require different number of loc's to solve the |
| 60 |
same problem. This cost could be lover if the language |
| 61 |
requires a lot of code, but the end cost could still get |
| 62 |
higher if the program takes longer time to complete. |
| 63 |
The main idea behind FP's is to give ways to |
| 64 |
tell cost and productivity in a way that is language |
| 65 |
independent. FP's does satisfy this idea. A easier |
| 66 |
language will get a lower cost/FP and a greater number of |
| 67 |
FP's/person\&month then a more complex language. |
| 68 |
|
| 69 |
The great advantage with this method is that it is (almost) truly |
| 70 |
language independent, while a disadvantage would be that |
| 71 |
if this is established in the beginning of a project and |
| 72 |
should be used to choose a appropriate language to use, if |
| 73 |
the language is unfamiliar, then these metrics can't be |
| 74 |
computed (like FP's/person\&month). Also this way of presenting |
| 75 |
the result does not take into account training and |
| 76 |
inexperience while showing the result. Also this should |
| 77 |
not be used to compare different projects or groups to se |
| 78 |
the difference between them since this does not take |
| 79 |
everything into account. Also one might be tempted to |
| 80 |
always use the language with the highest productivity, |
| 81 |
this is good in most cases, but sometimes there are other |
| 82 |
factors to sum in, like speed, security etc. |
| 83 |
\subsection{Describe structural measures presented by Fenton. (Control flow |
| 84 |
structure, Data flow structure, Data structure). Give an example |
| 85 |
where you explain how one could use the structural measures |
| 86 |
(specify which structural measure) to ensure the quality of the |
| 87 |
software product.} |
| 88 |
svar |
| 89 |
\subsection{Draw the flow graph for the program, which |
| 90 |
based on the data provided by everyday measurements of the air |
| 91 |
temperature will calculate the maximum, minimum and the most |
| 92 |
commonly occurred temperature (the temperature that occurs twice |
| 93 |
or more) for a given month. Present program paths that has to be |
| 94 |
executed in order to satisfy the following testing strategies:} |
| 95 |
\subsubsection{Statement coverage} |
| 96 |
svar |
| 97 |
\subsubsection{Branch coverage} |
| 98 |
svar |
| 99 |
\subsubsection{Visit each loop} |
| 100 |
svar |
| 101 |
\subsection{Calculate the cyclomatic complexity of your program. What does |
| 102 |
this figure tell you?} |
| 103 |
svar |
| 104 |
\section{OO metrics} |
| 105 |
\textbf{Measuring the use cases} |
| 106 |
\subsection{Measure the use case specifications shown in Design 1 using the |
| 107 |
chosen use case metrics suite from the lecture} |
| 108 |
svar |
| 109 |
\subsection{Measure the use case specifications shown in Design 2 using the |
| 110 |
chosen use case metrics suite from the lecture} |
| 111 |
svar |
| 112 |
\subsection{Write a short section (up to ½ page) with answers to the following |
| 113 |
questions:} |
| 114 |
\subsubsection{Which of the two systems presented can be expected to be |
| 115 |
more complex and why?} |
| 116 |
svar |
| 117 |
\subsubsection{Which of the two systems can be expected to require more |
| 118 |
effort to be built? Why?} |
| 119 |
svar |
| 120 |
\textbf{Measuring designs} |
| 121 |
\subsection{Measure the class diagram presented in Design 1 using the CK metrics suite presented on the |
| 122 |
lecture.} |
| 123 |
svar |
| 124 |
\subsection{Measure the class diagram presented in Design 2 using |
| 125 |
the CK metrics suite presented on the lecture.} |
| 126 |
svar |
| 127 |
\subsection{Measure the code in the files .java from Design 1 with the CK metrics suite |
| 128 |
presented on the lecture.} |
| 129 |
svar |
| 130 |
\subsection{ Measure the code in the files .java |
| 131 |
from Design 2 with the CK metrics suite presented on the lecture.} |
| 132 |
svar |
| 133 |
\subsection{Write a short section (up to ½ page) with answers to the following |
| 134 |
questions:} |
| 135 |
\subsubsection{Which of the metrics could not be computed based on the class |
| 136 |
diagrams? Why?} |
| 137 |
svar |
| 138 |
\subsubsection{Which of the two systems is more complex? Why?} |
| 139 |
svar |
| 140 |
\subsubsection{Which method of gathering metrics - from UML designs or source |
| 141 |
code - is less time consuming?} |
| 142 |
svar |
| 143 |
\section{External product attributes} |
| 144 |
\subsection{Describe how the external product attributes differ from the |
| 145 |
internal ones. Describe the connection between external and |
| 146 |
internal product attributes.} |
| 147 |
svar |
| 148 |
\subsection{Assume that you are |
| 149 |
working at the company that mainly specializes on developing of |
| 150 |
web-based applications. Your manager gives you an assignment to |
| 151 |
develop a software quality model for the company. The model should |
| 152 |
show external quality attributes, corresponding internal |
| 153 |
attributes and metrics. Present the assumptions that you will use |
| 154 |
while creating of the quality model. Provide an explanatory text |
| 155 |
for your model.} |
| 156 |
max 8 sidor |
| 157 |
\end{document} |