Здравствуйте, Slicer [Mirkwood], Вы писали:
SM>Собственно, даже не знаю, это надо сюда постить, или в Тестирование, или в Философию вообще =)
SM>Вопрос такой. Есть ведь куча древних метрик для софта, вроде Холстедовских, которые еще в универе нудно читают. Есть более продвинутые, посовременнее. Но все, как правило, оперируют исходным кодом, который можно почитать, запустить на выполнение и т.п.
SM>А есть ли где метрики (и где их искать), которые призваны оценить качество проектных решений?
Нету даже отношения порядка, чтобы говорить что лучше.
Метрики качества обычно являются функциями от некоторых базовых, типа связности и количества строк.
SM>То есть понятно, что архитектура сама по себе может накладывать дополнительные ограничения как на объем данных в возможных получающихся в результате программах, так и на скорость их работы (скажем, некая архитектура подразумевает хранение графа в виде матрицы смежности, а не списка инцидентности... или в архитектуре "прошит" односвязный список неких объектов, когда лучше было бы использовать в каких-то случаях красно-черные деревья).
Если архитектура диктует способ хранения данных, то это хреновая архитектура.
SM>Вот, например, с этой точки зрения хотелось бы сравнить предложенные архитектуры. Ну, или еще по каким-то показателям. Или, скажем, сколько ошибок на каждый класс можно ожидать при внедрении, и т.п.
Если бы такие было доступно, то давно холивары корнчились бы в этом форуме.
Даже если получится придумать метрику , то оценивая решение локально невозможно понять что будет во всем сотальном проекте. По опыту некоторые решения могут дать значительное снижение mantainability index в одном классе и увеличить его во всем проекте.