главная полезно рефераты ссылки сатьи контакты

Внимание!!!
Все материалы сайта защищены авторским правом, содержат на момент размещения не менее 60% оригинального текста. Материалы предназначены только для выполнения собственной студенческой работы. Любое воспрозведение или иное использование запрещено законом
Кроме того, просим терпимее относиться ко всем видам рекламы на сайте. Так как за счет её и существует наш проект. Спасибо за понимание и удачи вам в поиске нужной информации.


Разработка подсистемы учета и регистрации результатов сдачи абитуриентами вступительных экзаменов на

СОДЕРЖАНИЕ

 

1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И КЛАССИФИКАЦИЯ СУЩНОСТЕЙ РЕШАЕМОЙ ЗАДАЧИ.. 4

1.1. Абитуриент. 5

1.2. Предмет. 5

1.3. Оценка. 5

1.3. Этапы организации хранилища информации об оценках абитуриентов. 6

2. ПОСТАНОВКА ЗАДАЧИ.. 8

3. ОБЗОР ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ.. 9

4. ТРЕБОВАНИЯ К СИСТЕМЕ.. 12

5. РАЗРАБОТКА МЕТОДОВ И МОДЕЛЕЙ ПРЕДСТАВЛЕНИЯ СИСТЕМЫ... 13

6. РАЗРАБОТКА И ПОСТРОЕНИЕ ИНФОРМАЦИОННОЙ МОДЕЛИ.. 19

7.ОБОСНОВАНИЕ ПРИНИМАЕМЫХ РЕШЕНИЙ ПО ВЫБОРУ ТЕХНИЧЕСКИХ И ПРОГРАМНЫХ СРЕДСТВ РЕАЛИЗАЦИИ.. 23

8. ОПИСАНИЕ АЛГОРИТМОВ ПРОГРАММНЫХ МОДУЛЕЙ.. 25

9. ОПИСАНИЕ ТЕСТОВОГО ПРИМЕРА. РУКОВОДСТВА ПОЛЬЗОВАТЕЛЯ.. 27

10. ОПИСАНИЕ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ.. 34

ВЫВОДЫ И ЗАКЛЮЧЕНИЯ.. 35

ЛИТЕРАТУРА.. 37

 ПРИЛОЖЕНИЯ.. 38


ВВЕДЕНИЕ

 

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

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

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

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

Целью работы является разработка подсистемы учета и регистрации результатов сдачи абитуриентами вступительных экзаменов. При разработке подсистемы следует использовать такие современные технологии разработки корпоративных приложений, предоставляемых платформой Java 2, как EJB, JSP, Servlets, DHTML.

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

Поддержку работы приложения должен осуществлять свободно распространяемый сервер приложений от Sun, что обеспечит снижение стоимости разработки подсистемы. А использование такой гибкой и удобной для программиста СУБД, как Sybase SQL Anywhere, значительно облегчит в дальнейшем модификацию разрабатываемой подсистемы.


1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И КЛАССИФИКАЦИЯ СУЩНОСТЕЙ РЕШАЕМОЙ ЗАДАЧИ

 

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

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

Учет информации о результатах сдачи абитуриентами вступительных экзаменов производится методистом. Методист получает от экзаменационной (приемной) комиссии список абитуриентов, расписание экзаменов и ведомости результатов сдачи экзаменов.

Методист обобщает эти сведения и формирует итоговые ведомости.

Таким образом, разрабатываемое ПО автоматизирует работу методиста.

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

1) Абитуриент – хранит информацию об абитуриенте

2) Предмет – сведения о предмете, который должен сдавать абитуриент

3) Оценка – сведения об оценках, полученных на вступительных экзаменах абитуриентами

 

 

1.1. Абитуриент

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

1.2. Предмет

 

Сущность «Предмет» содержит данные о подлежащих сдаче предметах и характеризуется такими атрибутами, как:

- название предмета

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

1.3. Оценка

 

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

- абитуриентом

- сданным им вступительным экзаменом

- оценкой, полученной в ходе сдачи экзамена.


1.3. Этапы организации хранилища информации об оценках абитуриентов

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

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

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

ВУЗы, как правило, решают задачи автоматизации собственными силами или используют услуги серьезных, хорошо зарекомендовавших себя в области разработки ПО фирм (как государственные, так и частные). Примером подобной организации для РБ является IBA.

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

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

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

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

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

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

Установка – процесс состоит из развертывания системы в ВУЗе-заказчике, должен сопровождаться проверкой корректности работы установленного ПО. Например, у заказчика могут не быть установлены какие-то библиотеки, компоненты и т.п.

Сопровождение – состоит в поддержке установленного у заказчика ПО. Может включать доработку существующего ПО с целью добавления функциональности или просто заключаться в исправлении выявленных в процессе эксплуатации ошибок.

 


2. ПОСТАНОВКА ЗАДАЧИ

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

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

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

·                    разработать информационную модель системы (структуру базы данных);

·                    создать БД соответствующей структуры в Sybase SQL Anywhere;

·                    наполнить разработанную БД соответствующей информацией;

·                    разработать программный код и HTML-страницы приложения, произвести сборку ПО и проверить корректность сборки;

·                    провести функциональное тестирование программы с использованием разработанной БД;

·                    описать алгоритмы программных модулей;

·                    описать тестовый пример;

·                    разработать руководство пользователя;

·                    описать полученные результаты;

·                    оформить пояснительную записку.

·                    сделать выводы и заключения по выполнению курсовой работы.


3. ОБЗОР ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ

Питер Вейнер. Java и JavaScript [1] является уникальным пособием для изучения этих двух столь популярных в настоящее время языков программирования сетевых приложений. Изложение ведется методом сравнения особенностей этих языков, в то же время каждому из них посвящена отдельная часть книги. Автор излагает материал просто и четко. Основное внимание он уделяет разработке апплетов, необходимых любому дизайнеру Web-страниц. В книге подробно рассматривается готовые фрагменты программ, кoтoрые можно применять в пользовательских апплетах.

Пол Дж. Перроун, Венката С. Р. `Кришна` Р. Чаганти. Создание корпоративных систем на основе Java 2 Enterprise Edition. Руководство разработчика [2] предназначена для специалистов, занимающихся вопросами архитектуры программных комплексов, а также проектированием и разработкой программного обеспечения. В книге рассмотрен широкий круг вопросов, связанных с созданием систем уровня предприятия на базе Java. В книге обсуждаются объектно-ориентированный и компонентный подходы, общие характеристики языка Java, в частности модель J2EE, средства Java для создания пользовательских интерфейсов и модель JavaBeans. Приводятся общие сведения о взаимодействии с базами данных, в частности описывается JDBC API. Кроме того, подробно рассматривается проблема создания распределенных приложений. Большое внимание уделяется таким технологиям организации распределенных вычислений, как CORBA, RMI и COM/DCOM. Также приводятся сведения о способах построения распределенных приложений на базе TCP/IP и HTTP. Авторы постарались охватить в этой книге все аспекты применения языка Java при создании систем уровня предприятия. Книга ориентирована в первую очередь на программистов средней и высокой квалификации, стремящихся повысить свой профессиональный уровень.

         Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2. Книга 3. Корпоративные системы, сервлеты, JSP, Web-сервисы [3]. Предлагаемая книга является переводом третьей части оригинального издания `Advanced Java 2 Platform How to Program`. Оригинал содержит более 1800 страниц, поэтому было принято решение русское издание разбить на три части. Первая часть посвящена созданию графического пользовательского интерфейса, двухмерной и трехмерной графике, компонентам JavaBeans, взаимодействию с базами данных. Вторая часть посвящена созданию распределенных приложений, а третья часть, которую вы держите в руках, посвящена созданию серверных приложений и корпоративных систем.

В первых главах книги рассматривается применение технологий сервлетов и JavaServer Pages для создания серверных приложений. После этого читатели познакомятся с технологиями Enterprise JavaBeans, J2ME, Java Message Service и SOAP, которые находят применение при создании корпоративных систем. Будут также рассмотрены некоторые популярные серверы приложений. Книга насыщена многочисленными примерами и упражнениями. Особое место занимает большой практический пример приложения для электронного бизнеса, в котором нашли отражение все рассматриваемые в книге технологии.

Брайан Хичкок. Sybase. Настольная книга администратора [4] научит простым, но эффективным методам планирования и документирования конфигурации серверов баз данных, настройки их производительности, резервирования и восстановления данных, распределения сегментов баз данных по серверным устройствам и создания оптимальных схем дисковых разделов. Постепенно, шаг за шагом, вы научитесь устанавливать новые версии серверов Sybase и управлять работой сложных информационных систем, которые содержат большое число серверов, нередко относящихся к разным поколениям систем управления базами данных Sybase. Неважно, какой именно сюрприз устроит завтра ваш сервер Sybase - потому что любые возможные проблемы подробно рассмотрены на страницах книги.

 


4. ТРЕБОВАНИЯ К СИСТЕМЕ

 

Определим следующие требования к разрабатываемой  системе:

·                    должна быть реализована возможность добавления записей об абитуриентах, оценках и экзаменах:

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

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

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

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

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

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

Для использования разработанной подсистемы на целевой платформы может быть установлена любая операционная система семейства Windows:  98, Millennium, 2000, XP.

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

В качестве технологий J2EE необходимо использовать EJB, JSP, Servlets.

Целевая СУБД - SYBASE 9.0.

Серверная часть приложений должна быть реализована в рамках контейнера SunApp Server 8.1.


5. РАЗРАБОТКА МЕТОДОВ И МОДЕЛЕЙ ПРЕДСТАВЛЕНИЯ СИСТЕМЫ

 

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

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

BPwin является мощным средством моделирования и документирования бизнес-процессов. Этот продукт использует технологию моделирования IDEF0 (Integration Definition for Function Modeling) - наиболее распространенный стандарт, который принят для моделирования бизнес-процессов. Этот стандарт был разработан в лаборатории военно-воздушных сил США в 1981 году и успешно использовался для разработки систем противовоздушной обороны.

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

Основными элементами диаграммы являются активности и дуги (стрелки), которые изображают взаимосвязи и отношения активностей друг с другом. Дуги могут быть нескольких типов: вход, выход, управление и ресурсы. На каждой диаграмме обычно располагается от 3 до 6 активностей, это обусловлено тем, что такое количество активностей является оптимальным для восприятия сознанием. Модель BPwin представляет собой набор иерархически связанных и упорядоченных диаграмм, каждая из которых является конкретизацией (декомпозицией) активности предыдущего верхнего уровня. Каждая модель имеет одну диаграмму верхнего уровня, которая содержит только одну активность, определяющую общую функцию моделируемого процесса. Модели имеют так называемые "точки зрения" (point of view), определяющие ракурс, под которым рассматривается процесс. Например, для рассмотрения процесса сдачи абитуриентами экзаменов может быть выбрана точка зрения методиста ВУЗа или самого абитуриента.

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

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

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

Рисунок 1 Контекстная диаграмма

Моделирование проводилось с точки зрения методиста ВУЗа.

Входы:

- список вступительных экзаменов – полная информация о вступительных испытаниях для абитуриентов

- список абитуриентов – полная анкетная информация о подавших заявления на зачисление в ВУЗ

- результаты вступительных экзаменов – ведомости

Контроль:

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

Механизмы:

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

Выходы:

- запись об оценке абитуриента по какому-то конкретному экзамену.

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

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


Существует множество технологий и инструментальных средств, с помощью которых можно реализовать в некотором смысле оптимальный проект ИС, начиная с этапа анализа и заканчивая созданием программного кода системы. В большинстве случаев эти технологии предъявляют весьма жесткие требования к процессу разработки и используемым ресурсам, а попытки трансформировать их под конкретные проекты оказываются безуспешными. Эти технологии представлены CASE-средствами верхнего уровня или CASE-средствами полного жизненного цикла (upper CASE tools или full life-cycle CASE tools). Они не позволяют оптимизировать деятельность на уровне отдельных элементов проекта, и, как следствие, многие разработчики перешли на так называемые CASE-средства нижнего уровня (lower CASE tools). Однако они столкнулись с новой проблемой — проблемой организации взаимодействия между различными командами, реализующими проект.

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

Мощный толчок к разработке этого направления информационных технологий дало распространение объектно-ориентированных языков программирования в конце 1980-х — начале 1990-х годов. Пользователям хотелось получить единый язык моделирования, который объединил бы в себе всю мощь объектно-ориентированного подхода и давал бы четкую модель системы, отражающую все ее значимые стороны. К середине девяностых явными лидерами в этой области стали методы Booch (Grady Booch), OMT-2 (Jim Rumbaugh), OOSE — Object-Oriented Software Engineering (Ivar Jacobson). Однако эти три метода имели свои сильные и слабые стороны: OOSE был лучшим на стадии анализа проблемной области и анализа требований к системе, OMT-2 был наиболее предпочтителен на стадиях анализа и разработки информационных систем, Booch лучше всего подходил для стадий дизайна и разработки.

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

Создание UML началось в октябре 1994 г., когда Джим Рамбо и Гради Буч из Rational Software Corporation стали работать над объединением своих методов OMT и Booch. Осенью 1995 г. увидела свет первая черновая версия объединенной методологии, которую они назвали Unified Method 0.8. После присоединения в конце 1995 г. к Rational Software Corporation Айвара Якобсона и его фирмы Objectory, усилия трех создателей наиболее распространенных объектно-ориентированных методологий были объединены и направлены на создание UML.

В настоящее время консорциум пользователей UML Partners включает в себя представителей таких грандов информационных технологий, как Rational Software, Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Unisys, IntelliCorp, Platinum Technology.

UML представляет собой объектно-ориентированный язык моделирования, обладающий следующими основными характеристиками:

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

- содержит механизмы расширения и специализации базовых концепций языка.

UML — это стандартная нотация визуального моделирования программных систем, принятая консорциумом Object Managing Group (OMG) осенью 1997 г., и на сегодняшний день она поддерживается многими объектно-ориентированными CASE-продуктами.

 

UML включает внутренний набор средств моделирования (модулей?) ("ядро"), которые сейчас приняты во многих методах и средствах моделирования. Эти концепции необходимы в большинстве прикладных задач, хотя не каждая концепция необходима в каждой части каждого приложения. Пользователям языка предоставлены возможности:

- строить модели на основе средств ядра, без использования механизмов расширения для большинства типовых приложений;

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

В ходе выполнения курсовой работы были созданы следующие диаграммы UML:

1) Диаграмма вариантов использования подсистемы учета и регистрации результатов сдачи абитуриентами вступительных экзаменов

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

3) Диаграмма состояний работы ПО в целом

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

5) Диаграмма компонентов

6) Диаграмма развертывания приложения.

Все диаграммы приведены в виде скриншотов в приложениях к курсовой работы.


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

Моделирование Erwin более подробно рассматривается в следующем разделе.


6. РАЗРАБОТКА И ПОСТРОЕНИЕ ИНФОРМАЦИОННОЙ МОДЕЛИ

 

При построении информационной модели применялся стандарт IDEF1x, поддерживаемый инструментальной средой Erwin фирмы LogicWorks . ERWin‑ средство разработки структуры базы данных (БД). ERwin сочетает графический интерфейс Windows, инструменты для построения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных СУБД и настольных баз данных.

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

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

Целевая СУБД, имена объектов и типы данных, индексы составляют второй (физический) уровень модели ERwin.

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

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

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

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

Режим "определение сущности" служит для презентации диаграммы другим людям.

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

Режим "первичные ключи" - внутри прямоугольников - сущностей показываются только атрибуты/колонки, составляющие первичный ключ.

Режим "пиктограммы". Для презентационных целей каждой таблице может быть поставлена в соответствие пиктограмма (bitmap).

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

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

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

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

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

- редакторы атрибутов (определение атрибутов, колонки таблицы в физическом представлении модели, репозитарий средства 4GL, например, расширенные атрибуты в PowerBuilder ).

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

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

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

- атрибуты, составляющие первичный ключ;

- неключевые атрибуты;

- тип сущности (независимая/зависимая).

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

Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.

Экземпляры независимой сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами.

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

- тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);

- родительская сущность;

- дочерняя (зависимая) сущность;

- мощность связи (cardinality);

- допустимость пустых (null) значений.

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

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

Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.

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

Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность "посредническая сделка" имеет атрибут "код предприятия-продавца" и "код предприятия-покупателя". В данном случае первичный ключ сущности "предприятие" ("код предприятия") имеет две роли в дочерней сущности.

На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.

Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.

ERwin в соответствии с методологией IDEF1X предоставляет 4 варианта для n, которые изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по умолчанию); ноль или один; ровно N, где N - конкретное число.

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

Имя связи на логическом уровне представляет собой "глагол", связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERwin означает имя ограничения (constraint) или индекса.

Все объекты модели ERwin могут редактироваться средствами, принятыми в Windows - группировка, копирование, удаление, перемещение, использование системного буфера. Установка цветов и шрифтов осуществляется в удобных диалогах.

Компоненты модели, представленные текстом (имена сущностей, атрибутов, текстовые элементы) могут редактироваться непосредственно на экране.

Обычно модели ERwin сохраняются на диск в виде файла. Имеется возможность хранить модель в целевой СУБД. Для этого с помощью самого ERwin в целевой СУБД создается метабаза ERwin. В этой базе данных сохраняется информация модели. В частном случае базой данных могут быть и dBase-файлы, с которыми ERwin работает через ODBC.

Обратное проектирование, то есть восстановление информационной модели по существующей базе данных, используется при выборе оптимальной платформы (rightsizing) для существующей настольной (desktop) базы данных или базы данных на mainframe, а также при расширении (или модификации) существующей структуры, которая была построена без необходимой сопроводительной документации. После завершения процесса восстановления модели ERwin автоматически "раскладывает" таблицы на диаграмме. Теперь можно выполнять модификации уже с использованием логической схемы - добавлять сущности, атрибуты, комментарии, связи и т.д. По завершении изменений одна команда - синхронизировать модель с базой данных - актуализирует все проведенные изменения.

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

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

Для этого предусмотрена функция синхронизации с базой данных. После подключения к СУБД предлагается список несоответствий между существующей структурой данных и моделью. Например, если в базе данных создана новая таблица, то ERwin предложит провести включение ее в модель. Если в модель добавлена новая таблица, ERwin предложит создать ее в реальной базе данных. Аналогично, при добавлении колонок в базе данных или в модели ERwin предлагает провести соответствующие операции по синхронизации.

ERwin поддерживает прямой интерфейс с основными СУБД: DB2 версии 2 и 3, Informix версий 5.1, 6.0, 7.1, Ingres, NetWare SQL, ORACLE версий 6 и 7, Progress, Rdb версий 4 и 6, SQL/400 версий 2 и 3, SQLBase версий 5 и 6, SQL Server версий 4 и 6, Sybase версии 4.2, Sybase System 10 и 11, Watcom SQL. Отметим, что поддерживаются как самые современные, так и предыдущие версии основных СУБД.

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

Рисунок 2 Логический уровень

 

Процесс построения информационной модели состоит из следующих шагов:

·                   определение сущностей;

Были определены сущности:

- Enrollee – сведения об абитуриенте

- Subject – сведения об экзамене

- Mark – сведения об оценке, полученной абитуриентом по результату конкретного экзамена

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

Сущности Enrollee и Subject являются родительскими по отношению к дочерней сущности Mark. Тип связей – идентифицирующие, кардинальность (порядок): 0…N

·                   задание первичных и альтернативных ключей;

Первичные ключи:

- Enrollee –EnrolleeID

- Subject – SubjectID

- Mark – EnrolleeID, SubjectID, MarkID (составной ключ).

·                   определение атрибутов сущностей;

Атрибуты сущностей и их порядок в точности соответствуют описанным атрибутам в первом разделе данной записки.

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

Разработанная модель находится в 3НФ. При этом можно считать такой атрибут, как ФИО абитуриента, атомарным (проверка требований 1НФ для сущности Enrollee).

·                   переход к физическому описанию модели - назначение соответствий: имя сущности — имя таблицы, атрибут сущности — атрибут таблицы; задание триггеров, процедур и ограничений;

·                   генерация базы данных.

Генерация БД SyBase осуществлялась посредством инструмента Forward Engineering, предоставляемого Erwin. При этом соединение с БД осуществлялось посредством ODBC.

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

Наполнение БД данными проводилось средствами Sybase Central.


7.ОБОСНОВАНИЕ ПРИНИМАЕМЫХ РЕШЕНИЙ ПО ВЫБОРУ ТЕХНИЧЕСКИХ И ПРОГРАМНЫХ СРЕДСТВ РЕАЛИЗАЦИИ

К программным средствам, выбранным для решения поставленной перед нами задачи относятся:

·                   Enterprise Architect

·                   NetBeans 5.5

·                   JDK 1.5

·                    Sun AppServer 8

Enterprise Architect - это мощный набор UML-инструментов для разработки программного обеспечения через стадии анализа, модели дизайна, испытания и внедрения. Enterprise Architect - это многопользовательский графический инструмент, разработанный для того, чтобы создавать устойчивое и удобное в использовании программное обеспечение.

Enterprise Architect объединяет в себе силу языка UML 2.0 с высокоэффективным, понятным интерфейсом. Данная программа дает возможность расширенного моделирования на рабочем столе, разработки и созданию групп. Обеспечена полная поддержка всех 13-и видов диаграмма стандарта UML 2.0.

NetBeans Platform — это универсальная среда поддержки создания настольных приложений. Она реализована на Java и, соответственно, может работать с любой операционной системой (в частности, Solaris, Windows, Linux, Macintosh), на которой имеется Java 2 Virtual Machine (версии 1.3 и выше). С точки зрения разработчика, эта среда представляет собой открытый набор API, реализующий верхний уровень общих сервисов (поверх Java-машины) — управление визуальным интерфейсом, работа с памятью, доступ к файловой системе и т. д.

NetBeans IDE — это собственно среда разработки, построенная по модульному принципу на базе NetBeans Platform и расширяемая в том числе за счет подключения внешних плагинов. В своем стандартном варианте она может применяться для создания кроссплатформенных настольных, Web- и мобильных приложений. На ее базе можно построить полномасштабную систему разработки решений любого уровня сложности для всего жизненного цикла ПО.

Основным преимуществом использования NetBeans для выполнения курсовой работы являются возможности Web-разработки. Расширенная поддержка стандартов J2EE как версии 1.3, так и 1.4 облегчила использование готовых ресурсов и структур для создания Web-приложения учета сдачи абитуриентами вступительных экзаменов.

Язык Java - это объектно-ориентированный язык программирования, созданный фирмой Sun для разработки программ, распространяемых по сети Internet.

Система программирования Java может служить основой для совместной разработки больших программных систем коллективом разработчиков, связанных между собой только через WWW (они и знакомы между собой могут быть лишь заочно, через e-mail, а когда они наконец повстречаются где-нибудь на международном симпозиуме, в их активе уже может быть совместно разработанная программная система). Java и WWW являются первыми системами, обеспечивающими такую возможность, поэтому их внедрение и распространение многие программисты справедливо называют революцией в разработке программного обеспечения. Ясно, что ведущую роль в обеспечении указанной возможности играет именно Java, так как именно Java позволяет распространять не просто тексты, а работающие программы и их фрагменты (апплеты) по WWW

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

Главным козырем языка Java является платформенная независимость, т.е. код, написанный в среде Windows, без всяких изменений будет работать в среде Linux и т.п. Это обеспечивается тем, что скомпилированные файлы JAVA представляют собой не самостоятельно исполняемый код, а так называемый байт-код, который исполняется виртуальной машиной JAVA, индивидуальной для каждой платформы.


8. ОПИСАНИЕ АЛГОРИТМОВ ПРОГРАММНЫХ МОДУЛЕЙ

 

Обобщенный алгоритм работы клиента показан на рис. 1.

Рис. 1. Обобщенный алгоритм работы.

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

1)                              клиент обращается посредством веб-браузера по ссылке в Интернете

2)                              сервер приложений обрабатывает запрос пользователя, выполняя ту или иную JSP-страницу

3)                              в ходе обработки запроса клиента осуществляется обращение к EJB, отражающим сущности предметной области

4)                              для обработки запросов клиента через бизнес-методы компонентов EJB Осуществляется обмен данных с СУБД Sybase

5)                              работа с БД осуществляется по протоколу JDBC посредством пула JDBC-соединений Sun Application Server

 


9. ОПИСАНИЕ ТЕСТОВОГО ПРИМЕРА. РУКОВОДСТВА ПОЛЬЗОВАТЕЛЯ

 

Для запуска разработанного программного средства вначале необходимо зарегистрировать в настроить connection pool для сервера базы данных с именем studentPool и JNDI-name для базы с именем jdbc/student.

Подключение производиться по url:

http://localhost:8080/student/index. jsp

Работать необходимо в Internet Explorer (поддержка javascript и css).

При запуске клиента появляется окно, показанное на рис. 4. На данном рисунке видны возможности, которыми обладает клиент.

Рис. 4. Основное окно веб-клиента.

 

Логика приложения организована следующим образом. Отображены 3 сущности с соответствующими им кнопками управления:

1.     Список предметов

2.     Список абитуриентов

3.     Полученные оценки

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

Рис. 5. Выбор добавления предмета.

Чтобы  добавить новую запись, необходимо нажать на 1-ую кнопку. В результате мы перейдем на форму, в которой будет предложено заполнить соответствующие поля (рис.6). При нажатии кнопки «Принять» данные будут внесены в базу. При нажатии кнопки «Отклонить» данные внесены не будут, и мы перейдем на главную форму.

Рис. 6. Форма заполнения данных по предмету.

Результат ввода представлен на рис. 7.

Рис. 7. Отображение результатов ввода.

Выберем запись для корректировки (рис.8).

Рис.8. Выбор записи для корректировки.

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

Рис. 9. Корректировка записи.

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

Рис. 10. Результат корректировки записи.

Как только данная кнопка была нажата, мы перейдем на форму, на которой будет выведена вся информация по удаляемой записи (рис. 11).

Рис. 11. Форма, подтверждения удаления записи.

Чтобы  добавить новую запись по абитуриентам, необходимо нажать на 1-ую кнопку из перечня кнопок, реализующим работу с записями по абитуриентам (рис. 12).

Рис.12. Добавление записи о травмах

Как только мы нажали кнопку, мы переходим на форму ввода новых данных (рис.13).

Рис. 13. Добавление новой записи по абитуриентам

 

Результат ввода представлен на рис. 14.

Рис. 14. Результат добавления абитуриента.

Чтобы откорректировать запись об абитуриенте необходимо нажать соответствующую кнопку (рис. 15).

Рис. 15. Выбор корректировки записи о травме.

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

Рис. 16. Выбор записи для удаления.

 

Как только данная кнопка была нажата, мы перейдем на форму, на которой будет выведена вся информация по удаляемой записи (рис. 17).

Рис. 17. Данные по удаляемой записи.

Вывод оценок осуществляется 3-мя способами:

1.     Вывод всех оценок по абитуриенту (рис. 18)

2.     Вывод всех оценок по предмету (рис. 19)

3.     Вывод всех оценок по абитуриенту и по предмету (рис. 20)

 

Рис. 18. Вывод всех оценок по абитуриенту.

Рис. 19 Вывод всех оценок по предмету.

Рис. 20. Вывод полученной и минимальной оценки.

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

Рис. 21. Добавление данных по полученной оценке.

Как только мы нажали данную кнопку, мы переходим на форму ввода новых данных (рис.22).

        

Рис. 22.Добавление записи.

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

Рис. 23. Выбор удаления записи.

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


10. ОПИСАНИЕ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ

 

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

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

1) возможность доступа к функциям просмотра, сортировки и поиска записей со стороны абитуриентов через общие каналы Интернет, что позволит абитуриентам получать результаты сдачи ими экзаменов

2) возможность автоматизированного принятия решения о зачислении/незачислении того или иного абитуриента на основании списка льготников, назначении весов определенным факторам, влияющим на приоритет зачисления и т.п.

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

Дополнительно в результате выполнения данного курсового проекта были получены и закреплены на практике навыки в работе с языком  JAVA, UML, методиками проектирования IDEF0, IDEF1x, СУБД SQL Anywhere 9 и технологией EJB .


ВЫВОДЫ И ЗАКЛЮЧЕНИЯ

 

В результате выполнения курсового проекта была разработана подсистема учета и регистрация результатов сдачи абитуриентами вступительных экзаменов. Программа реализована с использованием языка программирования Java, технологий J2EE и Sun Asperser 8 / SQL Anywhere 9.

Доступ к функциям программы осуществляется при помощи веб-клиента.

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

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

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

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

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

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

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

 


ЛИТЕРАТУРА

 

1. Питер Вейнер. Java и JavaScript. – Лори, 2006 г., 256 с.

2. Пол Дж. Перроун, Венката С. Р. `Кришна` Р. Чаганти. Создание корпоративных систем на основе Java 2 Enterprise Edition. Руководство разработчика. – Питер, 2001 г., 1184 с.

3. Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2. Книга 3. Корпоративные системы, сервлеты, JSP, Web-сервисы. – Бином-Пресс, 2003 г., 672 с.

4. Брайан Хичкок. Sybase. Настольная книга администратора. – Лори, 2005 г., 648 с.

5. Мартин Фаулер. UML. Основы. Третье издание. Краткое руководство по стандартному языку объектного моделирования. – Лори, 2006 г., 192 с.

6. Р. Мюллер. Базы данных и UML: Проектирование.– Лори, 2002г. 432

7. http://www.ianywhere.com/

8. http://www.java.sun.com

 



 ПРИЛОЖЕНИЯ

 

Рис. 24. Диаграмма IDEF0. Верхний уровень

 

Рис. 25. Диаграмма IDEF0. Уровень 0 – Разработка подсистемы учета и регистрации результатов сдачи абитуриентами вступительных экзаменов

 

Рис. 26. Диаграмма IDEF0. Уровень 1 – Разработать

session-компонент

 

Рис. 27. Диаграмма IDEF0. Уровень 1 – Разработать

Web-клиент


Рис. 28. Диаграмма IDEF0. Контекстная диаграмма

 

Рис. 29. Диаграмма IDEF0. Уровень 0 – Учет и регистрация оценок абитуриентов

 

Рис. 30. Диаграмма IDEF0. Уровень 1 – Учет и регистрация экзаменов

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

Рис. 31. Диаграмма IDEF0. Уровень 1 – Учет и регистрация абитуриентов

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

- список льготников – список категорий льготников

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

Рис. 32. Диаграмма IDEF0. Уровень 1 – Добавление записи об оценках

Рис. 33. Диаграмма IDEF1х (ERWin). Логический уровень

Рис. 34. Диаграмма IDEF1х (Erwin). Физический уровень

 

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

 

 

Рис. 36. Диаграмма классов сервера

 

Рис. 37. Диаграмма компонентов приложения

Рис. 38. Диаграмма развертывания

Рис. 39 Диаграмма последовательностей (добавление сведений об оценке)

Рис. 40 Диаграмма состояний (добавление записи в какую-либо из таблиц)

 
ЛИСТИНГ

В качестве примера приведем код JSP-страницы «index.jsp»

 

<%@ page import="java.util.Enumeration"%>

<%@ page import="sesionClient.*"%>

<%@page contentType="text/html; charset=CP1251" language="java"%>

 

<html>

  <head><title>Подсистема учета и регистрации книг в библиотеке</title></head>

 

  <script src="script/action.js" type="text/javascript">

  </script>

 

  <body background="img/Background.jpg">

<%

  Enumeration reqEnum = request.getParameterNames();

  String reqEnumStr = "mainForm request enumeration \n";

  while(reqEnum.hasMoreElements()) {

    Object param = reqEnum.nextElement();

    reqEnumStr+=param + " - "+request.getParameter(param.toString())+"\n";

  }

  System.out.println(reqEnumStr);

%>

<%@include file="/include.jnc"%>

<%

  request.setCharacterEncoding("cp1252");

 

  sesClientRemote sR;

  try {

    sesClientHome clientH = (sesClientHome)lookupHome("java:comp/env/SesClientBean", sesClientHome.class);

    sR = clientH.create();

  } catch(Exception e) {

    out.println(e.getMessage());

    e.printStackTrace();

    return;

  }

%>

<form id="studentForm" action="indexcorrect.jsp" method="post">

<table width="100%">

<tr>

  <td>

    <%

      String[][] subjectRecords = sR.getAllSubject();

      String[][] studentRecords = sR.getAllStudent();

 

      String sbID = request.getParameter("sbID")==null?"":request.getParameter("sbID");

      if(sbID.equals("")) {

        if(subjectRecords!=null && subjectRecords.length!=0) {

          sbID = subjectRecords[0][0];

        }

      }

      String sdID = request.getParameter("sdID")==null?"":request.getParameter("sdID");

      if(sdID.equals("")) {

        if(studentRecords!=null && studentRecords.length!=0) {

          sdID = studentRecords[0][0];

        }

      }

 

 

      out.println("<table><tr>");

      out.println("<td width=205>");

      out.println("<H3>Предмет:</H3>");

      out.println("<SELECT style='width=200' name='subject' SIZE=1>");

      if(subjectRecords!=null)

        for(int i=0;i<subjectRecords.length;i++) {

          String option = "<OPTION VALUE=\""+subjectRecords[i][0]+"\" ";

          if(sbID.equals(subjectRecords[i][0]))

            option+="SELECTED";

          option+=">"+subjectRecords[i][1]+"</OPTION>";

          out.println(option);

        }

      out.println("</SELECT>");

      out.println("</td>");

    %>

    <td>

      <table border="0" cellspacing="0" cellpadding="0">

        <tr>

          <img src="img/subject_action_b1.jpg" name="subject_action_b1" border=0

               onmouseover="turn_over('subject_action_b1')"

               onmouseout="turn_off('subject_action_b1')"

               onclick="doAddsubject()"/>

        </tr><tr>

          <img src="img/subject_action_b3.jpg" name="subject_action_b3" border=0

               onmouseover="turn_over('subject_action_b3')"

               onmouseout="turn_off('subject_action_b3')"

               onclick="doEditsubject()"/>

        </tr><tr>

          <img src="img/subject_action_b2.jpg" name="subject_action_b2" border=0

               onmouseover="turn_over('subject_action_b2')"

               onmouseout="turn_off('subject_action_b2')"

               onclick="doDeletesubject()"/>

        </tr>

      </table>

    </td>

    <td width="5%"/>

    <%

      out.println("<td width=205>");

      out.println("<H3>Студент:</H3>");

      out.println("<SELECT style='width=200' name='student' SIZE=1>");

      if(studentRecords!=null)

        for(int i=0;i<studentRecords.length;i++) {

          String option = "<OPTION VALUE=\""+studentRecords[i][0]+"\" ";

          if(sdID.equals(studentRecords[i][0]))

            option+="SELECTED";

          option+=">"+studentRecords[i][1]+"</OPTION>";

          out.println(option);

        }

      out.println("</SELECT>");

      out.println("</td>");

      %>

 

    <td>

      <table border="0" cellspacing="0" cellpadding="0">

        <tr>

          <img src="img/student_action_b1.jpg" name="student_action_b1" border=0

               onmouseover="turn_over('student_action_b1')"

               onmouseout="turn_off('student_action_b1')"

               onclick="doAddStudent()"/>

        </tr><tr>

          <img src="img/student_action_b3.jpg" name="student_action_b3" border=0

               onmouseover="turn_over('student_action_b3')"

               onmouseout="turn_off('student_action_b3')"

               onclick="doEditStudent()"/>

        </tr><tr>

          <img src="img/student_action_b2.jpg" name="student_action_b2" border=0

               onmouseover="turn_over('student_action_b2')"

               onmouseout="turn_off('student_action_b2')"

               onclick="doDeleteStudent()"/>

        </tr>

      </table>

    </td>

      <%

      out.println("<td>&nbsp</td>");

      out.println("</tr></table>");

 

      String markID = request.getParameter("markID")==null ?  ""  : request.getParameter("markID");

      String view  = request.getParameter("view")==null ?   "0" : request.getParameter("view");

 

    %>

  </td>

 

</tr>

<tr style="height:20"/>

<tr>

  <td>

    <H3>Полученные оценки</H3>

 

    <%

    /**

     * select object(m) from mark m where m.student = ?1 order by m.markValue

     *

     * select object(m) from mark m where m.subject = ?1 order by m.markValue

     *

     * select object(m) from mark m where m.subject = ?1 and m.student = ?2 order by m.markValue

     * */

 

      String markFind = request.getParameter("markFind");

      if(markFind==null) markFind = "";

      String[] options = new String[] {"","5","4","3","2","Зачет","Незачет"};

      out.println("<SELECT style='width=200' name='markFind' SIZE=1>");

      for(int i=0;i<options.length;i++) {

        String option = "<OPTION VALUE=\""+options[i]+"\" ";

        if(markFind.equals(options[i]))

          option+="SELECTED";

        option+=">"+options[i]+"</OPTION>";

        out.println(option);

      }

      out.println("</SELECT>");

    %>

    <input type="button" value="Поиск по оценке" onclick="doSearch()">

      <div style="width:100%; height:200; overflow-y:scroll;" align='center'>

        <table border=1 id='markTable' width='100%'>

          <tr>

            <%if(view.equals("1")) { %>

              <th>Студент</th><th>Номер группы</th><th>Номер зачетки</th><th>Результат</th>

            <%} else if(view.equals("0")) { %>

              <th>Код</th><th>Наименование предмета</th><th>Результат</th>

            <%} else if(view.equals("2")) { %>

              <th>Код</th><th>Результат</th>

            <%}%>

          </tr>

            <%

              String[][] markRecords = null;

              if(view.equals("1")) {

                if(!sbID.equals(""))

                  markRecords = sR.getAllMarkBySubject(new Integer(sbID), markFind);

              } else if(view.equals("0")) {

                if(!sdID.equals(""))

                  markRecords = sR.getAllMarkByStudent(new Integer(sdID), markFind);

              } else if(view.equals("2")) {

                if(!sbID.equals("") && !sdID.equals(""))

                  markRecords = sR.getAllMarkBySubjectAndStudent(new Integer(sbID),new Integer(sdID), markFind);

              } else {

                markRecords = null; // ?

              }

 

              if(markRecords!=null) {

                for(int i=0;i<markRecords.length;i++) { %>

                  <tr bgcolor="" id='mark<%=markRecords[i][0]%>' onclick='onObjectClick()' onmousemove='onObjectOver()' onmouseout='onObjectOut()'>

                    <% for (int j=1;j<markRecords[i].length;j++) {%>

                      <td><%=markRecords[i][j]%></td>

                    <%}%>

                  </tr>

                <%

                }

              }

            %>

        </table>

      </div>

      <br/>

      <table border="0" cellspacing="0" cellpadding="0">

        <tr><td>

          <img src="img/mark_action_b1.jpg" name="mark_action_b1" border=0

               onmouseover="turn_over('mark_action_b1')"

               onmouseout="turn_off('mark_action_b1')"

               onclick="doAddmark()"/>

        </td><td>

          <img src="img/mark_action_b2.jpg" name="mark_action_b2" border=0

               onmouseover="turn_over('mark_action_b2')"

               onmouseout="turn_off('mark_action_b2')"

               onclick="doDeletemark()"/>

        </td><td>

          <img src="img/mark_action_b3.jpg" name="mark_action_b3" border=0

               onmouseover="turn_over('mark_action_b3')"

               onmouseout="turn_off('mark_action_b3')"

               onclick="doEditmark()"/>

        </td></tr>

 

        <tr><td>

          <img src="img/show_b1.jpg" name="show_b1" border=0

               onmouseover="turn_over('show_b1')"

               onmouseout="turn_off('show_b1')"

               onclick="doShowSubject()"/>

        </td><td>

          <img src="img/show_b2.jpg" name="show_b2" border=0

               onmouseover="turn_over('show_b2')"

               onmouseout="turn_off('show_b2')"

               onclick="doShowStudent()"/>

        </td><td>

          <img src="img/show_b3.jpg" name="show_b3" border=0

               onmouseover="turn_over('show_b3')"

               onmouseout="turn_off('show_b3')"

               onclick="doShowAll()"/>

        </td></tr>

 

       </table>

 

  </td>

  <td>&nbsp</td>

</tr>

</table>

 

<input type="hidden" name="sbID"  value="<%=sbID%>"/>

<input type="hidden" name="sdID"  value="<%=sdID%>"/>

<input type="hidden" name="markID" value="<%=markID%>"/>

<input type="hidden" name="view" value="<%=view%>"/>

<input type="hidden" name="action"/>

<input type="hidden" name="target"/>

 

</form>

</body>

</html>

Внимание! Для данной работы приложения платные. С их описанием и стоимостью можно ознакомиться здесь

Описание приложений!



Скачать курсовую

Задать вопрос                                                      




Если у вас появилось непреодолимое желание пожертвовать средства на развитие сайта или отблагодарить владельца за бесценный материал :), можете перевести любую сумму на кошелек R200818721914 или Z890150328460.

© studlight 2011-2014