- •Анализ кода программ:
- •1)Анализ кода с точки зрения размера программы по Холстеду:
- •2)Анализ программы с точки зрения сложности потока управления по МакКейбу:
- •3)Анализ кода с точки зрения сложности потока данных по Чепину
- •4)Анализ программы с точки зрения ее интеллектуальности по Холстеду:
- •5)Анализ кода программы с точки зрения стилистики и коментированности:
- •1)Анализ кода с точки зрения размера программы по Холстеду:
- •2)Анализ программы с точки зрения сложности потока управления по МакКейбу:
- •3)Анализ кода с точки зрения сложности потока данных по Чепину
- •4)Анализ программы с точки зрения ее интеллектуальности по Холстеду:
- •Cводная таблица метрик по 2 програмам
2)Анализ программы с точки зрения сложности потока управления по МакКейбу:
граф программы:
L=83
V=85
P=3
Z=83-85+2*3=4
3)Анализ кода с точки зрения сложности потока данных по Чепину
.386
data segment use16
boof1(P) db 4
db ?
db 4 dup(0);под коды символов первого числа
boof2(P) db 4
db ?
db 4 dup(0);под коды симвлов второго числа
chislo1 dw ?(M)
chislo2 dw ?(M)
rez(P) db 7 dup(0),0dh,0ah,'$'
summ dw ?(M)
nad1(P) db 'ўўҐ¤ЁвҐ 1 зЁб«® $';надпись введите 1 число в dos кодировке
nad2(P) db 'ўўҐ¤ЁвҐ 2 зЁб«® $';надпись введите 2 число
nad3(P) db 'б㬬 Ї®«гзЁ« бм $';надпись сумма получилась
nad4(P) db '¤«п ўл室 ¦¬ЁвҐ «оЎго Є« ўЁиг...$';надпись для выхода нажмите любую клавишу...
data(M) ends
cod(M) segment use16
assume ds:data(C), cs:cod(C)
.
.
.
P=7
M=5
C=2
T=0
Q=1*7+2*5+3*2=7+10+6=23
4)Анализ программы с точки зрения ее интеллектуальности по Холстеду:
L= = 0.02
I=0.02*85=1.7
E=592.873*log2 =7319
Ʌ=0.022*85=0.034
5)Анализ кода программы с точки зрения стилистики и коментированности:
программа разбита на 14 фрагментов начало каждого из них подразумевает пустая строчка.
F1= - 0.1
F2= - 0,1= 0.4
F3=8/8 – 0.1 = 0.9
F4=6/9 – 0.1 = 0.5
F5=1/7 – 0.1 = 0
F6=4/4 – 0.1 = 0.9
F7=2/8 – 0.1 = 0.1
F8=13/19 – 0.1 = 0.5
F9=1/10 – 0.1 = 0
F10=1/7 – 0.1 =0
F11=1/5 – 0.1 = 0.1
F12=1/10 – 0.1 = 0
F13=13/24 – 0.1 = 0.4
F=-0.1+0.4+0.9+0.5+0.9+0.1+0.5+0.1+0.4=4.1
Программа на Microsoft Visual Studio 2010 C# :
Текст программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lab2_metrologia
{
class Program
{
static void Main(string[] args)
{
string chislo1;//обявляем строковые переменные
string chislo2;
int ch1;//обявляем числовые переменные
int ch2;
int summa;
Console.WriteLine("введите первое число ");//выводим на экран надпись
chislo1 = Console.ReadLine();//читаем нажатия клавиш
ch1 = Convert.ToInt32(chislo1);//конвертируем строковую переменную в числовую
Console.WriteLine("\n\n введите второе число ");
chislo2 = Console.ReadLine();
ch2 = Convert.ToInt32(chislo2);
summa = ch1 + ch2;//складываем 1 и 2 число
Console.WriteLine("\n\n сумма получилась "+summa);//выводим сумму на экран
Console.WriteLine("\n\n для выхода нажмите любую клавишу ...");//выводим на экран надпись
Console.ReadLine();//ждем нажатия любой клавиши
}
}
}
1)Анализ кода с точки зрения размера программы по Холстеду:
using System;(оператор)
using System.Collections.Generic;(оператор)
using System.Linq;(оператор)
using System.Text;(оператор)
namespace(оператор) lab2_metrologia(операнд)
{(оператор)
class(оператор) Program(операнд)
{(оператор)
static(оператор) void(оператор) Main(операнд)(string[](операнд) args(операнд))
{(оператор)
string(оператор) chislo1(операнд);//обявляем строковые переменные
string(оператор) chislo2(операнд);
int(оператор) ch1(операнд);//обявляем числовые переменные
int(оператор) ch2(операнд);
int(оператор) summa(операнд);
Console.WriteLine(оператор)("введите первое число "(операнд));//выводим на экран надпись
chislo1(операнд) = Console.ReadLine()(оператор);//читаем нажатия клавиш
ch1(операнд) = Convert.ToInt32(оператор)(chislo1(операнд));//конвертируем строковую переменную в числовую
Console.WriteLine(оператор)("\n(оператор)\n(оператор) введите второе число (операнд)");
chislo2(операнд) = Console.ReadLine()(оператор);
ch2(операнд) = Convert.ToInt32(оператор)(chislo2(операнд));
summa(операнд) = ch1(операнд) +(оператор) ch2(операнд);//складываем 1 и 2 число
Console.WriteLine(оператор)("\n(оператор)\n(оператор) сумма получилась(операнд) "+(оператор)summa(операнд));//выводим сумму на экран
Console.WriteLine(оператор)("\n(оператор)\n(оператор) для выхода нажмите любую клавишу ...(операнд)");//выводим на экран надпись
Console.ReadLine()(оператор);//ждем нажатия любой клавиши
}(оператор)
}(оператор)
}(оператор)
n1=17
n2=14
N1=36
N2=23
n=17+14=31
N=36+23=59
V=59*log231= 292.298
Ň=17*log217+14*log214= 122.79