И. Соммервилл - Инженерия программного обеспечения (1133538), страница 42
Текст из файла (страница 42)
7.9 приведен пример другой иерархии наследования, которая также может быть частью библиотечной модели. Здесь показаны пользователи библиотеки, разбитые дэа класса: читатели, имеющие право выносить книги, и читатели, которые могут читать книги только в библиотеке без права выноса. В нотации ()М(. наследования показываются сверху вниз, как принято в других объ. ектно-ориентированных нотациях. Здесь стрелка (с окончанием в виде треугольника) выходит из класса, который наследует атрибуты и операции, и направлена к родительскому классу. Огмсгпм, что в ОМЬ вместо термина "наследование" чаще используется термин "обобщение". На рис. 7.8 и 7.9 показаны иерархии классов объектов, где каждый класс наследует атрибуты и операции от одного родительского класса.
В моделях множественного наследования классы мо~уг имеет нескольких родителей. Тогда наследуются атрибуты и сервисы от каждого родительского класса. На рис. 7.10 показан пример модели множественного наследования, которая также является частью библиотечной модели.
7. Модели систем 163 Ркс. 7.9. Иерпрхия классов яогыовпомеек е".Нс. 7.10. Мложеопвенлое кпглеоооплие Основной проблемой множественного наследования явллется разработка такой схемы, где объекты не наследуют ненужные атрибугы. Другая проблема — сложность реоршнизации схемы наследования при разрешении конфликта, когда несколько родительских классов имеют атрибуты с одним и тем же илгенем, но разными значениями. На уровне системного моделирования такие проблемы решаются относительно просто — путем изменения объектной модели вручную, Зги проблемы служат причиной многих ошибок в объектно-ориентированном програимировании.
164 г1асть П. Требования 7.4.2. Агрегирование объектов Подобно тому как одни объекты получают атрибугы и сервисы посредством связей от других объектов, другие объекты могуг создаваться из нескольких объектов. Иными словами, объект агрегируется из совокупности других объектов. Классы, предсгавляющие такие объекты, можно смоделировать, используя модель агрегирования объектов, подобную показанной на рис. 7.11.
В этом примере смоделирован библиотечный элемент, который является пакетом учебных материалов университетского курса. Этот пакет содержит за. пиен лекций, упражнения, примеры решений, копии диапозитивов, используемых на лекциях, видеозаписи. еЪе. 7. П. Модель агрегирования обгеатов В 1)М(.для показа агрегирования объектов используется связь с окончанием ромбовидной формы.
Вот как можно прочитать рис. 7.11: "Учебный пакет, составленный из нескольких заданий, пакета слайдов, записей лекций и видеозаписей". 7.4.3. Моделирование поведения объектов Модели поведения объектов показывают операции, выполняемые объектами. В ()М(. поведение объектов моделируется посредством сценариев, которые основаны на вариан. тах использования, рассмотренных в главе 6, где приведен пример моделирования поведения, показывающий последовательность управления библиотечным каталогом (см. рис. 6.11).
Кроме диаграмм последовательностей в 1)М1. предусмотрены также кооперативные диаграммы (сойаЬогайоп 61айтащз"). показывающие последовательность сообща. ний, которыми обмениваются объекты. Они подобны диаграммам последовательностей, и здесь я па них не останавливаюсь. Эвгв дотравлгы в(~уткой л и терему)» также налывают дввфаюга»а еотрудгшчттвв. - При ы. рсл.
7. Модели систем 165 Я покажу диаграммы последовательностей в качестве модели поведения пользователя при получении библиотечного элемента в электронном виде. Например, пакет учебных материалов (см. рис. 7.11) может храниться в электронном виде и загружаться на компьютер скудента, На рис. 7.12 показана диаграмма последовательностей, в верхней части которой расположены объекты. Операции обозначаются помеченными стрелками, а последователь. ность операций читается сверху вниз. В этом сценарии библиотечный пользователь сначала обращается к электронному каталогу, чтобы увидеть, доступен ли нужный элемент, и, если доступен, запрашивает его.
Для соблюдения авторских прав пользователь должен подтвердить свое согласие с лицензией на запрашиваемый материал. если, конечно, это предусмотрено правилами пользования данным материалом. Затем выбранный элемент пересылается на сетевой сервер для сжатия, после чего отсылается библиотечному поль.
зователю. Электронный катззоп .Библиотечный Бибяиотека: Кмвзог мэемаар Сетевкй сервер :йоз Рис. 7.12. Выдачи амкнтронных бибкионичныл ваезинним 7.5. Инструментальные САЯЕ-средства Это пакет программных средств, который поддерживает отдельные этапы процесса разработки программного обеспечения: проектирование, написание программного кода нли тестирование. Преимущество группирования САЯЕ. средств в инструментальный пакет заключается в том, что, работая вместе, они обеспечивают более всестороннюю под. держку процесса разработки ПО, чем мокут предложить отдельные инструментальные средства. Общие сервисы могут вызываться всеми средствами. Инструментальные средст. ва можно объединить в пакет с помощью общих файлов, репозитория или общей структуры данных.
1бб Иасть П. Требования Инструментальные средства анализа и проектирования ПО созданы для поддержки моделирования систем на этапах анализа и проектирования процесса разработки про. граммного обеспечения. Они поддерживают создание, редактирование и анализ графических нотаций, используемых в структурных методах. Инструментальные средства анализа и проектирования часто поддерживают только определенные методы проектирования и анализа, например объектно.
ориентированные. Другие инструментальные средства являются общими системами редактирования диаграмм многих типов, которые используютсл разными методами проектирования и анализа. Инструментальные средства, ориентированные на определенные методы, обычно автоматически поддерживают правила и базовые принципы этик методов, что позволяет выполнять автоматический контроль диаграмм. На рис. 7.1З показана схема пакета инструментальных средств поддержки анализа и проектированил ПО. Инструмс~ггальные средства обычно объединяютсл через общий репозигорий, структура которого является собственностью разработчика пакета инструмеигальных средств.
Пакеты инструментальных средств обычно закрыты, т.е. не рассчитаны на добавление польъь вателями собственных инструментов илн иа изменение средств пакета. Рис. 7.13. Пакет иксгярулеявиыьимх средпвв для анаавзп к яроеквшроваиия ПО Ниже перечислены средства, которые входят в пакет инструментальных средств, по. казанный на рис. 7.13. 1. Ргдтгвюри двафпмм предназначены для создания диаграмм потоков данных, иерархий объектов, диаграмм "сущность-связь" и т.д. Зти редакторы не только имеют средства рисования, но и поддерживают различные типы объектов, используемые в диаграммах. 2. Сфедсвма проеквшровлниц лнпзвэя к проверки выполняют проектирование ПО и создают отчет об ошибках и дефектах в системной архитектуре.
Они могут работать совместно с системой редактирования, поэтому обнаруженные ошибки можно устранить на ранней стадии процесса проектирования. 3. ЦгятРааьимй фгпозквюйиб позволяет проектировщику найти нужный проект и соот. ветствующую проектную информацию. 7.
Модели систем 167 4. Сжмадь данник хранит информацию об объектах, которые используются в структуре системы. 5. Срптплеа мтиугкрезанкя азвмэкм на основе информации из центрального репозито- рия автоматически генерируют системную документацию. б. Сдедаява созданяя Втауьк определяют форматы документов и экранных форм. 7. Сумдсяма инягвьгякукмания и зкслеуляированкл позволяют обмениваться информацией из центрального репозитория различным инструментальным средствам. 8. Гснэртпорм ятюгранмнаго кода автоматически генерируют программы на основе про- ектов, хранящихся в центральном репозитории.
В некоторых случаях возможно генерировать программы или фрагменты программ на основе информации, представленной в системной модели. Генераторы кода, которые вклю. чены в пакеты инструментальных средств, могут генерировать код на таких языках, как Гата, С++ или С. Поскольку в моделях не предусмотрена детализация низкого уровня, генератор программного кода не в состоянии сгенерировать законченную систему. Обычно необходимы программисты для завершения автоматически сгенерированных программ. Некоторые пакеты инструментальных средств анализа и проектирования предназначены для поддержки методов разработки программных приложений деловой сферы.
Обычно для создания общего репознтория инсгрументов они используют системы баз данных типа БуЬаве или Огасге. Эти пакеты инструментальных средств содержат большое количество средств яэы. ков программирования четвертого поколения, предназначенных для генерирования прг» граммного кода на основе системной архитектуры, они также могут генерировать базы данных с использованием языков программирования четвертого поколения. не системы, в'котором шнорируются неппорые детали" нительные модели системы, в которых щгедставвена раз-'"э показывают, 'как разрабатываемая систина взаимодействует .
того,мауг,испюяьтоваться щхщтеюурные исцели; модели .. тся для моделирования процесса обрабопи данных, выпоп-:, сос»оянид) мод~йр~ют поведвнйеесйстгявц влввиссю~ктиг~ описывают яопцеаие структуры дмвва, импартнруем»ых и ааиртн-;" бр супвиюти, нх рибут и ду н ные сущности, мг классификацию и агрмировзние.
Оба., следования, згдагиропания и поведенчески6 модели. подцержиеают разработку системньц модевей, обеспе- . таюке средства создания отчетов и документирования, 168 'Часть П. Требоввниж Упражнения 7.т. Разработайте модель рабочего окружения для информационной системы больницы.
Модель должна предусматривать ввод данных о новых пациентах и систему хранения рентгеновских снимков. 7.2. Создайте модель обработки данных в системе электронной почты. Необходимо отдельно смоделировать отправку почты и ее получение, 7.3. Нарисуйте модель конечного автомата управляющей системы: ° для автоматической стиральной машины, которая имеет различные программы для разных типов белья; ° для программного обеспечения проигрывателя компакт-дисков; ° для телефонного автоответчика, который регистрирует входные сообщения и пжззывает число принятых сообщений на дисплее.
Система должна соединять владельца телефона с абонентом после ввода им последовательности чисел (телефонного номера абонента~, а также, имея записанные сообщения, повторять их по телефону. 7.4. Разработайте модель классов объектов для системы электронной почты. Если вы выполнили упражнение 7.3, опишите различия и сходства между моделью обработки данных и объектной моделью.