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

книги / Проектирование автоматизированных информационных систем на основе объектно-ориентированного подхода

..pdf
Скачиваний:
0
Добавлен:
12.11.2023
Размер:
10.56 Mб
Скачать

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение

высшего профессионального образования «Пермский государственный технический университет»

Р.А. Файзрахманов, А.В. Архипов

ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА

Утверждено Редакционно-издательским советом университета в качестве учебного пособия

Издательство Пермского государственного технического университета

2011

УДК 681.3.06

Ф17

Рецензенты:

д-р техн. наук, профессор Г.Г Куликов

(Уфимский государственный авиационный технический университет)

заслуженный деятель науки РФ, д-р экон. наук, профессор Н.И. Артемов

(Пермский государственный технический университет)

Файзрахманов, Р.А.

Ф17 Проектирование автоматизированных информационных сис­ тем на основе объектно ориентированного подхода: учеб, посо­ бие / Р.А. Файзрахманов, А.В. Архипов. - Пермь: Изд-во Перм. гос. техн. ун-та, 2011. - 223 с.

ISBN 978-5-398-00545-5

Приводится описание процесса проектирования информационных систем с использованием унифицированного языка моделирования UML. Даны прак­ тические примеры построения диаграмм UML с помощью CASE-средства Rational Rose.

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

Адресовано студентам, обучающимся по направлению «Информатика и вычислительная техника» и другим ИТ-направлениям, а также всем, кто начинает изучать вопросы применения CASE-средств для проектирования информационных систем на основе объектно ориентированного подхода.

 

УДК 681.3.06

ISBN 978-5-398-00545-5

О ГОУ ВПО

 

«Пермский государственный

 

технический университет», 2011

Введение

5

1. Значение моделирования

7

2. Концептуальная модель и структура U M L ............................

8

3. Постановка задачи для реализации в Rational Rose.............

11

4. Диаграмма прецедентов..............................................................

12

4.1. Теоретическая часть............................................................

12

4.2. Реализация в Rational R o se ...............................................

16

4.3. Подведение итогов..............................................................

26

4.4. Контрольные вопросы ........................................................

27

4.5. Контрольные задачи и упражнения................................

27

5. Диаграмма классов......................................................................

29

5.1. Теоретическая часть

29

5.2. Реализация в Rational R o se ...............................................

35

5.3. Подведение итогов..............................................................

47

5.4. Контрольные вопросы

47

5.5. Контрольные задачи и упражнения................................

48

6. Диаграмма объектов....................................................................

49

6.1. Теоретическая часть............................................................

49

6.2. Реализация в Rational R o se ...............................................

50

6.3. Подведение итогов..............................................................

50

6.4. Контрольные вопросы ........................................................

50

6.5. Контрольная задача............................................................

50

7. Диаграмма последовательностей

51

7.1. Теоретическая часть

51

7.2. Реализация в Rational R o se ...............................................

55

7.3. Подведение итогов..............................................................

61

7.4. Контрольные вопросы ........................................................

61

7.5. Контрольные задачи............................................................

61

8. Диаграмма сотрудничества........................................................

63

8.1. Теоретическая часть

63

8.2. Реализация в Rational R o se ...............................................

65

8.3. Подведение итогов..............................................................

69

8.4. Контрольные вопросы ........................................................

69

8.5. Контрольные задачи ...........................................................

70

9. Диаграмма состояний

71

9.1. Теоретическая часть

71

9.2. Реализация в Rational R ose ...............................................

81

9.3. Подведение итогов

83

9.4. Контрольные вопросы ........................................................

83

9.5. Контрольные задачи

84

10. Диаграмма деятельностей.......................................................

85

10.1. Теоретическая часть.........................................................

85

10.2. Реализация в Rational R ose.............................................

88

10.3. Подведение итогов..........................................................

91

10.4. Контрольные вопросы....................................................

91

10.5. Контрольные задачи.......................................................

92

11. Диаграмма компонентов.........................................................

93

11.1. Теоретическая часть........................................................

93

11.2. Реализация в Rational R ose.............................................

96

11.3. Подведение итогов..........................................................

97

11.4. Контрольные вопросы.....................................................

98

11.5. Контрольные задачи

98

12. Диаграмма развертывания......................................................

99

12.1. Теоретическая часть........................................................

99

12.2. Реализация в Rational R ose.............................................

100

12.3. Подведение итогов..........................................................

101

12.4. Контрольные вопросы.....................................................

101

12.5. Контрольная задача.........................................................

102

13. Генерация кода..........................................................................

103

13.1. Алгоритм получения исходного кода C++

103

13.2. Задания для самостоятельного выполнения

112

Заключение........................................................................................

113

Список литературы.........................................................................

114

Приложение 1. Использование «Rational Rose C++ Analyzer»

 

для обратного восстановления модели по исходному коду

115

Приложение 2. Лабораторная работа. Разработка программ­

 

ного обеспечения с использованием U M L .................................

121

Приложение 3. Модель работы предприятия оптовой

 

торговли. Разработка автоматизированной системы..............

137

Разработка автоматизированных информационных систем явля­ ется сложной, трудоемкой и длительной работой, требующей освое­ ния современных методов и средств проектирования, особенно на стадии подготовки специалистов по направлениям «Информатика и вычислительная техника» и «Информационные системы».

Существуют два основных подхода к проектированию информа­ ционных систем, отличающиеся критериями декомпозиции: функ­ ционально-модульный (структурный) и объектно ориентированный. Функционально-модульный подход основан на декомпозиции систе­ мы на автоматизируемые функции и установлении определенного порядка выполняемых действий. Объектно ориентированный подход основан на объектной декомпозиции с описанием поведения системы в терминах взаимодействующих во времени объектов.

В настоящее время для объектно ориентированного анализа и проектирования широко используется унифицированный язык мо­ делирования UML (Unified Modeling Language), разработанный груп­ пой ведущих компьютерных фирм мира OMG (Object Management Group), и фактически является стандартом по объектно ориентиро­ ванным технологиям, реализованным многими фирмами-произво- дителями программного обеспечения в рамках CASE-технологий, в том числе Rational Software (продукт Rational Rose).

Цель учебного пособия - показать значимость использования UML-нотации применительно к проектированию информационных систем и раскрыть основные приемы и аспекты визуального моде­ лирования.

В первой главе пособия (Значение моделирования) обсуждается роль моделирования в разработке качественного программного продукта.

Вторая глава (Концептуальная модель и структура UML) знако­ мит читателя с концептуальной моделью и структурой языка UML. Эта глава рассказывает об основных строительных блоках UML.

Третья глава (Постановка задачи) содержит постановку задачи для практической реализации.

Следующие главы содержат детальное описание девяти основных диаграмм UML. Каждая из этих глав поделена на пять разделов: теоре­ тическая часть, реализация в системе Rational Rose, подведение ито­ гов, контрольные вопросы и контрольные задачи. В теоретической

части рассматривается назначение и особенности построения той или иной диаграммы. Раздел «Реализация в Rational Rose» содержит прак­ тические примеры построения диаграмм UML с помощью системы Rational Rose. В разделе «Подведение итогов» приводится итоговое заключение и рекомендации по построению диаграммы UML. Кон­ трольные вопросы и задачи представляют собой эффективный инст­ румент для самопроверки. Вопросы затрагивают моменты, освещен­ ные в теоретической части главы, а задачи оформлены в виде тради­ ционных тестов или заданий на самостоятельное построение диаграм­ мы для описания конкретных примеров.

Тринадцатая глава (Ггнерация кода) содержит описания инстру­ ментов генерации исходного кода, которые предоставляет система Rational Rose.

Вприложении 1 (Использование «Rational Rose C++ Analyzer» для обратного восстановления модели по исходному коду) предлага­ ются пошаговые инструкции по восстановлению модели проекта по исходному программному коду.

Вприложении 2 (Лабораторная работа. Разработка программ­ ного обеспечения с использованием UML) приведен комплекс диа­ грамм, описывающих систему для формирования заданий для сту­ дентов и реализации процедуры тестирования, который может быть использован в качестве задания для самостоятельной работы.

Вприложении 3 (Модель работы предприятия оптовой торгов­ ли) на основе модели предприятия оптовой торговли описан процесс разработки информационной системы управления оптовым складом, включая генерацию кода, проектирование базы данных и создание приложений.

Учебное пособие обобщает опыт преподавания соответствующе­ го раздела дисциплин для студентов, обучающихся по направлению 230100 (552800) «Информатика и вычислительная техника». Оно может быть полезно также всем, кто начинает изучать вопросы при­ менения CASE-средств для проектирования информационных систем на основе объектно ориентированного подхода.

В руководстве [1] приведен пример, который, на наш взгляд, наи­ лучшим образом раскрывает причину неудач ряда проектов по созда­ нию программных систем.

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

Неудача проектов по разработке информационных систем связана именно с тем, что предпринимаются попытки с инструментом для ко­ нуры построить небоскреб. Разработка программного продукта - такой же процесс, как строительство дома. Чем сложнее разрабатываемая система, тем острее стоит проблема взаимодействия всех тех, кто так или иначе связан с этим проектом. Унифицированный язык моделиро­ вания UML (Unified Modeling Language) предоставляет разработчикам четкую нотацию, позволяющую отображать модели общепринятыми и понятными каждому члену проекта графическими элементами.

Делая акцент на написании строк исходного кода и даже на ис­ пользовании языков визуального программирования (Visual Basic, Delphi и др.), разработчик вряд ли сможет сколько-нибудь полно ох­ ватить проект в целом. Предварительное моделирование, в свою оче­ редь, позволяет проектировщику увидеть общую картину взаимодей­ ствий компонентов проекта без необходимости анализа особых свойств каждого компонента [4].

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

Для понимания UML необходимо усвоить его концептуальную модель, которая включает в себя три составные части: основные строительные блоки языка, правила их сочетания и некоторые общие для всего языка механизмы. Язык UML имеет сложную иерархиче­ скую структуру, представленную на рис. 2.1.

Язык UML

Сущности

Отношения

Диаграммы

 

-Зависимостей

-Прецедштов

-С труктурны е

— Ассоциаций

-Классов

 

-Классы

-Объектов

—Поведенческие

— Обобщений

-Интерфейсы

-Последовательностей

Взаимодействия

— Реализаций

—Кооперации

- Сотрудничества

Автоматы

-Прецеденты

Ь

— Активные классы

-Состояний

-Группирующ ие

 

L- Пакеты

-Компоненты

-Деятельностей

 

■—Узлы

-Аннотационные

- Когаюнентав

L- Примечания

-Развертывания

Рис. 2.1. Структура UML

Словарь языка UML содержит три строительных блока: сущно­ сти, отношения, диаграммы.

Сущности - это абстракции, являющиеся основными элемен­ тами модели.

Структурные сущности - это имена существительные в моделях на языке UML. Как правило, они представляют собой статические части модели, соответствующие концептуальным или физическим элементам системы.

Поведенческие сущности являются динамическими составляю­ щими модели UML. Это глаголы языка, они описывают поведение модели во времени и пространстве.

Группирующие сущности являются организующими частями мо­ дели UML. Это блоки, на которые можно разложить модель.

Аннотационные сущности - пояснительные части модели UML. Это комментарии для дополнительного описания, разъяснения или замечания к любому элементу модели.

Отношения связывают различные сущности.

Зависимость это семантическое отношение между двумя сущ­ ностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой.

Ассоциация — структурное отношение, описывающее совокуп­ ность связей; связь - это соединение между объектами. Разновидно­ стью ассоциации является агрегирование - структурное отношение между целым и его частями.

Обобщение — это отношение «специализация/обобщение», при котором объект специализированного элемента (потомок) может быть подставлен вместо объекта обобщенного элемента (родителя или предка).

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

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

Выделяют девять видов диаграмм:

-диаграммы прецедентов;

-диаграммы классов;

-диаграммы объектов;

-диаграммы последовательностей;

-диаграммы сотрудничества;

-диаграммы состояний;

-диаграммы деятельностей;

-диаграммы компонентов;

-диаграммы развертывания.

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

должна выполнять проектируемая система, не вдаваясь в подробно­

сти, как это реализуется.

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

на будущей системы.

Для иллюстрации конкретных примеров и отдельных частей слож­ ных систем дополнительно может быть построена диаграмма объектов.

После того как получено функционально ориентированное

иобъектно ориентированное представление системы, необходимо объединить их и получить спецификацию системы, которую уже можно выдавать программистам на реализацию [6]. А для этого не­ обходимо построить диаграмму взаимодействия для соответствую­ щих прецедентов.

UML специфицирует две диаграммы взаимодействия: диаграмма последовательностей и диаграмма сотрудничества. Какую диа­ грамму выбрать - определяется предпочтением конкретных руково­ дителей и разработчиков.

Следующим этапом разработки системы может быть построение динамической модели. Динамическая модель представлена двумя ви­ дами диаграмм: диаграммой состояний, которая отображает измене­ ние системы в течение времени, и диаграммой деятельностей, кото­ рая иллюстрирует логику и последовательность операций во времени.

На заключительном этапе проектирования информационной сис­ темы с помощью UML ведется разработка диаграмм компонентов

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

Соседние файлы в папке книги