Исходник Софт Оценка Lua скриптов метрикой Холстеда

vadimka0216

Известный
Автор темы
38
63
Всем
Untitled.png
, решил залить бесплатную софтинку для оценки ваших Lua скриптов
Операнд— это сущность, с которой оператор выполняет какие-либо действия (в нашем случае: числовые или строковые константы, идентификаторы(функций, переменных, таблиц, структур, классов и т.д.)).

Операция - способ работы между операндами.

Метрика Холстеда
Метрики Холстеда предлагают разумный подход к решению следующих задач:
-предсказание условий, необходимых для программирования по предложенным проектам;
-определение норм первоначальных ошибок;
-количественная оценка языков программирования и эффекта модульности;
-обоснование метода измерения различий между программами, написанными специалистами разного уровня.
В основе вычисления метрик Холстеда лежит концепция, согласно которой алгоритм состоит только из операторов и операндов (проверяется рассмотрением простых вычислительных машин с форматом команд, содержащим две части: код операции и адрес операнда).

1. Подается на вход папка или файл. Если папка, то просматриваются рекурсивно все директории и ищутся файлы с пометкой ".lua"(вы можете просто перетащить папку или файл на .exe-file).
2. Каждый файл открывается и читается сразу весь полностью, ищутся все операнды и операции языка, которые записываются в специальную таблицу.
3. Также создается вход-выходная таблица. Во входящих и выходящих аргументах (параметрах) пришлось намудрить, так как у языка нет встроенных модулей для принятия и вывода информации(за исключением print), но вы сами можете поменять шаблон поиска
Untitled.png
.И далее все расчеты ведутся исходя из метрики Холстеда
4. Выводятся 3 таблицы (таблица операндов, таблица операций, таблица входных и выходных аргументов) и вместе с ними таблица результатов метрики Холстеда.
В выводе таблицы операндов: слева выводится операнд и справа через знак ":" выводится количество их количество.
В выводе таблицы операторов: слева выводится шаблон операции и справа через знак ":" выводится их количество.

Как оценить свои скрипты данной метрикой:
На мой взгляд, самая драгоценная характеристика здесь - это время на реализацию, чем она выше, тем больше усилий вы потратили на выполнение задачи.
Подробно о характеристиках вы можете узнать здесь. **Заметил, что в луа (а не в рандомном вкидыше файла) уровень реализации(L) всегда имеет диапазон от 0.004 до 0.1 и уровень языка(La) где-то между 2 и 4 (иногда этот показатель шалит и показывает большие значения).


Применение
1. Допустим, вы заказчик и не хотите переплачивать лишние деньги за простенький программный продукт (на lua 😀). Так вот, с помощью данной программы можно оценивать приблизительные труды программистов, посмотрев на время реализации (например, если время реализации составило 60 минут (1 час), то вы должны заплатить N-сумму и т.д. или же сравнить цену).
2. Для программиста же может быть программа интересна, если он хочет посмотреть количество используемых операндов и операций, которые он использовал в своем коде.

Ссылки: github
 

Вложения

  • LuaMetricHalstead(compled).rar
    6.3 KB · Просмотры: 32
  • ProjectVS2012.zip
    51.1 KB · Просмотры: 16
Последнее редактирование:

vadimka0216

Известный
Автор темы
38
63
upd.
1) Обновил софт (в 98% случаях правильно считаются операции и операнды, в остальных случаях выходят спорные моменты). Список изменений:

1. Добавил парсер чисел и строк (для операндов).
2. Изменил парсер операторов и операндов:
Заменил операторы '(' и ')' на "()", '{' и '}' на "{}", '[' и ']' на "[]"
Убрал бесполезный операторы '"', ';'.
Исправил поиск операции '-'.
Изменил шаблон поиска идентификаторов и др.
3. Добавил несколько приватных методов и другое...
2) Обновил описание темы
 

#Kai-

Известный
705
291
2021-07-26_00-08-00.png


Попытался свой проект скормить, консоль нахуй зависла... Это что получается:
16к часов
695 дней
Почти 2 года?

Пиздос, только я думаю и 50% не написал задуманого....
 
Последнее редактирование:

vadimka0216

Известный
Автор темы
38
63
Посмотреть вложение 106985

Попытался свой проект скормить, консоль нахуй зависла... Это что получается:
16к часов
695 дней
Почти 2 года?

Пиздос, только я думаю и 50% не написал задуманого....
Норм, вам надо в BlastHack Team вступать с такими громадными уникальными проектами
 
  • Ха-ха
Реакции: user390868

#Kai-

Известный
705
291
Норм, вам надо в BlastHack Team вступать с такими громадными уникальными проектами
или кому то программу исправлять xD
Если брать с начала разработки и по сей день, то реально 2-й год начался, а по суммарно затраченого времени, ну хз сложно.