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

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

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

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

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

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

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

Чем больше разработчиков, тем сложнее связи между ними и темсложнее координация, особенно если участники работ географически удалены друг от друга, чтотипично в случае очень больших проектов. Таким образом, при коллективном выполнениипроекта главной задачей руководства является поддержание единства и целостности разработки.Гибкость программного обеспечения. Домостроительная компания обычно не имеетсобственного лесхоза, который бы ей поставлял лес для пиломатериалов; совершенно необычно,чтобы монтажная фирма соорудила свой завод для изготовления стальных балок под будущеездание.

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

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

Д. Парнас [4] пишет:«когда мы говорим, что система описывается непрерывной функцией, мы имеем ввиду, что в нейнет скрытых сюрпризов. Небольшие изменения входных параметров всегда вызовут небольшиеизменения выходных». С другой стороны, дискретные системы по самой своей природе имеютконечное число возможных состояний, хотя в больших системах это число в соответствии справилами комбинаторики очень велико. Мы стараемся проектировать системы, разделяя их начасти так, чтобы одна часть минимально воздействовало на другую. Однако переходы междудискретными состояниями не могут моделироваться непрерывными функциями.

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

Былобы очень неприятно, если бы от включения пассажиром, сидящим на месте 38J, индивидуальногоосвещения самолет немедленно вошел бы в глубокое пике. В непрерывных системах такоеповедение было бы невозможным, но в дискретных системах любое внешнее событие можетповлиять на любую часть внутреннего состояния системы. Это, очевидно, и является главнойпричиной обязательного тестирования наших систем; но дело в том, что за исключением самыхтривиальных случаев, всеобъемлющее тестирование таких программ провести невозможно. Ипока у нас нет ни математических инструментов, ни интеллектуальных возможностей для полногомоделирования поведения больших дискретных систем, мы должны удовлетвориться разумнымуровнем уверенности в их правильности.Последствия неограниченной сложности«Чем сложнее система, тем легче ее полностью развалить» [5].

Строитель едва лисогласится расширить фундамент уже построенного 100-этажного здания. Это не просто дорого:делать такие вещи значит напрашиваться на неприятности. Но что удивительно, пользователипрограммных систем, не задумываясь, ставят подобные задачи перед разработчиками.

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

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

В самом деле, можно привести множествопримеров успешно функционирующих сложных систем. Некоторые из них созданы человеком,например: космический челнок Space Shuttle, туннель под Ла-Маншем, большие фирмы типаMicrosoft или General Electric. В природе существуют еще более сложные системы, напримерсистема кровообращения у человека или растение.1.2.

Структура сложных систем Примеры сложных системСтруктура персонального компьютера. Персональный компьютер (ПК) — приборумеренной сложности. Большинство ПК состоит из одних и тех же основных элементов:системной платы, монитора, клавиатуры и устройства внешней памяти какого-либо типа (гибкогоили жесткого диска). Мы можем взять любую из этих частей и разложить ее в свою очередь насоставляющие. Системная плата, например, содержит оперативную память, центральныйпроцессор (ЦП) и шину, к которой подключены периферийные устройства.

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

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

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

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

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

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