Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование и разработка информационных систем. Учебное пособие для СПО

.pdf
Скачиваний:
4
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
61
класса определяется состав, атрибуты и методы их обработки, что обеспечивает наилучшее динамическое поведение ИС
Для объектно-ориентированного подхода разработан язык унифицированного моделирования UML (Unified Modeling Language) (см. п. 2.4).
При выборе методики проектирования ИС обычно исходят из степени ее динамичности. Для более регламентированных задач больше подходят функциональные модели, для более адаптивных бизнес-процессов (управления рабочими потоками, реализации динамических запросов к информационным храни­лищам) — объектно-ориентированные модели. Но и в рамках одной и той же ИС для различных классов задач могут требо­ваться различные виды моделей, описывающих одну и ту же проблемную область. В таком случае должны использоваться комбинированные модели.
2.3. Функциональная методика и стандарты IDEF
В настоящее время функциональная методика проектиро­вания опирается на стандарты IDEF для описания проекта. Стандарты IDEF можно считать следующим этапом развития хорошо известного графического языка описания функциональ­ных систем SADT (Structured Analysis and Design Teqnique), ко­торые ранее были базовыми при проектировании ПО. В настоя­щий момент к семейству IDEF можно отнести ряд стандартов, которые именуются IDEF и снабжаются номером от 0 до 14.
Первым в 1981 году был разработан стандарт IDEF0 в рамках обширной программы автоматизации промышленных предприятий, которая носила обозначение ICAM (Integrated Computer Aided Manufacturing) и была предложена департамен­том Военно-Воздушных Сил США. Собственно, семейство стандартов IDEF унаследовало свое обозначение от названия этой программы (IDEF = ICAM DEFinition). C 1981 года стан­дарт IDEF0 претерпел несколько незначительных изменений, в основном ограничивающего характера, и последняя его редак­ция была выпущена в декабре 1993 года национальным институ­том по стандартам и технологиям США (NIST).
62
С помощью графического языка IDEF0 проект ПО пред­ставляется в виде набора взаимосвязанных функций (функцио­нальных блоков — в терминах IDEF0). Как правило, моделиро­вание средствами IDEF0 — первый этап изучения любой систе­мы.
Функциональная методика IDEF базируется на четырех основных понятиях:
1) функциональный блок;
2) интерфейсная дуга;
3) декомпозиция;
4) глоссарий.
Функциональный блок (Activity Box) представляет собой некоторую конкретную функцию в рамках рассматриваемой си­стемы. По требованиям стандарта название каждого функцио­нального блока должно быть сформулировано в глагольном наклонении (например, «производить услуги»). На диаграмме функциональный блок изображается прямоугольником (рис. 2.2). Каждая из четырех сторон функционального блока имеет свое определенное значение (роль), при этом:
– верхняя сторона имеет значение «Управление» (Control);
– левая сторона имеет значение «Вход» (Input);
– правая сторона имеет значение «Выход» (Output);
– нижняя сторона имеет значение «Механизм»
(Mechanism).
Рис. 2.2. Функциональный блок (контекстная диаграмма)
Интерфейсная дуга (Arrow) отображает элемент системы, который обрабатывается функциональным блоком или оказыва-
63
ет иное влияние на функцию, представленную данным функцио­нальным блоком. Интерфейсные дуги часто называют потоками или стрелками. С их помощью отображают различные объекты, в той или иной степени определяющие процессы, происходящие в системе. Такими объектами могут быть элементы реального мира (детали, вагоны, сотрудники и т. д.) или потоки данных и информации (документы, данные, инструкции и т. д.).
В зависимости от того, к какой из сторон функционально­го блока подходит данная интерфейсная дуга, она носит назва­ние «входящей», «исходящей» или «управляющей».
Необходимо отметить, что любой функциональный блок по требованиям стандарта должен иметь, по крайней мере, одну управляющую интерфейсную дугу и одну исходящую. Это и по­нятно — каждый процесс должен происходить по каким-то пра­вилам (отображаемым управляющей дугой) и должен выдавать некоторый результат (выходящая дуга), иначе его рассмотрение не имеет никакого смысла.
Обязательное наличие управляющих интерфейсных дуг является одним из главных отличий стандарта IDEF0 от других функциональных методов описаний проекта ПО: DFD (Data Flow Diagram) и WFD (Work Flow Diagram).
Декомпозиция (Decomposition) является основным поня­тием стандарта IDEF0. Принцип декомпозиции применяется при разбиении сложного процесса на составляющие его функции (см. п. 2.3). При этом уровень детализации процесса определяет­ся непосредственно разработчиком модели. Декомпозиция поз­воляет постепенно и структурированно представлять модель си­стемы в виде иерархической структуры отдельных диаграмм, что делает ее менее перегруженной и легко усваиваемой.
Модель IDEF0 всегда начинается с представления системы как единого целого — одного функционального блока с интер­фейсными дугами, простирающимися за пределы рассматривае­мой области. Такая диаграмма с одним функциональным блоком называется контекстной диаграммой (см. рис. 2.2).
В пояснительном тексте к контекстной диаграмме должна быть указана цель (Purpose) построения диаграммы в виде крат­кого описания и зафиксирована точка зрения разработчика
(Viewpoint).
64
Определение и формализация цели разработки IDEF0 мо­дели является крайне важным моментом. Фактически цель опре­деляет соответствующие области в исследуемой системе, на ко­торых необходимо фокусироваться в первую очередь.
Точка зрения определяет основное направление развития модели и уровень необходимой детализации. Четкое фиксирова­ние точки зрения позволяет разгрузить модель, отказавшись от детализации и исследования отдельных элементов, не являю­щихся принципиально важными, исходя из выбранной точки зрения на систему.
Последним из понятий IDEF0 является глоссарий (Glossary). Для каждого из элементов IDEF0 — диаграмм, функ­циональных блоков, интерфейсных дуг — существующий стан­дарт подразумевает создание и поддержание набора соответ­ствующих определений, ключевых слов, повествовательных из­ложений и т. д., которые характеризуют объект, отображенный данным элементом. Этот набор называется глоссарием и являет­ся описанием сущности данного элемента. Глоссарий гармонич­но дополняет наглядный графический язык, снабжая диаграммы необходимой дополнительной информацией.
Рис. 2.3. Декомпозиция функционального блока
65
2.4. Объектно-ориентированная методика
и язык UML
По объектным моделям можно отследить отображение ре­альных сущностей ПО в объекты и классы ИС.
Объектно-ориентированная (ОО) методика базируется на языке моделирования UML. UML включает в себя стандартный набор диаграмм. Для описания статики системы (ее структуры) используются два типа диаграмм: классов и объектов.
Для описания динамики системы существуют диаграммы:
1) прецедентов;
2) последовательности;
3) состояний;
4) деятельности;
5) и т. д.
2.4.1. Объекты и классы
Наиболее важными строительными блоками любого ОО проекта являются классы и объекты. Декомпозиция проекта проводится как раз по классам или объектам, что отражают диа­граммы классов или объектов.
Класс — это набор объектов, имеющих одинаковые харак- теристики.
Объект — это предмет или понятие из реального мира. Предположим, вы стоите перед банкоматом и получаете налич­ные. Объектами, относящимися к этой задаче, являются кредит­ная карта, банковский счет, с которого берутся деньги, и купю­ра, которую выдает банкомат (в качестве объекта можно пред­ставить и банкомат, но он намного сложнее, чем указанные объ­екты, поэтому не рассматривается). У каждого объекта есть три важные особенности.
Объект имеет имя, то есть его можно идентифицировать. Иногда это имя выбирается понятным человеку, иногда объект идентифицируется именем, понятным компьютеру.
Объект имеет один или несколько атрибутов (свойств), ко­торые имеют имена и значения. Объект обладает поведением, для чего описание включаются методы (функции), или, которые используют или изменяют значения атрибутов объекта.
66
Один из фундаментальных принципов объектно­ориентированной разработки, называемый инкапсуляцией, пред­полагает сокрытие данных объекта. Это значит, что объект поз­воляет манипулировать своими данными только путем исполь­зования методов этого объекта. В табл. 2.1 перечислены некото­рые атрибуты, принадлежащие обсуждаемым объектам, и их возможные значения.
Таблица 2.1
Объекты, атрибуты и значения
Объекты
Атрибут
Значение
Кредитная карта
PIN
4321
Банковский счет ID
404-2222-5582
Лимит
1000
Денежная купюра
Серийный номер
О21097667А
Так как объект может вызывать собственные методы, можно предположить, что кредитная карта будет содержать ме­тод «проверить_РIN», а банковский счет — метод «снять_сумму».
Обычно в названиях методов, состоящих из нескольких слов, первое слово отображается буквами нижнего регистра, а первые буквы следующих слов указываются в верхнем регистре. Если одно из слов является аббревиатурой, его записывают бук­вами верхнего регистра, например, PIN — персональный иден­тификационный номер.
Объекты играют важную роль, но наиболее важными строительными блоками любой объектно-ориентированной си­стемы являются классы. Объект, принадлежащий определенно­му классу, часто называют экземпляром этого класса. Класс можно воспринимать как абстракцию, а объект — как конкрет­ное проявление этой абстракции. Сравним класс и объект.
– Класс можно идентифицировать по имени, понятному человеку, и это имя уникально в определенном контексте (например, «кредитная карта» или «банковский счет»). Имя объ-
67
екта, если оно задано в понятной человеку форме, может вклю­чать в себя имя класса, которому принадлежит объект.
– Класс в отличие от объекта не имеет состояния. Состоя­ние объекта определяется значениями его атрибутов. И именно в объекте эти значения определены. Но список атрибутов, их име­на и тип их значений определяются для класса.
Класс определяет поведение в терминах операций, а не методов. Операция представляет собой службу, которая может быть запрошена объектом для изменения поведения. Метод яв­ляется реализацией этой службы. Каждой операции в данном классе соответствует, как минимум, один метод объекта, при­надлежащего этому классу. В языке UML класс представляется прямоугольником, состоящим из трех секций (см. рис. 2.4).
Класс
Атрибуты
Операции
Рис. 2.4. Обозначение классов в UML
Верхняя секция содержит имя класса, средняя — его атри­буты, а нижняя — операции. Но иногда можно использовать изображение класса без операций или атрибутов, или даже толь­ко имя класса без остальных секций.
Объект, принадлежащий определенному классу, часто называют экземпляром этого класса. Класс можно воспринимать как абстракцию, а объект — как конкретное проявление этой абстракции. Или, в терминах программирования, класс — тип данных, а объект — переменная (см. рис. 2.5).
В языке UML класс представляется прямоугольником, со­стоящим из трех секций. Обозначения объектов в языке UML совпадают с обозначением классов. Но существует три отличия:
– Имя объекта (верхняя секция прямоугольника) обяза­тельно содержит имя собственно имя объекта и через двоеточие указывается имя класса, которому принадлежит объект. Причем имя самого объекта может отсутствовать, но не имя класса.
68
– Содержимое верхней секции для объектов подчеркива­ется.
– Для каждого атрибута каждого объекта указывается его конкретное значение.
Рис. 2.5. Пример класса и объекта этого класса
Диаграммы классов
Диаграммы классов — основной способ отображения структуры разрабатываемой системы. На них отображаются классы и ассоциации (связи) между ними в виде соединяющей их линии. К ассоциации допускается добавлять различные дета­ли.
– Ассоциация может иметь имя, указывающее на природу отношения.
– Ассоциация может отражать роли класса при его взаи­модействии с другими классами. Из рисунка 2.6 видно, что роли, как правило, указываются попарно. Класс может играть одну и ту же роль или различные роли в различных ассоциациях.
– В обозначении ассоциации можно указывать кратность, то есть количество объектов каждого класса, которое может участвовать в ассоциации. Выражения, описывающие кратность, могут принимать такие формы:
• фиксированное значение (1 или 3 и т. д.);
• символ *, обозначающий «множество» объектов;
• диапазон значений (например, 0…1 или 3...*);
• набор значений (например, 1, 3, 5, 7).
На рис. 2.6 представлен фрагмент диаграммы классов ин­тернет-магазина, из которой ясно, что «клиент» и «счет» должны быть связанными объектами, так как только покупатель может разместить заказ.
69
*
Рис. 2.6. Пример диаграммы классов с использованием кратности
Существуют специальные типы ассоциаций, которые ха­рактеризуют отношения.
1. Целое — часть. Линия в этом случае заканчивается по-
лым ромбом с того конца, который примыкает к классу — целое.
2. Родитель — потомок. Линия в этом случае заканчивает-
ся полым треугольником, направленным на класс-родитель.
Пример изображения этих ассоциаций показан на рис. 2.7.
Рис. 2.7. Специальные типы ассоциаций
Диаграммы объектов
Они отличаются от диаграммы классов только обозначе­нием самих объектов. Следует помнить, что уровни детализации на диаграмме могут быть произвольными. Вплоть до того, что указано может быть только имя класса.
И по мере прояснения проекта впоследствии диаграмма уточняется, в нее добавляются атрибуты, методы (не обязатель-
70
но сразу полный набор). Но если атрибут присутствует в диа­грамме объекта, то надо указать и его значение. Пример такой диаграммы приведен на рис. 2.8.
Рис. 2.8. Диаграмма объектов
2.4.2. Диаграммы прецедентов
Для иллюстрации требований к ИС используются диа­граммы прецедентов. Одним из ключевых аспектов UML явля­ется управление процессом разработки на основе прецедентов. Модель прецедентов, позволяет определить границы системы и служит основой для всей остальной разработки. Основные поня­тия этой диаграммы прецеденты и исполнители.
Исполнитель изображается в виде фигурки человека (рис. 2.9.) с кратким описательным именем и представляет один из двух аспектов:
– роль, которую пользователь играет по отношению к си­стеме;
– сущность (например, другая система или база данных) за пределами системы.
Рис. 2.9. Изображение исполнителей и прецедентов
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]