Для реализации сценария Создание окна программируются следующие операции класса Window:
q framework — создание каркаса окна;
q register — регистрация окна;
q set_call_back — установка функции обратного вызова;
q make_window — задание видимости окна.
Далее реализуются операции общего управления окнами, методы класса Window_Manager:
q add_to_list — добавление нового окна в массив управляемых окон;
q find — поиск окна с заданным переключающим символом.
Программируются операции класса Input-Manager:
q window_prolog — инициализация WUI;
q window_start — запуск цикла обработки событий;
q window_epilog — закрытие WUI.
В ходе реализации перечисленных операций выясняется необходимость и программируется содержание вспомогательных операций.
1. В классе Window_Manager:
q write_to — форматный вывод сообщения в указанное окно;
q hide_win — удаление окна с экрана;
q switchAwayFromTop — подготовка окна к переходу в пассивное состояние;
q switch_to_top — подготовка окна к переходу в активное состояние;
q window_fatal — формирование донесения об ошибке;
q top — переключение окна в активное состояние;
q send_to_top — посылка символа в активное окно.
2. В классе Window:
q put — три реализации для записи в окно символьной, строковой и числовой информации;
q create — создание макета окна (используется операцией framework);
q position — изменение позиции курсора в окне;
q about — возврат информации об окне;
q switch_to — пометка активного окна;
q switch_away — пометка пассивного окна;
q send_to — посылка символа в окно для обработки.
Второй шаг первой итерации ориентирован на реализацию сценария Уничтожение окна. Основная операция — finalize (метод класса Window), она выполняет разрушение окна. Для ее обеспечения создаются вспомогательные операции:
q de_register — удаление окна из массива управляемых окон;
q remove_from_list (метод класса Window_Manager) — вычеркивание окна из регистра.
Для реализации сценария Изменение стиля рамки создаются операции в классе Window:
q mark_border — построение новой рамки окна;
q refresh — перерисовка окна на экране.
В конце итерации создаются операции класса Screen:
q dear_screen — очистка экрана;
q position_cursor — позиционирование курсора;
q put — вывод на экран дисплея строк, символов и чисел.
Результаты оценки качества первой итерации представлены в табл. 15.3.
Таблица 15.3. Оценки качества WUI после первой итерации
Метрика | lnput_ Manager | Window_ Manager | Screen | Root_ Window | Window | Среднее значение |
WMC | 0,12 | 0,42 | 0,11 | 0 | 0,83 | 0,3 |
NOC | - | - | - | 1 | 0 | 0,2 |
СВО | 3 | 3 | 0 | 1 | 2 | 1,8 |
RFC | 6 | 11 | 0 | 0 | 23 | 8 |
LCOM | 3 | 0 | 5 | 0 | 0 | 1,6 |
CS | 3/2 | 10/8 | 5/1 | 0/2 | 18/22 | 7,2/7 |
NOO | - | - | - | 0 | 0 | 0 |
NOA | - | - | - | 0 | 18 | 3,6 |
SI | - | - | - | 0 | 0 | 0 |
OSAVG | 4 | 4,2 | 2,2 | 0 | 4,6 | 3 |
NPAVG | 0 | 1,3 | 1 | 0 | 2,4 | 0,9 |
Метрики, вычисляемые для системы