Качество проектирования оценивают с помощью объектно-ориентированных метрик, введенных в главе 14.
Этап РАЗВИТИЕ
Качество логического представления архитектуры оценивают по метрикам:
q WMC — взвешенные методы на класс;
q NOC — количество детей;
q DIT — высота дерева наследования;
q NOM — суммарное количество методов, определенных во всех классах системы;
q NC — общее количество классов в системе.
Метрики WMC, NOC вычисляются для каждого класса, кроме того, формируются их средние значения в системе. Метрики DIT, NOM, NC вычисляются для всей системы.
Этап КОНСТРУИРОВАНИЕ
На каждой итерации конструирования продукта вычисляются метрики:
q WMC — взвешенные методы на класс;
q NOC — количество детей;
q СВО — сцепление между классами объектов;
q RFC — отклик для класса;
q LCOM — недостаток связности в методах;
q CS — размер класса;
q NOO — количество операций, переопределяемых подклассом;
q NOA — количество операций, добавленных подклассом;
q SI — индекс специализации;
q OSavg — средний размер операции;
q NPavg — среднее количество параметров на операцию;
q NC — общее количество классов в системе;
q LOC — суммарная LOC-оценка всех методов системы;
q DIT — высота дерева наследования;
q NOM — суммарное количество методов в системе.
Метрики WMC, NOC, СВО, RFC, LCOM, CS, NOO, NOA, SI, OSAVG, NPAVG вычисляются для каждого класса, кроме того, формируются их средние значения в системе. Метрики DIT, NOM, NC, LOCS вычисляются для всей системы.
На последней итерации дополнительно вычисляется набор метрик MOOD, предложенный Абреу:
q МНF — фактор закрытости метода;
q AHF — фактор закрытости свойства;
q MIF — фактор наследования метода;
q AIF — фактор наследования свойства;
q POF — фактор полиморфизма;
q СОF — фактор сцепления.
Пример объектно-ориентированной разработки
Для иллюстрации унифицированного процесса рассмотрим фрагмент разработки, выполненной автором совместно с Ольвией Комашиловой. Поставим задачу — разработать оконный интерфейс пользователя, который будет использоваться прикладными программами.
Этап НАЧАЛО
Оконный интерфейс пользователя(WUI) — среда, управляемая событиями. Действия в среде инициируются функциями обратного вызова, которые вызываются в ответ на событие — пользовательский ввод. Ядром WUI является цикл обработки событий, который организуется менеджером ввода.
WUI должен обеспечивать следующие типы неперекрывающихся окон:
q простое окно, в которое может быть выведен текст;
q окно меню, в котором пользователь может задать вариант действий — выбор подменю или функции обратного вызова.
Идентификация актеров
Актерами для WUI являются:
q пользователь прикладной программы, использующей WUI;
q администратор системы, управляющий работой WUI.
Внешнее окружение WUI имеет вид, представленный на рис. 15.5.
Рис. 15.5. Внешнее окружение WUI