Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Автоматизація процесу обліку

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Натиснувши в формі «Репозиторій ПЗ «кнопку «Додати/видалити ПЗ», відкрилася форма «Додати/видалити ПЗ», в якій було заповнено поля назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми. Також обрано автора та дистрибутив із вже наявних у базі даних. Дані про внесене ПЗ з’являються у таблиці «Наявне ПЗ». Повторюємо операцію 5 разів. Інформація про все ПЗ введене в базу… Читати ще >

Автоматизація процесу обліку (реферат, курсова, диплом, контрольна)

Анотація

У даній курсовій роботі розроблена база даних, яка призначена для автоматизації процесу обліку програмного забезпечення.

Робота виконана на 32 сторінках друкованого тексту, містить 12 рисунків, 4 таблиці. Робота має доданок.

Робота виконана українською мовою.

Аннотация

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

Работа выполнена на 32 страницах печатного текста, содержит 12 рисунков, 4 таблиц. Работа имеет приложение.

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

Зміст

Вступ

1 Обстеження і аналіз репозиторія програмного забезпечення. Постановка задачі

1.1 Обстеження предметної області

1.2 Аналіз репозиторія ПЗ. Розробка функціональної моделі бази даних «Репозиторій ПЗ» (DF-Діаграма)

1.3 Постановка задачі

2. Розробка проекту Бази Даних «Репозиторій ПЗ»

2.1 Розробка концептуальної моделі бази даних «Репозиторій ПЗ»

2.2 Розробка специфікації програмних модулів

2.3 Розробка логічної моделі бази даних «Репозиторій ПЗ»

2.4 Розробка алгоритмів і графічних інтерфейсів програмних модулів

2.5 Розробка фізичної моделі бази даних «Репозиторій ПЗ»

2.6 Кодування і тестування програмного забезпечення Висновки Список використаних джерел Додаток, А — Текст програми Додаток Б — Інструкція для користувача

Вступ

В даній роботі розглядається функціонування репозиторія програмного забезпечення. А саме, розглядається спосіб зберігання і обробки інформації, пов’язаної з збереженням відтворенням програмного забезпечення.

Метою роботи є створення ефективної системи обліку програмного забезпечення, шляхом розробки програмного засобу, який дозволяв би швидко і ефективно фіксувати та надавати дані про програмне забезпечення.

Проблемою предметної області є відсутність цілісності. Інформація зберігається в великій кількості директорій, що сприяє її пошкодженню. База даних гарантує захист та однозначність інформації.

Тому найкращою альтернативою для реалізації репозиторія являється створення программного засобу, який дозволив би швидко і ефективно отримувати ПЗ декільком користувачам одночасно, а також забезпечив однозначність зберігаємих даних. Таким програмним засоб є база даних.

Ціль даної работи — створення ефективного репозиторія ПЗ шляхом розробки бази даних і программного забезпечення, котре повинне мати слідуючі можливості:

а) вводити, видаляти, редагувати информацію про нові проекти б) вводити, видаляти, редагувати информацію про дистрибутиви

в) створювати звіти про наявні пакети та дистрибутиви г) надавати вихідні файли окремих пакетів та дистрибутивів Для досягнення даної цілі використано сервер баз даних MySQL та клієнтський інтерфейс до нього, реалізований на php.

1 Обстеження і аналіз репозиторія. Постановка задачі

1.1 Обстеження репозиторія

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

Прикладом репозиторію може бути репозиторій вільного программного забезпечення Sisyphus ALT Linux.

Репозиторій повинен задовольняти основну вимогу: в стабільну версію проекта не повинні потрапити дестабілізуючі зміни.

Проект — сукупність вихідних файлів розприділених по підкаталогам проекта.

Розглянемо структуру репозиторія.

/trunk

/tags/

/0.0.1

/0.0.2

/branches/

/0.0.1

/0.0.2

Директорія /trunk — основна гілка розробки проекта. В неї вносяться всі зміни та виправлення помилок.

Директорія /tags містить релізи проекта. Саме з піддерикторій дерикторії /tags

вихідний код виставляється на робочі сервери.

Директорія /branches необхідна для внесення великих змін в код проекта. В зберігаються гілки розробки. Якщо розробник створює нову функцію, то він повинен створити проект доповненя і синхронізувати його з основною версію ПЗ. Після закінчення розробки функції доповнення зливається з основним проектом.

Розглянемо події, які можуть відбутися в репозиторії:

a) Надходять нові пакети

Пакети реєструються в trunk. Реєстрація проводиться шляхом занесення в репозиторій таких даних: назва проекта, розробники, ліцензія, підпроекти, залежності проекта, версія, вихідні файли проекта.

б) Надходять зміни до проекта

Після того, як проект був зареєстрований, в директорію /branches надходять зміни та виправлення до проекта. Заносяться такі дані: назва проекта, розробники, ліцензія, підпроекти, залежності проекта, версія змін, вихідні файли проекта. Зміни мають відрізнятися номером версії від основного проекта та інших змін.

в) Користувач створює запит на отримання программного забезпечення

Користувач створює запит який складається з назви та версії проекта. Користувач отримує список залежностей відповідного проекта. Відповідні вихідні файли або їх ftp aдресу.

г) Реєстрація розробника

Розробник надає дані про себе. Отримує логін та пароль, який дозволяє створювати власні проекти та надсилати зміни до інших.

д) Надавати звіт

Здійснюється пошук ПЗ за датою створення, тематикою.

е) Надавати дистрибутив користувачу

Користувач створює запит на отримання дистрибутиву, а не окремого пакету. Отримує ftp-адресу архіва дистрибутиву.

Основна функція репозиторія — збереження та розповсюдження однозначного дистрибутива ПЗ.

Проблемою предметної області є відсутність цілісності. Інформація зберігається в великій кількості директорій, що сприяє її пошкодженню. База даних гарантує захист та однозначність інформації.

Тому найкращою альтернативою для реалізації репозиторія являється створення программного засобу, який дозволив би швидко і ефективно отримувати ПЗ декільком користувачам одночасно, а також забезпечив однозначність зберігаємих даних. Таким програмним засоб є база даних.

1.2Аналіз процесу функціонування репозиторія. Розробка функціональної моделі Бази даних «Репозиторій програмного забезпечення»

Для побудови функціональної моделі використовуємо нотація Йордана:

— вся інформація по предметній області представляється в вигляді ієрарархії діаграм.

— на нульовій діаграмі представляється головна функція предметної області і зовнішні сущності.

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

— всі рівні діаграм супроводжуються таблицями потоків даних.

— остання таблиця є те що треба зберігати в базі даних.

Використовуючи дану методологію визначаємо основну функцію репозиторія, а також зовнішні сутності та потоки даних на основі дослідження предметної області (Рисунок 1).

Визначаємо функції на діаграмі потоків даних 1 рівня (Рисунок 2).

Інформацію про потоки даних заносимо в таблицю 1.

Таблица 1 — потоки даних і їх атрибути

Потоки даних 0 рівня

Потоки даних 1 рівня

Атрибути

Інформація від користувача

Запит ПЗ

Назва ПЗ, версія

Запит дистрибутива

Назва дистрибутиву, версія

Параметри виборки

Дата створення проекта, версія сумісного дистрибутива, назва

Інформація для користувача

Інформація про програмне забезпечення

Назва, версія, розробник, ліцензія, ftp-адреса вихідних файлів ПЗ, версія сумісного дистрибутиву.

Інформація про дистрибутив

ftp-адреса архіву вихідних файлів дистрибутиву

Список проектів

Список назв та версій потрібних проектів

Інформація від розробника

Розробник

Імя розробника, адреса електронної пошти

Ідентифікаційний код

Унікальний логін та пароль розробника, дає право на зміну проектів

Інформація про проект

Назва, версія, тема, ftp-адреса архіву вихідних файлів

Інформація для розробника

Ідентифікаційний код

Унікальний код розробника (дає право на зміну проектів)

Звіт

ftp-адреса вихідних файлів ПЗ, статус проекта (прийнято/не прийнято)

1.3 Постановка задачі

Мета даної курсової роботи — збільшення ефективності роботи репозиторія шляхом розробки бази даних і програмного забезпечення, для якого висуватимуться наступні вимоги:

1) Наявність простого меню програми, зручного для користувача.

2) Реалізація можливості пошуку програмного забезпечення:

за автором назвою датою створення

3) Можливість реєстрації дистрибутива, а саме фіксування таких даних, як:

назва дистрибутива версія

ftp-адреса вихідних файлів

4) Можливість реєстрації програмного забезпечення, а саме занесення до бази даних такої інформації:

· назва програмного забезпечення

· версія

· дата створення

· дистрибутив

· автор

· ліцензія

· ftp-адреса вихідних файлів

5) Можливість реєстрації автора, а саме занесення до бази даних такої інформації:

ім"я по-батькові

прізвище

email-адреса

6) Можливість редагування інформації про вже зареєстроване програмне забезпечення;

7) Можливість звіт по базі даних в цілому.

8) Мати інструкцію для користувача.

База даних, яка відповідатиме всім перерахованим вимогам значно спростить та пришвидшить задачу надання програмного забезпечення, оскільки людині потрібно буде головним чином лише вводити свої запити з клавіатури (або використовуючи мишу), програма автоматично оброблятиме їх і видаватиме всю необхідну інформацію.

2 Розробка проекту Бази Даних «Репозиторій програмного забезпечення»

2.1 Розробка концептуальної моделі Бази Даних «Репозиторій програмного забезпечення» (ER-Діаграма).

Виходячи з наведеної функціональної моделі бази даних репозиторія програмного забезпечення, розробимо концептуальну модель, представлену ER-діаграмою (Рисунок 3).

2.2 Розробка специфікації програмних модулів

Програмні модулі будуть розроблені в середовищі MySQL та наведені у додатках (Див. Додаток 1) у вигляді SQL-кодів, а також конструкторів форм, запитів, звітів, таблиць реалізованих, у вигляді html-сторінок, мовою php .

Специфікація програмних модулів має наступну структуру (Таблиця 2):

Таблиця 2 — Специфікація програмних модулів

Рівень модуля

Назва модуля

Опис модуля

Головна форма

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

Додати/видалити дистрибутив

Дає можливість зареєструвати новий дистрибутив/видалити існуючий, шляхом введення даних. Вхідні дані: назва дистрибутива, версія, ftp-адреса вихідних файлів

Додати/видалити автора

Дає можливість зареєструвати/видалити автора шляхом введення наступних даних: ім"я автора, по-батькові, прізвище, email-адреса автора

Додати/видалити ПЗ

Дає можливість зареєструвати/видалити програмне забезпечення шляхом введення наступних даних: назва, версія, дата створення, дистрибутив, автор, ліцензія, ftp-адреса вихідних файлів

Пошук ПЗ за датою

Виводить усе програмне забезпечення створене в період між початковою і кінцевою датою. Вхідні дані: початкова і кінцева дати. Вихідні дані: назва ПЗ, версія, дата, ліцензія, ftp-адреса, автор, дистрибутив

Пошук ПЗ за автором

Виводить усе програмне забезпечення створене заданим автором. Вхідні дані: імя та прізвише автора. Вихідні дані: назва ПЗ, версія, дата, ліцензія, ftp-адреса, автор, email-адреса автора

Пошук ПЗ за назвою

Виводить усе програмне забезпечення з заданою назвою. Вхідні дані: назва ПЗ. Вихідні дані: назва ПЗ, версія, дата, ліцензія, ftp-адреса, автор, дистрибутив, ftp-адреса дистрибутива

Пошук автора

Виводить усе програмне забезпечення створене заданим автором. Вхідні дані: прізвише автора. Вихідні дані: ім"я автора, по-батькові, прізвище, email-адреса автора

2.3 Розробка логічної моделі бази даних «Репозиторый ПЗ»

На основі концептуальної моделі розробимо логічну модель даних.

В окремі таблиці віднесемо такі сутності як Автор, Дистрибутив, ПЗ. (Модель даних подана на рисунку 6.) У кожній таблиці слід вписати атрибути, які будуть характерні для даної сутності. Кожен атрибут має свій тип, який визначається типом даних, який зберігатиметься у базі даних. Також вкажемо, яким ключем є кожен атрибут. Атрибути, які організують зв"язок між таблицями, є зовнішніми ключами (FK). Кожна сутність повинна мати ключ, який використовується для пошуку — PK — первинний ключ, якщо атрибут є альтернативою для пошуку, то він є альтернативним ключом (AK). Якщо за даним атрибутом можна впорядкувати інформацію, то цей атрибут є індексним ключом.

ПЗ Розробник

ПЗ

Дистрибутив Рисунок 4 — Логічна модель бази даних «Репозиторій ПЗ».

2.4 Розробка алгоритмів і графічних інтерфейсів програмних модулів

Алгоритм програми являє собою блок вибору дії та виклик відповідної підпрограми. Нижче наведено блок-схему алгоритма програми.

Рисунок 5 — Блок-схема основного алгоритма програми (головна форма)

Рисунок 6 — Алгоритм підпрограми Додати/видалити дистрибутив

Рисунок 7 — Алгоритм підпрограми Додати/видалити автора

Рисунок 8 — Алгоритм підпрограми Додати/видалити ПЗ

Рисунок 9 — Алгоритм підпрограми Пошук ПЗ з, а датою

Рисунок 10 — Алгоритм підпрограми Пошук ПЗ за назвою

Рисунок 11 — Алгоритм підпрограми Пошук ПЗ за автором Програма складається з двох частин:

бази даних, яку обслуговує сервер MySQL;

клієнтської частини, яка надає графічний інтерфейс, реалізованої в вигляді html форм, що обробляються php.

Клієнту надаються привілегії на пошук та модифікацію даних але не схем бази даних.

Кожному запиту відповідає окрема форма, яка складається з таблиць, полів введення та кнопок. Після натискання кнопки дані з полів ведення передаються php-обробнику. Який, в свою чергу, реалізує запит до бази даних та виводить результати.

Після відкриття має з’являтися меню. За допомогою нього можна буде обрати необхідну операцію, а саме, Додати/видалити дистрибутив, Додати/видалити автора, Додати/видалити ПЗ, Пошук ПЗ за датою, Пошук ПЗ за автором, Пошук ПЗ за назвою, Пошук автора, Звіт. Вище перелічені операції можна обрати за допомогою натискання відповідних кнопок в меню.

Якщо натиснути кнопку «Додати/видалити дистрибутив», відкриється форма, в якій необхідно буде заповнити наступні поля: Назва, Версія, ftp-адреса. Можна переглянути наявні дистрибутиви та видалити необхідні, вибравши їх та натиснувши кнопку «Видалити дистрибутив». З кожної підпорядкованої форми перехід до головного меню здійснюється натисканням на посилання «Повернутися на головну сторінку"Аналогічно можна додавати інформацію про нового автора, натиснувши кнопку «Додати/видалити автора» в головному меню. З’явиться форма реєстрації нового автора, до якої треба буде занести ім"я, по-батькові, та прізвише автора, його email-адресу. Також можна переглянути наявних авторів та видалити необхідні, вибравши їх та натиснувши кнопку «Видалити автора». Для реєстрації програмного забезпечення потрібно буде натиснути на кнопку «Додати/видалити ПЗ» в головному меню, відкриється форма «Додати/видалити ПЗ», до якої необхідно буде занести назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми. Також потрібно обрати автора та дистрибутив із вже наявних у базі даних. Також можна переглянути наявне програмне забезпечення та видалити необхідне, вибравши його та натиснувши кнопку «Видалити ПЗ».

Ряд форм, які реалізують пошук даних побудовані у вигляді полів введення параметрів пошуку та кнопки «Пошук». Результати пошуку повертаються у вигляді таблиці.

2.5 Розробка фізичної моделі бази даних «Репозиторій ПЗ»

На основі логічної моделі створюємо фізичну модель. Назви таблиць, полів таблиць, а також зв’язки між таблицями в фізичній і логічній моделі повністю співпадають. В таблиці 3 реалізована фізична модель. Пректна частина реалізована в середовищі MySQL.

Таблиця 3 — фізична модель БД репозиторію програмного забезпечення

Ім'я фізичної моделі

Тип

Формат поля

Ключ в ЛМ

Індек-сація

Обов. поле

Розробник

Номер розробника

Лічильник

Довге ціле

PK

IK1

Так

Прізвище

Текстовий

IK2

Так

Ім'я

Текстовий

IK2

Так

Побатькові

Текстовий

IK2

Так

Адреса елктронної пошти

Текстовий

Ні

ПЗ

Назва ПЗ

Текстовий

PK

IK1

Так

Версія ПЗ

Текстовий

PK

IK1

Так

Номер розробника

Числовий

Довге ціле

FK1

Так

Номер дистрибутива

Числовий

Довге ціле

FK2

Ні

Дата випуску

Дата/час

Короткий формат дати

Ні

Ліцензія

Текстовий

Так

ftp-адреса вихідних файлів ПЗ

Текстовий

AK

Так

Дистрибутив

Назва

Текстовий

AK1

IK2

Так

Версія

Текстовый

AК1

IK2

Так

Номер дистрибутиву

Лічилькик

Довге ціле

PK

IK1

Так

ftp-адреса вихідних файлів

Текстовий

AK2

Так

На основі побудованої логічної моделі даних репозиторію побудуємо фізичну модель в середовищі MySQL. Створимо таблиці «ПЗ», «Дистрибутив», «Розробник» .

Визначення таблиці «Розробник»:

CREATE TABLE rozrobnuk (

first_name varchar (30) NOT NULL default '',

last_name varchar (30) NOT NULL default '',

surname varchar (30) NOT NULL default '',

id int (11) NOT NULL auto_increment,

addr varchar (30) default NULL,

PRIMARY KEY (id),

UNIQUE KEY (first_name, last_name, surname)

) ;

Визначення таблиці «Дистрибутив»:

CREATE TABLE distr (

name varchar (30) NOT NULL default '',

version varchar (30) NOT NULL default '',

id int (11) NOT NULL auto_increment,

addr varchar (30) NOT NULL default '',

PRIMARY KEY (id),

UNIQUE KEY (name, version)

) ;

Визначення таблиці «ПЗ»:

CREATE TABLE PZ (

name varchar (30) NOT NULL default '',

version varchar (10) NOT NULL default '',

dev_id int (11) default 0,

distr_id int (11) default 0,

date date default NULL,

licence varchar (30) default NULL,

addr varchar (30) NOT NULL default '' UNIQUE,

PRIMARY KEY (name, version),

FOREIGN KEY (dev_id) REFERENCES dev (id)

ON DELETE SET NULL

ON UPDATE CASCADE,

FOREIGN KEY (distr_id) REFERENCES distr (id)

ON DELETE SET NULL

ON UPDATE CASCADE

) ;

Додаємо індекси:

CREATE INDEX pib ON dev (first_name, last_name, surname);

CREATE INDEX pzindex1 ON PZ (name, version);

CREATE INDEX distrindex1 ON distr (name, version);

Усі таблиці, які наведені у схемі фізичної моделі, належать до третьої нормальної форми, оскільки всі поля містять не більше одного значення, жодне з ключових полів не пусте, всі поля, що не входять до первинного ключа, пов’язані повною функціональною залежністю з первинним ключем.

Після створення фізичної моделі даних можна зробити наступні висновки:

схема зв’язку фізичної та логічної моделі ідентичні;

в ході роботи була досягнута третя нормальна форма;

підчас оцінки якості структури бази даних аномалій не виявлено.

2.6 Кодування і тестування програмного забезпечення

База даних «Репозиторій ПЗ» була розроблена у середовищі MySQL + php. Вона реалізована за допомогою таблиць, форм, запитів та звітів. Також для нормального функціонування бази даних було написано програмний код, який представлено у Додатку А.

При тестуванні бази даних «Репозиторій ПЗ «не було виявлено помилок в роботі. Для запуску бази даних, використовуючи браузер mozilla, заходимо на адресу http://217.77.222.218. При запуску бази даних відкрилася форма «Репозиторій ПЗ», в якій було натиснуто кнопку «Додати/видалити автора», потім відкрилася форма «Додати/видалити автора», в якій було заповнено поля ім"я, по-батькові, та прізвише автора, його email-адресу значеннями (імя1,побатькові1,прізвище1,[email protected]). Після натискання кнопки «Додати автора» внесені дані з’являються в таблиці нижче. Відповідне звернення фіксується в журналі бази даних. Повторюємо дану операцію 4 рази для різних авторів. Далі вибираємо будь-якого автора з таблиці нижче та натискаємо кнопку «Видалити автора». Вибраний автор зникає з таблиці. Для повернення до форми «Репозиторій ПЗ» натискаємо кнопку «Повернутися на головну сторінку».

Також у формі «Репозиторій ПЗ» було натиснуто кнопку «Додати/видалити дистрибутив», після цього відкрилася форма «Додати/видалити дистрибутив», де було заповнено поля Назва, Версія, ftp-адреса. Після натискання кнопки «Додати дистрибутив» дані про внесений до бази даних дистрибутив з’являються в таблиці нижче «Наявні дистрибутиви». Повторюємо вищевказані операції 3 рази. Введені дистрибутиви з’являються в таблиці «Наявні дистрибутиви». Вибираємо рядок таблиці та натискаємо кнопку «Видалити дистрибутив». Вибраний рядок (а отже і дистрибутив) зникає з таблиці. Для повернення до форми «Репозиторій ПЗ» натискаємо кнопку «Повернутися на головну сторінку». Відкривається форма «Репозиторій ПЗ».

Натиснувши в формі «Репозиторій ПЗ «кнопку «Додати/видалити ПЗ», відкрилася форма «Додати/видалити ПЗ», в якій було заповнено поля назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми. Також обрано автора та дистрибутив із вже наявних у базі даних. Дані про внесене ПЗ з’являються у таблиці «Наявне ПЗ». Повторюємо операцію 5 разів. Інформація про все ПЗ введене в базу з’являється в таблиці «Наявне ПЗ». З таблиці вибираємо 2 рядка, які, відповідно, описують два екземпляра ПЗ. Після натискання кнопки «Видалити ПЗ» вибрані рядки зникають з таблиці «Наявне ПЗ». Для повернення до форми «Репозиторій ПЗ» натискаємо кнопку «Повернутися на головну сторінку».

Натиснувши в формі «Репозиторій ПЗ «кнопки «Пошук ПЗ за датою», «Пошук ПЗ за автором», «Пошук ПЗ за назвою», «Пошук автора», «Звіт» було виведено запит за відповідним критерієм. Після введення необхідного критерію з’являвся звіт, у якому було представлено кортежі бази даних, які задовольняють заданий критерій.

Для пошуку програмного забезпечення за приблизною датою створення натискаємо в формі «Репозиторій ПЗ» кнопку «Пошук ПЗ за датою». З’являється форма «Пошук ПЗ за датою» в якій з випадаючих списків вибираємо початкову та кінцеву дату. Після натискання кнопки «Пошук» в таблиці «Звіт ПЗ» нижче з’являється інформація про програмне забезпечення, яке сворене пізніше початкової та раніше кінцевої дати. Для отримання вихідних файлів ПЗ натискаємо на посилання в колонці ftp-адреса та переходимо за відповідною адресою. Для повернення до форми «Репозиторій ПЗ» натискаємо кнопку «Повернутися на головну сторінку».

Висновки

Підчас розробки проекту бази даних «Репозиторій ПЗ» були проведені обстеження та детальний аналіз предметної області, були створені функціональна, концептуальна, логічна та фізична моделі бази даних. Також були детально проаналізовані усі елементи, з яких складається даний програмний продукт та залежності між ними. Для розробки даного програмного продукту було використано MySQL та php — відкриті, прозорі, безкоштовні та переносимі рішення.

Створена електронна база даних значно підвищує ефективність праці у процесі обліку програмного забезпечення, оскільки дозволяє швидко реалізувати можливості пошуку ПЗ: за автором, назвою, датою створення; можливість реєстрації дистрибутива, а саме фіксування таких даних, як: назва, версія, ftp-адреса дистрибутива; можливість реєстрації автора, а саме занесення до бази даних такої інформації: ім"я, по-батькові, та прізвише автора, його email-адресу; можливість реєстрації програмного забезпечення, а саме занесення до бази даних такої інформації: назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми, автора та дистрибутив із вже наявних у базі даних.; можливість редагування інформації про вже зареєстроване програмне забезпечення; можливість переглядати статистичні дані про все наявне програмне забезпечення.

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

Отже, розроблене програмне забезпечення повністю задовольняє поставлені до нього вимоги. Може бути використане за призначенням як примітивний репозиторій та як приклад для інших проектів.Список використаних джерел

Гарсиа-Молина, Гектор, Ульман, Джеффи, Д., Уидом, Джениффер. Системы баз данных. Полний курс.: Пер. с англ. — М.: Издательский дом «Вильямс», 2004. -1088 с.

Кирилов В. В. Основи проектирования реляционних баз даних. Учебное пособие. -СПб.:ИТМО, 1994. — 90 с.

Додаток, А — Текст програми

index.php

function myhref ($href) {

$style = «style="border: 1px solid black; cursor: pointer» «;

$href = «onclick="location.href='$href'» «;

$rollover = «onmouseover="this.style.background='#c0c0c0'» onmouseout="this.style.background='#d3d3d3'" «;

return $style.$rollover.$href;

}

?>

=[ Репозиторій ]=
ПошукАдміністрування
ПЗ по датіПЗ
ПЗ по авторуДістр
ПЗ по назвіАвтор
Автора по імені
Все!
license

header.inc.html

function myheader ($title="Репозиторій") {

$header = «n» ;

$header = $header. «nn» .$title."n" ;

$header = $header. «n» ;

$header = $header. «nn» ;

return $header;

}

?>

footer.inc.html

if (!$printLink == 1) echo «= Повернутися на головну сторінку =

" ;

?>

[ June, 03.04, 2007 © ]

styles.css

a {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

color: Navy;

font-size: 9pt;

text-decoration: none;

}

a:hover { color: #ff0000; }

.h1 {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 16pt;

font-weight: bold;

vertical-align: middle;

}

.h2 {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 12pt;

font-weight: bold;

vertical-align: middle;

}

.text {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 10pt;

}

.foo {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 8pt;

color: #A9A9A9;

}

db.php

class db {

var $dbl;

var $res;

function db ($host="localhost" ,$user="lus" ,$pass="1″)

{

$this→dbl = mysql_pconnect ($host,$user,$pass);

mysql_select_db («lus», $this→dbl);

}

function query ($q)

{

$this→res = mysql_query ($q, $this→dbl);

return $this→res;

}

function num_rows ()

{

return mysql_num_rows ($this→res);

}

function fetch_row ()

{

return mysql_fetch_row ($this→res);

}

function fetch_array ()

{

return mysql_fetch_array ($this→res, MYSQL_ASSOC);

}

function fetch_object ()

{

return mysql_fetch_object ($this→res);

}

function insert_id ()

{

return mysql_insert_id ($this→dbl);

}

function is_result ()

{

return $this→res? 1: 0;

}

}

?>

forms/afftar.html

Додати/видалити автора

Ім'я
По-батькові:
Прізвище:
email:

scripts/afftar.php

require «./db.php» ;

include «./forms/afftar.html» ;

$db = new db ();

if (isset ($_GET['add'])) {

$fn = $_GET['fname'];

$ln = $_GET['lname'];

$sn = $_GET['sname'];

$a = $_GET['address'];

$db→query («INSERT INTO dev (first_name, last_name, surname, addr)

VALUES ('$fn','$ln','$sn','$a') «);

} elseif (isset ($_GET['del'])) {

foreach ($_GET['delarr'] as $arr){

$db→query («DELETE FROM dev

WHERE id = $arr «);

}

}

?>

Зареєстровані автори

$db→query («SELECT id, first_name, last_name, surname, addr FROM dev»);

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val){

if ($key=='id') $val = «» ;

if ($key=='addr') $val = «$val» ;

echo «» .$val."" ;

}

echo «» ;

}

?>

Ім'яПо-батьковіПрізвищеemail

forms/distr.html

Add/Del distr

Ім'я
Версія:
Адрес:

scripts/distr.php

include «./forms/distr.html» ;

require («./db.php»);

$db = new db ();

if (isset ($_GET['add'])) {

$n = $_GET['name'];

$v = $_GET['version'];

$a = $_GET['address'];

$db→query («INSERT INTO distr (name, version, addr)

VALUES ('$n','$v','$a') «);

} elseif (isset ($_GET['del'])) {

foreach ($_GET['delarr'] as $arr){

$db→query («DELETE FROM distr

WHERE id = $arr «);

}

}

?>

Наявні дистрибутиви

$db→query («SELECT id, name, version, addr FROM distr»);

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val) {

if ($key=='id') $val = «» ;

if ($key=='addr') $val = «$val» ;

echo «» .$val."n" ;

}

echo «» ;

}

?>

НазваВерсіяftp-адреса

forms/pz.html

<

Додати/Видалити ПЗ

Назва
Версія:
Дата:
Дистрибутив:

Автор:

Ліцензія:
ftp-адреса:

scripts/pz.php

require («./db.php»);

$db = new db ();

?>

include «./forms/pz.html» ;

if (isset ($_GET['add'])) {

$n = $_GET['name'];

$v = $_GET['version'];

$d = $_GET['date'];

$l = $_GET['licence'];

$n_d=$_GET['distr'];

$n_a=$_GET['author'];

$a = $_GET['address'];

$db→query («INSERT INTO pz (name, version, dev_id, distr_id, date, licence, addr)

VALUES ('$n','$v', '$n_a', '$n_d', DATE '$d', '$l', '$a') «);

} elseif (isset ($_GET['del'])) {

foreach ($_GET['delarr'] as $arr){

$tmp = explode («:» ,$arr);

$db→query («DELETE FROM pz

WHERE name = '$tmp[0]'

AND version = '$tmp[1]' «);

}

}

?>

Наявне ПЗ

$db→query («SELECT pz.name, pz. version, pz. date, pz. licence, pz. addr, dev. first_name,

dev. surname, distr.name AS name1, distr. addr AS address

FROM pz, dev, distr

WHERE (pz.dev_id=dev.id AND pz. distr_id=distr.id)");

while ($arr=$db→fetch_array ()){

echo «» ;

$tmp=$arr['name']. «:» .$arr['version'];

$val = «» ;

echo «» .$val."n" ;

foreach ($arr as $key=>$val)

echo «» ;

}

?>

НазваВерсіяДатaЛіцензіяftp-адресаРозробникДистрибутивftp-aдреса дистрибутива

if (isset ($_GET['add'])) {

$n = $_GET['name'];

$v = $_GET['version'];

$d = $_GET['date'];

$l = $_GET['licence'];

$n_d=$_GET['distr'];

$n_a=$_GET['author'];

$a = $_GET['address'];

$db->query («INSERT INTO pz (name, version, dev_id, distr_id, date, licence, addr)

VALUES ('$n','$v', '$n_a', '$n_d', DATE '$d', '$l', '$a') «);

} elseif (isset ($_GET['del'])) {

$db->query («DELETE FROM distr

WHERE name = '$n'

AND version = '$v' «);

}

?>

forms/sAName.html

Пошук авторa

Прізвище автора:

scritps/sAName.php

include «./forms/sAName.html» ;

$name = $_GET['surname'];

require («./db.php»);

$db =new db ();

##########

$db→query («SELECT dev. first_name, dev. last_name, dev. surname, dev. addr

FROM dev

WHERE dev. surname = «$name» «);

?>

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val)

echo «» .$val."" ;

echo «» ;

}

?>

Ім'яПо-батьковіПрізвищеАдреса

forms/sAuthor.html

Пошук по автору

Ім'я:
Прізвище:

scritps/sAuthor.php

include «./forms/sAuthor.html» ;

$firstname = $_GET['first_name'];

$surname = $_GET['surname'];

require («./db.php»);

$db =new db ();

##########

$db→query («SELECT pz.name, pz. version, pz. date, pz. licence, pz. addr, dev. first_name, dev. surname, dev. addr AS address

FROM pz, dev

WHERE (pz.dev_id=dev.id)

AND (dev.first_name = «$firstname»)

AND (dev.surname = «$surname») «);

?>

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val)

echo «» .$val."" ;

echo «» ;

}

?>

Ім'яВерсіяДатaЛіцензіяftp-адресаРозробникАдреса розробника

forms/sDate.html

Пошук по даті

Дата:

з

по

scritps/sDate.php

include «./forms/sDate.html» ;

require («./db.php»);

$db =new db ();

$fromDate = $_GET['from_year']. '-'.$_GET['from_month'].'-'.$_GET['from_day'];

$toDate = $_GET['to_year']. '-'.$_GET['to_month'].'-'.$_GET['to_day'];

$db→query («SELECT pz.name, pz. version, pz. date, pz. licence, pz. addr, dev. first_name, dev. surname, distr.name AS distr

FROM pz, dev, distr

WHERE (pz.dev_id=dev.id AND pz. distr_id=distr.id)

AND (pz.date > DATE «$fromDate»)

AND (pz.date < DATE «$toDate») «);

?>

Звіт ПЗ з

по :

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val)

echo «» .$val."" ;

echo «» ;

}

?>

Ім'яВерсіяДатaЛіцензіяftp-адресаРозробникДістрібутив

forms/sName.html

Пошук по автору

Назва ПЗ:

scripts/sName.php

include «./forms/sName.html» ;

$name = $_GET['name'];

require («./db.php»);

$db =new db ();

##########

$db→query («SELECT pz.name, pz. version, pz. date, pz. licence, pz. addr, dev. first_name,

dev. surname, distr.name AS name1, distr. addr AS address

FROM pz, dev, distr

WHERE (pz.dev_id=dev.id AND pz. distr_id=distr.id)

AND (pz.name = «$name») «);

?>

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val)

echo «» .$val."" ;

echo «» ;

}

?>

Ім'яВерсіяДатaЛіцензіяftp-адресаРозробникДистрибутивftp-aдреса дистрибутива

scripts/sAll.php

require («./db.php»);

$db =new db ();

$db→query («SELECT pz.name, pz. version, pz. date, pz. licence, pz. addr, dev. first_name,

dev. last_name, dev. surname, dev. addr AS address, distr.name AS distr,

distr. version AS vers, distr. addr AS distr_addr

FROM pz, dev, distr

WHERE pz. dev_id=dev.id AND pz. distr_id=distr.id «);

?>

Звіт по базі даних

while ($arr=$db→fetch_array ()){

echo «» ;

foreach ($arr as $key=>$val)

echo «» .$val."" ;

echo «» ;

}

?>

Назва програмиВерсіяДатaЛіцензіяftp-адресаРозробникАдреса розробникаДістрібутивВерсія листрибутивуftp-aдреса дистрибутиву

Додаток Б — Інструкція для користувача

Базу даних «Репозиторій ПЗ» реалізовано в вигляді web-додатку.Відкрити базу даних можна скориставшись посиланням http://217.77.222.218. Після відкриття бази даних з’явиться меню (рис. 5):

Рисунок 5 — Головна форма бази даних «Репозиторій ПЗ»

За допомогою меню можна обирати необхідні операції: «Додати/видалити ПЗ», «Додати/видалити дистрибутив», «Додати/видалити автора», «Пошук ПЗ за датою», «Пошук ПЗ за автором», «Пошук ПЗ за назвою», «Пошук автора», «Звіт»

Якщо потрібно додати до бази інформацію про новий дистрибутив потрібно натиснути в меню кнопку «Додати/видалити дистрибутив», після цього зявиться вікно вказане на

рисунку 6:

Рисунок 6 -форма «Додати/видалити дистрибутив»

У вище приведеному вікні потрібно заповнити поля «Назва «, «Версія», «ftp-адреса». Та натиснути кнопку «Додати дистрибутив» для додавання. Або вибрати мишкою дистрибутив з таблиці «Наявні дистрибутиви» та натиснути кнопку «Видалити відмічені» для видалення.

Якщо потрібно додати до бази інформацію про нове програмне забезпечення потрібно натиснути в меню кнопку «Додати/видалити ПЗ», після цього зявиться вікно вказане на рисунку 7:

Показати весь текст
Заповнити форму поточною роботою