Метрика для измерения объектно-ориентированности - PullRequest
3 голосов
/ 17 апреля 2010

Существует ли метрика, которая может помочь в определении объектно-ориентированной системы или приложения? Я видел некоторые довольно аккуратные метрики в проекте .plex надстройки .NET, но ничего подобного пока нет. Если такой метрики не существует, будет ли это возможно или полезно? Существует 3 предполагаемых принципа объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм; инструмент, который ранжирует программы по этим параметрам, может показать области кода на C # (или аналогичную), где весь объектно-ориентированный идеал был отброшен, и, возможно, сколько ошибок связано с этой областью по сравнению с остальной частью проекта. 1001 *

Ответы [ 2 ]

1 голос
/ 17 апреля 2010

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


В ответ на комментарий я подумала, что расширю немного:

Главное, на что я надеялся, это то, что ОО - это не «инкапсуляция, наследование и полиморфизм». Это всего лишь инструменты, которые позволяют моделировать проблему как объекты, которые взаимодействуют четко определенными способами. Если вам нужен хороший показатель, вы должны понимать, что вы на самом деле пытаетесь измерить. Звучит так, будто вы пытаетесь проверить понятие качества кода с помощью метрики для подтверждения ощущения. Если это так, то в чем реальная проблема? Вы обеспокоены тем, что код хрупок и может легко сломаться из-за неожиданных побочных эффектов? Является ли объектная модель слишком фрагментированной и трудной для подражания? Являются ли отдельные объекты слишком большими для понимания и поддержания? Если вы сможете лучше определить виды недостатков, которые вы надеетесь выявить, это поможет вам найти соответствующие метрики. Если они полезны, вот один полезный набор метрик .

0 голосов
/ 30 августа 2010

Посмотрите на определения метрик кода 82 , поддерживаемые инструментом NDepend для разработчиков .NET.

...