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

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

PDF-файл Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++, страница 6 Объектно-ориентированный анализ и проектирование (53537): Книга - 7 семестрГради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++: Объектно-ориентированный анализ и проектирование - PDF, с2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 6 страницы из PDF

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

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

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

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

При анализедискретных систем необходимо рассматривать большие, сложные и не всегдадетерминированные пространства состояний. К сожалению, один человек не можетследить за всем этим одновременно. Эксперименты психологов, например Миллера,показывают, что максимальное количество структурных единиц информации, закоторыми человеческий мозг может одновременно следить, приблизительно равносеми плюс-минус два [14]. Вероятно, это связано с объемом краткосрочной памяти учеловека. Саймон также отмечает, что дополнительным ограничивающим факторомявляется скорость обработки мозгом поступающей информации: на восприятие каждойновой единицы информации ему требуется около 5 секунд [15].Таким образом, мы оказались перед серьезной дилеммой.

Сложность программных системвозрастает, но способность нашего мозга справиться с этой сложностью ограничена. Как же намвыйти из создававшегося затруднительного положения?1.3. Внесение порядка в хаосРоль декомпозицииКак отмечает Дейкстра, «Способ управления сложными системами был известен еще вдревности — divide et impera (разделяй и властвуй)» [16]. При проектировании сложнойпрограммной системы необходимо разделять ее на все меньшие и меньшие подсистемы, каждуюиз которых можно совершенствовать независимо. В этом случае мы не превысим пропускнойспособности человеческого мозга: для понимания любого уровня системы нам необходимоодновременно держать в уме информацию лишь о немногих ее частях (отнюдь не о всех).

В самомделе, как заметил Парнас, декомпозиция вызвана сложностью программирования системы,поскольку именно эта сложность вынуждает делить пространство состояний системы [17].Алгоритмическая декомпозиция. Большинство из нас формально обучено структурномупроектированию «сверху вниз», и мы воспринимаем декомпозицию как обычное разделениеалгоритмов, где каждый модуль системы выполняет один из этапов общего процесса.

На рис. 1-2приведен в качестве примера один из продуктов структурного проектирования: структурнаясхема, которая показывает связи между различными функциональными элементами системы.Данная структурная схема иллюстрирует часть программной схемы, изменяющей содержаниеуправляющего файла. Она была автоматически получена из диаграммы потока данныхспециальной экспертной системой, которой известны правила структурного проектирования [18].Объектно-ориентированная декомпозиция.

Предположим, что у этой задачи существует альтернативный способ декомпозиции. На рис. 1-3 мы разделили систему, выбрав вкачестве критерия декомпозиции принадлежность ее элементов к различным абстракциям даннойпроблемной области. Прежде чем разделять задачу на шаги типа Get formatted update (Получитьизменения в отформатированном виде) и Add check sum (Прибавить к контрольной сумме), мыдолжны определить такие объекты как Master File (Основной файл) и Check Sum (Контрольнаясумма), которые заимствуются из словаря предметной области.Хотя обе схемы решают одну и ту же задачу, но они делают это разными способами.

Вовторой декомпозиции мир представлен совокупностью автономных действующих лиц, которыевзаимодействуют друг с другом, чтобы обеспечить поведение системы, соответствующее болеевысокому уровню. Get formatted update (Получить изменения в отформатированном виде)больше не присутствует в качестве независимого алгоритма; это действие существует теперь какоперация надGРис. 1-2. Алгоритмическая декомпозицияобъектом File of Updates (Файл изменений). Эта операция создает другой объект — Update to Card(Изменения в карте).

Таким образом, каждый объект обладает своим собственным поведением, икаждый из них моделирует некоторый объект реального мира. С этой точки зрения объектявляется вполне осязаемой вещью, которая демонстрирует вполне определенное поведение.Объекты что-то делают, и мы можем, послав им сообщение, попросить их выполнить то-то и тото. Так как наша декомпозиция основана на объектах, а не на алгоритмах, мы называем ееобъектно-ориентированной декомпозицией.Декомпозиция: алгоритмическая или объектно-ориентированная? Какая декомпозиция сложной системы правильнее — по алгоритмам или по объектам? В этом вопросе естьподвох, и правильный ответ на него: важны оба аспекта. Разделение по алгоритмамконцентрирует внимание на порядке происходящих событий, а разделение по объектам придаетособое значение агентам, которые являются либо объектами, либо субъектами действия.

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

Такое началопоможет нам лучше справиться с приданием организованности сложности программных систем.Выше этот объектный подход помог нам при описании таких непохожих систем, как компьютеры,растения, галактики и общественные институты. Как будет видно в дальнейшем (в главах 2 и 7),объектная декомпозиция имеет несколько чрезвычайно важных преимуществ передалгоритмической. Объект-4Лэнгдон предполагает, что эта ортогональность изучалась с древних времен. Он пишет: «К. X.Ваддингтон отметил, что такая дуальность взглядов прослеживается до древних греков.Пассивный взгляд предлагался Демокритом, который утверждал, что мир состоит из атомов.Эта позиция Демокрита ставила в центр всего материю. Классическим представителем другойстороны — активного взгляда — был Гераклит, который выделял понятие процесса»[34].Рис.

1-3. Объектно-ориентированная декомпозицияная декомпозиция уменьшает размер программных систем за счет повторного использованияобщих механизмов, что приводит к существенной экономии выразительных средств. Объектноориентированные системы более гибки и проще эволюционируют со временем, потому что ихсхемы базируется на устойчивых промежуточных формах. Действительно, объектнаядекомпозиция существенно снижает риск при создании сложной программной системы, так какона развивается из меньших систем, в которых мы уже уверены. Более того, объектнаядекомпозиция помогает нам разобраться в сложной программной системе, предлагая намразумные решения относительно выбора подпространства большого пространства состояний.Преимущества объектно-ориентированных систем демонстрируются в главах 8-12примерами прикладных программ, относящихся к различным областям. Следующая врезкасопоставляет объектно-ориентированное проектирование с более традиционными подходами.Роль абстракцииВыше мы ссылались на эксперименты Миллера, в которых было установлено, что обычночеловек может одновременно воспринять лишь 7±2 единицы информации.

Это число, повидимому, не зависит от содержания информации. Как замечает сам Миллер: «Размер нашейпамяти накладывает жесткие ограничения на количество информации, которое мы можемвоспринять, обработать и запомнить. Организуя поступление входной информации одновременнопо нескольким различным каналам и в виде последовательности отдельных порций, мы можемпрорвать... этот информационный затор» [35].

В современной терминологии это называютразбиением или выделением абстракций.Вулф так описывает этот процесс: «Люди развили чрезвычайно эффективную технологиюпреодоления сложности. Мы абстрагируемся от нее. Будучи не в состоянии полностью воссоздатьсложный объект, мы просто игнорируем не слишком важные детали и, таким образом, имеем делос обобщенной, идеализированной моделью объекта» [36]. Например, изучая процесс фотосинтезау растений, мы концентрируем внимание на химических реакциях в определенных клетках листаи не обращаем внимание на остальные части — черенки, жилки и т. д.

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