Оценка характеристик на основе метрик Холстеда 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оценка характеристик на основе метрик Холстеда



Составим таблицы, необходимые для вычисления характеристик программы по методике Холстеда:

Заполним каждую из таблиц для каждого файла:

Таблица 2 Словарь операторов и операций для файла MainWindow.xaml.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using    
  namespace    
  public 8, 10  
  partial    
  class    
  :    
  void 15, 21  
  object 15, 21  
  RoutedEventArgs 15, 21  
  new 17, 23  
  Task1_Window.Show();    
  Task2_Window.Show();    
  FirstTask    
  FirstTask()    
  SecondTask    
  SecondTask()    
  {.. } 4..27, 9..26, 11..13, 16..19, 22..25  
  (..) 10, 12, 15, 17, 18, 21, 23, 24  
  = 17, 23  
  ; 12, 17, 18, 23, 24  
  . 18, 24  
  System    
  InitializeComponent()    
Всего 23 оператора/операции 27 строк 45 повторений

 

Таблица 3 Словарь операндов для файла MainWindow.xaml.cs

№ п/п Операнды Номера строк Количество повторений
  System.Windows    
  MainWindow    
  Window    
  MainWindow()    
  FirstTaskButton_Click()    
  SecondTaskButton_Click()    
  sender 15, 21  
  e 15, 21  
  Task1_Window 17, 18  
  Task2_Window 23, 24  
  KDZ_Ternovoy    
Всего 11 операндов 27 строк 15 повторений

 

Таблица 4 Словарь операторов и операций для файла FirstTask.xaml.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using 1,2,3  
  namespace    
  public 10,12  
  partial    
  class    
  :    
  void 19,26,37,52  
  object 19,26,52  
  RoutedEventArgs 26,52  
  TextChangedEventArgs    
  . 2,3,8,16,22,29,31,32,41,42,46,47,54  
  GeneralMethods.validateInputTextAsInteger() 22,29  
  Convert.ToInt64() 22,29,31  
  changeFormElementStates() 22,37  
  = 16,31,32,41,42,46,47  
  ; 1,2,3,14,16,22,31,32,41,42,46,47,54  
  this    
  bool    
  if 29..33,39..44  
  else 44..49  
  private 19,26,37,52  
  nearest.ToString()    
  > 22,29  
  && 22,29  
  InitializeComponent()    
  Task1MethodContainer.searchForNearestPerfect()    
Всего 26 оператора/операции 57 строк 88 повторений

 

Таблица 5 Словарь операндов для файла FirstTask.xaml.cs

№ п/п Операнды Номера строк Количество повторений
  System    
  System.Windows    
  SystemWindows.Controls    
  KDZ_Ternovoy    
  FirstTask    
  Window    
  FirstTask()    
  searchForNearestPerfectButton.IsEnabled 16,42,47  
  false 16,42  
  inputNumberTextBox_TextChanged()    
  searchForNearestPerfectButton_Click()    
  changeFormElementStates()    
  closeFirstTaskButton_Click()    
  inputNumberTextBox.Text 22,29,31  
  sender 19,26,52  
  e 19,26,52  
    22,29  
  nearest 31,32  
  outputTextBox.Content()    
  validateState 37,39  
  wrongInputNumberLabel.Visibility 41,46  
  Visibility.Visible    
  Visibility.Hidden    
  searchForNearestPerfectButton.IsEnabled 42,47  
  true    
Всего 25 операндов 57 строк 40 повторений

Таблица 6 Словарь операторов и операций для файла Task1MethodContainer.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using    
  namespace    
  public 8, 28  
  class    
  static 12, 28  
  private    
  Int64 12,28,14,31  
  bool    
  if 15,20,37,41  
  else    
  return 16,23,39,43,51  
  int    
  while 35..46  
  try 33..47  
  catch 48..50  
  = 14,17,31,21  
  == 20,23  
  ; 1,14,15,16,21,23,31,35,43,45,51  
  <=    
  <    
  ++ 4,17  
  %    
  + 21,41,43  
  - 37,39  
  ?..:..    
  {..} 4..54, 9..53, 13..24, 18..22, 25..52, 34..47, 37..46, 38..40, 24..44, 49..50  
  (..) 12,15,17,20,23,28,35,37,40  
  isPerfect 37,41  
Всего 28 оператора/операции 54 строчки 77 повторений

 

Таблица 7 Словарь операндов для файла Task1MethodContainer.cs

№ п/п Операнды Номера строк Количество повторений
  System    
  Task1MethodContainer    
  isPerfect    
  number 12,15,17,20, 23  
  sum 14,21,23  
    14,20,31,51,15  
  false 16,23  
  i 17,20,23  
       
  true    
  searchForNearestPerfect    
  basicNumber 28,37,41,39,43  
  delta 31,37,39,41,43,45  
Всего 13 операндов 54 строчки 35 повторений

Таблица 8 Словарь операторов и операций для файла Task2MethodContainer.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using 1,2,3,4  
  namespace    
  public 20,58,72,99,103,109,115  
  class 11,94  
  static 14,20,58,72  
  private 14,96,97  
  int 14,16,20,26,34,40,48,50,58,72,96,97,103,109,115  
  return 16,54,68,86  
  List<List<Point>> 20,22  
  List<Point> 23,36,,47,72  
  double 27,28,31  
  new 22,36,47,50,60,62,74,76,78  
  List<List<Point>>()    
  List<Point>() 36,47  
  = 22,26,27,28,31,34,36,38,43,37,38,60,61,62,63,64,65,66,74,75,76,78,85,105,106,112,118  
  getNumberOfPolyLines()    
  / 27,31  
  * 31,40,50  
  for 34..44,38..41,48..51  
  foreach.. in 80..83  
  < 38,48  
  + 16,27,38,48,82,84  
  ++ 34,38,48  
  Add 40,42,50,52,82,84  
  Math.Cos() 40,50  
  Math.Sin() 40,50  
  +=    
  {..} 7..121,12..89,15..17,21..55,35..44,39..41,49..51,59..69,73..88,81..83.95..120,100..12,104..107,110..113,116..119  
  (..) 14,16,20,22,26,27,34,36,38,40,42,46,47,48,50,52,58,60,62,72,74,76,78,80,82,84,99,103  
  , 20,33,40,50,58,72,82,84,103  
  . 2,3,4,31,40,42,50,52,61,62,63,64,65,66,75,76,82,84,85,105,106  
  ; 1,2,3,4,16,22,23,26,27,28,31,34,36,38,40,42,43,47,48,50,52,54,60,61,62,63,64,65,66,68,74,75,76,78,82,84,86,96,96,105,106,111,112,117,118  
Всего 28 оператора/операции строк 304 повторения

 

Таблица 9 Словарь операндов для файла Task2MethodContainer.cs

№ п/п Операнды Номера строк Количество повторений
  System 1,2,3,4,82,84  
  KDZ_Ternovoy    
  Task2MethodContainer    
  getNumberOfPolyLines()    
  K 6,14,16,20,26,31,38,48  
       
    16,31,61  
  getPolylineList()    
    34,84    
    27,38  
  Math.PI    
  length 20,27,50  
  numberOfPolylines 26,27,34  
  deltaLength 27,28,43  
  tempDeltalength 28,40,40,43  
  polylineList 22,42,52,54  
  pointList 23,26,30,42,47,50,52,72,80,84  
  degree    
  i 38,40,48,50  
  cornerDelta 31,40,50  
  getLine()    
  X 58,63,72,82,84,103,105,109  
  Y 58,65,72,82,84,103,106,115  
  X1 58,63,64  
  Y1 58,65,66  
  line 60,61,62,63,64,65,66,68  
  line.StrokeThickness    
  line.Stroke    
  Colors.Black 62,76  
  getPolyline    
  polyline 74,75,76,85,86  
  polyline.StrokeThickness    
  points 78,82,84,85  
  polyline.Stroke    
  Point 20,22,23,26,40,47,50,72,80,82,84,94,99,103  
  m_X 96,111,112  
  m_Y 97,118,119  
Всего 37 операндов 122 строки 182 повторения

Таблица 10 Словарь операторов и операций для файла GeneralMethods.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using    
  namespace    
  class    
  static    
  public    
  bool    
  string    
  Int64    
  try    
  catch    
  return 20,22  
  Convert.ToInt64()    
  {..} 4..26,9..25,12..23,15..17,19..21  
  (..) 11,16,18  
  ; 1,13,16,20,22  
  .    
  =    
Всего 17 операторов/операций 26 строк 28 повторений

 

Таблица 11 Словарь операндов для файла GeneralMethods.cs

№ п/п Операнды Номера строк Количество повторений
  System    
  KDZ_Ternovoy    
  validateInputTextAsInteger    
  inputText 11,16  
  GeneralMethods    
  number 13,16  
  FormatException    
  false    
  true    
Всего 9 операндов 26 строки 11 повторений

Таблица 12 Словарь операторов и операций для файла Task2MethodContainer.cs

№ п/п Операторы, операции Номера строк Количество повторений
  using 1,2,3,4,5  
  namespace    
  public 12,14  
  partial    
  class    
  :    
  InitializeComponent()    
  drawPicture.RaiseEvent()    
  private 25,39,44,49,54,82  
  void 25,39,44,49,54,82  
  new    
  bool    
  Button    
  RoutedEventArgs 20,54,82  
  Label    
  object 20,54,82,39,44,49  
  TextChangedEventArgs 39,44,49  
  changeFormElementStates() 41,46,51  
  GeneralMethods. validateInputTextAsInteger() 41,46,51,56  
  Task2MethodContainer .getPolylineList()    
  List<List<Point>>    
  Convert.ToInt32() 60,61,64  
  && 51,56  
  >    
  <    
  MyCanvas.Children.Add 70,76  
  Task2MethodContainer.getLine()    
  Task2MethodContainer.getPolyline()    
  this    
  this.Close()    
  . 2,3,4,5,10,17,18,19,20,29,30,34,35,41,46,51,56,59,60,61,64,65,70,76,84  
  ; 1,2,3,4,29,30,34,35,65,74,74  
  {..} 8..88,13..87, …  
  (..) 20,25,39,41,46,49,51,54,56,60,61,64,68,70,74,76,82  
  if 27,56  
  else    
  for 74..79  
  foreach in    
  int 60,61,65,74  
  !    
Всего 40 операторов/операций 88 строк 188 повторений

 

Таблица 13 Словарь операндов для файла Task2MethodContainer.cs

№ п/п Операнды Номера строк Количество повторений
  System;    
  System.Windows    
  System.Windows.Controls    
  System.Windows.Documents    
  System.Collections.Generic    
  KDZ_Ternovoy    
  SecondTask    
  Window    
  SecondTask()    
  XTextBox.Text 17,41,56,60  
  YTextBox.Text 18,46,56,61  
  KTextBox.Text 19,51,56,64  
  "0" 17,18  
  "5"    
  Button.ClickEvent    
  validateState 25,27  
  button 25,30,35  
  label 25,29,34  
  label.Visibility 29,34  
  Visibility.Visible    
  Visibility.Hidden    
  button.IsEnabled 30,35  
  true    
  false    
  sender 39,44,49,54,82  
  e 39,44,49,54,82  
  XTextBox_TextChanged    
  YTextBox_TextChanged    
  KTextBox_TextChanged    
  drawPicture_Click    
  wrongXLabel    
  wrongYLabel    
  wrongKLabel    
  X 60,70,76  
  Y 61,70,76  
  numberOfFigures 65,68,74  
  polyLineList.Count    
  polyLineList 64,65,68,76  
  numberOfFigures 65,68,74  
  closeSecondTaskButton_Click    
  pointList.X    
  pointList.Y    
       
       
       
Всего 36 операндов 88 строк 89 повторений

Таблица 14 Входные и выходные переменные программы

Входные переменные Выходные переменные
inputNumberTextBox.Text outputTextBox.Content
XTextBox.Text  
YTextBox.Text  
KTextBox.Text  

 


Расчет характеристик программы:

Таблица 15 Значения метрик Холстеда для программы

Наименование характеристики Обозначение и формула для вычисления Значение
Число простых (уникальных) операторов и операций n 1  
Число простых (уникальных) операндов n 2  
Общее число всех операторов и операций N 1  
Общее число всех операндов N 2  
Число входных и выходных переменных (параметров) n 2*  
Словарь программы n = n 1 + n 2  
Длина реализации программы N = N 1 + N 2  
Объем программы (в битах) V = (N 1 + N 2) × log2(n 1 + n 2) 8211,15
Потенциальный объем программы V * = (n 2* + 2) · log2(n 2* + 2) 19,65
Уровень реализации программы L = V */ V 0,002
Уровень реализации языка l = L × V * 0,0393
Работа программирования E = V / L  

Вывод

Уровень реализации исследуемой программы весьма низкий, так как потенциальный объем программы в значительной степени меньше ее реального объема (V* = 19,65; V = 8211,15).




Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 776; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.14.219 (0.017 с.)