Разработка системы автоматизации работы приемной комиссии

Разработка программной системы автоматизации работы приемной комиссии. Выбор CASE-средства проектирования базы данных. Разграничение доступа к записям таблиц. Триггеры и функции БД. Выбор интерфейса программирования. Разработка классов и структур данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.03.2012
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Классы CFaculty, CSpecial, CBases, CExam, CDPUser, CAbiturient предназначены для хранения информации об соответствующих сущностях в базе данных. Являются производными от класса, CDBBase который содержит информацию, которая единая для всех выше приведенных классов (m_nChanged, m_nDeleted - флаги, говорящие о том, что данная запись была изменена в процессе работы программы, и эти изменения необходимо произвести и в БД, m_nId - ключевое поле записи). Класс CDBBase не является ничьим потомком.

Все методы и данные этих классов имеют атрибут доступа public (фактически это структуры).

Класс CDb реализует интерфейс ODBC для доступа к базе данных. Он включает в себя экземпляр класс ODatabase, через который осуществляется связь с драйвером ODBC Oracle. Данный класс взят из пакета Oracle. Реализация данного класса находится в библиотеке oraclm32.lib, которую необходимо включить в список подключаемых библиотек.

Данный класс содержит следующие основные методы:

· CDb - конструктор. Осуществляет инициализацию библиотеки доступа к драйверу ODBC Oracle.

· ~CDb - деструктор. Осуществляет закрытие БД (если она открыта).

· OpenDB, Close - осуществляют подключение/отключение к.от БД:

· Add(const CFaculty&) (Add(XXX)) - набор функций, осуществляющих добавление новой информации в БД. В качестве параметра передается константная ссылка на класс с информацией, которую необходимо занести в базу данных.

· GetAllFaculty(vector<CFaculty>&) (GetAllXXX) - набор функций, осуществляющий выборку информации из таблиц. В качестве параметра передается ссылка на вектор, в котором будет сохраняться информация.

· GetxxxFaculty(vector<CFaculty>&) - набор функций, осуществляющий выборку информации из таблиц по какому-то критерию отбора. В качестве параметра передается ссылка на вектор, в котором будет сохраняться информация.

· UpdateFaculty(const CFaculty&) (UpdateXXX) - - набор функций, осуществляющих изменение информации в БД. В качестве параметра передается константная ссылка на класс с информацией, которую необходимо изменить.

· GetUserPriv() - возвращает категорию пользователя, подключившегося к БД.

Рис 4.4. Состав пакета Database

Пакет Dialogs

Состав пакета приведен на рисунке 4.5. Классы данного пакета реализуют «дружественный интерфейс» программы с пользователем.

Основным классом пакета является COtborDlg - главное диалоговое окно программы. На нем расположены все основные управляющие элементы. Так как информации для обработки много, введены на основное окно закладки, с помощью которых выбирается тип выводимой информации. Таких закладок 5: Абитуриенты, Участники олимпиад, Факультеты, Специальности, Базы, Экзамены (последние четыре доступны только если вход осуществил Администратор центральной приемной комиссии). Основное окно разделено на 2 зоны - в первой выводится список записей, во второй - детальная информация о выбранной записи.

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

· m_listDPUser - CDPUserList (список с участниками олимпиад)

· m_listAbit - CAbitList (список абитуриентов)

· m_listFaculty - CFacultyList (список факультетов)

· m_listSpec - CSpecList (список специальностей)

· m_listBase - CBaseList (список баз)

· m_listExam - CExamList (список экзаменов)

Кроме списка, на главном окне присутствует набор кнопок (Add, Delete, Update), с помощью которых вызывается диалог изменения выбранной информации из списка, и набор строк и таблиц с информацией о выбранном элементе из списка.

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

Класс COtborDlg включает экземпляр класса CDb.

Рис 4.5. Состав пакета Dialogs

Основные методы класса COtborDlg:

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

· OnPrint(), OnPrintPreview(), PrintSetup() - набор методов для печати (печать на принтер, предварительный просмотр, настройка принтера).

· OnSave() - сохранение выбранного списка в файл в формате rtf.

· OnSelchangeTab() - обработчик изменения выбранной закладки. Изменяет информацию, выводимую на основное диалоговое окно.

· OnClickListCtrl() - обработчик одинарного щелчка на списке. Выводи информацию о выбранном элементе списка.

· OnDblClickListCtrl() - обработчик двойного щелчка на списке. Выводит диалог для редактирования выбранного элемента списка.

· OnAdd(), OnDelete(), OnUpdate() - обработчики нажатия кнопок добавления, удаления и изменения выбранного элемента списка.

· OnKeyPressed() - обработка нажатия кнопок клавиатуры. В ней реализуются клавиши управления списком и быстрые клавиши доступа к элементам меню.

· OnChangeSelection() - метод для изменения параметров сортировки списка и критериев отбора.

Классы CFacultyDlg, CBaseDlg, CExamDlg, CExamResultDlg, CDPUserDlg, CAbitDlg, CAbitSpecDlg предназначены для изменения информации о факультете, базе, экзамене, участнике олимпиад или абитуриенте. Являются производными от CDialog библиотеки MFC. С каждым из классов связан ресурс типа «диалог», на котором расположены основные элементы управления.

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

· m_editName - экземпляр CEdit (MFC) для ввода имени факультета;

· m_editNum - экземпляр CIntEdit (локальный класс) для ввода номера факультета.

Основные методы класса:

· GetFaculty(CFaculty* stFaculty) - метод возвращает класс CFaculty с введенные значениями. Методу передается уже сконструированный объект, в который копируются значения из локальной переменной.

· SetFaculty(const CFaculty* stFaculty) - метод передает в класс значения, которые необходимо установить по умолчанию. Данные из класса копируются в локальную переменную. Используется при изменении параметров уже существующего класса.

· OnInitDialog() - метод вызывается при инициализации диалога. Заполняет визуальные компоненты диалога информацией из локальной переменной.

· OnOk() - метод вызывается при нажатии кнопки ОК. Проверяет правильность введенной информации и копирует ее из визуальных компонентов в локальную переменную. Если информация неправильная, то выводит сообщение пользователю и продолжает выполнять диалог.

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

· m_editName - экземпляр CEdit (MFC) для ввода имени специальности;

· m_editNum - экземпляр CIntEdit (локальный класс) для ввода номера специальности.

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

Основные методы класса:

· GetSpecial(CSpecial* stSpecial) - метод возвращает класс CSpecial с введенные значениями.

· SetSpecial(const CSpecial* stSpecial, const vector<CFaculty>* pFacultys) - метод передает в класс значения, которые необходимо установить по умолчанию и список существующих факультетов.

· OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

Диалоговое окно класса CBaseDlg используется для просмотра и изменения параметров Базы проведения экзаменов и содержит в себе следующие управляющие элементы:

· m_editName - экземпляр CEdit (MFC) для ввода имени базы;

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

Основные методы класса:

· GetBase(CBase* stBase) - метод возвращает класс CBase с введенные значениями.

· SetBase(const CBase* stBase, const vector<CFaculty>* pFacultys) - метод передает в класс значения, которые необходимо установить по умолчанию и список существующих факультетов.

· OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

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

· m_editDate - экземпляр CEdit (MFC) для ввода даты проведения экзамена ;

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

Основные методы класса:

· GetExam(CExam* stExam) - метод возвращает класс CExam с введенные значениями.

· SetExam(const CExam* stExam, const vector<CBase>* pBases) - метод передает в класс значения, которые необходимо установить по умолчанию и список существующих баз.

· OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

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

· m_editFirstName - экземпляр CEdit (MFC) для ввода фамилии участника олимпиады;

· m_editLastName - экземпляр CEdit (MFC) для ввода имени участника олимпиады;

· m_editMiddleName - экземпляр CEdit (MFC) для ввода отчества участника олимпиады;

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

· m_listExamResult - список с результатами олимпиад и экзаменов (только для чтения).

· m_btAddExamResult, m_btDelExamResult, m_btUpdateExamResult - кнопки для ввода, изменения или удаления результатов экзаменов.

Основные методы класса:

· GetDPUser (CDPUser* stDPUser, vector<CExamResult>* pExamResults) - метод возвращает класс CDPUser с введенные значениями и вектор с результатами экзаменов.

· SetDPUser (const CDPUser* stDPUser, const vector<CExamResult>* pExamResults) - метод передает в класс значения, которые необходимо установить по.

· OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

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

· m_editMath - экземпляр CIntEdit для ввода результата по математике;

· m_editDikt - экземпляр CIntEdit для ввода результата по диктанту;

· m_listFaculty - выпадающий список факультетов, на который пишется экзамен (используется только для чтения);

· m_listExam - выпадающий список экзаменов (используется только для чтения).

Основные методы класса:

· GetExamResul(CExamResul* stExamResul) - метод возвращает класс CExamResul с введенные значениями.

· SetExamResul(const CExamResul* stExamResul, const vector<CFaculty>* pFacultys, const vector<CExam>* pExams) - метод передает в класс значения, которые необходимо установить по умолчанию, список существующих экзаменов и список существующих факультетов.

· OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

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

· m_editNum - экземпляр CIntEdit для ввода номера дела;

· m_editFirstName - экземпляр CEdit (MFC) для ввода фамилии абитуриента;

· m_editLastName - экземпляр CEdit (MFC) для ввода имени абитуриента;

· m_editMiddleName - экземпляр CEdit (MFC) для ввода отчества абитуриента;

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

· m_listExamResult - список с результатами олимпиад и экзаменов (только для чтения);

· m_btAddExamResult, m_btDelExamResult, m_btUpdateExamResult - кнопки для ввода, изменения или удаления результатов экзаменов;

· m_radioMale, m_radioFemail - кнопки для выбора пола;

· m_checkAtistatReal - чек-бокс. Аттестат настоящий/копия;

· m_editAtistatNum - экземпляр CIntEdit для ввода номера аттестата;

· m_editDataSckoolEnd - экземпляр CIntEdit для ввода года окончания школы;

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

· m_editDateBithday - экземпляр CEdit (MFC) для ввода даты рождения абитуриента;

· m_editPropiska - экземпляр CEdit (MFC) для ввода места проживания абитуриента;

· m_listLang - список с иностранными языками (только для чтения). Выбирается язык, который изучал абитуриент в школе;

· m_listLG - выпадающий список. С помощью него выбирается вид льгот, которые есть у абитуриента;

· m_checkBudget - чек-бокс. Форма обучения бюджет/контракт

· m_editKontraktNumNum - экземпляр CIntEdit для ввода номера контракта (если есть);

· m_listSpecial - список специальностей, на которые желает поступать абитуриент (только для чтения);

· m_btAddSpec, m_btDelSpec, m_btUpdateSpec - кнопки для ввода, изменения или удаления специальностей;

· m_checkZach - чек-бокс. Зачислен/нет абитуриент.

Основные методы класса:

· GetAbit(CAbiturient* stAbit, vector<CExamResult>* pExamResults, vector<CAbitSpec>* pAbitSpec) - метод возвращает класс CAbiturient с введенные значениями, вектор с результатами экзаменов, вектор со специальностями.

· SetAbit(const CAbiturient* stAbit, const vector<CExamResult>* pExamResults, const vector<CAbitSpec>* pAbitSpec) - метод передает в класс значения, которые необходимо установить по умолчанию.

OnInitDialog(), OnOk() - алгоритм работы методов такие же, как и у методов класса CFacultyDlg.

Пакет Common Control

Состав пакета приведен на рисунке 4.6. Он состоит из классов CIntEdit, CColumnManager, CMyListCtrl, CUserListCtrl, CAppSettings и структур SColumnInfo, SListCtrlSetting.

Класс CAppSettings реализует сериализацию - сохранение состояния колонок (размер, сортировку) в реестре при закрытии программы и восстановление состояния при запуске. Структура SListCtrlSetting содержит информацию о состояниях колонок.

Класс CMyListCtrl реализует компонент пользовательского интерфейса List Control (список). Является производным от класса CListCtrl из библиотеки MFC, включает в себя класс CColumnManager, который предназначен для управления состоянием колонок, и два графических рисунка (для указания сортировки по возрастанию и убыванию).

Класс CFacListCtrl предназначен для вывода информации о факультетах в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CFaculty>.

Класс CSpecListCtrl предназначен для вывода информации о специальностях в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CSpec>.

Класс CBaseListCtrl предназначен для вывода информации о базах в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CBase>.

Класс CExamListCtrl предназначен для вывода информации о экзаменах в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CExam>.

Класс CExamResultListCtrl предназначен для вывода информации о результатах экзаменов в виде сортируемого списка. Используется в диалогах COtborDlg, CDPUserDlg, CAbitDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CExamResult>.

Рис. 4.6. Состав пакета Common Control

Класс CDPUserListCtrl предназначен для вывода информации о участниках олимпиад в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CDPUser>.

Класс CAbitListCtrl предназначен для вывода информации о абитуриентах в виде сортируемого списка. Используется в диалоге COtborDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CAbit>.

Класс CAbitSpecListCtrl предназначен для вывода информации о абитуриентах в виде сортируемого списка. Используется в диалогах COtborDlg, CAbitDlg. Является производным класса CMyListCtrl. Содержит в себе локальную копию вектора vector<CAbiturient>.

Класс CIntEdit расширяет возможности класса CEdit библиотеки MFC и позволяет вводить только целое число.

Пакет Local Classes

Состав пакета приведен на рисунке 4.7. Он состоит из классов CRegKey, COtborApp.

Класс CRegKey предоставляет методы для записи данных (целые числа, массивы целых чисел, строки) в реестр.

Класс COtborApp реализует каркас приложения. Является производным класса CWinApp из библиотеки MFC.

Рис. 4.7. Состав пакета Local Classes

4.3 Разработка общего алгоритма функционирования системы

При запуске приложения Windows вызывает встроенную в каркас приложения функцию WinMain, которая ищет объект класса, производного от CWinApp. В моем приложении это глобальный объект theApp класса COtborApp. Найдя такой объект, WinMain вызывает функцию-член InitInstance, которая создает основное диалоговое окно приложения. Алгоритм работы этой функции представлен на рис. 4.8.

Рис. 4.8. Диаграмма последовательностей функции COtborApp::InitInstance

При создании главного диалогового окна выполняется начальная инициализация ресурсов (OnInitDialog), которая включает в себя загрузку из реестра состояния управляющих элементов диалоговых окон (вызов CAppSettings::LoadParameters), и открытие базы данных (вызов CDB::OpenDB). Далее создается модальное диалоговое окно (DoModal), которое имеет свой цикл обработки сообщений.

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

4.3.1 Алгоритм обработки сообщения OnSelchangeTab

Диаграмма последовательностей обработчика сообщения OnSelchangeTab представлена на рис. 4.9. Данный обработчик вызывается при изменении выбранной закладки. Вначале определяется, какая именно закладка была выбрана. Далее из базы данных выбирается вся информация (в данном примере это информация о факультетах (CDB::GetAllFaculties)) и сохраняется в локальном векторе. Затем активизируем визуальный компонент, который отвечает за вывод списка факультетов и заполняем его (вызываем метод Fill, которому передаем указатель на вектор).

Рис. 4.9. Диаграмма последовательностей для обработчика сообщения OnSelchangeTab.

Диалог COtborDlg может обрабатывать следующие основные сообщения: OnAdd (при нажатии кнопки «Добавить»), OnDel (при нажатии кнопки «Удалить»), OnChange (при нажатии кнопки «Изменить»). Обработка этих сообщений зависит от выбранной в данный момент кнопки (от типа выводимой информации в главное диалоговое окно).

Рис. 4.10. Диаграмма последовательностей для обработчика сообщения OnAdd.

4.3.2 Алгоритм обработки сообщения OnAdd

Диаграмма последовательностей обработчика сообщения OnAdd представлена на рис. 4.10. Данный обработчик вызывается при нажатии кнопки «Добавить». Вначале определяется, какая именно закладка активна в данный момент (какой тип информации необходимо добавить). Определяем, что работаем с факультетами. Создается диалог CFacultyDlg (OnInitDialog, DoModal), который очищает поля для ввода имени и номера факультета. После чего запускается цикл обработки сообщений. Фактически ожидается сообщение закрытия диалога, по которому проверяется корректность введенных данных и результат возвращается диалогу COtborDlg. Он проверяет уникальность добавленного факультета (нет повторений номера и названия), добавляет новый элемент в базу данных (CDb::Add(CFaculty*)) и заново заполняет список факультетов (CUserListCtrl::Fill).

Рис. 4.11. Диаграмма последовательностей для обработчика сообщения OnDel

4.3.3 Алгоритм обработки сообщения OnDel

Диаграмма последовательностей обработчика сообщения OnDel представлена на рис. 4.11. Данный обработчик вызывается при нажатии кнопки «Удалить». Вначале определяется, какая именно закладка активна в данный момент (какой тип информации необходимо удалить). Определяем, что работаем с факультетами. Затем определяем, какой элемент вектора необходимо удалить (удаляется выбранный элемент из списка; список может быть отсортирован не так, как отсортирован вектор). Для этого сначала находим номер выбранного элемента списка(CFacultyListCtrl::GetNextItem()), а затем получаем индекс элемента вектора, который соответствует данной записи(CFacultyListCtrl::GetItemData()). Далее пользователю предлагается подтвердить удаление (CCommonDialog::MessageBox). В случае подтверждения удаляется элемент из базы данных и заново заполняет список факультетов (CUserListCtrl::Fill). В данной системе реализовано «Логическое удаление» - сама запись из базы данных не удаляется, а в поле «delete» устанавливается 1 - запись удалена.

Рис. 4.12. Диаграмма последовательностей для обработчика сообщения OnChange.

4.3.4 Алгоритм обработки сообщения OnChange

Диаграмма последовательностей обработчика сообщения OnChange представлена на рис. 4.12. Данный обработчик вызывается при нажатии кнопки «Изменить» или двойного щелчка левой кнопкой мыши на выбранном элементе списка. Вначале определяется, какая именно закладка активна в данный момент (какой тип информации необходимо изменить). Определяем, что работаем с факультетами. Затем определяем, какой элемент вектора необходимо изменить (изменяется выбранный элемент из списка; список может быть отсортирован не так, как отсортирован вектор). Для этого сначала находим номер выбранного элемента списка(CFacultyListCtrl::GetNextItem()), а затем получаем индекс элемента вектора, который соответствует данной записи(CFacultyListCtrl::GetItemData()). Затем создается диалог CFacultyDlg, которому передаются параметры выбранного факультета (CFacultyDlg::InitFaculty). Диалог заполняет поля с названием и номером факультета, после чего запускается цикл обработки сообщений. Фактически ожидается сообщение закрытия диалога, по которому проверяется корректность введенных данных и результат возвращается диалогу COtborDlg. Он проверяет уникальность измененных параметров факультета (нет повторений номера и названия), изменяет элемент в БД (CDb::Update(CFaculty&)) и заново заполняет список факультетов (CFacultyListCtrl::Fill).

5. Тестирование

5.1 Выбор методики тестирования

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

Тестирование за столом - сущность метода заключается в просмотре исходных текстов программы и правильности алгоритма работы. Для большого объема исходного кода и ввиду его сложности использование этого метода мало пригодно.

Тестирование за машиной, которое делятся на метод «белого ящика» и метод «черного ящика».

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

Метод «черного ящика» - реализует тестирование программного комплекса по входу/выходу. Метод проверяет соответствие функционирования системы исходной спецификации на программное изделие. Он может обнаруживать ошибки любых классов и пригоден на практике: для тестирования больших систем.

5.2 Тестирование программы

Тестирование системы можно разделить на 2 части - тестирование БД и тестирование системы в целом.

Тестирование проводим по методу черного ящика.

Тестирование БД будет заключаться в генерации SQL-запросов и проверки результатов выполнения этих запросов. В качестве инструмента тестирования будем использовать SQL Plus.

Тестирование базы данных можно условно разделить на следующие части:

· тестирование на вставку, удаление и замену полей в таблицах БД. При вставке и изменении необходимо проверить следующие моменты:

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

- правильность работы с NOT NULL полями - вставляемые значения не должны быть NULL;

- правильность работы с Foreign Key - вставляемые значения должны ссылаться на существующие записи в других таблицах.

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

В таблице 5.1 приведены тестовые наборы SQL-запросов для тестирования вставки, удаления и изменения полей и записей таблиц (предполагается, что БД пустая). В таблице жирным цветом выделены ошибочные значения:

SQL-запрос

Ожидаемый

результат

INSERT INTO secureUser VALUES(secureUserSeq.NEXTVAL, 'mainadm',0);

INSERT INTO secureUser VALUES(secureUserSeq.NEXTVAL, 'fac1adm',1);

INSERT INTO secureUser VALUES(secureUserSeq.NEXTVAL, 'fac1adm',2);

OK

OK

Error (Not Unique)

insert into faculty values (facultySeq.NEXTVAL, 'ФЛА', 1);

insert into faculty values (facultySeq.NEXTVAL, 'СУЛА', 1);

OK

Error (Not Unique)

insert into special values (SPECIALSeq.NEXTVAL, 'CSS', 1, 1);

insert into special values (SPECIALSeq.NEXTVAL, 'SCS', 2, 3);

OK

Error (Foreign Key no exist)

insert into bases values (basesSeq.NEXTVAL, 'Kharkov1', 1, 1);

OK

insert into exam values (examSeq.NEXTVAL, '10.10.2005', 1);

OK

insert into DPUser values (DPUserSeq.NEXTVAL, 'Ivanov', 'Ivan', 'Ivanovich', 0);

insert into DPUser values (DPUserSeq.NEXTVAL, 'Petrov', 'Petr', 'Petrovich', 0);

OK

OK

insert into examresult values (examresultSeq.NEXTVAL, 34, 56, 1, 1,1);

insert into examresult values (examresultSeq.NEXTVAL, 60, 60, 2, 2,1);

insert into examresult values (examresultSeq.NEXTVAL, 46, 56, 1, 2,2);

insert into examresult values (examresultSeq.NEXTVAL, 47, 56, 1, 3,2);

OK

Error (Foreign Key not exist)

OK

Error (Foreign Key not exist)

insert into abiturient values (abiturientSeq.NEXTVAL, 6001, 12, 23, '10.10.06', NULL, 1, 1245678, 0, 0, 0, 0, 1);

insert into abiturient values (abiturientSeq.NEXTVAL, 6002, 45, 23, NULL, NULL, 1, 2723456, 0, 0, 0, 0, 2);

insert into abiturient values (abiturientSeq.NEXTVAL, 6003, 45, 23, '11.10.06', NULL, 1, 8757854, 0, 0, 0, 0, 5);

OK

Error (Null Value)

Error (Foreign Key not exist)

insert into abiturientspec values (abiturientspecSeq.NEXTVAL, 0, 1, 2);

insert into abiturientspec values (abiturientspecSeq.NEXTVAL, 0, 1, 4);

insert into abiturientspec values (abiturientspecSeq.NEXTVAL, 0, 3, 2);

OK

Error (Foreign Key not exist)

Error (Foreign Key not exist)

Тестирование подсистемы в целом тоже можно разбить на несколько частей:

- подсистема работы с факультетами;

- подсистема работы с базами;

- подсистема работы со специальностями;

- подсистема работы с экзаменами;

- подсистема работы с поступающими;

- подсистема работы с абитуриентами.

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

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

- отображение списка факультетов;

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

- изменение параметров выбранного факультета;

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

- удаление выбранного факультета;

- добавление нового факультета

- сортировка списка факультетов по номеру либо по имени, сортировка по возрастанию или по убыванию.

В таблице 5.2 приведен тестовый пример для функции «изменение параметров факультета»

Таблица 5.2. Тестовый набор для функции «изменение параметров факультета»

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

Последовательность действий оператора

Ожидаемый результат

1. Выбрать закладку Факультеты

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

Выбрать с помощью мыши необходимый факультет

Факультет в списке должен выделиться

Нажать кнопку Изменить

Отобразиться диалог изменения параметров факультета. В поле «Номер» должен быть текущий номер факультета, в поле «Имя» - текущее имя факультета

Попытка ввести нечисловой символ в поле «Номер»

Символ не вводится

Нажать кнопку «Отмена»

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

Ввести повторяющиеся данные (имя или номер уже существующего факультета). Нажать кнопку «Принять»

Возврат к главному диалогу. Отобразиться сообщение «Дублирование номера» или «Дублирование имени». Элемент списка с выбранным факультетом не должен измениться

Ввести новые данные. Нажать кнопку «Принять»

Возврат к главному диалогу.

Элемент списка с выбранным факультетом должен изменить свои значения на новые

В диалоге с факультетами нажать кнопку «Отмена»

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

Заключение

В результате выполнения дипломной работы была разработана программная система автоматизации работы приемной комиссии. В начале разработки был проведён анализ работы приемной комиссии 5-го факультета ХАИ, определены функции сотрудников комиссии, которые подлежат автоматизации.

После подготовительного этапа началась разработка непосредственно программного продукта. Первым этапом была разработка архитектуры программного комплекса и принято решение об использовании реляционной БД для хранения информации системы. В качестве СУБД был выбран Oracle 9i.

На втором этапе была разработана информационная модель данных, которая была приведена в третью нормальную форму и реализована для выбранной СУБД.

На третьем этапе в соответствии с поставленной задачей было разработано приложение для ОС Windows.

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

- диаграмма пакетов;

- диаграмма классов;

- диаграмма последовательностей.

Программирование выполнялось в среде Ms Visual Studio C++ с использованием встроенных средств отладки.

На последнем этапе разработки провели тестирование программного продукта.

Список источников

1. Томасон Конноли и Каролин Бегг. Базы Данных: проектирование, реализация и сопровождение. М.: Издательство дом «Вильямс», 2006

2. Васильев В.Г. Объектно-ориентированные Базы Данных: Взгляд изнутри // Компьютеры + Программы - 2007 - №3

3. Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др.:/ Пер. с англ. А.К. Белоцкого и др.; Под ред. Е.К. Масловского. - М.: Машиностроение, 2008

4. Джексон Глен. Проектирование реляционных Баз Данных для использования с микроЭВМ - М.: Мир, 2008

5. Стефан Винкоп. Использование Microsoft SQL Server 7.0 - М., 2009

6. Информатика: Учебное пособие; Под ред. проф. Тараканова К.В. М.: «Книга», 2006

7. Барти Тизли Майнетт. Разработка программного обеспечения. Перевод с английского. MVU. Львов-Днепропетровск, 2007

8. Маклаков С.В. Bpwin и Erwin. Case - средства разработки информационных систем. - М.: ДИАЛОГ-МИФИ, 2009. 265с

9. Джордж Шеферд. Программирование на Visual C++.NET. Microsoft Press. Русская редакция. Москва. 2006

10. Бьерн Страуструп. Язык программирование С++. Бином. Москва. 2008

11. Стивен Прата. Язык программирования С++. ДиаСофтЮП. 2006

Приложения

Приложение А

Техническое задание.

Введение

Наименование изделия: "Программный комплекс для автоматизации работы приёмной комиссии".

Основание для разработки

Основанием для разработки системы является задание на дипломную работу кафедры «Компьютерные системы и сети» Национального аэрокосмического университета - "ХАИ" им. Н. Е. Жуковского.

Назначение разработки

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

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

Основными функциями программы являются:

ь Ввод и хранение информации о результатах олимпиад, проводимых на базе «ХАИ», а так же формирование различных отчётов.

ь Ввод и хранение информации об абитуриентах, формирование отчётов.

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

ь Программа должна иметь графический интерфейс с управлением от клавиатуры или манипулятора «мышь».

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

Работа приёмной комиссии состоит из 2-х этапов:

1. Сбор и обработка информации о результатах олимпиад проходящих в «ХАИ». На этом этапе поступает следующая информация:

- фамилия, имя, отчество участника олимпиады;

- результаты олимпиады по "Математике" и "Украинскому языку" (по 60-ти бальной системе);

- на какой олимпиаде получены баллы (выпускной экзамен ФМШ ХАИ, выпускной экзамен лицея ХАИ, олимпиада ХАИ);

- база, на которой была произведена данная олимпиада;

- номер факультета представитель, которого проводил олимпиаду;

- номер факультета, на который предполагает поступать участник олимпиады;

На основе этой информации формируются различные отчёты.

2. Сбор и обработка информации об абитуриентах желающих поступить в Университет. На этом этапе поступает следующая информация:

- номер дела (формат - 4 десятичных цифры, первая - номер факультета на который поступает абитуриент, остальные три - порядковый номер дела начиная с "1");

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

- данные об образовании абитуриента (какое учебное заведение закончил: средняя школа, ПТУ, высшее учебное заведение; номер аттестата [диплома], год окончания школы [ПТУ, ВУЗа], "если в аттестате 3-ки", подан оригинал либо копия аттестата);

- данные о родителях абитуриентов (адрес проживания);

- форма обучения (бюджет или контракт; в случае контракта хранятся: номер контракта, сумма оплаты, дата оплаты, "отказ от участия в конкурсе");

- специальность, на которую желает поступить, список специальностей, выстроенный по приоритету, на которые абитуриент желает поступить, если он не проходит по конкурсу на основные специальности;

- информация об экзаменах, тестировании (на какой экзамен идёт, дата тестирования, результат тестирования);

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

- дата возврата документов, если абитуриент забрал документы;

На основе этой информации формируются различные отчёты.

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

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

Программа должна работать под управлением операционной системы Microsoft Windows 95 и выше.

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

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

Условия эксплуатации

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

Требования к составу и параметрам технических средств

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

центральный процессор Pentium-133 или другой не меньшей производительности;

объем оперативной памяти минимум 32 Мбайт;

VGA цветной монитор;

клавиатура;

манипулятор типа мышь;

Требования к программной части.

На компьютере должна быть установлена операционная система Windows 95 и выше, СУБД MS SQLServer 2000.

Требования к программной документации

Состав программной документации:

Техническое задание;

Тексты программ;

Пояснительная записка.

Технико-экономические показатели

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

Стадии и этапы разработки

Стадии разработки

Этапы разработки

Содержание работ

Сроки

1

2

3

4

1. ТЗ

Обоснование необходимости и разработки программы

Постановка задачи
Сбор исходных материалов
Выбор и обоснование критериев эффективности и качества ПП

Обоснование необходимости проведения НИР

НИР

Определение структуры входных и выходных данных
Предварительный выбор методов решения задачи

Определение требований к техническим средствам

Разработка и утверждение ТЗ

Определение требований к программе

Согласование и утверждение ТЗ

2.ТП

Разработка ТП

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

Программирование и отладка программы

Утверждение ТП

Разработка программных документов в соответствии с требованиями

3. Рабочий проект

Разработка программы и программной документации

Разработка, согласование и утверждение программы и методики испытаний

Испытание программы

Корректировка программы и программной документации по результатам испытаний

4. Внедрение

Подготовка и передача программы

Подготовка и передача программы и программной документации для сопровождения и внедрения

Оформление и утверждение передачи программы на сопровождение и эксплуатацию

Размещено на Allbest.ru

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.