8.6. ЭТАПЫ И МОДЕЛИ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ
8.6. ЭТАПЫ И МОДЕЛИ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ
Почему в начале процесса проектирования работу начинают с анализа функционирования или поведения системы? Дело в том, что поведение системы обычно известно задолго до остальных ее свойств. Программа должна выполнять набор действий, согласно выявленным ее функциям. Процесс разработки модели в форме функциональной спецификации уже был изложен ранее в гл. 5.
Объектно-ориентированная технология создания программ основывается на так называемом объектном подходе. Одним из проявлений этого подхода является то, что сначала довольно долго создаются и оптимизируются объектная модель и иные модели и лишь затем осуществляется кодирование.
Обычно проектируемая программная система первоначально представляется в виде трех взаимосвязанных моделей:
1) объектной модели, которая представляет статические, структурные аспекты системы;
2) динамической модели, которая описывает работу отдельных частей системы;
3) функциональной модели, в которой рассматривается взаимодействие отдельных частей системы (как по данным, так и по управлению) в процессе ее работы.
Эти три вида моделей должны позволить рассматривать три взаимно-ортогональных представления системы в одной системе обозначений.
Объектная модель на более поздних этапах проектирования дополняется моделями, отражающими как логическую (классы и объекты), так и физическую структуру системы (процессы и деление на компоненты, файлы или модули).
Поскольку при разработке объектно-ориентированного проекта используется множество моделей, которые необходимо увязать в единое целое, далее в гл. 10 рассматриваются средства автоматизации составления, верификации (проверки) и графической визуализации этих моделей.
Процесс построения объектной модели включает в себя следующие, возможно, повторяющиеся до достижения приемлемого качества модели этапы:
1) определение объектов;
2) подготовку словаря объектов с целью исключения схожих (синонимичных) понятий и уточнения имен, классификацию объектов, выделение классов;
3) определение взаимосвязей между объектами;
4) определение атрибутов объектов и методов (определение уровней доступа и проектирование интерфейсов классов);
5) исследование качества модели.
Теперь, используя функциональную модель, можно начинать работу с динамической моделью, наделяя объекты необходимыми методами и данными.
Модели, разработанные на первой фазе жизненного цикла системы, продолжают использоваться на всех последующих его фазах, облегчая программирование системы, ее отладку и тестирование, сопровождение и дальнейшую модификацию.
Объектная модель описывает структуру объектов, составляющих систему, их атрибуты, операции, взаимосвязи с другими объектами. В объектной модели должны быть отражены те понятия и объекты реального мира, которые важны для разрабатываемой системы. В объектной модели отражается прежде всего прагматика разрабатываемой системы, что выражается в использовании терминологии прикладной области, связанной с использованием разрабатываемой системы.
Прагматика определяется целью разработки программной системы: для обслуживания покупателей железнодорожных билетов, управления работой аэропорта, обслуживания чемпионата мира по футболу и т. п. В формулировке цели участвуют предметы и понятия реального мира, имеющие отношение к разрабатываемой программной системе.
Объектную модель можно описать следующим образом:
1) основные элементы модели — объекты и сообщения;
2) объекты создаются, используются и уничтожаются подобно динамическим переменным в обычных языках программирования;
3) выполнение программы заключается в создании объектов и передаче им последовательности сообщений.
Объектная модель базируется на четырех главных принципах: абстрагировании; инкапсуляции; модульности; иерархии.
Эти принципы являются главными в том смысле, что без любого из них модель не будет по-настоящему объектно-ориентированной.
Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от несущественных. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
Все абстракции обладают как статическими, так и динамическими свойствами. Например, файл как объект требует определенного объема памяти на конкретном устройстве, имеет имя и содержание. Эти атрибуты являются статическими свойствами. Конкретные же значения каждого из перечисленных свойств динамичны и изменяются в процессе использования объекта: файл можно увеличить или уменьшить, изменить его имя и содержимое.
Абстракция и инкапсуляция дополняют друг друга: абстрагирование направлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутренним устройством. Чаще всего инкапсуляция дополняется сокрытием информации, т. е. маскировкой всех внутренних деталей, не влияющих на внешнее поведение. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого объекта, скрыты от внешних компонент.
При объектно-ориентированном проектировании необходимо физически разделить классы и объекты, составляющие логическую структуру проекта. Такое разделение делает возможным повторно использовать во все новых проектах код модулей, написанных ранее. Модулю в данном контексте соответствует отдельный файл исходного текста. На выбор разбиения на модули могут влиять и некоторые внешние обстоятельства. При коллективной разработке программ распределение работы осуществляется, как правило, по модульному принципу, и правильное разделение проекта минимизирует связи между участниками.
Таким образом, принципы абстрагирования, инкапсуляции и модульности являются взаимодополняющими. Объект логически определяет границы определенной абстракции, а инкапсуляция и модульность делают их физически незыблемыми.
Имея выявленные объекты, можно приступить к выявлению классов. Классы чаще всего строятся постепенно, начиная от простых родительских классов и заканчивая более сложными. Непрерывность процесса основана на наследовании. Каждый раз, когда из предыдущего класса производится последующий, производный класс наследует какие-то или все родительские качества, добавляя к ним новые. Завершенный проект может включать десятки и сотни классов, но часто все они произведены от считанного количества родительских классов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Этапы
Этапы Давайте перечислим основные этапы поиска решения на основе сетки:1. Проведение исследований и выявление существующих ограничений.2. Техническое задание.3. Подготовительный дизайн:• карандашные эскизы;• блоки, колонки, предварительные расчеты;• эскизы
Глава 1 Этапы большого пути
Глава 1 Этапы большого пути Хороший web-сайт – это не просто набор страниц, связанных гиперссылками, и далеко не только то, что видит пользователь на экране монитора. Его внутреннее устройство довольно сложно. Ведь требуется обеспечить максимум удобств, как для
Этапы работы с базой данных
Этапы работы с базой данных Теперь, когда вы уже знаете, какие таблицы и столбцы должна содержать ваша будущая база, вы готовы перейти непосредственно к работе с программой Access. Перед вами открывается все многообразие возможностей Access. С чего начать? Как не запутаться в
7.9. Выгоды и опасности объектно-ориентированной разработки
7.9. Выгоды и опасности объектно-ориентированной разработки Выгоды Приверженцы объектно-ориентированной технологии обычно называют два ее главных преимущества. Во-первых, большая конкурентоспособность благодаря предсказуемости, сокращению времени на разработку и
Глава 3 . Связывание модели процессов и модели данных
Глава 3. Связывание модели процессов и модели данных 3.1. Модель данных и ее соответствие модели процессов Функциональная модель BPwin является основой для построения модели данных. Действительно, не имея информации о том, как работает предприятие, бессмысленно строить
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard Rational Rose позволяет строить объектную модель, но не может построить качественную физическую модель данных. Для решения этой задачи фирмой PLATINUM technology выпущена утилита ERwin Translation Wizard, позволяющая
Этапы создания проекта
Этапы создания проекта Разработку проекта в ArchiCAD можно разбить на несколько этапов.На первом этапе работа ведется в основном на планах этажей. Именно здесь разработчик определяет планировку проекта (включая прилегающую территорию), местоположение стен и перегородок,
Этапы отбора кандидатов
Этапы отбора кандидатов В настоящее время существует большое количество различных методик, используемых при отборе персонала. Обычно на каждом предприятии принята своя методология, которая зависит от специфики конкретной организации, принципов корпоративной
1.8. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ
1.8. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ ГОСТ 19.102—77 регламентирует стадии и этапы программных разработок в течение всего жизненного цикла. Данный стандарт сформировался на основе анализа удачных и неудачных программных разработок и содержит основные рекомендации по
8.4. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ
8.4. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ С чего же начинается создание объектно-ориентированной программы?Конечно, с объектно-ориентированного анализа (ООА — object-oriented analysis), который направлен на создание моделей реальной действительности на основе
Этапы проектирования базы данных
Этапы проектирования базы данных Процесс создания базы данных следует тщательно продумать, поскольку допущенные ошибки исправлять намного сложнее, когда база данных наполнена информацией. Разработку базы данных лучше выполнять в несколько этапов.Постановка задачи. В