ЗМІСТ
Вступ
. Розробка плану проекту
.1 Аналіз задачі, обгрунтування вибору моделі життєвого циклу для реалізації проекту
.2 Обгрунтування вибору апаратних ресурсів, мови програмування та CASE-засобів
.3 Розробка графіка виконання робіт по проекту у контексті обраної моделі життєвого циклу
.4 Аналіз ризиків проекту та управління ними
. Розробка системної специфікації вимог до програмного забезпечення (за методом VORD)
.1 Розробка користувальницьких вимог
. Розробка архітектури програмного забезпечення
.1 Автоматна модель ПЗ
. Кодування і тестування ПЗ
.1 Характеристика впливу особливостей мови програмування на процес кодування ПЗ
.2 Обгрунтування вибору методів тестування ПЗ (статичні чи динамічні аналізатори коду)
.3 Представлення результатів тестування ПЗ (у хронологічному порядку, які помилки були виявлені і виправлені)
.4 Результати оцінки якості розробленого програмного забезпечення на основі метричного аналізу
.5 Представлення результатів, що демонструють функціональність розробленого ПЗ
Висновки
Література
Додаток
ВСТУП
Поняття "інформаційна технологія" (ІТ) у сучасному контексті набуває особливої багатогранності та поширюється на всі області діяльності людини, оскільки інформація, що трансформується у дані, знання, інформаційні та програмні продукти, технологічні винаходи - є невід'ємною частиною сьогодення. Тому для ефективного вивчення ІТ-галузі необхідний усесторонній підхід, який дозволить об'єднати та узагальнити відомості ряду навчальних дисциплін, таких як "Комп'ютерні мережі та телекомунікації", "Інформаційні системи і технології" та "Сучасні Інтернет-технології". У навчальному посібнику авторами представлено нову концепцію комплексного аналізу ІТ-галузі, починаючи від базових термінів, таких як "технологія" та "інформація", до задач оптимізації створення інформаційного продукту, його захисту, технологій проектування інформаційних систем ( ІС) і моделювання бізнес-процесів. Запропонований підхід орієнтований на економічну сторону ІТ та розглядає економічну інформацію, її властивості, способи формалізованого опису для класифікації та узагальнення. Проведений аналіз структури ІТ у посібнику дозволяє трактувати технологію як сукупність процесів, що використовують засоби та методи накопичення, обробки і передачі первинної інформації для отримання інформації нової якості про стан об'єкту, процесу або явища (інформаційного продукту). Створення нового інформаційного продукту, як правило, вимагає видобування знань шляхом обробки і узагальнення різнотипних даних економічного характеру, отриманих із різних джерел. Ця задача може бути вирішена з різним ступенем ефективності та великими часовими затратами, документальними способами отримання знань, такими як методи математичної статистики. Проте, ці методи не дозволяють знаходити і видобувати знання з масивів даних, а високі вимоги до кваліфікації кінцевих користувачів обмежують їх використання. Розглянуті у посібнику експертні технології видобування знань та прийняття рішень - виявлення знань в базах даних (Knowledge Discovery in Databases), технологія аналітичної обробки даних в реальному часі (OLAP), технологія аналізу сховищ даних (Data Mining), нейромережні технології штучного інтелекту та експертні системи дозволяють з більшою ефективністю отримати знання на основі аналізу прихованих закономірностей у масивах даних та прийняти оптимальне у певній ситуації рішення, використовуючи сучасні програмні засоби. Оскільки призначення ІТ полягає у виготовленні інформаційного продукту номінальної якості з оптимальними витратами, у посібнику досліджується галузь математичного моделювання бізнес-процесів та методів прийняття рішення з оптимізацією за заданим критерієм, з точки зору технологій динамічного програмування. Тенденція об'єднання комп'ютерів у мережі на сьогоднішній день набула завершеного вигляду, що втілилось у активний розвиток ІТ комп'ютерних мереж і, в тому числі, всесвітньої мережі Інтернет, а також галузі електронної комерції. У навчальному посібнику стисло викладено відомості про базові мережні технології, протоколи та сервіси, механізми пошуку, електронні платіжні системи. Окрему увагу приділено гіпертекстовій технології та технологіям створення web-вузлів - темі, що представляє особливий інтерес для творчих особистостей. Зважаючи на іншу сторону стрімкого розвитку ІТ, у посібнику неможливо було обминути гостро актуальні питання інформаційного піратства, розвинуті технології якого становлять суттєву загрозу інформаційному продукту. У посібнику розглянуто види інформаційних та програмних продуктів і можливі загрози для них в сучасному комп'ютерному середовищі. Детально досліджено питання захисту персональної інформації і протидії інформаційним та програмним продуктам шкідливого характеру, технологію забезпечення безпеки інформаційних систем, поняття ідентифікації, аутентифікації, політики безпеки тощо. Результати проведених досліджень та здійснених узагальнень щодо перетворення інформації на шляху до інформаційного продукту, необхідно враховувати і при проектуванні ІС, яка буде створювати інформаційний продукт. Для цього у навчальному посібнику проаналізовано етапи створення ІС та моделі її життєвого циклу, включно з архітектурою. Розглянуто також основні технології, що використовуються на кожному з етапів життєвого циклу ІС, для оптимізації процесів її проектування та функціонування.
1. РОЗРОБКА ПЛАНУ ПРОЕКТУ
диспетчер проект програмний забезпечення
1.1 Аналіз
задачі, обґрунтування вибору моделі життєвого циклу для реалізації проекту
Аналіз самої задачі, розбір її на складові частини та визначення вимог розпочинається насамперед з постановки завдання до проекту, те що від нас вимагається так би мовити в двох словах, а завдання до проекту звучить так:
Завдання проекту
Створити програму, що допоможе диспетчеру таксі виконувати повсякденну роботу. Зберігати дані водіїв, дані автомобілів, замовлення. Передбачити внесення інформації про оплату, тариф, ефір, відсутність оплати, пільгове замовлення.
Передбачити: Додавання, видалення та перегляд інформації. Система повинна працювати під різними ОС.
Із завдання до проекту видно, що система, яка повинна бути одержана у результаті має використовуватись певними особами в робочих цілях. Більш чіткий опис споживачів системи та мотиви створення цієї системи описані нижче.
Споживачі системи
Споживачем виступає юридична особа підприємства таксопарку та фізичні особи їх працівників. Фактично, споживачами будуть - диспетчери та адміністрація таксопарку.
Мета проектування
Метою проектування являється автоматизація ведення обліку замовлень на автомобільні перевезення і зменшення кількості рутинної з метою пришвидшення обслуговування клієнтів.
При проектуванні данної системи будуть використовуватись наступні терміни:
Словник термінів
Адміністратор - той користувач, який буде мати доступ до редагування повністю усіх таблиць у базі даних. Це можливо буде власник фірми, або той хто займається кадрами.
Диспетчер - користувач, який буде мати доступ тільки до створення та введення даних нового замовлення. Фактично, користувач, що прийматиме замовлення.
Замовлення - фактично, новий запис в таблиці Замовлення з інформацією про замовлення.
Ефір водія - фіксована сума, яку водій повинен заплатити один раз в місяць, працюючи на підприємстві.
Вибір моделі життєвого циклу ПЗ:
Одним з ключових понять проектування інформаційних систем є життєвий цикл проекту - Project Life Cycle Management (PLCM). В загальному випадку, життєвий цикл визначається моделлю й описується у формі методології (методу). Модель або парадигма життєвого циклу визначає загальну організацію ЖЦ і, як правило, основні його фази та принципи переходу між ними. Методологія (метод) визначає комплекс робіт, їх детальний зміст і рольову відповідальність спеціалістів на всіх етапах вибраної моделі ЖЦ; рекомендує практики (best practices), які дозволяють максимально ефективно використовувати відповідну методологію та її модель.
Модель життєвого циклу - структура, що складається із процесів, робіт та задач, які включають в себе розробку, експлуатацію і супровід програмного продукту; охоплює життя системи від визначення вимог до неї до припинення її використання.
Наведемо опис та особливості каскадної моделі життєвого циклу ПЗ
Каскадна (водоспадна) модель
Основна характеристика - cлідуючи каскадній моделі, розробник переходить від однієї стадії до іншої строго послідовно. Спочатку повністю завершується етап «визначення вимог», в результаті чого виходить список вимог до ПЗ. Після того, як вимоги повністю визначені, відбувається перехід до проектування, в ході якого створюються документи, що детально описують для програмістів спосіб і план реалізації зазначених вимог.
Після того як проектування повністю виконане,
програмістами виконується реалізація отриманого проекту. На наступній стадії
процесу відбувається інтеграція окремих компонентів, що розробляються різними
командами програмістів. Після того як реалізація і інтеграція завершені,
проводиться тестування і відладка продукту; на цій стадії усуваються всі
недоліки, що з'явилися на попередніх стадіях розробки. Після цього програмний
продукт впроваджується і забезпечується його підтримка - внесення нової
функціональності та усунення помилок. Схема каскадної моделі ЖЦ подана на
рисунку 1.1.1
Рисунок 1.1.1 - Схема каскадної моделі ЖЦ
Тим самим, каскадна модель має на увазі, що перехід від однієї фази розробки до іншої відбувається тільки після повного і успішного завершення попередньої фази, і що переходів назад або вперед або перекриття фаз - не відбувається. Кожен етап завершується випуском готового комплекту документації.
Каскадна модель виділяє такі основні етапи життєвого циклу програм:
§ Аналіз проблеми, постановка задачі і специфікація вимог до майбутньої програми. Як правило, цей етап повинен передбачати взаємодію між виконавцем та замовником. Результатом повинно бути технічне замовлення, сформульоване в письмовому вигляді.
§ Проектування. Повинен бути вибраний метод вирішення задачі та спроектований відповідний алгоритм.
§ Кодування, яке полягає в написанні тексту програми відповідно до розробленого алгоритму.
§ Відлагодження, яке полягає у виявлення та виправленні помилок.
§ Тестування, що передбачає перевірку правильності програми на тестових прикладах - спеціально підібраних наборів вхідних даних. Для цих наборів даних повинні бути відомими правильні відповіді. Якщо відповіді програми на всіх тестових прикладах співпадають з очікуваними, програма вважається правильною.
§ Тестування повинно бути якомога більш повним, і правильний підбір тестових прикладів часто є дуже непростою задачею. Повинні бути перевірені всі типи вхідних даних і всі можливі варіанти виконання програми. Повинен бути проведений тест в нормальних умовах (дані, характерні для реальних умов фунціонування), тест в екстремальних умовах (перевірка функціонування програми в крайніх випадках, коли вхідні дані перебувають на межі припустимого діапазону) і тест за виняткових обставин (коли вхідні дані виходять за рамки припустимого діапазону).Впровадження і експлуатація.
§ Модифікація програми у випадку необхідності. Необхідність модифікації програми може бути пов'язана, наприклад, зі зміною умов її функціонування або з посиленням вимог до неї.
§ Зняття з експлуатації.
До переваг каскадної моделі належать:
на кожному етапі формується закінчений набір проектної документації, що відповідає критеріям повноти і узгодженості;
виконувані в логічній послідовності етапи робіт дозволяють планувати терміни завершення всіх робіт і відповідні витрати.
Каскадний підхід добре зарекомендував себе при створенні ПЗС, для яких на самому початку розробки можна достатньо точно і повно сформулювати всі вимоги, з тим щоб надати розробникам свободу реалізувати їх якнайкраще з технічної точки зору. У цю категорію потрапляють складні розрахункові системи, системи реального часу і інші подібні завдання.
Недоліками каскадної моделі є те, що перехід від однієї фази проекту до наступної пропонує повну коректність результату попередньої фази. Одна неточність якої небудь вимоги чи некоректна його інтерпритація в результаті приводить до того, що необхідно буде провести "відкат" до фази в проекті яка була раніше. Такі дії приводять до збільшення затрат на проект і не виключенно, до завершення проекту в формі, в якій він спочатку планувався.
Обгрунтування вибору:
Каскадну модель життєвого циклу було обрано, тому що для данного проекту вона є найбільш підходящою. Проект є невеликий з достатньою кількістю часу на його розробку і з достатньою кількістю розробників, щоб потихеньку, вдумливо і без зайвих проблем відпрацювати кожен з етапів моделі, які йдуть одні за одним послідовно. Як зазначалось уже вище, проект доволі простий і не потребує додаткових прототипів для власної реалізації, при використанні ітераційної моделі, наприклад, перший же прототип був би готовою реалізацією, тому розбиття такого проекту на мінімум дві ітерації було б зайвим.
Оскільки всі вимоги до системи відомі нам на етапі проектування і вони будуть незмінними до його здачі, використання спіральної чи іншої ітераційної моделі є надлишковим та ресурсозатратним. Ідеальним варіантом в даному випадку є каскадна модель, тому ми її і обрали.
1.2 Обгрунтування вибору апаратних
ресурсів, мови програмування та CASE-засобів
Оскільки система буде виконувати розрахунково-зберігаючі дії: отримувати дані, опрацьовувати їх за певними алгоритмами та зберігати у постійній базі знань, а потім видавати ці дані на запит користувачів, то само собою постає питання про використання баз даних у проекті та відповідно вибору мови програмування, що дозволить легко та без особливих труднощів працювати з базами даних. В принципі на сьогоднішній день майже будь-яка мова програмування прекрасно працює з базами даних, тому можна було обрати традиційну і всіми добре знану, зарекомендовану мову С++, адже вона перевірена роками, чудово підтримує основні концепції об’єктно-орієнтованого програмування і рівень надійності програм написаних на цій мові досить високий. Проте у завданні звучало фраза, яка звужує коло мов програмування - система повинна працювати стабільно і чітко незалежно від платформи на якій вона буде запущена. Наскільки відомо, мова програмування С++ є машиннозалежною мовою, яка дуже прив’язується до платформи, і портування програм написаних на цій мові вимагають значних затрат зусиль та часу. Використання додаткових засобів та умінь. Без зміни початкового коду програми також не обійтись. Думаю, не варто говорити, що при цьому кожен раз потрібно перекомпільовувати усі модулі проекту та заново їх збирати. Який же вихід? А вихід такий: потрібно використовувати мову програмування, особливістю якої є так звана кроссплатформовість (незалежність від ОС). Однією з таких мов є мова програмування Java. Вона є більш сучасною, при цьому дуже схожою на мову С/С++. Вона увібралась в себе усі переваги мови С++ та була доповнена новими можливостями, що дозволяють крокувати в ногу з часом та новітніми технологіями. Серед основних переваг мови Java є звісно кроссплатформовість. Можливість працювати однаково на різних платформах цій мові дає змогу особливий підхід до виконання програми, а полягає він у тому, що програмний код виконує безпосередньо не процесор, а проміжна програма, що називається віртуальною машинною. При такому підході винахідникам мови доведеться адаптувати тільки віртуальну машину на різні платформи, при цьому весь код вищого рівня (прикладні програми) може залишатись незмінним. Це тільки одна з переваг мови Java, повний перелік її можливостей вказаний нижче:
1) переносимість, або кросcлатформовість;
2) об'єктна орієнтованість, створена ефективна об'єктна модель;
) звичний синтаксис C/C++;
) вбудована і прозора модель безпеки;
) орієнтація на Internet-завдання, мережеві розподілені додатки;
) динамічність, легкість розвитку і додавання нових можливостей;
) простота освоєння.
Для зберігання даних у цьому проекті ми вирішили використати найпопулярнішу на сьогоднійшій день СУБД MySQL, до того тип цієї СУБД прекрасно працює у одній ланці з мовою Java. Переваги цієї СУБД у наступному:
· продуктивність (через що Google і Yahoo використовують саме MySQL)
· масштабованість (в компанії Omniture в реальному масштабі часу використовується 7000 серверів MySQL)
· надійність (в коді пропрієтарних продуктів міститься в десять з гаком разів більше вразливостей)
· простота використання, простота впровадження (за 15 хвилин можна скачати і запустити систему)
· відкрита і модульна розробка
· низькі сукупні витрати (платити потрібно лише за потреби в підтримці)
В якості CASE-засобів ми вирішили обрати середовище розробки NetBeans та систему адміністрування базами даних SQL Manager for MySQL. Опис цих засобів знаходиться нижче:
NetBeans IDE - вільна інтегрована середовище розробки додатків (IDE) на мовах програмування Java, JavaFX, Python, PHP, JavaScript, C + +, Ада та ряду інших.
Основні можливості:
· Apache Ant використовується в якості машини побудови
· Метадані проекту - це скрипти побудови Ant
· Доступна можливість побудови додатків поза інтегрованої средис допомогою Ant, при цьому не потрібно ніякого спеціального дії (на кшталт "експорту в Ant")
· Повністю інтегрована підтримка модульного тестування (JUnit)
· Вихідні файли показуються в контексті проекту в логічному вигляді
· Користувач може працювати з декількома проектами одночасно
· Все вищезазначене доступно прямо з
коробки, від користувача не потрібно копатися в жодних налаштуваннях
Рисунок 1.2.1 - Зображення середовища NetBeans IDE
EMS SQL Manager for MySQL Freeware - це безкоштовний інструмент для розробки і управління базами даних MySQL, який значно спростить виконання основних адміністративних завдань. Він значно полегшить вашу роботу з сервером MySQL і зробить її більш ефективною.
Ключові особливості
· Повна сумісність з версіями MySQL, починаючи з 3.23 по 5.6 включно
· Підтримка даних UTF8
· Швидка навігація та управління базами даних
· Елементарне управління всіма об'єктами MySQL
· Ефективні інструменти управління даними
· Ефективне управління параметрами безпеки
· Чудові графічні і текстові інструменти для побудови запитів
· Вражаючі можливості імпорту та експорту даних
· Конструктор звітів з зрозумілим майстром створення звітів