Метрика для размера программы - PullRequest
3 голосов
/ 24 апреля 2009

Меня попросили указать показатель размера корпоративного приложения. Данное приложение является веб-приложением, и я не уверен, как определить его размер. Очевидными, но бесполезными метриками могут быть строки кода, количество файлов и т. Д. Каковы некоторые предлагаемые средства определения размера приложения, которое обеспечит реальное значение?

Примечания по применению:

  • Приложение C # на базе веб-форм ASP.NET
  • Многоуровневая архитектура
  • Все взаимодействие с базой данных через хранимые процедуры

Ответы [ 5 ]

5 голосов
/ 24 апреля 2009

Количество «страниц» или «областей», к которым у пользователей будет доступ

Проблема : Эту проблему можно решить, разделив части на разные страницы или разделы, когда было бы гораздо разумнее объединить их в единый интерфейс «центра управления».


Количество классов

Задача : Это не учитывает сложность (или простоту) некоторых классов по сравнению с другими. У вас может быть один класс, который содержит два свойства и метод, в то время как другой класс может быть хардкорным.


Количество таблиц без поиска

Проблема : Это не будет учитывать сложность вашего программного обеспечения, а только уровень данных, на котором оно лежит. Некоторые из тех же проблем, связанных с количеством классов, также могут быть применены здесь с точки зрения того, что некоторые таблицы являются более сложными, чем другие.


Строки кода

Проблема : Это довольно стандартная метрика, но она придает гораздо более позитивный оттенок программам с большим количеством строк вместо поощрения более эффективного и элегантного кода.


Сколько человеко-часов ушло на разработку

Проблема : Нет двух разработчиков, имеющих одинаковые наборы навыков, и никакие два разработчика, вероятно, не будут тратить одинаковое количество времени (или следовать по одному и тому же пути), когда дело доходит до создания часть программного обеспечения. Таким образом, одному разработчику может потребоваться столько же времени, сколько команде из 3 менее квалифицированных / опытных разработчиков, чтобы набрать одинаковое количество кода. Кроме того, весь «Мифический человеко-месяц» может начать поднимать голову, если вы начнете привлекать к проблеме больше людей, чем это действительно необходимо.


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

3 голосов
/ 24 апреля 2009

SLOC (Исходные строки кода) является общепринятой мерой размера.

Ваш вопрос касается только размера, но я уверен, что вас просят придумать эти метрики, чтобы руководство могло охватить уровень усилий, необходимый для поддержки этого приложения. В этом случае я бы также посмотрел на сложность кода.

Возможно, вы захотите загрузить пробную версию Поймите , она работает со многими языками программирования, предоставит вам необходимые метрики, а бесплатная пробная версия будет работать достаточно долго, чтобы получить числа, необходимые руководству.

Что касается метрик, вот что я хотел бы посмотреть:

Цикломатическая сложность V (G) является хорошим показателем сложности.

Индекс сопровождения SEI хорош для того, чтобы понять, насколько сложно будет поддерживать кодовую базу.

Соотношение кодов к комментариям не менее 15% и другие необходимые проектные документы высокого и низкого уровня. Поймите, что большинство из них устареет, но они все же помогут вашим людям начать.

Тестовое покрытие также будет что-то еще, чтобы посмотреть. У них вообще есть юнит тест? Код легче поддерживать, когда у вас есть хороший набор модульных тестов, который вы можете запустить, чтобы дать себе «разумное» ощущение, что вы ничего не сломали. 80% тестовое покрытие обычно минимальное.

1 голос
/ 24 апреля 2009

Метод анализа функциональных точек, который, я думаю, подходит для средних и крупных приложений, независимо от языка программирования:

http://en.wikipedia.org/wiki/Function_point_analysis

Результатом анализа является значение функциональной точки, которое можно использовать для оценки времени реализации. Этот метод довольно легко понять и реализовать (используя простую электронную таблицу), однако он требует некоторого опыта, потому что некоторые ключевые факторы в вычислениях являются переменными.

0 голосов
/ 24 апреля 2009

Метрика может дать реальное значение, только если вы знаете, для чего она используется. Вы знаете цель измерения размера? Если нет, спросите.

0 голосов
/ 24 апреля 2009

Каковы некоторые предлагаемые способы определения размера приложения, которое обеспечит реальное значение?

Если вы когда-нибудь найдете действительно хороший ответ на этот вопрос, пожалуйста, напишите его правильно, хорошо?

Метрики кода почти повсеместно, по моему опыту. Некоторые из них могут быть просто плохими.

[дополнение]

Чтобы быть справедливым, проблема не в том, что "метрическая отстой", в конце концов, это всего лишь измерения (надеюсь, хорошо определенные); проблема в том, что они никогда не измеряют то, что люди хотят, чтобы они измерили , а используются так, как будто они . Обвинять цифры в этом злоупотреблении не совсем справедливо.

...