Разработка объектно-ориентированной модели информационной системы учебной библиотеки

Автор работы: Пользователь скрыл имя, 13 Июля 2014 в 19:42, курсовая работа

Краткое описание

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

Содержание

Введение
1 Краткая характеристика предметной области
1.1 Общая характеристика учебной библиотеки как объекта хозяйственной деятельности
1.2 Обоснование актуальности разработки объектно-ориентированной модели информационной системы для учебной библиотеки
1.3 Формулировка задач проектирования
2 Создание диаграммы вариантов использования
3 Создание диаграммы последовательности
4 Создание кооперативной диаграммы
5 Создание диаграммы классов
6 Добавление деталей к описаниям операций и определение атрибутов классов. Добавление связей между классами
7 Создание диаграммы состояний и диаграммы компонентов
7.1 Создание диаграммы состояний
7.2 Создание диаграммы компонентов
8 Генерация программного кода С
Заключение
Библиографический список

Прикрепленные файлы: 1 файл

Документ Microsoft Office Word (2).docx

— 123.20 Кб (Скачать документ)

3)  Ввела имя новой диаграммы - Main (Главная).

4)  Дважды щелкнула мышью на этой диаграмме, чтобы открыть ее.

5)  Перетащила на нее из браузера класс ins_book.

Повторила пункты 1-4 для пакета Entities.

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

 

 

 

 

 

 

 

 

 

 

 

 

6 Добавление деталей  к описаниям операций и определение  атрибутов классов. Добавление связей  между классами

Этапы выполнения:

Настройка:

1)  В меню модели выбрала пункт Tools > Options.

2)  Перешла на вкладку Diagram.

3)  Убедилась, что переключатель Show Visibility помечен.

4)  Убедилась, что переключатель Show Stereotypes помечен.

5)  Убедилась, что переключатель Show Operation Signatures помечен.

6)  Убедилась, что переключатели Show All Attributes и Show All Operations помечены.

7)  Убедилась, что переключатели Suppress Attributes и Suppress Operations не помечены.

8)  Перешла на вкладку Notation.17

9)  Убедилась, что переключатель Visibility as Icons не помечен.

Добавление нового класса:

1)  Нашла в браузере диаграмму Классов варианта использования "ввод новой книги".

2)  Щелкнула на ней дважды, чтобы ее открыть.

3)  Нажала кнопку Class панели инструментов.

4)  Щелкнула мышью внутри диаграммы, чтобы поместить там новый класс.

5)  Назвала его Ekzemplar (Экземпляр).

6)  Назначила этому классу стереотип Entity.

7)  В браузере перетащила класс в пакет Entities.

Добавление атрибутов:

1)  Щелкнула правой кнопкой мыши на классе n_izd (номер издания).

2)  В открывшемся меню выбрала пункт New Attribute (Создать атрибут).

3)  Ввела новый атрибут n_izd: Integer (номер издания). Нажала клавишу Enter.

4)  Ввела следующий атрибут kol_ekz: integer (количество экземпляров).

5)  Повторила этапы 3 и 5, добавив атрибуты Avtor_naz (автор и название книги), Izdat (издательство), God_izd (год издания), Data_postup (дата поступлния), Kol_str (количество страниц), Otdel (отдел), Znak_avtora (знак автора), Cena (цена), Ot_kogo (на чьи средства приобретена книга).

6)  Щелкнула правой кнопкой мыши на классе ekzemplar (экземпляр).

7)  В открывшемся меню выбрала пункт New Attribute (Создать атрибут).

8)  Ввела новый атрибут n_inventar: Integer (инвентарный номер). Нажала клавишу Enter.

9)  Ввела следующий атрибут data_spis: date (дата списания).

10)      Повторила этапы 9 и 11, добавив атрибуты N_izd (номер издания), Prichina (причина списания), N_ab (номер абонента), Data_vydachi (дата выдачи), N_akta (номер акта списания).

Добавление операций к классу ekzemplar:

1)  Щелкнула правой кнопкой мыши на классе ekzemplar.

2)  В открывшемся меню выбрала пункт New Operation (Создать операцию).

3)  Ввела новую операцию Create. Нажала клавишу Enter.

4)  Ввела следующую операцию SetInfo. Нажала клавишу Enter.

5)  Ввела следующую операцию GetInfo. Нажала клавишу Enter.

Подробное описание операций с помощью диаграммы Классов:

1)  Щелкнула мышью на классе number_izd, выделив его таким способом.

2)  Щелкнула на этом классе еще один раз, чтобы переместить курсор внутрь.

3)  Отредактировала операцию Create(), чтобы она выглядела следующим образом: Create() : Boolean

4)  Отредактировала операцию SetInfo(), чтобы она выглядела следующим образом: SetInfo(n_izd :Integer, Avtor_naz: string, Izdat: string, God_izd: string, Data_postup: date, Kol_ekz: integer, Kol_str: string, Otdel: string, Znak_avtora: string, Cena: byte, Ot_kogo: string) : Boolean

5)  Отредактировала операцию GetInfo(), чтобы она выглядела следующим образом: GetInfo() : String.

6)  Повторила соответствующие действия с остальными операциями.

Добавление связей связи к классам, принимающим участие в варианте использования "Ввод новой книги":

Этапы выполнения:

Настройка:

1)  Нашла в браузере диаграмму Классов "Ввод новой книги"

2)  Дважды щелкнула на ней, чтобы открыть ее.

3)  Проверила, имеется ли на панели инструментов диаграммы кнопка Unidirectional Association.

Добавление ассоциаций:

1)  Нажала кнопку панели инструментов Unidirectional Association.

2)  Нарисовала ассоциацию от класса воод книги (ins_book) к классу номер издания (n_izd).

3)  Повторила этапы 1 и 2, создав еще ассоциации: от класса n_izd к классу экземпляр (ekzemplar)

4)  Щелкнула правой кнопкой мыши на однонаправленной ассоциации между классами ins_book и number_izd, со стороны класса ins_book.

4)  В открывшемся меню выбрала пункт Multiplicity > Zero or One.

5)  Щелкнула правой кнопкой мыши на другом конце однонаправленной ассоциации.

6)  В открывшемся меню выбрала пункт Multiplicity > Zero or One.

Повторила этапы 4 - 7, добавив на диаграмму значения множественности для остальных ассоциаций.

Вывод: Система состоит из большого количества классов и объектов. Ее поведение обеспечивается взаимодействием объектов. Два типа отношений, которые можно выделить на этапе анализа, - это ассоциация и агрегация.

В результате выполнения этапов были добавлены атрибуты и операции к классам диаграммы Классов "ввод новой книги". Для атрибутов и операций использованы специфические для языка особенности.

 

 

 

 

 

 

7 Создание диаграммы  состояний и диаграммы компонентов

7.1 Создание диаграммы  состояний

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

На диаграмме имеются два специальных состояния - начальное (start) и конечное (stop). Начальное состояние выделено черной точкой, оно соответствует состоянию объекта, когда он только что был создан. Конечное состояние обозначается черной точкой в белом кружке, оно соответствует состоянию объекта непосредственно перед его уничтожением. На диаграмме состояний может быть одно и только одно начальное состояние.

Для того чтобы построить диаграмму состояний, ее вначале необходимо создать и активизировать.

Создание диаграммы состояний: нашла в браузере класс ekzemplar. Щелкнула на классе правой кнопкой мыши и в открывшемся меню указала пункт New > Statechart Diagram.

Добавление начального и конечного состояний:

1)  На панели инструментов нажала кнопку Start State (Начальное состояние). Поместила это состояние на диаграмму.

2)  На панели инструментов нажала кнопку End State (Конечное состояние). Поместила это состояние на диаграмму.

Добавление суперсостояния: на панели инструментов нажала кнопку State (Состояние). Поместила это состояние на диаграмму, назвала его Initialization (Инициализация). Поместила еще одно суперсостояние и назвала его Filled (Выполнен).

Подробное описание состояний:

1)  Дважды щелкнула на состоянии Initialization (Инициализация).

2)  Щелкнула правой кнопкой мыши на окне Actions (Действия).

3)  В открывшемся меню выберала пункт Insert (Вставить).

4)  Дважды щелкнула мышью на новом действии.

5)  Назвала его Store Come Date (Сохранить дату поступления).

6)  Убедилась, что в окне When (Когда) указан пункт On Entry (На входе).

7)  Повторила этапы 3-6, добавив следующие действия: Collect Info (Собрать информацию из накладной и из книги), в окне When указала пункт Do. Add Items (Добавить к екземпляру новые графы), в окне When указала Do.

8)  Нажала на кнопки ОК два раза, чтобы закрыть спецификацию.

9)  Дважды щелкнула на состоянии Filled (Выполнен).

10)      Повторила этапы 2 - 7, добавив действие Print kat kart (напечатать каталожную карточку), указала пункт Do.

Добавление переходов:

1)  На панели инструментов нажала кнопку Transition (Переход). Щелкнула мышью на начальном состоянии. Провела линию перехода к состоянию Initialization (Инициализация).

2)  Повторила те же действия, создав следующие переходы: от состояния Initialization (Инициализация) к состоянию Filled (Выполнен).

3)  От состояния Filled (Выполнен) к конечному состоянию.

Подробное описание переходов:

1)  Дважды щелкнула на переходе от состояния Initialization (Инициализация) к состоянию Filled (Выполнен), открыв окно его спецификации.

2)  В поле Event (Событие) ввела фразу Add Item (Добавить к заказу новую позицию).

3)  Перешла на вкладку Detail (Подробно). В поле Condition (Условие) ввела No unfilled items remaining (Не осталось незаполненных позиций).

Результат выполнения этапов по созданию диаграммы состояний представлен на рисунке 8.

Рисунок 8. Диаграмма состояний

7.2 Создание диаграммы  компонентов

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

Этапы выполнения создания диаграммы компонентов:

1)         Создание пакетов компонентов: щелкнула правой кнопкой мыши на представлении компонентов в браузере. В открывшемся меню выбрала пункт New > Package (Создать > пакет). Назвала этот пакет Entities (Сущности). Так же создала пакет Boundaries (Границы).

2)         Добавление пакетов на Главную диаграмму Компонентов: открыла Главную диаграмму Компонентов, дважды щелкнув на ней. Перетащила пакеты Entities и Boundary из браузера на Главную диаграмму.

3)         Рисование зависимостей между пакетами: на панели инструментов нажала кнопку Dependency (Зависимость). Щелкнула мышью на упаковке Boundaries Главной диаграммы Компонентов. Провела линию зависимости до упаковки Entities. Результат добавления пакетов и рисования зависимостей между пакетами на главной диаграмме пакетов представлен на рисунке 9.

Рисунок 9. Главная диаграмма компонентов системы

4)  Добавление компонентов к пакетам и рисование зависимостей: дважды щелкнула мышью на пакете Entities Главной диаграммы Компонентов, открыв Главную диаграмму Компонентов этого пакета. На панели инструментов нажала кнопку Package Specification (Спецификация пакета). Поместила спецификацию пакета на диаграмму. Ввела имя спецификации пакета number_izd. Так же добавила спецификацию пакета ekzemplar. На панели инструментов нажала кнопку Package Body (Тело пакета). Поместила его на диаграмму. Ввела имя тела пакета number_izd. Так же добавила тело пакета ekzemplar. На панели инструментов нажала кнопку Dependency (Зависимость). Щелкнула мышью на теле пакета number_izd. Провела линию зависимости от него к спецификации пакета number_izd. Так же добавила линию зависимости между телом пакета ekzemplar и спецификацией пакета ekzemplar. Результат добавления компонентов к пакету Entities представлен на рисунке 10.

Рисунок 10. Диаграмма Компонентов пакета Entities

С помощью описанного метода создала следующие компоненты и зависимости для пакета Boundaries: Спецификацию пакета ins_book тело пакета ins_book. Результат добавления компонентов к пакету Boundaries представлен на рисунке 11.

Рисунок 11. Диаграмма Компонентов пакета Boundaries

5)  Создание диаграммы Компонентов системы: щелкнула правой кнопкой мыши на представлении Компонентов в браузере. В открывшемся меню выбрала пункт New > Component Diagram. Назвала новую диаграмму System. Дважды щелкните на этой диаграмме.

6)  Размещение компонентов на диаграмме Компонентов системы: Развернула в браузере пакет компонентов Entities, чтобы открыть его. Щелкнула мышью на спецификации пакета number_izd в пакете компонентов Entities. Перетащила эту спецификацию на диаграмму. Так же поместила на диаграмму спецификацию пакета ekzemplar. С помощью этого метода поместила на диаграмму из пакета компонентов Boundaries спецификацию пакета ins_book. На панели инструментов нажала кнопку Task Specification (Спецификация задачи). Поместила спецификацию задачи на диаграмму и назовите ее ins_Exe.

7)  Добавление оставшихся зависимостей на диаграмму Компонентов системы: уже существующие зависимости автоматически показаны на диаграмме Компонентов системы после добавления туда соответствующих компонентов. Затем добавила остальные зависимости: на панели инструментов нажала кнопку Dependency (Зависимость). Щелкнула на спецификации пакета ins_book и провела линию зависимости к спецификации пакета number_izd. От спецификации задачи ins_exe к спецификации пакета ins_book.

8)  Соотнесение классов с компонентами: в Логическом представлении браузера нашла класс number_izd пакета Entities. Перетащила этот класс на спецификацию пакета компонента number_izd в представлении Компонентов браузера. В результате класс number_izd будет соотнесен со спецификацией пакета компонента number_izd. Перетащила класс number_izd на тело пакета компонента number_izd в представлении Компонентов браузера. В результате класс number_izd будет соотнесен с телом пакета компонента number_izd. Так же соотнесла с классами следующие компоненты: класс ekzemplar со спецификацией пакета ekzemplar; класс ekzemplar с телом пакета ekzemplar; класс ins_book со спецификацией пакета ins_book; класс ins_book с телом пакета ins_book.

Результат создания диаграммы компонентов системы представлен на рисунке 12.

Рисунок 12. Диаграмма Компонентов системы

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8 Генерация программного  кода С++

В предыдущих разделах была создана модель для системы учебной библиотеки (library).Теперь сгенерируем программный код C++ для этой системы. При этом воспользуемся диаграммой Компонентов системы, представленной на рисунке 12.

Этапы выполнения:

1)  Ввод тел пакетов на диаграмму Компонентов системы: открыла диаграмму Компонентов системы. Выбрала в браузере Entities: тело пакета number_izd. «Перетащила» тело пакета number_izd на диаграмму Компонентов системы.

2)  Повторила теже действия для следующих компонентов: Entities: тело пакета ekzemplar. Boundaries: тело пакета ins_book.

Результат выполнения этапов 1,2 представлен на рисунке 13.

Рисунок 13. Диаграмма компонентов после ввода тел пакетов на диаграмму

Установка языка C++:

1)         Открыла спецификацию компонента number_izd (спецификацию пакета) в пакете компонентов Entities.

2)   Выбрала в качестве языка C++.

3)   Повторила этапы. 1 и 2 для следующих компонентов: Entities: тело пакета ekzemplar. Boundaries: спецификация пакета ins_book.

Информация о работе Разработка объектно-ориентированной модели информационной системы учебной библиотеки