ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.11.2019
Просмотров: 9474
Скачиваний: 184

Пример
7.9.
Разработать
диаграмму
размещения
для
системы
учета
успеваемости
студентов
.
Локальная
сеть
деканата
связывает
сервер
деканата
и
компьютеры
декана
,
его
заместителей
и
сотрудников
деканата
,
отвечающих
за
занесение
информации
в
базу
данных
.
Серверную
часть
системы
и
базу
данных
целесообразно
поместить
на
сервер
деканата
.
На
компьютерах
локальной
сети
в
этом
случае
будут
функционировать
соответствующие
клиентские
части
приложения
(
рис
.
7.28).
7.7.
Особенность
спиральной
модели
разработки
.
Реорганизация
проекта
Спиральная
модель
жизненного
цикла
разработки
программного
обеспечения
предполагает
,
что
процесс
разработки
программной
системы
выполняется
итерационно
.
При
этом
во
время
проектирования
очередной
версии
может
обнаружиться
,
что
хорошо
продуманная
на
начальных
итерациях
программа
утратила
свою
изначально
четкую
структуру
за
счет
накопившихся
исправлений
(«
заплаток
»).
Каждая
«
заплатка
»
в
свое
время
ставилась
,
чтобы
ликвидировать
«
небольшое
»
несоответствие
уже
реализованной
части
и
той
,
что
находилась
в
процессе
реализации
.
Возможно
также
,
что
часть
кодов
при
этом
становилось
неиспользуемой
,
а
какие
-
то
коды
-
не
эффективными
.
Все
это
вместе
приводит
к
тому
,
что
разобраться
в
программе
становится
достаточно
сложно
.
В
такой
ситуации
необходима
реорганизация
программ
,
т
.
е
.
их
перепроектирование
без
изменения
функциональности
.
Своевременно
выполненная
реорганизация
позволит
сделать
структуру
программы
опять
четкой
и
понятной
.
Несмотря
на
то
,
что
реорганизационные
изменения
,
как
правило
,
невелики
,
программисты
их
обычно
не
любят
,
так
как
придерживаются
правила
«
работает
—
не
трогай
».
Кроме
того
,
сроки
обычно
ограничены
,
и
тратить
время
на
переделку
того
,
что
уже
отлажено
,
кажется
нецелесообразным
.
Практика
же
показывает
,
что
отказ
от
реорганизации
при
накоплении
исправ
-
лений
приводит
к
усложнению
программы
и
,
соответственно
,
снижению
ее
технологичности
со
всеми
вытекающими
последствиями
.

Реорганизацию
следует
выполнять
,
если
при
расширении
функциональности
обнаруживаются
нарушения
основных
концепций
проекта
или
код
стал
трудным
для
понимания
.
В
этом
случае
проектирование
нужно
приостановить
и
провести
необходимую
реорганизацию
.
Перепроектирование
программы
не
следует
совмещать
с
увеличением
ее
функциональности
.
После
реорганизации
программу
необходимо
протестировать
,
чтобы
убедиться
,
что
ничего
не
было
нарушено
,
а
потом
уже
расширять
ее
возможности
.
Контрольные
вопросы
и
задания
1.
Как
описывают
структуру
программного
обеспечения
при
объектном
подходе
?
Что
такое
«
пакет
»?
Для
чего
используют
диаграммы
пакетов
?
2.
Какие
стереотипы
классов
введены
и
почему
?
3.
Разработайте
диаграмму
пакетов
графического
редактора
,
описанного
вами
при
выполнении
задания
9
к
гл
. 6.
Какие
пакеты
включены
в
эту
диаграмму
и
почему
?
Какие
пакеты
будут
связаны
между
собой
?
4.
Постройте
диаграмму
последовательности
действий
для
объектов
любых
предложенных
вами
пакетов
.
Какими
сообщениями
обмениваются
объекты
?
Какую
информацию
программист
получит
;
анализируя
эту
диаграмму
?
5.
Какую
диаграмму
используют
при
уточнении
взаимодействия
объектов
?
Постройте
эту
диаграмму
для
объектов
предыдущего
задания
.
6.
Перечислите
основные
компоненты
классов
.
Как
описывают
эти
компоненты
?
7.
В
каких
случаях
используют
диаграммы
состояний
объекта
?
Построите
диаграмму
состояний
для
любого
управляющего
объекта
.
8.
Постройте
уточненную
диаграмму
классов
по
результатам
исследования
взаимодействия
объектов
.
Какая
еще
информация
необходима
для
реализации
этих
классов
?
9.
Что
понимают
под
диаграммой
компонентов
?
Какую
информацию
она
содержит
?
В
каких
случаях
целесообразно
строить
диаграммы
компонентов
?
10.
Какую
информацию
содержит
диаграмма
размещения
?
В
каких
случаях
целесообразно
использовать
эти
диаграммы
?

8.
РАЗРАБОТКА
ПОЛЬЗОВАТЕЛЬСКИХ
ИНТЕРФЕЙСОВ
На
ранних
этапах
развития
вычислительной
техники
пользовательский
интерфейс
рассматривался
как
средство
общения
человека
с
операционной
системой
и
был
достаточно
примитивным
.
В
основном
он
позволял
запустить
задание
на
выполнение
,
связать
с
ним
конкретные
данные
и
выполнить
некоторые
процедуры
обслуживания
вычисли
»
тельной
установки
.
Со
временем
по
мере
совершенствования
аппаратных
средств
появилась
возможность
создания
интерактивного
программного
обеспечения
,
использующего
специальные
пользовательские
интерфейсы
.
В
настоящее
время
основной
проблемой
является
разработка
интерактивных
интерфейсов
к
сложным
программным
продуктам
,
рассчитанным
на
использование
непрофессиональными
пользователями
.
В
последние
годы
были
сформулированы
основные
концепции
построения
таких
пользовательских
интерфейсов
и
предложено
несколько
методик
их
создания
.
8.1.
Типы
пользовательских
интерфейсов
и
этапы
их
разработки
Пользовательский
интерфейс
представляет
собой
совокупность
программных
и
аппаратных
средств
,
обеспечивающих
взаимодействие
пользователя
с
компьютером
.
Основу
такого
взаимодействия
составляют
диалоги
.
Под
диалогом
в
данном
случае
понимают
регламентированный
обмен
информацией
между
человеком
и
компьютером
,
осуществляемый
в
реальном
масштабе
времени
и
направленный
на
совместное
решение
конкретной
задачи
:
обмен
информацией
и
координация
действий
[35].
Каждый
диалог
состоит
из
отдельных
процессов
ввода
-
вывода
,
которые
физически
обеспечивают
связь
пользователя
и
компьютера
.
Обмен
информацией
осуществляется
передачей
сообщений
и
управляющих
сигналов
.
Сообщение
-
порция
информации
,
участвующая
в
диалоговом
обмене
.
Различают
:
•
входные
сообщения
,
которые
генерируются
человеком
с
помощью
средств
ввода
:
клавиатуры
,
манипуляторов
,
например
мыши
и
т
.
п
.;
•
выходные
сообщения
,
которые
генерируются
компьютером
в
виде
текстов
,
звуковых
сигналов
и
/
или
изображений
и
выводятся
пользователю
на
экран
монитора
или
другие
устройства
вывода
информации
(
рис
. 8.1).
В
основном
пользователь
генерирует
сообщения
следующих
типов
:
запрос
информации
,
запрос
помощи
,
запрос
операции
или
функции
,
ввод
или
изменение
информации
,
выбор
поля

кадра
и
т
.
д
.
В
ответ
он
получает
:
подсказки
или
справки
,
информационные
сообщения
,
не
требующие
ответа
,
приказы
,
требующие
действий
,
сообщения
об
ошибках
,
нуждающиеся
в
от
-
ветных
действиях
,
изменение
формата
кадра
и
т
.
д
.
Ниже
перечислены
основные
устройства
,
обеспечивающие
выполнение
операций
ввода
-
вывода
.
Для
вывода
сообщений
:
•
монохромные
и
цветные
мониторы
-
вывод
оперативной
текстовой
и
графической
информации
;
•
принтеры
-
получение
«
твердой
копии
»
текстовой
и
графической
информации
;
•
графопостроители
-
получение
твердой
копии
графической
информации
;
•
синтезаторы
речи
-
речевой
вывод
;
•
звукогенераторы
-
вывод
музыки
и
т
.
п
.
Для
ввода
сообщений
:
•
клавиатура
-
текстовый
ввод
;
•
планшеты
-
графический
ввод
;
•
сканеры
-
графический
ввод
;
•
манипуляторы
,
световое
перо
,
сенсорный
экран
-
позиционирование
и
выбор
информации
на
экране
и
т
.
п
.
Типы
интерфейсов
.
По
аналогии
с
процедурным
и
объектным
подходом
к
программированию
различают
процедурно
-
ориентированный
и
объектно
-
ориентированный
подходы
к
разработке
интерфейсов
(
рис
. 8.2).
Процедурно
-
ориентированные
интерфейсы
используют
традиционную
модель
взаимодействия
с
пользователем
,
основанную
на
понятиях
«
процедура
»
и
«
операция
».
В
рамках
этой
модели
программное
обеспечение
предоставляет
пользователю
возможность
выполнения
некоторых
действий
,
для
которых
пользователь
определяет
соответствующие
данные
и
следствием
выполне
-
ния
которых
является
получение
желаемых
результатов
.
Объектно
-
ориентированные
интерфейсы
используют
несколько
иную
модель
взаимодействия
с
пользователем
,
ориентированную
на
манипулирование
объектами
предметной
области
.
В
рамках
згой
модели
пользователю
предоставляется
возможность
напрямую
взаимодействовать
с
каждым
объектом
и
инициировать
выполнение
операций
,
в
процессе
которых
взаимодействуют
несколько
объектов
.
Задача
пользователя
формулируется
как
целенаправленное
изменение
некоторого
объекта
,
имеющего
внутреннюю
структуру
,
определенное
содержание
и
внешнее
символьное
или
графическое
представление
.
Объект
при
этом
понимается
в
широком
смысле
слова
,
например
,
модель
реальной
системы
или
процесса
,
база
данных
,
текст
и
т
.
п
.
Пользователю
предоставляется
возможность
создавать
объекты
,
изменять
их
параметры
и
связи
с
другими
объектами
,
а
также
инициировать
взаимодействие
этих
объектов
.
Элементы
интерфейсов
данного

типа
включены
в
пользовательский
интерфейс
Windows,
например
,
пользователь
может
«
взять
»
файл
и
«
переместить
»
его
в
другую
папку
.
Таким
образом
,
он
инициирует
выполнение
операции
перемещения
файла
.
Применение
процедурно
-
ориентированных
интерфейсов
в
данном
случае
не
означает
использования
структурного
подхода
к
разработке
соответствующего
программного
обеспечения
.
Более
того
,
реализация
современного
процедурно
-
ориентированного
пользовательского
интерфейса
на
базе
структурного
подхода
является
очень
сложной
и
трудоемкой
задачей
.
Таблица
8.1
Процедурно
-
ориентированные
пользовательские
интерфейсы
Объектно
-
ориентированные
пользовательские
интерфейсы
Обеспечивают
пользователей
функциями
,
необходимыми
для
выполнения
задач
Акцент
делается
на
задачи
Пиктограммы
представляют
приложения
,
окна
или
операции
Содержание
папок
и
справочников
отображается
с
помощью
таблиц
и
списков
Обеспечивают
пользователям
возможность
взаимодействия
с
объектами
Акцент
делается
на
входные
данные
и
результаты
Пиктограммы
представляют
объекты
Папки
и
справочники
являются
визуальными
контейнерами
объектов
В
табл
. 8.1
перечислены
основные
отличия
пользовательских
моделей
интерфейсов
процедурного
и
объектно
-
ориентированного
типов
.
Различают
п
р
о
ц
е
д
у
р
н
о
–
о
р
и
е
н
т
и
р
о
в
а
н
н
ы
е
интерфейсы
трех
типов
:
«
примитивные
»,
меню
и
со
свободной
навигацией
.
Примитивным
называют
интерфейс
,
который
организует
взаимодействие
с
пользователем
в
консольном
режиме
.
Обычно
такой
интерфейс
реализует
конкретный
сценарий
работы
программного
обеспечения
,
например
:
ввод
данных
-
решение
задачи
-
вывод
результата
(
рис
. 8.3,
а
).
Единственное
отклонение
от
последовательного
процесса
,
которое
обеспечивается
данным
интерфейсом
,
заключается
в
организации
цикла
для
обработки
нескольких
наборов
данных
(
рис
.
8.3,
б
).
Подобные
интерфейсы
в
настоящее
время
используют
только
в
процессе
обучения
программированию
или
в
тех
случаях
,
когда
вся
программа
реализует
одну
функцию
,
например
,
в
некоторых
системных
утилитах
.
Интерфейс
-
меню
в
отличие
от
примитивного
интерфейса
позволяет
пользователю
выбирать
необходимые
операции
из
специального
списка
,
выводимого
ему
программой
.
Эти
интерфейсы
предполагают
реализацию
множества
сценариев
работы
,
последовательность
действий
в
которых
определяется
пользователем
.
Различают
одноуровневые
и
иерархические
меню
.
Первые
используют
для
сравнительно
простого
управления
вычислительным
процессом
,
когда
вариантов
немного
(
не
более
5-7),
и
они
включают
операции
одного
типа
,
например
,
Создать
,
Открыть
,
Закрыть
и
т
.
п
.
Вторые
-
при
большом
количестве
вариантов
или
их
очевидных
различиях
,
например
,
операции
с
файлами
и
операции
с
данными
,
хранящимися
в
этих
файлах
.
Интерфейсы
данного
типа
несложно
реализовать
в
рамках
структурного
подхода
к
программированию
.
На
рис
. 8.4
показана
типичная
структура
алгоритма
программы
,
организующей
одноуровневое
меню
.