OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 11:11

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 17 Апрель, 2011 21:27 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
В связи с тем, что в некоторых моих модулях блоки IMPORT довольно объёмные и достигают полусотни элементов, пришла мысль - а можно ли судить по длине списка импорта о качестве проектирования модуля и вообще, подсистем?


Последний раз редактировалось Иван Кузьмицкий Среда, 20 Апрель, 2011 08:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 17 Апрель, 2011 22:19 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Можно посчитать ряд метрик. И на основе нечеткого подхода соорудить систему оценки качества по метрикам.
Или на основе нейро-нечеткого подхода.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 17 Апрель, 2011 22:26 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
- а можно ли судить по длине списка импорта о качестве проектирования модуля и вообще, подсистем?
По-моему, от задачи зависит. Но из общих соображений, наверное, для особо длинного списка импорта стоит поискать обоснование.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 17 Апрель, 2011 22:35 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
Можно посчитать ряд метрик. И на основе нечеткого подхода соорудить систему оценки качества по метрикам
По-моему, как ни упирайся, такие оценки будут слишком общие/поверхностные. (В смысле особо сильно упираться не стоит.) :?:

P.S. Анализатор (DevAnalyzer) считает число операторов в модуле; кажется, в док-ии оно в контексте "метрика" упоминалась --- что-то типа возможность (относительно) оценить сложность модуля.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Апрель, 2011 08:12 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Да, обычно работающим программерам подобные метрики ни к чему. Но это же интереснейшая научная работа!
Снпачала, как тут было в одной теме, набираем факты: считаем метрики и связываем этот набор чисел с нечеткими значениями какого-нить показателя внутреннего качества. Например, модифицируемость. Поскольку экспертов несколько, и наборы метрик считать на многих проектах - собирается более-менее объективная статистика. А потом уже можно забацать систему - и пусть она оценивает, например, курсовой проект или дипломный. :) А то и тестовое задание при приеме в фирму... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Апрель, 2011 10:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
В связи с тем, что в некоторых моих модулях блоки IMPORT довольно объёмные и достигают полусотни элементов, пришла мысль - а можно ли судить по длине списка импорта о качестве проектирования модуля и вообще, подсистем?
Я бы насторожился при таких списках импорта.
Похоже, что не реализуется "разделяй и властвуй".
Может быть, много мелких модулей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 10:08 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
У меня в некоторых модулях тоже встречались здоровые списки импорта - под три десятка, наверное.
Если модуль несёт верхнюю логику, интегрирует, то ему обычно приходится работать с самыми разными типами объектов - и для всех тащить импорт их определений. Но таких модулей немного обычно, они самого верхнего уровня.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 12:49 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Валерий Лаптев писал(а):
Да, обычно работающим программерам подобные метрики ни к чему. Но это же интереснейшая научная работа!
Снпачала, как тут было в одной теме, набираем факты: считаем метрики и связываем этот набор чисел с нечеткими значениями какого-нить показателя внутреннего качества. Например, модифицируемость. Поскольку экспертов несколько, и наборы метрик считать на многих проектах - собирается более-менее объективная статистика. А потом уже можно забацать систему - и пусть она оценивает, например, курсовой проект или дипломный. :) А то и тестовое задание при приеме в фирму... :)


При обучении системы уровень сигнала будет неразличим на уровне шума. Ведь особенности конкретной задачи и личный стиль программиста гораздо существеннее сказываются на значениях метрик, чем качество программирования. Соответственно, выданные системой оценки будут абсолютно случайными. Shit in - shit out. Более того, соответствие программной архитектуры задаче, наличие проблемных мест в алгоритме, правильность выбора структур данных, полнота выявления возможных исключительных ситуаций, степень оптимизации по памяти и по времени - всё это не оценить автоматически рассчитываемыми метриками. Вывод: метрики бесполезны, а автоматизация оценки применима только к совершенно одинаковым задачам - при том, что оцениваются только конечные результаты (память, время) и прохождение множества тщательно сконструированных тестов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 13:24 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Память и время - это внешнее качество ПО. А есть еще и внутренее... Признаки плохого кода существуют. Одна из первых попыток их как-то обозначить - "запахи" плохого кода в Рефакторинге. Так что обмеривать - возможно. Только это будет нечеткая система, естественно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 15:06 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
Но таких модулей немного обычно, они самого верхнего уровня.
Посмотрел у себя -- похоже на то.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 18:32 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Валерий Лаптев писал(а):
Память и время - это внешнее качество ПО. А есть еще и внутренее... Признаки плохого кода существуют. Одна из первых попыток их как-то обозначить - "запахи" плохого кода в Рефакторинге. Так что обмеривать - возможно. Только это будет нечеткая система, естественно.


"Обмеры" дадут отклонения от усредненного эталона. А если задача сильно отличается от "средней", то "обмеры" покажут, что код "плохой", хотя на самом деле он может быть качественным. Это похоже на критерии женской красоты. Нравится стандартное, среднее по пропорциям и с качественным "материалом" (кожей, волосами, зубами и т.п.). Потом окажется, что красотка глупая, ленивая, эгоистичная, жадная, злобная, скандальная, беспринципная, неряшливая и безвольная. Но "метрики" этого не обнаружили. :wink:

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 18:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Здесь, скорее, как со стат. отбором: есть ошибка пропустить ненужное, и есть ошибка отвергнуть нужное.
Только здесь речь, видимо, не о том, чтобы отвергнуть, а о том, когда смотреть глазами.

То есть если проблема в массовой проверке модулей, то с помощью метрик можно пытаться отлавливать что-то аномальное и подвергать оное спец. анализу, который слишком дорого делать для всего.

Не очень понятно, где это может быть нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 19:15 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Коллеги, сейчас ведь никто не спорит о том, что паттерны в программировании нужны. Но ведь было время, когда большинство считало, что паттерны убивают творчество.
Так и с обмером и архитектурой. Просто еще нет опыта оцифровки подобных вещей. Когда-то и мосты строили на глазок.
Обмеры возможны, но нужно набирать статистику.
Естественно, что в разных сферах мы получим разную статистику. Но, например, обмеры типичных программистких курсовых работ могут быть очень полезны. Например, для выявления плагиата.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Апрель, 2011 19:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
Обмеры возможны, но нужно набирать статистику.
Да-да-да. Как с психологическим тестированием (Myers-Briggs etc.). Испробовать тысячи вопросов на статистике во многие десятки К, чтобы оставить сотню вопросов и полтора десятка категорий.

Другое дело, что ПО не так четко разделено на единицы, как люди :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Апрель, 2011 12:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Валерий Лаптев писал(а):
Коллеги, сейчас ведь никто не спорит о том, что паттерны в программировании нужны.
Почти бессодержательное утверждение если речь о паттернах вообще. И почти неверное утверждение если речь о каком-то одном ограниченном наборе паттернов раз и навсегда описанных некоторой одной группой авторов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB