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

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

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

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

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

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

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

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

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

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

Метод был непосредственно основан на топологии традиционных языковвысокого уровня типа FORTRAN или COBOL. В этих языках основной базовой единицейявляется подпрограмма, и программа в целом принимает форму дерева, в котором одниподпрограммы в процессе работы вызывают другие подпрограммы. Структурное проектированиеиспользует именно такой подход: алгоритмическая декомпозиция применяется для разбиениябольшой задачи на более мелкие.Тогда же стали появляться компьютеры еще больших, поистине гигантских возможностей. Значение структурного подхода осталось прежним, но как замечает Стейн,«оказалось, что структурный подход не работает, если объем программы превышаетприблизительно 100 000 строк» [19]. В последнее время появились десятки методов, вбольшинстве которых устранены очевидные недостатки структурного проектирования.

Наиболееудачные методы были разработаны Петерсом [20], Йеном и Цаи [21], а также фирмой TeledyneBrown Engineering [22]. Большинство этих методов представляют собой вариации на одни и те жетемы. Саммервилль предлагает разделить их на три основные группы [23]:• метод структурного проектирования сверху вниз;• метод потоков данных;• объектно-ориентированное проектирование.Примеры структурного проектирования приведены в работах Иордана и Константина [24],Майерса [25] и Пейдж-Джонса [26]. Основы его изложены в работах Вирта [27, 28], Даля,Дейкстры и Хоара [29]; интересный вариант структурного подхода можно найти в работе Милса,Лингера и Хевнера [30].

В каждом из этих подходов присутствует алгоритмическаядекомпозиция. Следует отметить, что большинство существующих программ написано, повидимому, в соответствии с одним из этих методов. Тем не менее структурный подход непозволяет выделить абстракции и обеспечить ограничение доступа к данным; он также непредоставляет достаточных средств для организации параллелизма. Структурный метод не можетобеспечить создание предельно сложных систем, и он, как правило, неэффективен в объектных иобъектно-ориентированных языках программирования.Метод потоков данных лучше всего описан в ранней работе Джексона [31, 32], а такжеВарниера и Орра [33].

В этом методе программная система рассматривается как преобразовательвходных потоков в выходные. Метод потоков данных, как и структурный метод, с успехомприменялся при решении ряда сложных задач, в частности, в системах информационногообеспечения, где существуют прямые связи между входными и выходными потоками системы игде не требуется уделять особого внимания быстродействию.Объектно-ориентированное проектирование (object-oriented design, OOD) — это подход,основы которого изложены в данной книге. В основе OOD лежит представление о том, чтопрограммную систему необходимо проектировать как совокупность взаимодействующих друг сдругом объектов, рассматривая каждый объект как экземпляр определенного класса, причемклассы образуют иерархию.

Объектно-ориентированный подход отражает топологию новейшихязыков высокого уровня, таких как Smalltalk, Object Pascal, C++, CLOS и Ada.Роль иерархииДругим способом, расширяющим информационные единицы, является организациявнутри системы иерархий классов и объектов. Объектная структура важна, так как онаиллюстрирует схему взаимодействия объектов друг с другом, которое осуществляется с помощьюмеханизмов взаимодействия. Структура классов не менее важна: она определяет общностьструктур и поведения внутри системы. Зачем, например, изучать фотосинтез каждой клеткиотдельного листа растения, когда достаточно изучить одну такую клетку, поскольку мы ожидаем,что все остальные ведут себя подобным же образом.

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

Однако после их определения, структура сложной системы и, в своюочередь, наше понимание ее сразу во многом проясняются. В главе 3 детально рассматриваетсяприрода иерархий классов и объектов, а в главе 4 описываются приемы распознавания этихструктур.1.4. О проектировании сложных системИнженерное дело как наука и искусствоНа практике любая инженерная дисциплина, будь то строительство, механика, химия,электроника или программирование, содержит в себе элементы и науки, и искусства. Петроскикрасноречиво утверждает: «Разработка новых структур предполагает и полет фантазии, и синтезопыта и знаний: все то, что необходимо художнику для реализации своего замысла на холсте илибумаге. После того, как этот замысел созрел в голове инженера-художника, он обязательнодолжен быть проанализирован с точки зрения применимости данного научного методаинженером-ученым со всей тщательностью, присущей настоящему ученому» [38].

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

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

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

В контексте инженерного проектирования Мостовопределил цель проектирования как создание системы, которая• «удовлетворяет заданным (возможно, неформальным) функциональнымспецификациям;•согласована с ограничениями, накладываемыми оборудованием;•удовлетворяет явным и неявным требованиям по эксплуатационным качествам иресурсопотреблению;•удовлетворяет явным и неявным критериям дизайна продукта;•удовлетворяет требованиям к самому процессу разработки, таким, например, какпродолжительность и стоимость, а также привлечение дополнительныхинструментальных средств» [40].По предположению Страуструпа: «Цель проектирования — выявление ясной иотносительно простой внутренней структуры, иногда называемой архитектурой... Проект естьокончательный продукт процесса проектирования» [41].

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