Модификация системной архитектуры
Главное преимущество объектно-ориентированного подхода к проектированию системы состоит в том, что он упрощает задачу внесения изменений в системную архитектуру, поскольку представление состояния объекта не оказывает на нее никакого влияния. Изменение внутренних данных объекта не должно влиять на другие объекты системы. Более того, так как объекты слабо связаны между собой, обычно новые объекты просто вставляются без значительных воздействий на остальные компоненты системы.
Рис. 12.13. Новые объекты для наблюдения за загрязнением воздуха
Чтобы проиллюстрировать стабильность объектно-ориентированного подхода, предположим, что в каждую метеостанцию потребовалось добавить возможность наблюдения за степенью загрязнения окружающей среды, т.е. необходимо добавить приборы, измеряющие состав воздуха, чтобы вычислить количество различных загрязнителей. Снятые измерения по загрязнению воздуха передаются с таким же интервалом времени, что и остальные метеорологические данные. Для модификации проекта необходимо внести ряд изменений.
1. Класс объектов, именуемый КачествоВоздуха следует вставить как часть объекта Метеостанция на одном уровне с объектом МетеоДанные. 2. В объект Метеостанция необходимо добавить метод отчетКачествоВоздуха, чтобы информация о состоянии воздуха отправлялась на центральный компьютер. Программу управления метеостанцией необходимо изменить так, чтобы при получении запроса с верхнего уровня объекта Метеостанция осуществлялся автоматический сбор данных по загрязнению воздуха. 3. Необходимо добавить объекты, которые представляют типы приборов измеряющих степень загрязнения воздуха. В нашем примере можно добавить приборы, которые измеряли бы уровень оксида натрия, дыма и паров бензина.
На рис. 12.13 показан объект Метеостанция и новые объекты, добавленные в систему. За исключением самого верхнего уровня системы (объект Метеостанция) в имеющиеся объекты не потребовалось вносить изменений. Добавление в систему сбора данных о загрязнении воздуха не оказало никакого влияния на сбор метеорологических данных. КЛЮЧЕВЫЕ ПОНЯТИЯ
• При объектно-ориентированном проектировании основные компоненты программной системы представляются как объекты со своими состояниями и операциями. • Объекты предоставляют сервисы (методы) другим объектам и создаются в реальном времени на основе определения класса объектов. • Объекты могут быть реализованы последовательно и параллельно. Параллельный объект может быть пассивным, у которого состояние изменяется только через его интерфейс, или активным, который может изменять свое состояние без вмешательства извне. • Унифицированный язык моделирования UML создан для поддержания систем нотаций, которые применяются при документировании объектно-ориентированных проектов. • Процесс объектно-ориентированного проектирования состоит из следующих этапов: проектирование архитектуры системы, идентификация объектов системы, описание архитектуры различными моделями объектов и документирование интерфейсов объектов. • В процессе объектно-ориентированного проектирования возможно создание ряда различных моделей. Все модели можно разделить на статические (модели классов, модели обобщения, модели агрегирования) и динамические (модели последовательностей, модели конечного автомата). • Следует четко определять интерфейсы объектов, так как они используются другими объектами. Для документирования интерфейсов объектов можно использовать языки программирования, например Java.
• Важным преимуществом объектно-ориентированного проектирования является то, что он упрощает процесс модификации системы. Упражнения
12.1. Объясните, почему в проектировании систем применение подхода, который полагается на слабо связанные объекты, скрывающие информацию о своем представлении, приводит к созданию системной архитектуры, которую затем можно легко модифицировать. 12.2. Покажите на примерах разницу между объектом и классом объектов. 12.3. При каких условиях можно разрабатывать систему, в которой объекты выполняются параллельно? 12.4. С помощью графической системы нотации UML спроектируйте следующие классы объектов с определенными атрибутами и операциями: • телефон; • принтер персонального компьютера; • персональная стереосистема; • банковские расчеты; • каталог библиотеки. 12.5. Разработайте более детальный проект метеостанции, добавив описания интерфейсов объектов, изображенных на рис. 12.9. Они могут быть записаны с помощью языков Java, C++ или UML. 12.6. Разработайте проект метеостанции, показывающий взаимодействие между подсистемой сбора данных и приборами, собирающими данные. Воспользуйтесь диаграммой последовательностей. 12.7. Определите возможные объекты в следующих системах, применяя при этом объектно-ориентированный подход. • Система "Дневник группы" поддерживает расписание собраний и встреч в группе сотрудников. Для организации встречи, в которой участвует группа людей, система находит общие для всех личных дневников свободные "окна" и назначает эту встречу на определенное время. Если система не находит общих "окон", то начинает взаимодействовать с пользователями, чтобы реорганизовать личные дневники и тем самым создать "окно" для встречи. • Установлена полностью автоматизированная бензоколонка. Водитель вставляет кредитную карточку в считывающее устройство, связанное с насосом; карточка по линиям коммуникаций проверяется кредитной компанией, устанавливается требуемое количество бензина. Затем автомобиль заправляется горючим. Когда подача прекращается, с кредитной карточки водителя снимается стоимость полученного бензина. Кредитная карточка возвращается после вычета водителю. Если карточка неверна, она возвращается водителю перед подачей топлива.
12.8. Запишите точные определения интерфейсов на языке Java или C++ для объектов, определенных в упражнении 12.7. 12.9. Нарисуйте диаграмму последовательностей, в которой отображены взаимодействия между объектами в системе "Дневник группы". 12.10. Нарисуйте диаграмму состояний, на которой отображены возможные изменения состояний для одного или более объектов, определенных в упражнении 12.7.
Читайте также: Базовые архитектуры Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|