МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра автоматизованих систем управління
/
Звіт
До лабораторної роботи №3
з дисципліни “ Технології створення програмного продукту ”
на тему
«Розробка програмного продукту.
Етап проектування та побудова моделі»
Львів – 2012
Мета: Ознайомлення з основними задачами, які необхідно розв’язати під час виконання етапу проектування та побудови моделі.
Завдання: Навчитись реалізовувати етап проектування та побудувати модель при розробці програмного продукту комп’ютерних систем.
Порядок роботи
1 .Теоретична частина.
2.Індивідуальне завдання.
3. Постановка завдання.
4. Поступове виконання завдання безпосереднім формулюванням вимог та побудовою моделі.
1. Теоретична частина
Цей етап потрібний для детального опису реалізації системи. Опис після необхідних змін, зроблених на наступних етапах (реалізації і тестування), буде частиною технічної документації системи.
Всупереч аналізу на етапі проектування, проектувальники повинні знати, що програмне середовище, мови програмування, бібліотеки і інші інструменти будуть застосовані на етапі реалізації.
На цьому етапі виконується перетворення абстрактних понять, використовуваних в аналізі, в детальніші описи всіх конструкцій.
У ПЗ існує декілька складових, одна з них представляє частину проблем, відповідальних за основне виконання функцій і необхідні дані. Вона будує якнайкращу модель, розроблену після аналізу. Інші частини відповідальні за комунікацію з клієнтом, за зберігання і доступ до даних, управління пам'яттю і компонентами управління завданнями.
На етапі проектування також виконується оптимізація моделі.
Програмне середовище забезпечує інструменти, які обмежують раніше розроблену модель, але воно може також забезпечити допоміжний механізм, який дозволяє поліпшити реалізацію. Таким чином проектування будує модель до рамок обмежень та поліпшує можливості програмного середовища.
Фізична структура моделі повинна бути також визначена на цьому етапі.
Таким чином, на етапі проектування виконуються наступні завдання:
специфікація результатів аналізу;
проектування компонентів, які не належать області проблеми;
оптимізація системи;
підлаштування моделі до обмежень і варіантів програмного середовища;
визначення фізичної структури.
Детальна модель приводить до вибору з багатьох можливих методів реалізації конструкцій моделі.
Основні конструкції повинні підтримуватися допоміжними:
інтерфейс для роботи з користувачем;
компонент управління даних для зберігання даних;
компонент управління пам'яті;
компонент управління завданнями для їх планування.
Метою проектування є розробка моделі, необхідної для нормального функціонування системи. У проектуванні середовище програмування відіграє важливу роль, не дивлячись на те, що під час аналізу ним часто нехтують. Проектувальник повинен знати мови програмування, бібліотеки і інструментальні програмні засоби, необхідні для функціонування системи.
Проектувальник повинен зберегти структуру системи, розроблену раніше (в процесі аналізу). А внесені зміни в загальному мають впливати на проект.
/
Індивідуальне завдання
Створріти систему автоматизації роботи бібліотеки.
Постановка задачі
Етап проектування
На етапі проектування розробляється детальний опис проекту (developed detailed description of project) автоматизації системи бібліотек- “ AutoLibrary l”, a саме здійснюється специфікація результатів аналізу(specification of the analysis), проводиться оптимізація системи та проектування компонентів(optimization of the system design and components), які не належать до області проблеми процесу автоматизації, виконується підлаштування моделі до обмежень і варіантів програмного середовища. Також на цьому етапі визначаєьтся фізична структура системи.
Use case діаграма
/
Рис. 1. Use Case діаграма системи.
На Use Case діаграмі (рис. 1.) зображені варіанти використання системи різними класами користувачів. Для доступу до функцій Клієнта 3 користувачі мають пройти процедуру логування. Адміністратор(Administrator) після входу в систему в Клєнті 1 може редагувати базу даних(edit the database), змінювати користувацькі інтерфейси ( can modify user interfaces), реєструвати працівників (register employees) і змінювати реєстр книг(modify the registry books).
Керівник проекту залогувавшись в Клієнті 1 отримує доступ до тих самих функцій, що й адміністратор окрім можливості редагувати користувацькі інтерфейси і змінювати реєстр книг(Project Manager after logination in client 1 gets access to the same functions as the administrator except the ability to edit user interfaces and modify the registry books). В свою чергу, працівники бібліотеки можуть редагувати списки читачів та списки груп, створювати, редагувати та видаляти книги по авторам , розділам , а також додавати інформацію про книги і змінювати реєстр книш з допомогою Клієнта 1(Library staff can edit the lists of readers and lists of groups to create, edit and delete books by authors section and add information about your book and modify the registry Knish with clients 1).
Студенти не використовують даний клієнт.
В Клієнті 2 адміністратор і працівники , пройшовши процедуру логування, можуть переглядати список замовлень від групи «Читач» , можуть переглянути інформацію про читача , видати книжку , повернути книгу в наявність.
Студенти не використовують даний клієнт.
В клієнті 3 читачі можуть зареєструвати себе як повноцінного читача даної бібліотеки і після автоматичної логінації вони можуть використати наступні функції : редагувати власні дані , отримати список книг по розділам , авторам , предметам ; вибрати книгу і внести її в список замовлень ; отримати список власних замовлень.
Модулі системи
Cистема складається з двох незалежних базових модулів , які реалізують роботу Клієнта 1 , Клієнта 2, Клієнта 3.
Клієнт 1
Рис. 2. Підмодулі Клієнта 1.
Клієнт 1 складається з двох підмодулів: FmMain і DataModule.
FmMain. Це модуль який відповідає за інтерфейс клієнта 1.
Класи TMain, Users, About, TSql, password ,Tautor , що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.
TMain-клас, методи якого призначені для взаємодії з іншими класами, це основна форма на якій знаходяться інші підформи .
Password-клас , методи якого дозволяють залогінитись користувачам в системі.
OKBtnClick-метод , який виконує функцію натиснення кнопки ok.
CancelBtnClick-метод,який виконує функцію відміну логінування.
Users-клас , методи якого дозволяють змінювати права користувачі , змінювати дані користувачів.
TSql-клас , методи якого дозволяють змінити базу даних , взаємодіяти з БД.
FormResize-метод , який дозволяє змінити розмір вікна sql сторінки для вставки запиту.
About-клас,форма , яка містить інформацію про програму.
Tautor-клас , який містить методи для обробки інформації пов’язаної з авторами книг .
DataModule. Цей модуль призначений для організації зв’язку з базою даних, включає в себе класи IBDatabase,IBQuery,IBSQL,IBTransaction.
IBDatabase – клас, що включє в себе набір стандартних компонент необхідних для взаємодії з базою даних.
Це центральний компонент для з'єднання з базою даних. Один компонент може бути пов'язаний тільки з однією базою даних в конкретний момент часу.
Params - метод який містить параметри з'єднання: ім'я користувача, пароль, чарсета і т.п.
Connected - управління підключенням до БД, або перевірка стану з'єднання
IBSQL-клас , що містить засоби для роботи з запитами , які пов’язані напряму з роботою БД.
FieldbyName-метод ,який дозволяє зробити запит по іменю поля таблиці і встановлювати певні значення.
SQL->EOF –метод який визначає чи кінець стрічки поля в таблиці.
SQL->Next – метод, який дозволяє переходити на наступне поле стрічки.
SQL->Сlose-метод який закриває доступ до таблиц
IBQuery-клас,методи якого дозволяють змінювати значення таблиць бази за допомогою запитів SQL
SQL->Clear-метод,який дозволяє очистити текст запиту.
SQL->Add-метод,який дозволяє задати текст запиту.
Prepare-метод для перевірки стану сервера (чи запущений).
ParambyName- метод для задання значення параметра.
ExecSQL-метод для відкриття заданої бази даних.
IBTransaction-клас , який містить методи для обробки і проходження транзакцій відносно БД.
Active-метод управління стартом або закінченням транзакції.
DefaultDatabase-метод вибору стандартної БД для роботи транзакцій.
Params-метод параметрів транзакції.
AllowAutoStart-метод автоматичного старту транзакції при значенні рівному нулю.
Класи вище описаних модулів взаємодіють між собою наступним чином:
Клас TMain і Password з модуля TMain використовують методи класів IBDatabase та IBQuery з модуля DataModule.
Клас Users з модуля TMain використовує методи класу IBDatabase і класу IBSQL з модуля DataModule.
Клас TSql з модуля TMain використовує методи класу IBDatabase , клас IBQuery, IBSQL .
Клієнт 2
Рис. 3. Підмодулі Клієнта 2.
Клієнт 2 складається з двох підмодулів: TMain і DataModule.
TMain. Це модуль який відповідає за інтерфейс клієнта 2.
Класи FMain, Zamovlenna, password , Zamovlenna_result,Book_id, що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.
FMain-клас, методи якого призначені для взаємодії з іншими класами, це основна форма на якій знаходяться інші підформи .
Password-клас , методи якого дозволяють залогінитись користувачам в системі.
OKBtnClick-метод , який виконує функцію натиснення кнопки ok.
CancelBtnClick-метод,який виконує функцію відміну логінування.
Zamovlenna-клас , методи якого дозволяють бачити інформацію про замовлення.
Zamovlenna_rezult-клас , методи якого дозволяють виконати певні дії над замовленням.
Book_id-клас-форма , який містить методи для вибору книги для видачі читачу з переглядом інформації про читача і його історію замовлень.
DataModule. Цей модуль призначений для організації зв’язку з базою даних, включає в себе класи IBSQL,IBTransaction.
IBSQL-клас , що містить засоби для роботи з запитами , які пов’язані напряму з роботою БД.
FieldbyName-метод ,який дозволяє зробити запит по іменю поля таблиці і встановлювати певні значення.
SQL->EOF –метод який визначає чи кінець стрічки поля в таблиці.
SQL->Next – метод, який дозволяє переходити на наступне поле стрічки.
SQL->Сlose-метод який закриває доступ до таблиц
IBTransaction-клас , який містить методи для обробки і проходження транзакцій відносно БД.
Active-метод управління стартом або закінченням транзакції.
DefaultDatabase-метод вибору стандартної БД для роботи транзакцій.
Params-метод параметрів транзакції.
AllowAutoStart-метод автоматичного старту транзакції при значенні рівному нулю.
Взаємодія між модулями відбувається наступним чином:
Клас FMain і Password з модуля TMain використовують методи класів IBDatabase та IBQuery з модуля DataModule.
Клас Zamovlenna з модуля TMain використовує класи IBSQL та IBTransaction (DataModule).
Клас Zamovlenna_rezult (TMain) використовує компоненти класу IBSQL (DataModule) і компоненти IBTransaction для взаємодії з базою даних.
Клієнт 3
Рис. 4. Підмодулі Клієнта 3.
Клієнт 3 складається з двох підмодулів: FMain і DataModule.
FMain. Це модуль який відповідає за інтерфейс клієнта 3.
Класи TUnit, User, password, Autors,Rozd,Book,Zamovlenna, що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.
TUnit-клас, методи якого призначені для взаємодії з іншими класами, це основна форма на якій знаходяться інші підформи .
Password-клас , методи якого дозволяють залогінитись користувачам в системі.
OKBtnClick-метод , який виконує функцію натиснення кнопки ok.
CancelBtnClick-метод,який виконує функцію відміну логінування.
Zamovlenna-клас , методи якого дозволяють бачити інформацію про замовлення читача.
Autors-клас , методи якого дозволяють побачити книги які розподілені по авторам.
Book-клас-форма , який містить методи для вибору книги читачем і перенесення їх в розділ замовлення з переглядом інформації про автора книги .
User-клас , методи якого дозволяють змінювати власні дані читача , переглядати дані без внесення змін.
Rozd-клас,методи якого дозволяють вибирати книги по розділам .
DataModule. Цей модуль призначений для організації зв’язку з базою даних, включає в себе класи IBDatabase,IBTransaction.
IBDatabase – клас, що включє в себе набір стандартних компонент необхідних для взаємодії з базою даних.
Це центральний компонент для з'єднання з базою даних. Один компонент може бути пов'язаний тільки з однією базою даних в конкретний момент часу.
Params - метод який містить параметри з'єднання: ім'я користувача, пароль, чарсета і т.п.
Connected - управління підключенням до БД, або перевірка стану з'єднання
IBTransaction-клас , який містить методи для обробки і проходження транзакцій відносно БД.
Active-метод управління стартом або закінченням транзакції.
DefaultDatabase-метод вибору стандартної БД для роботи транзакцій.
BParams-метод параметрів транзакції.
AllowAutoStart-метод автоматичного старту транзакції при значенні рівному нулю.
Взаємодія між модулями відбувається наступним чином:
Класи TUnit і Password з модуля FMain використовують методи класів IBDatabase та IBTransaction з модуля DataModule для взаємодії з БД.
Класи Zamovlenna , Autors , Book, Rozd (FMain) використовують класи IBDatabase та IBTransaction з модуля DataModule для взаємодії з БД
Клас Users (Fmain) використовує компоненти класу IBDatabase (DataModule) для взаємодії (через збережувані процедури) з базою даних.
Опис інтерфейсів
Інтерфейс Клієнта 1
На рис. 4. зображений інтерфейс Клієнта 1 в якому працюють працівники, адміністратор та керівник проекту
/
Рис. 4. Інтерфейс Клієнта 1.
Елементи інтерфейсу:
Область виведення даних про користувачі системи.
Вкладка Користувачі.
PopUp меню з вкладкою Файл , в якій знаходять вкладки SQL і Вихід.
PopUp меню з вкладкою Допомога , в якій знаходяться основні відомості відносно роботи з програмою.
Автори – вкладка автори , в якій міститься інформація про авторів книг.
Інфо – PopUp меню яке містить дані про автора програми і містить гіпертекстове посилання на сторінку програми.
Закладка Каталог ризначена редагування каталогу книг , додавання нових книг.
Закладка Розділ призначена для редагування і додання нових розділів.
Закладка Реєстр: закладка призначена для перегляду , внесення змін до реєстру Бази даних..
Кнопка «Обновити»: обновляє стан вікна в даній закладці.
Кнопка «Редагувати» відповідає за редагування користувачів даних , перехід в нове вікно – Users .
Кнопка «Створити» відповідає за створення нового користувача системи , з наданням доступу до функцій і інше.
Видалити – це видалення користувача з системи (Ця функція виконується в аккаунтах Адміністратора і Керівника проекту.)
Інтерфейс Клієнта 2
На рис. 5.1. зображений інтерфейс Клієнта 2 який призначений видачі і повернення книг бібліотеки.
/
Рис. 5.1. Інтерфейс Клієнта 2, головне вікно.
Елементи інтерфейсу:
Вкладка «Видача книги» в якій містяться основні операції , які пов’язані з виконанням чи відміною замовлення читача.
Вкладка «Повернення» . В ній містяться функції для повернення книги в наявність бібліотеки.
Кнопка «Обновити»-оновлює список книг на видачу.
Кнопка «Видати книгу» призначена для перенесення книги в розділ мої замовлення читача який замовив цю книгу,відповідна ця книга буде видана читачеві .
Кнопка «Закрити замовлення»– відбувається операція відміна замовлення внаслідок заборгованості або інших причин , відбувається відмова читачеві в замовленні.
Кнопка «Інформація про замовлення» – показує меню де є дані про читача , його історію замовлень.
Вікно з інформацією про наявні замовлення в системі на даний момент часу.
Інтерфейс Клієнта 3
На рис. 5.2. зображений інтерфейс Клієнта 3 який призначений для використання його читачами
/.
Елементи інтерфейсу:
Головне вікно клієнта №3 , де відображається інформація про всі наявні книги бібліотеки.
Потрібно для Логінування в системі.
Потрібно для Логінування в системі.
Меню вибіру розділу.
Кнопка «Розділи»– відбувається перехід в меню «розділи» де можна вибрати потрібну книгу по розділу.
Кнопка «Автори» – відбувається перехід в меню «автори» де можна вибрати потрібну книгу по авторам.
Інформація про книги - відображається в підменю.
Кнопка «Оновити»-потрібна для оновлення головного вікна в якому відображаються всі наявні книги в даний момент часу.
Кнопка «Створити»- Створення нового аккаунту в системі для подальшої логінації.
Кнопка «Ввійти»- підтвердження введених даних (логіну,паролю в області 2,3) і проходження логінації користувача.
База даних
Для роботи трьох клієнтських програм необхідна спеціальна база даних розміщена на сервері Interbase SQL. Дана база спроектована мовою SQL за допомогою програми IBConsole (Codegear 2009 Interbase). Вона включає 8 таблиць певним чином зв’язаних між собою і являє собою структуру зображену на рис. 6. Також база даних включає в себе набір збережуваних процедур, які використовуються клієнтськими програмами для роботи з базою даних.
/
Рис. 6. База даних системи.
Опис основних таблиць бази:
Users: таблиця для зберігання інформації про користувачів. Містить поля: IDD – ключове поле (ідентифікатор користувача), FAMIL(прізвище читача), INI (інціалізація),OTHER(інші дані про користувача),LOGIN (логін), Password (пароль), Rol (ідентифікатор ролі) і інші додаткові невідображені поля для роботи з доменами БД ;
Reestr: таблиця для зберігання всіх даних в реєстрі книг. Містить поля: IDD – ключове поле (ідентифікатор групи ),IDD_IN_KATALOG(ідентифікатор всіх каталогів книг),DATA_ADD (поле для зберігання доданої інформації),DATA_DROP(поле для зберігання даних про видалену інформацію), Name (назва об’єкту в реєстрі);
INOUT: проміжна таблиця для зберігання і передачі інформації між таблицями Users і Reestr . Містить поля: ID – ключове поле(ідентифікатор книг замовлених користувачами), USER_ID (ідентифікатор користувача), BOOK_ID (ідентифікатор книги) , NAME (назва книги) і інші поля створені для обміну даними з доменами БД;
Zamovlenna: таблиця для зберігання даних про замовлення читачів. Містить поля: ID – ключове поле (ідентифікатор замовленння), USER_ID (ідентифікатор користувача), BOOK_ID (ідентифікатор книги), NAME (назва книги) і інші невидимі поля предназначені для роботи з під доменами БД;
Messages таблиця для роботи з транзакціями. Містить поля: ID – ключове поле (ідентифікатор виконання транзакції ), User_Id (ідентифікатор користувача), MESSAGE (інформація про виконане повідомлення –транзакцію БД.
AVTOR: таблиця для збереження інформації про авторів. Містить поля: ID – ключове поле (ідентифікатор авторів), FAMIL (прізвище автора), INI (ініціалізація даних про авторів), OTHER(інформація про авторів).
Katalog: таблиця для збереження каталогів книг. Містить поля: ID – ключове поле (ідентифікатор каталогу), Avtori (ідентифікатор авторів), Rozdil_Id (ідентифікатор розділів), NAZVA(назва книги), NAJAVNIST(наявність книг),OTHER(коментарі ).
Звязки між таблицями бази даних:
Таблиця Users зв’язана з таблицею MESSAGES ,ZAMOVLENNA напряму і за допомогою допоміжної таблиці INOUT, яка включає в себе поля USER_ID (відповідних таблиць), по якій здійснюється зв'язок. Такий зв'язок необхідний для реалізації можливості ініціалізації замовлень і додання читача в реєстр всіх операцій пов’язаних з книгами.
Таблиця INOUT зв’язана з таблицею KATALOG через таблицю REESTR, яка включає в себе поле IDD(відповідної таблиці), по якому здійснюється зв'язок. Такий зв'язок необхідний для синхронізації даних каталогу і реєстру книг .
Таблиця AVTOR напряму зв’язана з таблицею KATALOG.
Таблиця ROZDIL напряму зв’язана з таблицею Users і KATALOG.
Таблиця MESSAGES напряму зв’язана з таблицею Users.
Таблиця ZAMOVLENNA напряму зв’язана з таблицею Users
Структура фізичної системи проекту
Читач,Працівник
Керівник , Адміністратор, Працівник
Працівник,Адміністратор
Рис. 9. Фізична структура системи.
Система складається з трьох клієнтів – Клієнт 1 , Клієнт 2, Клієнт 3. З допомогою Клієнт 1: адміністратор слідкує за коректною роботою системи а також має можливість (якщо бібліотека невелика то адміністратор це і працівник) додавати книжки по авторам , розділам , змінювати реєстр і міняти таблиці БД, керівник проекту вносить певні зміни в систему, а працівники можуть добавляти книги , видаляти , змінювати інформаційне наповнення.
В Клієнті 2 можуть працювати тільки дві групи користувачі : адміністратор і працівники мають однакові можливості – це підтвердження замовлення і відповідно видача книжки , і повернення книжок в наявність.
Клієнт 3 в основному призначений для читачів . В цьому клієнті читачі мають можливість зареєструватися , вибрати книжку з великої кількості книг і добавити їх в список своїх замовлень. Цим клієнтом можуть користуватись також Працівники бібліотеки і Адміністратор , при реєстрації вони автоматично стають читачами .
Розклад
1 2 3 4 5 6
Рис. 10. Часова діаграма виконання проекту.
14 місяців на розробку системи:
1 - Етап формулювання вимог -3 місяці. (1.05.12-1.08.12)
2 - Етап аналізу - 2 місяці. (2.08.12-2.10.12)
3 - Етап проектування - 3 місяці. (3.10.12-3.02.13)
4 - Етап реалізації - 4 місяці. (4.02.13-4.06.13)
5 - Етап тестування- 2 місяці. (5.06.13-5.08.13)
6 - Етап встановлення – 7 днів. (6.08.13-13.08.13)
Загальний час виконання проекту становить 14 місяців.
Загальна вартість проекту: 60 000 грн.
Учасник проекту
Задачі
Заробіток
Персона
Менеджер проекту
Представляє проект клієнту, слідкує за виконанням проекту, узгоджує питання з замовником.
30000грн.
1
Розробник
Реалізовує поставлену задачу, пише документацію.
20000грн.
3
Тестувальник
Тестує реалізований проект, виявляє помилки та повідомляє їх розробникам.
10000грн.
2
Висновок: Я ознайомився з основними задачами, які необхідно розв’язати під час виконання етапу формулювання вимог та побудови моделі, побудував модель функціонування системи , визначив функціональні і не функціональні вимоги , створив словник термінів , створив спрощену модель системи , дотримався виконання всіх поставлених пунктів даної лабораторної роботи.