Моделирование информационных систем с использованием языка UML
Особенности разработки информационных систем с использованием унифицированного языка моделирования UML. Основные этапы рационального унифицированного процесса разработки информационных систем с примерами и иллюстрациями. Реализация информационной системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 23.01.2014 |
Размер файла | 950,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Омский государственный институт сервиса
Моделирование информационных систем с использованием языка UML
Методические указания к выполнению курсовой работы
И.В. Червенчук
2008.
Содержание
- Введение
- 1. Общие требования к выполнению курсовой работы
- 2. Унифицированный язык моделирования UML
- 3. Описание предметной области
- 4. Разработка модели программной системы средствами UML
- 4.1 Разработка вида с точки зрения прецедентов
- 4.2 Разработка вида с точки зрения проектирования
- 4.3 Разработка профиля реляционной базы данных
- 5. Вопросы реализации информационной системы
- 6. Темы курсовых работ
- Библиографический список
Введение
В работе рассматриваются вопросы разработки информационных систем с использованием унифицированного языка моделирования UML, что является основой для выполнения курсовой работы по дисциплине "Информационные системы и процессы. Моделирование и управление". Прорабатываются основные этапы рационального унифицированного процесса разработки информационных систем, приводятся примеры и иллюстрации. Даны варианты заданий к выполнению курсовых работ.
Методические указания предназначены для студентов специальности "Прикладная информатика" и могут быть использованы при выполнении курсовой работы, подготовке к экзамену, а также в процессе самостоятельной работы.
1. Общие требования к выполнению курсовой работы
Курсовая работа по дисциплине "Информационные системы и процессы. Моделирование и управление" является заключительным этапом изучения данного курса и призвана закрепить на практике основные теоретические знания по моделированию информационных систем. Работа заключается в разработке модели некоторой информационной системы средствами унифицированного языка моделирования UML с последующей ее реализацией. В качестве типового варианта задания предлагается разработка информационно-справочной системы на основе базы данных, но по желанию студента по согласованию с преподавателем в качестве задания может быть предложена разработка WEB-приложения, тестовой системы или аппаратного устройства. При этом основным необходимым требованием является применение объектно-ориентированного подхода и построение UML-модели.
Типовое название курсовой работы выглядит как "Разработка информационно-справочной системы _название_ "
Рекомендуется следующая структура пояснительной записки:
Введение
1. Содержательный обзор предметной области. Основные требования к системе
2. Развернутая модель информационной системы
2.1 Вид с точки зрения прецедентов
2.2 Вид с точки зрения проектирования
2.3 Вид с точки зрения реализации
2.4 Вид с точки зрения процессов (при необходимости)
2.5 Вид с точки зрения развертывания (при необходимости)
3. Реализация информационной системы
Заключение
Приложение Листинг программы или головного модуля
Во введении можно указать на использование информационных технологий в различных сферах деятельности, включая сферу сервиса, преимуществах электронного учета, проблемах построения специализированных информационных систем и т.д.
Данные методические указания содержат подробные рекомендации к основным разделам пояснительной записки и примеры проектирования. Следует обратить внимание, что основным предметом данной курсовой работы является разработка UML-модели информационной системы, поэтому настоятельно рекомендуется UML-диаграммы приводить в основной части пояснительной записки, снабдив их подробными комментариями, а тексты программ выносить в приложение.
Вид с точки зрения процессов следует приводить при разработке многозадачных систем. Вид с точки зрения развертывания предполагает наличие распределенной информационной системы. Данные виды, и соответствующие им разделы пояснительной записки, являются не обязательными для выполнения данной курсовой работы, их использование предполагается при выполнении только определенных вариантов курсовой работы.
При освещении в записке вопросов реализации системы желательно обосновать выбор среды программирования, привести руководство пользователя. Обязательным элементом является включение в текст экранных форм (скрин-шортов) реализованной программы, поощряется использование средств обратного проектирования.
В заключении кратко подводятся основные итоги работы: разработана UML-модель системы, система реализована посредством такой-то среды программирования, что разработанная система позволяет, преимущества используемых подходов (на основе моделирования) к проектированию систем.
моделирование информационная система язык
Курсовая работа должна содержать 20-30 страниц печатного текста с иллюстрациями. В обязательном порядке должны быть приведены диаграммы прецедентов, классов, взаимодействия.
2. Унифицированный язык моделирования UML
Рациональная разработка информационной системы предполагает глубокую предварительную аналитическую проработку. Прежде всего, необходимо очертить круг задач, выполняемых разрабатываемой системой, затем, разработать модель системы, и наконец, определить способы реализации. Глубокая проработка архитектуры разрабатываемой информационной системе на начальных этапах проектирования, как правило, окупается в последствии, особенно при разработке крупномасштабных проектов с длительным сопровождением.
Средства языка моделирования UML (Unified Model Language, - унифицированный язык программирования) позволяют выразительно и довольно легко произвести предварительную концептуальную разработку информационной системы, и при этом, методически сопровождать весь ход разработки включая и весь дальнейший жизненный цикл разрабатываемой информационной системы как программного продукта.
UML - это язык для визуализации, специфицирования, конструирования и документирования артефактов программных систем, основанный на объектно-ориентированном подходе.
UML, как и любой другой язык, состоит из словаря и правил, позволяющих комбинировать входящие в него слова и получать осмысленные конструкции. В языке моделирования словарь и правила ориентированы на концептуальное и физическое представление информационных систем. Моделирование необходимо для понимания системы. При этом единственной модели никогда не бывает достаточно. Напротив, для понимания любой нетривиальной системы приходится разрабатывать большое количество взаимосвязанных моделей. В применении к программным системам это означает, что необходим язык, с помощью которого можно с различных точек зрения описать представления архитектуры системы на протяжении цикла ее разработки.
UML - это язык визуализации, при этом UML - это не просто набор графических символов. За каждым из них стоит хорошо определенная семантика (см. [1]) Таким образом, модель, написанная одним разработчиком, может быть однозначно интерпретирована другим или даже инструментальной программой.
UML - это язык специфицирования. В данном контексте специфицирование означает построение точных, недвусмысленных и полных моделей. UML позволяет специфицировать все существенные решения, касающиеся анализа, проектирования и реализации, которые должны приниматься в процессе разработки и развертывания системы программного обеспечения.
UML - это язык конструирования. Хотя UML не является языком визуального программирования, модели, созданные с его помощью, могут быть непосредственно переведены на различные конкретные языки программирования. Иными словами, UML-модель можно отобразить на такие языки, как Java, C++, Visual Basic, и даже на таблицы реляционной базы данных или устойчивые объекты объектно-ориентированной базы данных. Те понятия, которые предпочтительно передавать графически, так и представляются в UML; те же, которые лучше описывать в текстовом виде, выражаются с помощью языка программирования.
Подобное отображение модели на язык программирования позволяет осуществлять прямое проектирование: генерацию кода из модели UML в какой-то конкретный язык. Можно решить и обратную задачу: восстановить модель по имеющейся реализации. Естественно, модель и реализация предполагает использование ряда специфических сущностей. Поэтому для обратного проектирования необходимы как инструментальные средства, так и вмешательство человека. Сочетание прямой генерации кода и обратного проектирования позволяет работать как в графическом, так и в текстовом представлении, если инструментальные программы обеспечивают согласованность между обоими представлениями.
Помимо прямого отображения в языки программирования, UML в силу своей выразительности и однозначности позволяет непосредственно исполнять модели, имитировать поведение систем и контролировать действующие системы.
UML - это язык документирования
Компания, выпускающая программные средства, помимо исполняемого кода производит и другие документы, в том числе:
требования к системе;
архитектуру;
проект;
исходный код;
проектные планы;
тесты;
прототипы;
версии, и др.
В зависимости от принятой методики разработки выполнение одних работ производится более формально, других менее. Упомянутые документы - это не просто поставляемые составные части проекта; они необходимы для управления, для оценки результата, а также в качестве средства общения между членами коллектива во время разработки системы и после ее развертывания.
UML предлагает разработчику и руководству свой вариант решения проблемы документирования системной архитектуры и всех ее деталей, предлагает язык для формулирования требований к системе и определения тестов и, наконец, предоставляет средства для моделирования работ на этапе планирования проекта и управления версиями.
Рассмотрим разработку модели информационной системы средствами языка UML на примере разработки автоматизированного рабочего места секретаря кафедры (далее АРМ секретаря кафедры).
3. Описание предметной области
Понятие предметной области базы данных является одним из базовых понятий информатики и не имеет точного определения. Его использование в контексте ИС предполагает существование устойчивой во времени соотнесенности между именами, понятиями и определенными реалиями внешнего мира, не зависящей от самой ИС и ее круга пользователей. Таким образом, введение в рассмотрение понятия предметной области базы данных ограничивает и делает обозримым пространство информационного поиска в ИС и позволяет выполнять запросы за конечное время.
Мы под описанием предметной области будем понимать описание окружения разрабатываемой системы, типы пользователей системы, при этом также укажем основные задачи, решение которых возлагаются на систему.
В предварительном описании предметной области вводятся основные термины (словарь системы), определяются типы пользователей и их права, формулируются задачи, которые должна решать разрабатываемая система. При этом при описании предполагается использовать средства обычного языка и стандартной деловой графики (рисунки, диаграммы, таблицы).
При разработке словаря системы необходимо определить имена сущностей ("студент", "преподаватель", "дисциплина"). При этом термин сущность понимается нами как компонент модели предметной области, то есть как уже выделенный на концептуальном уровне объект. Выделяемые в предметной области объекты превращаются аналитиком в сущности.
Сущность является результатом абстрагирования реального объекта. С объектами связано две проблемы: идентификация и адекватное описание. Для идентификации используют имя, которое должно быть уникальным. При этом предполагается, что происходит отказ от его смысла, который присущ естественному языку. Используется только указательная функция имени. Имя - это прямой способ идентификации объекта. К косвенным способам идентификации объекта относят определение объекта через его свойства (характеристики или признаки).
Объекты взаимодействуют между собой через свои свойства, что порождает ситуации. Ситуации - это взаимосвязи, выражающие взаимоотношения между объектами. Ситуации в предметной области описываются посредством высказываний о предметной области. На данном этапе можно использовать методы исчисления высказываний и исчисления предикатов, то есть формальной, математической логики. Например, высказывание "Программист и менеджер есть служащие компании" описывает отношение включения. Таким образом, вся информация об объектах и сущностях предметной области описывается с помощью утверждений на естественном языке.
Можно указать структурные связи, выделить статические и динамические ситуации (таким образом ввести в модель параметр времени), однако для детальной проработки модели удобнее использовать развитые средства описания предметной области, например средства языка UML.
Итак, ставится задача разработать систему "АРМ секретаря кафедры" которая позволяла бы вести автоматизированный учёт данных о сотрудниках и студентах кафедры ИВТ ОмГТУ, обеспечивала гибкие возможности при решении запланированных и незапланированных специфических задач обработки учетных данных.
В рамках решения задачи разработки АРМ секретаря кафедры выделим следующие сущности:
преподаватели - преподаватели кафедры;
студенты - учащиеся вуза данной специальности;
студенты учатся в группах, группа является организующей (объединительной) сущностью для студентов;
аспиранты, имеют ту особенность, что с одной стороны сами могут вести занятия, с другой, сами являются учащимися и имеют научного руководителя;
дисциплина - преподаваемая дисциплина (предмет, курс).
Веденные сущности имеют ряд атрибутов, которые мы определим в дальнейшем.
Ведем два типа пользователей: рядовой пользователь (в дальнейшем пользователь, и администратор. Предполагается, что пользователь может обращаться к системе с запросом, выводить отчеты, администратор дополнительно может модифицировать данные. Например, в роли пользователя может выступать помощник секретаря кафедры, в роли администратора сам секретарь, или ответственный преподаватель.
С учетом введенных терминов разрабатываемая систем должна обеспечивать:
организацию полного и достоверного учета всех сотрудников и студентов кафедры;
информационную поддержку принимаемых управленческих решений, формирование полной и достоверной информации об образовательных процессах и результатах деятельности кафедры;
сокращение трудозатрат на подготовку первичных документов и отчетов;
устранение дублирования при вводе информации и, возникающих при этом механических ошибок;
удобный интерфейс пользователю;
разграничение полномочий рядовых пользователей и администратора.
В данном примере мы решаем частную задачу - разрабатываем АРМ секретаря кафедры, поэтому структурной единицей самого высокого уровня для нас принимается кафедра, которую мы будем иметь ввиду по умолчанию, то есть предполагается, что все элементы модели относится только к данной кафедре, что явно не специфицируется. Структуры более высокого уровня, такие как факультет, вуз, нами рассматриваться не будут.
4. Разработка модели программной системы средствами UML
Язык UML является языком специфицирования и визуализации, основными единицами его являются диаграммы.
Диаграмма в UML - это графическое представление набора элементов, изображаемое чаще всего в виде связанного графа с вершинами (сущностями) и ребрами (отношениями). Диаграммы характеризуют систему с разных точек зрения. Диаграмма - в некотором смысле одна из проекций системы. Как правило, диаграммы дают свернутое представление элементов, из которых составлена система. Один и тот же элемент может присутствовать во всех диаграммах, или только в нескольких (самый распространенный вариант), или не присутствовать ни в одной (очень редко). Теоретически диаграммы могут содержать любые комбинации сущностей и отношений. На практике, однако, применяется сравнительно небольшое количество типовых комбинаций, соответствующих пяти наиболее употребительным видам, которые составляют архитектуру программной системы (см. следующий раздел). Таким образом, в UML выделяют девять типов диаграмм:
диаграммы классов
диаграммы объектов;
диаграммы прецедентов;
диаграммы последовательностей;
диаграммы кооперации;
диаграммы состояний;
диаграммы действий (деятельности);
диаграммы компонентов;
диаграммы развертывания.
Концептуальная модель UML
На диаграмме классов показывают классы, интерфейсы, объекты и кооперации, а также их отношения. При моделировании объектно-ориентированных систем этот тип диаграмм используют чаще всего. Диаграммы классов соответствуют статическому виду системы с точки зрения проектирования. Диаграммы классов, которые включают активные классы, соответствуют статическому виду системы с точки зрения процессов.
На диаграмме объектов представлены объекты и отношения между ними. Они являются статическими "фотографиями" экземпляров сущностей, показанных на диаграммах классов. Диаграммы объектов, как и диаграммы классов, относятся к статическому виду системы с точки зрения проектирования или процессов, но с расчетом на настоящую или макетную реализацию.
На диаграмме прецедентов представлены прецеденты и актеры (частный случай классов), а также отношения между ними. Диаграммы прецедентов относятся к статическому виду системы с точки зрения прецедентов использования. Они особенно важны при организации и моделировании поведения системы.
Диаграммы последовательностей и кооперации являются частными случаями диаграмм взаимодействия. На диаграммах взаимодействия представлены связи между объектами; показаны, в частности, сообщения, которыми объекты могут обмениваться. Диаграммы взаимодействия относятся к динамическому виду системы. При этом диаграммы последовательности отражают временную упорядоченность сообщений, а диаграммы кооперации - структурную организацию обменивающихся сообщениями объектов. Эти диаграммы являются изоморфными, то есть могут быть преобразованы друг в друга.
На диаграммах состояний (Statechart diagrams) представлен автомат, включающий в себя состояния, переходы, события и виды действий. Диаграммы состояний относятся к динамическому виду системы; особенно они важны при моделировании поведения интерфейса, класса или кооперации. Они акцентируют внимание на поведении объекта, зависящем от последовательности событий, что очень полезно для моделирования реактивных систем.
Диаграмма деятельности - это частный случай диаграммы состояний; на ней представлены переходы потока управления от одной деятельности к другой внутри системы. Диаграммы деятельности относятся к динамическому виду системы; они наиболее важны при моделировании ее функционирования и отражают поток управления между объектами.
На диаграмме компонентов представлена организация совокупности компонентов и существующие между ними зависимости. Диаграммы компонентов относятся к статическому виду системы с точки зрения реализации. Они могут быть соотнесены с диаграммами классов, так как компонент обычно отображается на один или несколько классов, интерфейсов или коопераций.
На диаграмме развертывания представлена конфигурация обрабатывающих узлов системы и размещенных в них компонентов. Диаграммы развертывания относятся к статическому виду архитектуры системы с точки зрения развертывания. Они связаны с диаграммами компонентов, поскольку в узле обычно размещаются один или несколько компонентов.
Здесь приведен неполный список диаграмм, применяемых в UML. Инструментальные средства позволяют генерировать и другие диаграммы, например, такие как диаграммы профиля баз данных, диаграммы WEB-приложений и т.д.
4.1 Разработка вида с точки зрения прецедентов
Моделирование начинается с определения основных задач разрабатываемой системы и действий, которые она должна выполнять. Для этих целей используются диаграммы прецедентов. Как уже говорилось, на диаграммах прецедентов указываются прецеденты и актеры, а также отношения между ними.
Прецедент (Use case) - это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат, значимый для какого-то определенного актера (Actor). Прецедент применяется для структурирования поведенческих сущностей модели. Прецедент только декларирует описание какого-либо действия системы, отвечая на вопрос "что делать?", но не указывает какими средствами. Конкретная реализация специфицируемого прецедентом поведения обеспечивается классом, кооперацией классов или компонентом.
Актер представляет собой связное множество ролей, которые пользователи прецедентов исполняют во время взаимодействия с ними. Обычно актер представляет роль, которую в данной системе играет человек, аппаратное устройство или даже другая система. В разрабатываемой системе "АРМ секретаря кафедры" актерами являются администратор (админ) и пользователь.
Графически прецедент изображается в виде ограниченного непрерывной линией эллипса, обычно содержащего только его имя, актер имеет пиктограмму "человечек".
Для того, чтобы построить диаграмму прецедентов необходимо выявить элементарные действия, производимые системой и сопоставить их с прецедентами. При этом, имена прецедентов желательно давать так, чтобы они указывали на поведение, часто такие имена содержат глаголы, например, "сформировать отчет", "найти данные по критерию" и т.д. Можно давать имена прецедентам существительными, предполагающие некоторые действия, например, "авторизация", "поиск", "контроль".
Возвращаясь к моделированию АРМ секретаря кафедры, выделим прецеденты:
Редактирование данных,
Поиск студента,
Поиск преподавателя,
Выдача списка преподаваемых дисциплин,
Авторизация.
Элементы диаграммы прецедентов (прецеденты и актеры) должны быть связаны отношениями.
Наиболее распространенным отношением между прецедентами, прецедентами и актерами является ассоциация. В некоторых случаях могут быть использованы отношения обобщения. Данные отношения имеют тот же смысл, что и на диаграмме классов.
Кроме того, между прецедентами в языке UML определены две специфические зависимости - отношение включения и отношение расширения.
Отношение включения между прецедентами означает, что в некоторой точке базового прецедента инкорпорировано (включено) поведение другого прецедента. Включаемый прецедент никогда не существует автономно, а инстанцируется только как часть объемлющего прецедента. Можно считать, что базовый прецедент заимствует поведение включаемых. Благодаря наличию отношений включения удается избежать многократного описания одного и того же потока событий, поскольку общее поведение можно описать в виде самостоятельного прецедента, включаемого в базовые. Отношение включения является примером делегирования, при котором ряд обязанностей системы описывается в одном месте (во включаемом прецеденте), а остальные прецеденты, когда необходимо, включают эти обязанности в свой набор.
Отношения включения изображаются в виде зависимостей со стереотипом "include". Чтобы специфицировать место в потоке событий, где базовый прецедент включает поведение другого, вы просто пишете слово include, за которым следует имя включаемого прецедента.
Отношение расширения применяют для моделирования таких частей прецедента, которые пользователь воспринимает как необязательное поведение системы. Тем самым можно разделить обязательное и необязательное поведение. Отношения расширения используются также для моделирования отдельных субпотоков, выполняемых лишь при определенных обстоятельствах. Наконец, их применяют для моделирования нескольких потоков, которые могут включаться в некоторой точке сценария в результате явного взаимодействия с актером.
Отношение расширения изображают в виде зависимости со стереотипом "extend". Точки расширения базового сценария перечисляются в дополнительном разделе. Они являются просто метками, которые могут появляться в потоке базового прецедента.
Примером использования данного отношения может быть доступ к базе данных имеющую оперативную часть и архив. При этом если запрос обеспечивается данными оперативной части, выполняется основной (базовый) доступ к данным, если же данных оперативной части недостаточно, производится доступ к данным архива, то есть доступ идет по расширенному сценарию.
В нашем случае, прецедент редактирование данных включает в себя прецеденты: ввод данных, удаление данных, изменение данных.
Диаграмма прецедентов АРМ секретаря кафедры показана на рис.1.
Рис. 1. Диаграмма прецедентов АРМ секретаря кафедры
Прецедент поиск студента предполагает поиск по фамилии и поиск по итогам успеваемости.
При разработке вида с точки зрения прецедентов часто необходимо дать расширенное описание прецедента (в сокращенном варианте указывается только его имя). Как правило, в начале работы потоки событий прецедента описывают в текстовой форме. По мере уточнения требований к системе будет удобнее перейти к графическому изображению потоков на диаграммах деятельности и взаимодействия.
Потоки событий могут быть описаны посредством неструктурированного текста, структурированного текста (содержащего служебные слова: ЕСЛИ, ДО ТЕХ ПОР ПОКА и т.п.), специализированного формального языка (псевдокода).
При описании прецедента потоком событий важно обозначить также основной и альтернативный потоки поведения системы.
Для примера рассмотрим описание потока событий прецедента авторизация.
Основной поток событий. Прецедент начинается, когда система запрашивает у пользователя его входное имя (Login) и пароль (Password). Пользователь может ввести его с клавиатуры. Завершается ввод нажатием клавиши Enter. После этого система проверяет введенные Login и пароль, и если они соответствуют администратору, подтверждает полномочия администратора. На этом прецедент заканчивается.
Исключительный поток событий. Клиент может прекратить транзакцию в любой момент, нажав клавишу Cancel. Это действие начинает прецедент заново. Ввод в систему не производится.
Исключительный поток событий. Клиент может в любой момент до нажатия клавиши Enter стереть свои Login и пароль.
Исключительный поток событий. Если клиент ввел Login и пароль не соответствующие администратору, ему предлагается произвести повторный ввод или войти в систему на правах рядового пользователя.
Очевидно, что описание прецедента потоком событий предполагает некоторый алгоритм, который можно представить на диаграмме деятельности (рис. 2).
Диаграмма алгоритма должна содержать начальную и конечную вершины, причем только одну начальную, и одну конечную. Диаграмма содержит исполняемые вершины - деятельности (обозначаются скругленными прямоугольниками), условные вершины (decision - выбор, распознавание, обозначаются ромбиками) и связи.
Подобными диаграммами можно пояснить и выполнение других прецедентов, таким образом дополнить вид системы с точки зрения прецедентов использования.
Рис. 2. Авторизация пользователя. Диаграмма деятельности.
4.2 Разработка вида с точки зрения проектирования
Вид с точки зрения проектирования является основным этапом концептуальной проработки модели. На данном этапе вводятся основные абстракции, определяются классы и интерфейсы посредством которых реализуется решение поставленных задач. Если прецеденты только декларируют поведение системы, то на этапе разработки вида с точки зрения проектирования определяется какими средствами данные прецеденты будут реализованы. Статические аспекты данного вида разрабатываются посредством диаграммы классов, динамические - посредством диаграмм взаимодействий и состояний (автомат).
Диаграммы классов содержат классы, интерфейсы, кооперации, а так же связи между ними. Начинать разработку диаграммы классов следует с определения классов, соответствующих основным сущностям системы, которые, как правило, определяются на начальных этапах разработки при описании предметной области. Здесь следует решить какие сущности удобнее смоделировать как классы, а какие как их атрибуты. Например, если бы требовалась в рамках факультета указать для каждой кафедры заведующего, лучше сущность заведующий кафедры сделать атрибутом класса кафедра с указанием на класс преподаватели (ассоциация "один к одному"), а не вводить отдельный класс заведующий кафедры.
При моделировании необходимо помнить, что каждому классу должна соответствовать некоторая реальная сущность или концептуальная абстракция из области, с которой имеет дело пользователь или разработчик. Хорошо структурированный класс обладает следующими свойствами:
является четко очерченной абстракцией некоторого понятия из словаря проблемной области или области решения;
содержит небольшой, точно определенный набор обязанностей и выполняет каждую из них;
поддерживает четкое разделение спецификаций абстракции и ее реализации;
понятен и прост, но в то же время допускает расширение и адаптацию к новым задачам.
В рамках разработки модели АРМ секретаря кафедры определим классы: преподаватели, студенты, аспиранты, дисциплины, группы. Очевидно, что первые из них имеют много общих атрибутов, поэтому введем абстрактный класс персона, который будет инкапсулировать все свойства, относящиеся к человеку в контексте разрабатываемой системы (фамилия, имя, адрес и т.д.). В данном случае персона будет суперклассом и связываться отношением обобщения с классами преподаватели, студенты, аспиранты.
Атрибут адрес имеет собственную структуру, чтобы отразить ее можно ввести дополнительный класс, назовем его T_ADR (как принято во многих системах программирования названия классов начинать с буквы T). Следует иметь ввиду что, атрибут адрес класса персона является экземпляром класса T_ADR, то есть между этими классами устанавливается отношение зависимости (отображается пунктирной стрелкой с открытым наконечником, стрелка направлена от зависимого элемента к независимому). В нашем случае изменение структуры класса T_ADR влечет за собой изменение класса персона через структуру соответствующего атрибута (адрес).
При моделировании класса T_ADR атрибут индекс зададим посредством примитивного типа T_POSTIDX, определяемого как шестизначное десятичное число. Примитивные типы моделируются стереотипом "type", диапазон значений указывается через ограничения, заключенные в фигурные скобки.
В классе преподаватель выделим специфические атрибуты, относящиеся только к преподавателю: должность, уч. степень (ученая степень), уч. звание (ученое звание), разряд (разряд единой тарифной сетки). Атрибуты уч. степень и уч. звание лучше определить специализированными типами через перечисление. Перечисления моделируются классом со стереотипом "enum" (enumeration - перечисление), допустимые значения записываются как атрибуты, метки, определяющие видимость атрибутов при этом подавляются. В рассматриваемом примере через перечисление введем специализированные классы T_Должн, Т_УчСт, Т_УчЗв, определяющие соответственно возможные должности, ученые степени, ученые звания через перечисления. В данном случае, как и везде в подобных случаях при создании классов, специфицирующих атрибуты основного класса, устанавливаются отношения зависимости.
Для класса студент вводится специфический атрибут номер зачетки. Для класса аспирант определяются специфические атрибуты форма обучения и дата поступления. Форма обучения определятся специальным классом через перечисление Т_ФормОбуч (очная, заочная).
Класс группа имеет атрибуты: название, форма обучения, число студ. (число студентов). Учитывая, что преподаватели рассматриваемой кафедры могут вести занятия у групп с других факультетов, вводится дополнительный класс специальность, с атрибутами номер (специальности), название (специальности), факультет, типы которых в данной модели не заданы, хотя могут определяться через перечисления.
Класс дисциплина имеет атрибуты: номер, название, цикл. Атрибут цикл посредством введенного через перечисление специализированного типа Т_Циклы определяет к какому циклу относится дисциплина: к циклу гуманитарных и социально-экономических дисциплин, математических и естественнонаучных дисциплин, общепрофессиональных дисциплин, специальных дисциплин.
Атрибуты количество часов, количество семестров нельзя указать в классе дисциплина, поскольку они зависят от специальности, тем более нельзя указать их в классе специальность. Данные атрибуты относятся к паре специальность-дисциплина и определяются в классе - ассоциации Дисциплины-специальности.
Рис. 3. Диаграмма классов АРМ секретаря кафедры ( вариант 1)
При визуализации структуры классов следует обращать внимание на видимость атрибутов. Все рассмотренные атрибуты должны быть доступны и иметь видимость Public (обозначается знаком "+" или пиктограммой без замка). В рассмотренных классах мы делали упор на структуру, а не на поведение (операции не описывались и не предполагается их описывать), поэтому для облегчения восприятия диаграммы желательно изображение операций подавить.
На введенном множестве классов необходимо доопределить связи. Связи обобщения и зависимости были уже определены, осталось определить ассоциации.
Студенты формируются в группы, в данном случае ассоциация будет иметь вид агрегации. Агрегация предполагает отношение типа часть-целое, обозначается сплошной линией с ромбиком на конце со стороны целого (в нашем случае группы). Множественность отношения студенты-группы "многие к одному". Каждая группа относится к определенной специальности, в свою очередь определенной специальности может соответствовать несколько групп, поэтому ассоциация группа-специальность также имеет тип множественности "многие к одному".
В данном случае, как и в большинстве других, направление ассоциаций двухстороннее, поэтому навигацию лучше подавлять (снять галочку в поле Navigable опции Detail Role)
Определим ассоциацию между преподавателями и преподаваемыми дисциплинами по типу "многие ко многим": преподаватель может вести несколько дисциплин, некоторые дисциплины могут преподаваться несколькими преподавателями. Между дисциплинами и специальностями также устанавливается ассоциация "многие ко многим": учебный план специальностей содержит множество дисциплин, большинство дисциплин встречаются в рабочих планах нескольких специальностей. К данной ассоциации прикрепляется класс-ассоциация Дисциплины-специальности с атрибутами, указывающими курс, количество семестров и количество часов данной дисциплины у данной специальности.
Аналогично введем ассоциацию между группами и преподавателями: преподаватели ведут занятия в группах, тип множественности ассоциации "многие ко многим". Прямую ассоциацию между группами и дисциплинами определять не нужно, поскольку данная связь прослеживается через связующий класс специальность.
Для того, чтобы отобразить наличие руководителя у аспиранта необходимо ввести ассоциацию между аспирантом и преподавателем по типу "многие к одному", у одного руководителя может быть несколько аспирантов. На данной ассоциации со стороны преподавателя можно явно указать роль: руководитель.
Рис. 4. Диаграмма классов АРМ секретаря кафедры (вариант 2)
В каждой группе имеется староста группы, этот факт можно отобразить дополнительной ассоциацией (дадим ей имя староста) от группы к студентам с типом множественности "один к одному". В данном случае можно явно указать навигацию.
Аспиранты также могут вести занятии по определенной дисциплине у определенных групп: ассоциации "многие ко многим" аспиранты-группы, аспиранты-дисциплины. Некоторые аспиранты могут не вести занятия, поэтому тип множественности на концах ассоциации будет 0. n.
Итоговая диаграмма классов приводится на рис. 3.
Рис. 5. Упрощенная диаграмма классов
Учитывая, что и аспиранты и преподаватели ведут занятия можно ввести дополнительный абстрактный класс, например, преподающие, являющийся потомком класса персона и суперклассом для классов преподаватель и аспирант, что позволит несколько сократить число связей. (рис. 4.). В данном случае от классов дисциплина и группа ассоциации будут идти к классу преподающие, предполагая связь с классами преподаватель и аспирант через наследование (отношение обобщения). В класс преподающие можно вынести атрибуты ставка (0,5 ставки, полная ставка) и разряд.
Получившаяся диаграмма достаточно сложна и нагружена элементами, однако моделирование классов еще далеко не закончено: необходимо еще определить некоторые служебные классы и интерфейсы. С целью разгрузить диаграмму классов построим новый ее вид (на отдельной диаграмме) оставив изображение основных классов и подавив отображения вспомогательных, определяющих типы атрибутов (рис. 5).
На рис. 5 наряду с основными классами, соответствующими концептуальным элементам системы показан также класс T_ADR, раскрывающий структуру адреса, данный класс также имеет важное значение, поскольку содержит необходимые элементы данных для преподавателей и аспирантов - потомков класса персона.
Перейдем к определению интерфейсов. Классы взаимодействуют с внешним миром через интерфейсы.
Интерфейс (Interface) - это совокупность операций, которые определяют сервис (набор услуг), предоставляемый классом или компонентом. Таким образом, интерфейс описывает видимое извне поведение элемента. Интерфейс может представлять поведение класса или компонента полностью или частично; он определяет только спецификации операций (сигнатуры), но никогда - их реализации. Графически интерфейс изображается в виде круга, под которым пишется его имя. Интерфейс редко существует сам по себе - обычно он присоединяется к реализующему его классу или компоненту. Интерфейс всегда предполагает наличие некоторого "контракта" между стороной, которая декларирует выполнение ряда операций и стороной, которая эти операции реализует.
Поместим на диаграмму класс электронная таблица, в котором инкапсулированы все свойства и операции электронной таблицы, позволяющей редактировать данные. Структуру данного класса раскрывать ввиду большой сложности не будем. Так в современных средствах разработки приложений пользователь пользуется готовыми классами и шаблонами, наследуя их возможности, например библиотека VCL (Delphi) содержит класс TTable, инкапсулирующий возможности электронной таблицы. Потомки класса электронная таблица являются конкретными электронными таблицами, содержащие конкретные данные по преподавателям, аспирантам, студентам, группам, дисциплинам и специальностям. Делая соответствующие классы потомками класса электронная таблица, мы декларируем для этих классов все свойства и операции, присущие электронным таблицам (регистрацию в системе, вставку, удаление, редактирование данных, сортировку и т.д.).
Для класса электронная таблица, а соответственно и для всех его потомков определим интерфейс редактирование, подразумевая все возможные операции редактирования данных (вставку, удаление, изменение данных). При этом предполагается, что в классе электронная таблица данные возможности реализованы.
Использование специального класса электронная таблица и наследование позволило избежать определения специальных свойств и интерфейсов редактирования данных для каждой электронной таблицы.
Определим интерфейсы поиск преподавателя, поиск дисциплины, присоединив их к соответствующим классам отношениями реализации. Состав операций данных интерфейсов раскрывать не будем (он достаточно тривиален), поэтому интерфейсы отобразим в сокращенной форме (в виде кружочка). Напомним, что отношение реализации, присоединенное к интерфейсу в сокращенной форме, отображается простой сплошной линией (как ассоциация).
Интерфейс поиск студента отобразим с указанием списка операций через стереотипный класс, при этом отношение реализации отображается пунктирной стрелкой с закрытым наконечником.
Естественно предполагается, что введенные интерфейсы реализуется средствами классов, к которым они присоединены отношением реализации, то есть соответствующие классы содержат операции и методы, реализующие заявленные интерфейсы. Для облегчения восприятия данные механизмы не визуализируются.
Для управления правами доступа и авторизацией пользователя введем класс менеджер доступа. Менеджер доступа имеет атрибут закрытого типа доступа таблица паролей, который является экземпляром класса КодирТабл (Кодированная таблица), содержащей пароли (password) и входные имена (login) пользователей-администраторов. Предполагается, что возможности служебного класса КодирТабл не позволяют постороннему пользователю считывать пароли пользователей. На данном этапе проектирования мы просто декларируем такие возможности, не останавливаясь на механизме их реализации, но предполагая что таковые инкапсулированы в класс КодирТабл.
Класс менеджер доступа содержит открытые операции ввод пароля и предоставление прав администратора, средствами которых реализуется авторизация и управление правами доступа.
Укажем зависимость между интерфейсом редактирования данных (редактирование) и менеджером доступа, предполагая, что полные возможности по редактированию данных имеют только пользователи с правами администратора.
Рис. 6. Итоговая диаграмма классов АРМ секретаря кафедры
Итоговая диаграмма приводится на рис. 6.
Итак, разработка объектно-ориентированной модели АРМ секретаря кафедры средствами диаграммы классов UML на данном этапе можно считать законченной. Естественно, возможны возвращения к ней и пересмотр некоторых элементов в ходе проектирования системы, при корректировке задач, при уточнении отдельных деталей. Процесс проектирования информационных систем является итеративным. Необходимо отметить, что разработанная диаграмма классов содержит элементы явно или скрыто реализующие все прецеденты использования диаграммы прецедентов. Каждому прецеденту диаграммы прецедентов должен соответствовать либо интерфейс, либо операция интерфейса (реализация предполагается в соответствующих интерфейсу классах), либо открытая операция класса, либо набор открытых операций (в данном случае прецедент реализуется непосредственно соответствующим классом или набором классов).
Рассмотрим процесс создания новой записи о студенте средствами диаграммы последовательности.
Создание новой записи предполагает права администратора, поэтому действующим лицом данного взаимодействия будет администратор (админ). Данный элемент уже был введен на диаграмме прецедентов, поэтому перетащим его на диаграмму последовательности из браузера вида с точки зрения прецедентов.
Следует обратить внимание, что на диаграммах взаимодействия фигурируют объекты, то есть конкретные экземпляры классов (имя объекта всегда подчеркивается).
Ведем объекты: форма ввода, менеджер записей, запись о студенте Петрове (как конкретный пример записи о студенте), менеджер транзакций. Данный набор объектов является типовым при модификации записи в таблице базы данных.
Форма ввода - элемент пользовательского интерфейса, представляет собой типовую форму ввода данных о студенте (фамилия, имя, отчество, адрес и т.д.). В нашем случае представляет собой несколько доопределенную конкретную реализацию стандартного интерфейса редактирование класса электронная таблица. Поскольку специально интерфейс редактирование данных о студенте нами не вводился на диаграмме классов, поэтому явно указывать класс для объекта форма ввода не будем.
Менеджер записей - объект, обладающий стандартным набором возможностей по управлению данными при работе с электронной таблицей. Данный набор возможностей наследуется классом студенты от класса электронная таблица. Для объекта Менеджер записей явно указывается класс, экземпляром которого он является - студенты.
Петров - конкретная запись о студенте Петрове, новый элемент таблицы о студентах. Здесь явно укажем введенный класс запись о студенте. Подобные объекты обычно существуют временно для посылки соответствующей информации в базу данных при транзакциях. После окончания транзакции данный объект может быть уничтожен. Соответствующий записи объект может быть создан вновь при необходимости редактирования информации.
Менеджер транзакций - объект, обеспечивающий выполнение законченной операции над базой данных, в данном случае создание новой записи о студенте Петрове. На данный объект возлагается выполнение также ряда системных функций, сопровождающих трансакцию. Примером менеджеров трансакций являются, например, BDE (используются для доступа из приложений Delphi к базам данных Paradox, Dbase и др.), ADO (используется для доступа к базам MS Access из различных приложений).
Диаграмма последовательности ввода новой записи о студенте в АРМ секретаря кафедры представлена на рис. 7.
Рис. 7. Ввод данных о студенте. Диаграмма последовательности.
На диаграмме последовательности определим передачу сообщений между объектами: создать новую запись (транслируется от объекта к объекту до конца цепочки как сообщение сохранить запись); открыть форму (к форме ввода); ввести Ф.И.О., адрес. (ввод данных по студенту), далее эти данные транслируются сообщениями сохранить Ф.И.О., адрес. От менеджера транзакций передается сообщение собрать информацию о студенте, обеспечивающее обратную связь с базой данных, и наконец рефлексивное сообщение менеджера транзакций поименованное как сохранить запись в БД, обеспечивает окончание транзакции.
При желании можно данное взаимодействие представить диаграммой кооперации, иллюстрирующей прежде всего структурный аспект взаимодействия (рис.8). Данную диаграмму можно построить из предыдущей в автоматическом режиме (в Rational Rose нажатием клавиши F5).
Рис. 8. Ввод данных о студенте. Диаграмма кооперации.
При необходимости проект можно дополнить и другими диаграммами взаимодействия, раскрывающими работу прецедентов.
4.3 Разработка профиля реляционной базы данных
В том случае если для реализации системы используется объектно-ориентированная СУБД (ООСУБД) построенная в предыдущем разделе диаграмма объектов является окончательной моделью и прямым руководством к реализации информационной системы. В том же случае, когда в качестве информационного ядра информационной системы предполагается использовать реляционную базу данных (РБД), необходимо разработать еще одну диаграмму, диаграмму профиля реляционной базы данных.
UML-профиль для проекта базы данных является расширением UML, сохраняющим метамодель UML без изменений. Профиль для проекта баз данных добавляет стереотипы и тегированные значения, присоединенные к этим стереотипам, но не изменяет основную метамодель UML. Для визуализации проектируемых элементов базы данных и правил проектирования реляционных баз данных в профиль (далее просто баз данных) добавлены соответствующие пиктограммы. База данных описывается с помощью таблиц, столбцов и связей. В профиле есть элементы, расширяющие базу данных, например, триггеры, хранимые процедуры, ограничения, типы, определенные пользователем (домены), представления и другие. Профиль показывает, каким образом и где все эти элементы использовать в модели. На профиле баз данных UML определяются следующие сущности:
Таблица (Table) - набор записей в базе данных по определенному объекту, состоит из столбцов.
Столбец (Column) - компонент таблицы, содержащий один из атрибутов таблицы (поле таблицы).
Первичный ключ (Primary key) - возможный ключ, выбранный для идентификации строк таблицы.
Внешний ключ (Foreign key) - один или несколько столбцов одной таблицы, являющиеся первичными ключами другой таблицы.
Представление (View) - виртуальная таблица, которая ведет себя с точки зрения пользователя точно также, как обычная таблица, но не существует самостоятельно.
Хранимая процедура (Stored procedure) - независимая процедурная функция, выполняемая на сервере.
Домены (Domains) - допустимый набор значений для атрибута или столбца.
Кроме данных сущностей могут быть введены и некоторые дополнительные сущности, отражающие специфические аспекты модели БД.
Подобные документы
Методологии разработки информационных систем в отечественной и зарубежной литературе. Государственные и международные стандарты в области разработки программного обеспечения. Разработка фрагмента информационной системы "Учебно-методический ресурс".
курсовая работа [364,6 K], добавлен 28.05.2009Определение понятия "система". История развития и особенности современных информационных систем. Основные этапы развития автоматизированной информационной системы. Использование отечественных и международных стандартов в области информационных систем.
презентация [843,9 K], добавлен 14.10.2013Основная идея методологии и принципы RAD-разработки информационных систем, ее главные преимущества. Причины популярности, особенности применения технологии. Формулировка основных принципов разработки. Среды разработки, использующие принципы RAD.
презентация [866,8 K], добавлен 02.04.2013Роль структуры управления в информационной системе. Примеры информационных систем. Структура и классификация информационных систем. Информационные технологии. Этапы развития информационных технологий. Виды информационных технологий.
курсовая работа [578,4 K], добавлен 17.06.2003Понятие CASE-средств как программных средств, которые поддерживают процессы создания и сопровождения информационных систем (ИС). Особенности IDEF-технологии разработки ИС. Описание нотации IDEF0. Разработка функциональных моделей бизнес-процесса.
презентация [399,8 K], добавлен 07.04.2013Сущность унифицированного языка моделирования, его концептуальная модель и принцип действия, общие правила и механизмы. Моделирование понятия "компетентность". Диаграмма классов, описывающих учебный процесс. Реализация заданной информационной системы.
дипломная работа [3,1 M], добавлен 17.02.2015Жизненный цикл информационных систем, методологии и технологии их проектирования. Уровень целеполагания и задач организации, классификация информационных систем. Стандарты кодирования, ошибки программирования. Уровни тестирования информационных систем.
презентация [490,2 K], добавлен 29.01.2023Развитие информационных систем. Современный рынок финансово-экономического прикладного программного обеспечения. Преимущества и недостатки внедрения автоматизированных информационных систем. Методы проектирования автоматизированных информационных систем.
дипломная работа [1,5 M], добавлен 22.11.2015Понятие информационной системы, виды информационных систем. Анализ инструментальных средств для разработки автоматизированных информационных систем. Требования к программе и программному изделию. Разработка форм графического интерфейса и баз данных.
дипломная работа [1,4 M], добавлен 23.06.2015Решение по информационной безопасности. Системы для датацентров. Что такое оборудование центра обработки данных. Основные понятия и принципы моделирования. Выбор метода решения задач. Метод допустимых направлений Зойтендейка, алгоритм Франка–Вульфа.
курсовая работа [57,3 K], добавлен 18.05.2017