Главная » Просмотр файлов » Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++

Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635), страница 90

Файл №1158635 Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++) 90 страницаГради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635) страница 902019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 90)

12-7 показано, как происходит передача и обновление копийплана. Первичная копия плана движения находится в централизованной базеданных в диспетчерском центре и может быть разослана по любому числуузлов сети. КогдаРис. 12- 7. План движения поездакакой-либо клиент (используя операцию get с уникальным UniqueIdв качестве аргумента) запрашивает план, первичная версия копируется ипосылается клиенту. В базе данных регистрируется местоположение копии, асама копия плана сохраняет связь с базой данных. Теперь предположим, что врезультате действий машиниста появилась необходимость изменить пландвижения поезда.

Сначала изменяется копия плана, находящаяся на поезде.Затем сообщение об изменениях посылается в централизованную базу данныхна диспетчерский центр. После того, как план изменился в базе данных,сообщения об изменениях рассылаются всем остальным клиентам, которыеимеют у себя копии данного плана.Этот механизм правильно работает и в том случае, когда изменения вплан движения вносит диспетчер; при этом сначала изменяется копия плана вбазе данных, а затем сообщения об изменениях рассылаются но сетиостальным клиентам. Как в обоих случаях осуществляется передачаизменении? Для этого мы используем механизм передачи сообщений,разработанный нами ранее.

Заметим, что в результате проектирования мыдобавили новое сообщение: изменение плана движения поезда. Такимобразом, механизм передачи планов движения базируется на ужесуществующем низкоуровневом механизме передачи сообщений.Использование готовой коммерческой СУБД на диспетчерскихкомпьютерах позволит обеспечить резервирование данных, восстановление,ведение контрольного журнала и секретность информации.Отображение информацииИспользование готовых технологических решений для базы данныхпозволяет нам сосредоточиться на специфике задачи. Такого же результатаможно добиться и в механизмах отображения информации, если использоватьстандартные графические средства, например, Microsoft Windows или ХWindows.

Использование готовых графических программных средствподнимает уровень абстракции нашей системы настолько, что разработчикамне надо беспокоиться об отображении информации на уровне пикселей. Крометого, очень важно инкапсулировать проектные решения о графическомпредставлении различных объектов.Рассмотрим, например, отображение информации о профиле икачестве участков пути.

Требуется, чтобы изображение появлялось в двухместах: в диспетчерском центре и на поезде (где отображается путь тольковпереди поезда). Предполагая, что мы имеем некоторый класс, экземплярыкоторого представляют участки пути, можно рассмотреть два подхода квизуализации этого объекта. В соответствии с первым подходом, создаетсяспециальный объект, управляющий отображением, который преобразуетсостояние объекта в визуальную форму.

Согласно второму подходу мыотказываемся от специального внешнего объекта и в каждый наш объектвключаем информацию о том, как его отображать. Мы считаем, что второйподход предпочтительней, так как он проще и лучше отражает сущностьобъектной модели.Однако, этот подход не лишен недостатков. Мы, вероятно, получиммножество разновидностей отображаемых объектов, каждый из которыхсоздан разными группами разработчиков. Если реализовывать каждыйотображаемый объект отдельно, то возникают избыточный код.несогласованность стиля и вообще большая путаница.

Правильнеепроанализировать все разновидности отображаемых объектов, определить,какие у них общие элементы и создать набор промежуточных классов,который обеспечит отображение этих общих элементов. В свою оче-Pиc. 12-8. Отображение информацииредь, промежуточные классы могут быть построены на основекоммерческих низкоуровневых графических пакетов.На рис. 12-8 показано проектное решение о реализации всехотображаемых объектов с помощью общих утилит класса.

Эти утилитыпостроены на основе низкоуровневого интерфейса Windows, который скрыт отвсех высокоуровневых классов. На самом деле, процедуры Windows APIтрудно воплотить в одном классе или утилите. Наша диаграмма немногоупрощена; вероятно, реализация потребует услуг нескольких классов WindowsAPI и утилит отображения на дисплее компьютера в поезде.Основное достоинство предлагаемого подхода заключается в том, чтоуменьшается влияние изменений, возникающих при перераспределении ролиаппаратуры и программ. Например, если нам надо заменить наши дисплеи наболее (менее) мощные, придется подправить процедуры только в классеTrainDisplayUtilities. Без такой декомпозиции нам бы пришлось вноситьизменения в каждый отображаемый объект при любых изменениях на нижнемуровне.Механизм опроса датчиковВыше мы говорили, что система управления движением должнавключать в себя большое количество разнообразных датчиков. Например, накаждом поезде датчики следят за температурой масла, количеством топлива,дроссельной установкой, температурой воды, нагрузкой на двигатель и т.

д.Активные датчики путевых устройств сообщают текущее положение своихпереключателей и передают сигналы. Все значения, возвращаемые датчиками- разные, но их обработка может производиться сходным образом. Допустим,что наш компьютер использует ввод-вывод по фиксированным адресампамяти. Тогда данные каждого датчика читаются из определенной областипамяти и только потом интерпретируются способом, зависящим отконкретного датчика. Большинство датчиков должно опрашиватьсяпериодически.

Если значение находится в заданных пределах, оно сообщаетсякакому-то клиенту, и больше ничего не происходит. Если же отсчет датчикавышел за установленные пределы, об этом могут быть оповещены и другиеклиенты. Наконец, если отсчет вышел далеко за допустимые границы(например, давление масла на локомотиве поднимается до опасного уровня),может понадобиться какой-то звуковой сигнал тревоги и уведомлениеспециальных клиентов для принятия решительных мер.Воспроизведение этого поведения для каждого датчика не толькоутомительно и чревато ошибками, но и раздувает объем кода. Если мы ссамого начала не выделим общие для всех датчиков характеристики, торазличные разработчики предложат свои решения одной и той же задачи. Это,в свою очередь, приведет к сложностям при сопровождении системы.

Поэтомудля выявления общих свойств необходимо провести анализ всех периодическиопрашиваемых аналоговых датчиков и предложить общий механизм ихопроса, приемлемый для всех.Мы уже решали аналогичную задачу в главе 8, применительно кметеорологической станции. Там мы создали иерархию классов датчиков иописали механизм их опроса. Есть все основания воспользоватьсяполученным ранее решением и в нашей нынешней задаче.Это хороший пример повторного использования проектных решении вразличных прикладных областях.12.3. ЭволюцияМодульная архитектураМы уже говорили о том, что модульность для больших системнеобходима, но не достаточна; для задач такого масштаба, как системауправления движением, нужно сосредоточиться на декомпозиции поподсистемам. На ранних стадиях эволюции мы должны разработатьмодульную архитектуру системы, представляющую физическую структуру еепрограммного обеспечения.Проектирование программного обеспечения для очень больших системдолжно начинаться до полного завершения проектирования аппаратныхсредств.

Написание программы занимает, как правило, даже больше времени,чем разработка аппаратуры. Кроме того, по ходу процесса функциональностьможет перераспределяться между аппаратной и программной частями.Поэтому зависимость от аппаратуры должна быть максимально изолирована,так, чтобы программные средства можно было начать проектировать безпривязки к аппаратуре. Это означает также, что разработка должнаосновываться на идее взаимозаменяемых подсистем. В системах управления иконтроля, таких, как система управления движением, нужно сохранитьвозможность задействовать новые аппаратные решения, которые могутпоявиться в процессе разработки программного обеспечения.На ранних этапах мы должны разумно провести декомпозициюпрограммного обеспечения, чтобы субподрядчики, ответственные заразличные части системы, могли работать одновременно (возможно дажеиспользуя различные языки программирования).

Как уже говорилось в главе 7,существует много причин нетехнического характера, определяющихфизическую декомпозицию больших систем. Наиболее важен вопросвзаимодействия различных групп разработчиков. Отношения междусубподрядчиками складываются обычно на достаточно ранних стадиях жизнисистемы, часто до получения информации, достаточной для выбораправильной декомпозиции системы.Желательно, чтобы системные архитекторы поэкспериментировали снесколькими альтернативными декомпозициями на подсистемы для того,чтобы быть уверенными в правильности глобального решения пофизическому проектированию.

Можно задействовать прототипирование вбольших масштабах с имитацией подсистем и моделированием загрузкипроцессора, маршрутизации сообщений и внешних событий.Прототипирование и моделирование могут послужить основой длянисходящего тестирования по мере создания системы.Как выбрать подходящую декомпозицию на подсистемы? В главе 4отмечено, что объекты на высоком уровне абстракции обычно группируются всоответствии с их функциональным повелением. Еще раз подчеркнем, что этоне противоречит объектной модели, так как термин функциональный мы несвязываем жестко с понятием алгоритма. Мы говорим о функциональностикак о внешнем видимом и тестируемом поведении, возникающем в результатесовместной деятельности объектов. Таким образом, абстракции высокогоуровня и механизмы, о которых говорилось ранее, хорошо подходят на рольподсистем.

Мы можем сначала допустить существование таких подсистем, аих интерфейс разработать через некоторое время.На диаграмме модулей на рис. 12-9 представлены проектные решенияверхнего уровня модульной архитектуры системы управления движением.Каждый уровень здесь соответствует выделенным ранее четырем подзадачам:сеть передачи данных, база данных, аналоговые устройства управления вреальном времени, интерфейс "человек/компьютер".Рис. 12-9. Диаграмма модулей верхнего уровня системы управлениядвижениемСпецификация подсистемЕсли мы рассмотрим внешнее представление любой из подсистем, тообнаружим, что она обладает всеми характеристиками объекта.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее