Программная система "Генеалогическое дерево"

 

ЦЕНТРОСОЮЗ РОССИЙСКОЙ ФЕДЕРАЦИИ

Кафедра прикладной информатики











Проектирование информационных систем

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

По теме

Программная система «Генеалогическое дерево»












Чита

год

Содержание


Введение

.Постановка задачи

1.1 Программная система

1.2 Глоссарий проекта

.3 Анализ и определение требований

. Проектирование программного продукта

.1 Описание модели вариантов использования

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

.2 Описание модели анализа системы

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

. Описание предметной области

.1 Морфологическая модель

.2 Функциональная модель

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

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

.5 Диаграмма взаимодействия

Заключение

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

Приложения


Введение


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

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

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


1.Постановка задачи


.1 Программная система


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

Система хранит сведения о персонах (Ф.И.О., пол, дата рождения, дата смерти, биография) и о родственных связях между ними. Связи бывают только трех видов: «мужья-жены», «дети-родители» и «братья-сестры». Система обеспечивает возможность добавления данных о новых персонах и родственных связях, изменение введенных данных и удаление ненужных данных. Система следит за непротиворечивостью вводимых данных. Например, недопустимо, чтобы человек был собственным предком или потомком.

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

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

·находить для указанного члена семьи его детей;

·находить для указанного члена семьи его родителей;

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

·получать список всех предков персоны;

·получать список всех потомков персоны;

·получать список всех родственников персоны;

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


1.2 Глоссарий проекта


Глоссарий (лат. Glossarium - «собрание глосс») - словарь узкоспециализированных терминов в какой-либо отрасли знаний с толкованием, иногда переводом на другой язык, комментариями и примерами. Собрание глосс и собственно глоссарии стали предшественниками словаря.

1.Система - программная система для поддержки генеалогических деревьев.

2.Пользователь - человек, работающий с системой.

.База данных - файл во внешней памяти компьютера, хранящий таблицы данных.


1.3 Анализ и определение требований


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

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

Следует отметить, что в русской генеалогии прямым - считается родство исключительно по мужской линии: «от отца к сыну нисходящее»; эта норма хорошо иллюстрируется неактуальным с некоторых пор статусом принадлежности к дворянскому сословию, которое, как известно, не наследовалось по линии матери, то есть предки и потомки по материнской линии не пребывают в прямом родстве (она является единственным и последним по своей линии прямым потомком). Неслучайно существует выражение: «род пресёкся», что подразумевает, прежде всего, отсутствие сыновей. Другим примером строгости в понимании прямого родства являются нормы престолонаследования.

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

Поля таблицы «Персона»:

1.Код персоны

2.Имя

.Пол

.Дата рождения

.Дата смерти

.Биография

Поля таблицы «Связь»:

1.Код связи

2.Код персоны 1

.Код персоны 2

.Код вида связи

.Название связи

Целесообразно спроектировать базу данных со следующей структурой:



Необходимые функции системы:

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

При создании связи соблюдается непротиворечивость. Должны выполняться следующие условия:

·участники связи не могут быть одной и той же персоной;

·между каждой парой персон нельзя создавать более одной связи;

·для создания связи «мужья - жены» участники должны иметь разный пол;

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

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

Доступны для изменения следующие поля таблицы «Персона»: имя, дата смерти, биография.

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

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

список детей;

список родителей;

список братьев и сестер;

список всех предков;

список всех потомков;

список всех родственников;

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

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

К потомкам персоны относятся дети, их дети, дети их детей и т.д.

К родственникам персоны относятся все персоны, прямо или косвенно связанные с ней.

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

программный генеалогическое дерево

2. Проектирование программного продукта


.1 Описание модели вариантов использования


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

Были выбраны следующие актеры и прецеденты.

Актёры:

Пользователь - человек, работающий с системой. Этот актер инициирует все прецеденты.

База данных - файл на внешнем носителе, хранящий таблицы данных. Взаимодействие с этим актером происходит при чтении и сохранении базы данных.

Прецеденты:

Наполнение базы - включает в себя процедуры добавления, редактирования и удаления записей из базы.

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


2.2 Описание модели анализа системы


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

Рассмотрим более подробно прецеденты, выделенные на предыдущем этапе.

Вариант использования «Наполнение базы»

Основные потоки событий:

. Пользователь выбирает, какое действие выполнить.

.1. Работа с персонами

.1.1. Добавить персону.

.1.1.1. Система запрашивает данные о персоне.

.1.1.2. Пользователь вводит данные о персоне.

.1.1.3. Система проверяет, введено ли имя.

.1.1.4. Если имя введено, новая запись добавляется в базу.

.1.2. Изменить персону

.1.2.1. Пользователь выбирает персону из списка.

.1.2.2. Система запрашивает новые данные о персоне.

.1.2.3. Пользователь вводит данные о персоне.

.1.2.4. Система проверяет, введено ли имя.

.1.2.5. Если имя введено, изменения вносятся в базу.

.1.3. Удалить персону.

.1.3.1. Пользователь выбирает персону из списка.

.1.3.2. Система проверяет, состоит ли персона в связях.

.1.3.3. Если не состоит, запись о персоне удаляется из базы.

.2. Работа со связями.

.2.1. Добавить связь.

.2.1.1. Система проверяет, имеется ли хотя бы 2 записи в таблице персон.

.2.1.2. Если имеется, пользователь выбирает участников и тип связи.

.2.1.3. Система проверяет, возможна ли связь между выбранными персонами.

.2.1.4. Если возможна, в базу добавляется новая запись.

.2.2. Удалить связь.

.2.2.1. Пользователь выбирает нужную связь.

.2.2.2. Из базы удаляется запись о связи.

Альтернативные потоки событий:

. При удалении персоны выясняется, что удаляемая персона состоит в связях.

.1. Выводится сообщение об ошибке, и прецедент завершается.

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

.1. Выводится сообщение об ошибке и прецедент завершается.

Предусловия.

. Система должна находиться в состоянии «Ожидание действий от пользователя».

Постусловия.

. Система возвращается в состояние «Ожидание действий от пользователя».

Вариант использования «Запрос к базе»

Основные потоки событий:

. Пользователь выбирает, какой запрос выполнить.

.1. Исходными данными для запроса служит одна персона.

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

.2. Исходными данными для запроса служит 2 персоны.

.2.1. Пользователь выбирает нужных персон из списка.

. Система выполняет поиск в базе по запросу.

. Система отображает результат запроса.

Предусловия.

. Система должна находиться в состоянии «Ожидание действий от пользователя».

Постусловия.

. Система возвращается в состояние «Ожидание действий от пользователя».


3. Описание предметной области


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

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

Система хранит сведения о персонах, их ф.и. о, пол, дата рождения и о родственных связях между ними. Связи бывают трех видов: мужья-жены, дети-родители и братья-сестры.

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

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


3.1Морфологическая модель


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

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

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

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

Построение гиперкомплексной матрицы происходит в несколько этапов.

. Определение числа иерархических уровней и числа элементов на каждом уровне.

. Установление взаимосвязи между элементами и подсистемами на каждом уровне.

. Формирование матрицы в виде квадрата, условная длина стороны которого определяется общим числом элементов на самом нижнем уровне иерархии.

. Сторона квадрата разбивается на части, число которых равно количеству элементов на самом высоком уровне иерархии.

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

. По главной диагонали выписываются элементы системы, представляя тем самым модель состава системы.

Рассмотрим построение морфологической модели системы поддержки составления расписания занятий.

Основными подсистемами являются деканат и диспетчер.

На рисунке 3.1 представлена гиперкомплексная матрица для СПСРЗ.


Рисунок 3.1 - Морфологическая модель

3.2Функциональная модель


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

четкое определение границы системы;

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

описывается функционирование верхнего уровня, а каждая функция

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

Рассмотрим технологию построения модели в рамках IDEF.

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

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

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

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


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


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

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

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

Диаграмма состояний для проектируемой предметной области представлена на рисунке 5.1.


Рисунок 5.1 - Диаграмма состояний


3.4 Диаграмма деятельности


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

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

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

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

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

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


Рисунок 6.1 - Диаграмма деятельности


3.5 Диаграмма взаимодействия


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

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

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

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

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

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


Рисунок 11.1 -Диаграмма взаимодействия


Заключение


Результатом курсового проекта стало визуальное моделирование предметной области «Генеалогическое дерево». Перед написанием предметная область тщательно анализировалась.

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

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


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


1. Вендров А.М., Малышко В.В. Объектно-ориентированный анализ и проектирование с использованием языка UML. М.: Издательский отдел факультета ВМиК МГУ, 2002

. Леоненков А.В. Самоучитель UML 2. БХВ-Петербург, 2007 г.

. Г. Буч, Д. Рамбо, А. Джекобсон, Программирование: Язык UML. Руководство пользователя: Питер, 2005. - 205 стр.

. С. Макконнелл, Совершенный код. Мастер-класс. / Пер. с англ. - М.: Издательско-торговый дом "Русская редакция; СПб.: Питер, 2005. - 896 стр.: ил

. М. Фаулер, К. Скотт., Программирование: UML: Основы.



ЦЕНТРОСОЮЗ РОССИЙСКОЙ ФЕДЕРАЦИИ Кафедра прикладной информатики Проектирование информационных систем КУРСОВАЯ РА

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ