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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Ставропольский технологический институт сервиса

(филиал)

Южно – Российского государственного университета экономики и сервиса



Кафедра

Работа допущена к защите

_________________________

(подпись, дата)



КУРСОВАЯ РАБОТА

тема______________________________________________________________

по дисциплине_____________________________________________________

Разработал _____________________________________________________

(подпись) (инициалы, фамилия)

группа___________________

	ОЦЕНКА

Руководитель_____________________________________________________

(подпись, ученая степень, звание) (инициалы, фамилия)

Члены комиссии

______________________________________________________________

(подпись, ученая степень, звание) (инициалы, фамилия)

____________________________ __________________

	 (подпись, ученая степень, звание) (инициалы, фамилия)







Ставрополь_____


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Ставропольский технологический институт сервиса (филиал)

Южно – Российского государственного университета экономики и сервиса



Факультет

Кафедра 



	ЗАДАНИЕ



на курсовую работу по дисциплине

для студента (ки) «____» курса_____________группы

_____________________________________________________________

(фамилия, имя, отчество)

Тема__________________________________________________________________________________________________________________________________________________________________________________________________

Срок выполнения

Исходные данные и основные эксплуатационные требования______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


ОГЛАВЛЕНИЕ



Введение

1 Краткая характеристика предметной области

1.1 Общая характеристика учебной библиотеки как объекта хозяйственной деятельности

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

1.3 Формулировка задач проектирования

2 Создание диаграммы вариантов использования

3 Создание диаграммы последовательности

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

5 Создание диаграммы классов

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

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

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

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

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

Заключение

Библиографический список

Приложение А

Приложение Б

Приложение В

Приложение Г

Приложение Д

Приложение Е


Введение



Цель курсовой работы является закрепление теоретического материала дисциплины «Проектирование информационных систем», а также приобретение навыков практического объектно-ориентированного проектирования информационных систем в среде Rational Rose.

Rational Rose – популярное средство визуального моделирования объектно-ориентированных информационных систем компании Rational Software Corp. Работа продукта основана на универсальном языке моделирования UML (Universal Modeling Language). Благодаря уникальному языку моделирования, Rational Rose способен решать практически любые задачи в проектировании информационных систем: от анализа бизнес процессов до кодогенерации на определенном языке программирования. Только Rational Rose позволяет разрабатывать как высокоуровневые, так и низкоуровневые модели, осуществляя тем самым либо абстрактное проектирование, либо логическое. Rational Rose имеет весь необходимый набор визуальных средств проектирования и помогает решать проблемы с кодогенерацией на определенном языке программирования. Rational Rose осуществляет такие подходы, как прямое и обратное проектирование, а так же Round Trip Engineering [1].

Результатом выполнения комплекса научных, проектных, технических работ и организационных мероприятий по внедрению во все виды библиотечной деятельности современных информационных технологий, основанных на использовании средств вычислительной техники и связи является создание автоматизированной библиотечно-информационной системы (АБИС), библиографического банка данных или электронной библиотеки (ЭБ). На рабочие места сотрудников библиотеки устанавливаются компьютеры, т.е. создаются автоматизированные рабочие места библиотекарей (АРМ библиотекаря).

Основные цели автоматизации библиотеки:

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

		создание более комфортных условий работы пользователей и персонала библиотеки;

		повышение доступности и сохранности фондов;

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

		Автоматизация технологических процессов в библиотеке призвана обеспечить следующие возможности:

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

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

		автоматизированный учет и ведение статистики по всем процессам.

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


1. Краткая характеристика предметной области



1.1 Общая характеристика учебной библиотеки как объекта хозяйственной деятельности



Библиотечный фонд – это совокупность имеющихся в библиотеке произведений печати и других материалов, которые предоставляются на тех или иных условиях в пользование читателей.

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

Учет библиотечного фонда – это прием поступивших в библиотеку изданий, запись прибывших и исключение по тем или иным причинам непригодных для читателей изданий в документах библиотеки, которые дают точные сведения о наличном составе фонда и помогают обеспечить его сохранность.

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

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

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

Каждой книге, подлежащей индивидуальному учету, присваивается один инвентарный номер. Если книга выбывает из библиотеки, данный инвентарный номер никогда никакому другому изданию не дается.

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

Причин, вызывающих исключение литературы из библиотеки, несколько: часть книг, прослуживший определенный срок, изнашивается, и их исключают по ветхости; иногда читатели не возвращают взятые в библиотеке книги; так же книга может быть утеряна читателем; некоторые книги устаревают по своему содержанию; по причине не соответствия профилю; или выбывают из библиотеке по «неизвестным» причинам [2].

В конце каждого месяца библиотекарь составляет «Статистический отчет» (приложение А), в котором указывается поступившая за месяц литература, а также списанная, состояние книжного фонда на прошедший месяц и на следующий.

По запросу заместителя директора по учебно-воспитательной работе библиотекарь так же составляет «Отчет о книгообеспеченности по предметам» (приложение Б). Отчет должен содержать сведения о количестве литературы по предметам на одного студента.

Для удобства работы читателя с библиотечным фондом библиотекарь 11 лицея составляет каталожные карточки (приложение В).

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


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



Тенденции развития современных информационных технологий приводят к постоянному возрастанию сложности информационных систем (ИС), создаваемых в различных областях деятельности человека. Под термином информационные системы мы будем понимать cреду, составляющими элементами которой являются компьютеры, компьютерные сети, программные продукты, базы данных, люди, различного рода технические и программные средства связи и т.д. Основная цель информационной системы - организация хранения, обработки и передачи информации. Информационная система представляет собой человеко-компьютерную систему обработки информации.

Проектирование информационной системы учебной библиотеки характеризуется следующими особенностями:

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

		отсутствие прямых аналогов, и поэтому ограниченные возможности использования типовых проектных решений; 

		временная протяженность проекта, обусловленная, с одной стороны, ограниченными возможностями коллектива разработчиков, и, с другой стороны, масштабами организации-заказчика и различной степенью готовности отдельных ее подразделений к внедрению ИС [3].

Для успешной реализации проекта объект проектирования – информационная система, должен быть прежде всего адекватно описан: должны быть построены полные и непротиворечивые функциональные модели ИС. Накопленный к настоящему времени опыт показывает, что проектирование ИС - это логически сложная, трудоемкая и длительная по времени работа, требующая высокой квалификации участвующих в ней специалистов. Однако, до недавнего времени проектирование ИС выполнялось в основном на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ИС. В процессе создания и функционирования ИС потребности пользователей могут изменяться и/или уточняться, что еще более усложняет процесс проектирования таких систем. 

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

			способность поставить задачи и подготовить техническое задание; 

			сложность обнаружить ошибки в проектных решениях;

			затяжной цикл проектирования и проблема тестирования [3].



1.3 Формулировка задач проектирования



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

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

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

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

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

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

Построить диаграммы размещения.

Привести и описать порядок генерации программного кода на языке С++ для информационной системы учебной библиотеки.



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


2 Создание диаграммы вариантов использования



Этапы выполнения создания диаграммы вариантов использования и действующих лиц

			Дважды щелкнула на Главной диаграмме Вариантов Использования (Main) в браузере, чтобы открыть ее.

			С помощью кнопки Use Case (Вариант Использования) панели инструментов поместила на диаграмму новый вариант использования.

			Назвала этот новый вариант использования "ввод новой книги".

			Повторите этапы 2 и 3, чтобы поместить на диаграмму остальные варианты использования: напечатать каталожную карточку, ввод акта о списании, напечатать отчет о книгообеспеченности, напечатать статистический отчет, напечатать формуляр читателя, выдача книги, возврат книги, напечатать задолжников по группам, напечатать список литературы по предмету.

			С помощью кнопки Actor (Действующее лицо) панели инструментов поместила на диаграмму новое действующее лицо.

			Назвала его "Библиотекарь".

			Повторила шаги 5 и 6, поместив на диаграмму остальных действующих лиц: Читатели, зам.директора по УВР, преподаватели.

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

			С помощью кнопки Unidirectional Association (Однонаправленная ассоциация) панели инструментов нарисовала ассоциацию между действующим лицом Библиотекарь и вариантом использования "Ввод новой книги".

			Повторила этот этап, чтобы поместить на диаграмму остальные ассоциации.

		Добавление описания к вариантам использования:

			Выделила в браузере вариант использования "Ввод новой книги".

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

			С помощью окна документации ввела описания ко всем остальным вариантам использования:

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

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

Напечатать отчет о книгообеспеченности: По запросу заместителя директора по учебно-воспитательной работе библиотекарь так же составляет "Отчет о книгообеспеченности по предметам". Отчет должен содержать сведения о количестве литературы по предметам на одного студента.

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

Напечатать формуляр читателя: Формуляр читателя заполняет библиотекарь следующими сведениями: дата выдачи, номер инвентарный, отдел, автор и заглавие книги.

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

Возврат книги: При возврате книги библиотекарь ставит расписку о возврате.

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

Напечатать список литературы по предмету: Чтобы знать преподавателям и учащимся, какая литература имеется по тому или иному предмету библиотекарь составляет "Список литературы по предмету".

Добавление описания к действующему лицу:

			Выделила в браузере действующее лицо Библиотекарь.

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

			С помощью окна документации ввела описания к оставшимся действующим лицам:

Читатель: является абонентом библиотеки. Получает литературу на руки, которая ему необходима и которая имеется в наличии в библиотеки.

Зам.директора по УВР: Заместитель директора по учебно-воспитательной работе. Отчета о книгобеспеченности влияет на планирование работы библиотеки.

Преподаватели: Работники учебного заведения, среди них классные руководители.

Прикрепление файла к варианту использования:

			Для описания главного потока событий варианта использования "ввод новой книги" создала файл OrderFlow.doc, содержащий следующий текст:

			Библиотекарь выбирает пункт «Ввод новой книги» из имеющегося меню.

			Система выводит форму «Сведения о книге».

			Библиотекарь вводит дату поступления книг, цена одного экземпляра, на чьи средства приобретены, в каком количестве, автор, название, издательство, год издания, количество страниц, шифр книги, по какой дисциплине.

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

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

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

			Библиотекарь сохраняет сведения о новой книге.

			Система создает новый экземпляр и сохраняет его в базе данных.

			Щелкнула правой кнопкой мыши на варианте использования "ввод новой книги".

			В открывшемся меню выбрала пункт Open Specification (Открыть спецификацию).

			Перешла на вкладку файлов.

			Щелкнула правой кнопкой мыши на белом поле и из открывшегося меню выбрала пункт Insert File (Ввести файл).

			Указала файл OrderFlow.doc и нажала на кнопку Open (Открыть), чтобы прикрепить файл к варианту использования.

В результате выполнения этапов создания диаграммы вариантов использования и действующих лиц.

Вывод: Поведение разрабатываемой системы (то есть функциональность, обеспечиваемая системой) описывается с помощью функциональной модели, которая отображает системные прецеденты (use case), системное окружение (действующих лиц или актеров - actors) и связи между прецедентами и актерами (диаграммы прецедентов – use case diagrams). Основная задача модели прецедентов - представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы. 


3 Создание диаграммы последовательности



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

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

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

Настройка:

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

					Перешла на вкладку диаграмм.

					Контрольные переключатели Sequence Numbering, Collaboration Numbering и Focus of Control должны быть помечены.

					Нажала ОК, чтобы выйти из окна параметров.

				Создание диаграммы Последовательности:

					Щелкнула правой кнопкой мыши на Логическом представлении броузера.

					В открывшемся меню выбрала пункт New > Sequence Diagram.

					Назвала новую диаграмму "Ввод новой книги".

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

				Добавление на диаграмму действующего лица и объектов:

					Перетащила действующее лицо Библиотекарь с броузера на диаграмму.

					На панели инструментов нажала кнопку Object (Объект).

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

					Назвала объект "Форма ввода новой книги".

					Повторила этапы 3 и 4, чтобы поместить на диаграмму все остальные объекты: номер издания.

				Добавление сообщений на диаграмму

					На панели инструментов нажала кнопку Object Message (Сообщение объекта).

					Провела мышью от линии жизни актера Библиотекарь к линии жизни объекта Форма ввода новой книги.

					Выделив сообщение, ввела его имя Открыть форму.

					Повторила этапы 2 и 3, чтобы поместить на диаграмму дополнительные сообщения:

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

Сохранить заказ (между библиотекарем и объектом форма новой книги).

Создать пустой номер издания (между объектом форма новой книги и объектом номер издания).

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

Сохранить заказ (между объектом форма новой книги и объектом номер издания).

Соотнесение объектов с классами:

			Щелкнула правой кнопкой мыши на объекте форма ввода новой книги.

			В открывшемся меню выбрала пункт Open Specification (Открыть спецификацию).

			В раскрывающемся списке классов выбрала пункт <New> (Создать). Появилось окно спецификации классов.

			В поле имени ввела имя Ввод.

			Щелкнула на кнопке ОК. Вернулась к окну спецификации объекта.

			В списке классов выбрала теперь класс Ввод.

			Щелкнула на кнопке ОК, чтобы вернуться к диаграмме. Теперь объект называется Форма ввода новой книги: ввод.

			Для соотнесения остальных объектов с классами повторила этапы с 1 по 7:

Класс Номер издание соотнесла с объектом Номер издания.

Соотнесение сообщений с операциями:

		Щелкнула правой кнопкой на сообщении 1, открыть форму ввода

		В открывшемся меню выбрала пункт <new operation> (создать операцию). Появилось окно спецификации операции.

		В поле имени ввела имя операции – Open (Открыть).

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

		Повторила пункты с 1 по 6, пока не соотнесла с операциями все остальные сообщения:

	Сообщение 2: Ввести сведения из накладной и из книги – с операцией SubmitInfo().

	Сообщение 3: Сохранить сведения из накладной и из книги – с операцией Save().

	Сообщение 4: Создать пустой номер издания – с операцией Create().

	Сообщение 5: Задать номер издания – с операцией SetInfo().

	Сообщение 6: Сохранить номер издания – с операцией SaveOrder().

	Сообщение 7: Сохранить информацию об издании в базе данных - с операцией Commit().

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


4 Создание Кооперативной диаграммы



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

Для создания Кооперативной диаграммы нажала клавишу F5.





Рисунок 3 Диаграмма Сотрудничества



Вывод: Как видно из рисунка 3, здесь представлена вся та информация, которая была и на диаграмме последовательности, но кооперативная диаграмма по-другому описывает поток событий. Из нее легче понять связи между объектами, однако труднее уяснить последовательность событий.

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

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


5 Создание диаграммы классов



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

Настройка:

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

		Перешла на вкладку диаграмм.

		Убедилась, что помечен контрольный переключатель Show Stereotypes (Показать стереотипы).

		Убедилась, что помечены контрольные переключатели Show All Attributes (Показать все атрибуты) и Show All Operations (Показать все операции).

		Убедилась, что не помечены переключатели Suppress Attributes (Подавить вывод атрибутов) и Suppress Operations (Подавить вывод операций).

	Создание пакетов:

		Щелкнула правой кнопкой мыши на Логическом представлении браузера.

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

		Назвала новый пакет Entities (Сущности).

		Повторила этапы с первого по третий, создав пакет Boundaries (границы).

	Создание Главной диаграммы Классов:

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

		Перетащила пакет Entities из браузера на диаграмму.

		Перетащила пакет Boundaries из браузера на диаграмму.

	Главная диаграмма Классов представлена на рисунке 4.



Рисунок 4. Главная диаграмма Классов системы учебной библиотеки.



Создание диаграммы Классов для сценария "ввод новой книги" со всеми классами.

			Щелкнула правой кнопкой мыши на Логическом представлении броузера.

			В открывшемся меню выбрала пункт New > Class Diagram (Создать > Диаграмму Классов).

			Назвала новую диаграмму Классов add New book (Введение новой книги).

			Щелкнула в браузере на этой диаграмме дважды, чтобы открыть ее.

			Перетащила из браузера все классы (ins_book, number_izd).

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





Рисунок 5 Диаграмма Классов add New book.



Добавление стереотипов к классам:

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

			В открывшемся меню выбрала пункт Open Specification (Открыть спецификацию).

			В поле стереотипа выбрала слово Boundary. Нажала на кнопку ОК.

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

			В открывшемся меню выбрала пункт Open Specification (Открыть спецификацию).

			В раскрывающемся списке в поле стереотипов указала Entity. Нажала на кнопку ОК.

Измененная диаграмма Классов представлена на рисунке 6.







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



Объединение классов в пакеты:

			Перетащила в браузере класс ins_book на пакет Boundaries.

			Перетащила класс number_izd на пакет Entities.

		Добавление диаграмм Классов к каждому пакету:

			Щелкнула правой кнопкой на пакете Boundaries браузера.

			В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмму Классов).

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

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

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

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

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


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



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

Настройка:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

			Отредактировала операцию 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

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

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

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

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

Настройка:

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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



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



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

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

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

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

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

	

	

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

			Добавление компонентов к пакетам и рисование зависимостей: дважды щелкнула мышью на пакете 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



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

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

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

			Соотнесение классов с компонентами: в Логическом представлении браузера нашла класс 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.

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

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

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

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





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



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

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

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

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

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

Открыла диаграмму Компонентов системы.

Выбрала все объекты на диаграмме Компонентов системы.

Выбрала Tools > C++ > Code Generation в меню.


ЗАКЛЮЧЕНИЕ



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

В процессе проектирования модели ИС были исследованы требования, предъявляемые к конечному продукту; взаимодействие с внешней средой учебной библиотеки, такие как: преподаватели, читатели, бухгалтерия, а так же входные и выходные параметры: накладные, сведения из книги, а так же различные отчеты.

Для решения данной задачи было использовано CASE – средство RationalRose.

При проектировании модели ИС учебной библиотеки были созданы: 

			Диаграмма вариантов использования

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

			Кооперативная диаграмма

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

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

В результате проектирования информационной системы был сгенерирован код на языке программирования С++.


Библиографический список



1 http://www.interface.ru/rational/rosemain.htm

2 Воронько К.Л. Организация библиотечных фондов и каталогов. Учебник для библ. техникумов и библ. отд-ний культ.-просвет. училищ. М., «Книга», 1972. – 397 с.: ил.

3 А.М. Вендров “CASE-технологии. Современные методы и средства проектирования информационных систем”, cтатья c сайта http://www.citforum.ru

4 Маклаков С.В. Bpwin и Erwin. CASE-средства разработки информационных систем. М.: ДИАЛОГ-МИФИ, 2000 – 256 с.

5 Уэнди Боггс, Майкл Боггс. UML и Rational Rose. Лори, 2004 – 510 с.


Приложение А



Пример статистического отчета



Статистический отчет по библиотеке

Январь 2008г.

Наименование

Остаток I – 2008 

Приход

Расход

Остаток II – 2008 



Кол-во, шт.

Сумма, руб.

Кол-во, шт.

Сумма, руб.

Кол-во, шт.

Сумма, руб.

Кол-во, шт.

Сумма, руб.

Книжный фонд



















Отчет сдал: ________

Отчет принял: ________


Приложение Б



Пример отчета о книгообеспеченности по предметам



Отчет о книгообеспеченности по предметам

Предмет

Количество, шт.

Количество учеников

Книгообеспеченность

Математика

800

650

1,23 (800/650)

Русский язык

750

650

1,15 (750/650)




Приложение В



Пример каталожная карточка



Д27 

Дейт К. Руководство по реляционной СУБД DB2 / Пер. с англ. и предисл. М.Р.Когаловского. – М.: Финансы и статистика, 1988. – 320 с.: ил. 

ISBN 5-279-00063-9 

Книга американского специалиста в области реляционных баз данных К.Дейта, автора популярной в СССР монографии "Введение в системы баз данных" (М.: Наука, 1981), представляет собой руководство по перспективной СУБД фирмы ИБМ DB2, сочетающей возможности широко известной системы IMS/VS и реляционной СУБД. Для специалистов по программному обеспечению информационных систем и студентов вузов. 

ББК 32.973




Приложение Г



Пример списка задолжников по группам



Список задолжников на _________группы ______



Фамилия И.О.

Книги, имеющиеся на руках








Приложение Д



Пример списка литературы по предмету



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

Название

Автор

Количество, шт.










Приложение Е



Пример формуляр читателя



Формуляр читателя

Дата рождения_________________Адрес_______________

Группа_______________

Дата выдачи

Инв.номер

Отдел

Автор и заглавие книги

Расписка читателя в получении

Расписка библиотекаря о возврате