Розробка інтернет-магазину

Курсова робота з дисципліни: Технологія програмування та створення програмних продуктів

Тема: Розробка інтернет-магазину








Зміст



Вступ

1. Теоретичні відомості

2. Розробка програми

2.1 Загальний опис програми

2.2 Технічне завдання

2.3 Діаграма «сутність-зв'язок»

2.4 Діаграма потоків даних (DFD)

2.5 Реалізація

2.6 Програма та методика тестування

2.7 Інструкція користувача (інструкція підключення компонента)

Висновок

Література






Вступ



Інтернет-магазин (англ. online shop или e-shop) — веб-сайт, що рекламує товар чи послугу, приймає замовлення на покупку, пропонує користувачу вибір варіанта розрахунку, способу отримання замовлення та виписує рахунок на оплату.

Вибравши необхідні товари або послуги, користувач має змогу на сайті вибрати метод оплати та доставки. Сукупність відібраних товарів, спосіб оплати та доставки представляє собою кінцеве замовлення, що оформляється на сайті шляхом повідомлення мінімально необхідної інформації про користувача (покупця). Інформація про покупця може зберігатися в базі даних магазина, якщо бізнес – модель магазина розрахована на повторні покупки або відправлятися разово. Згідно даних опитування порталу mail.ru необхідність реєстрації при замовленні товару або послуги часто заважає користувачам здійснювати покупки в інтернет – магазині.

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

Інтернет – магазини створюються із застосуванням схем систем управління контентом сайту, які оснащені необхідними модулями. Відомі інтернет – магазини працюють на спеціально розроблених або адаптованих для них систем управління. Середні та малі магазини використовують типове комерційне або вільне програмне забезпечення.

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

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

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

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

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

Враховуючи актуальність даного напрямку, в якості теми для курсового проекту була прийнята тема «Інтернет – магазин» та мова програмування PHP, в якості базової для реалізації.






Теоретичні відомості



Мова програмування — формальна знакова система, призначена для запису програм. Програма звичайно являє собою деякий алгоритм у формі, зрозумілої для виконавця (наприклад, комп'ютера).

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

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

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

PHP (англ. PHP:Hypertext Preprocessor — PHP:гіпертекстовий препроцесор), попередньо: Personal Home Page Tools — скриптова мова програмування, була створена для генерації HTML-сторінок на стороні веб-серверу. PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок (разом із Java, .NET, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. Проект за яким був створений PHP — проект з відкритими програмними кодами.

PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки, але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів, які виконаються вже на стороні клієнта.

PHP - мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (<?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?>).

Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.

Для PHP характерно:

•Наявність інтерфейсів до багатьох баз даних

oв PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.

oчерез стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.

•Традиційність

Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP - мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що на даний момент є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).

•Наявність вихідного коду та безкоштовність

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

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

•Ефективність

Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-проектів.

SQL (англ. Structured query language — мова структурованих запитів) — декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних і її модифікація, система контролю за доступом до бази даних.. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом. Не будучи мовою програмування в тому розумінні, як C або Pascal, SQL може формувати інтерактивні запити або, будучи вбудованою в прикладні програми, виступати в якості інструкцій для керування даними. Стандарт SQL, крім того, вміщує функції для визначення зміни, перевірки і захисту даних.

SQL – це діалогова мова програмування для здійснення запиту і внесення змін до бази даних, а також управління базами даних. Багато баз даних підтримує SQL з розширеннями до стандартної мови. Ядро SQL формує командна мова, яка дозволяє здійснювати пошук, вставку, обновлення, і вилучення даних, використовуючи систему управління і адміністративні функції. SQL також включає CLI (Call Level Interface) для доступу і управління базами даних дистанційно.

Перша версія SQL була розроблена на початку 1970-х років у IBM. Ця версія носила назву SEQUEL і була призначена для обробки і пошуку даних, що містилися в реляційній базі даних IBM, System R . Мова SQL пізніше була стандартизована Американськими Держстандартами (ANSI) в 1986. Спочатку SQL розроблялась як мова запитів і управління даними, пізніші модифікації SQL створено продавцями системи управління базами даних, які додали процедурні конструкції, control-of-flow команд і розширення мов. З випуском стандарту SQL:1999 такі розширення були формально запозичені як частина мови SQL через Persistent Stored Modules (SQL/PSM).

Критики SQL включає відсутність крос-платформенності , невідповідною обробкою відсутніх даних (дивіться Null (SQL)), і іноді неоднозначна граматика і семантика мови.

Незважаючи на наявність діалектів і відмінностей в синтаксисі, в більшості своїй тексти SQL-запитів, що містять, DDL і DML, можуть бути досить легко перенесені з однієї СУБД в іншу. Існують системи, розробники яких спочатку закладалися на застосування щонайменше кількох СУБД (наприклад: система електронного документообігу Documentum може працювати як з Oracle, так і з Microsoft SQL Server і IBM DB2). Природно, що при застосуванні деяких специфічних для реалізації можливостей такої переносимості добитися вже дуже важко. Наявність стандартів і набору тестів для виявлення сумісності і відповідності конкретній реалізації SQL загальноприйнятому стандарту тільки сприяє «стабілізації» мови. Правда, варто звернути увагу, що сам по собі стандарт місцями занадто формалізований і роздутий в розмірах, наприклад, Core-частину стандарту SQL:2003 включає понад 1300 сторінок тексту.Незважаючи на наявність міжнародного стандарту ANSI SQL-92, багато компаній, СУБД (наприклад, Oracle, Sybase, Microsoft, MySQL), що займаються розробкою, вносять зміни до мови SQL, вживаної в розроблених ними СУБД, тим самим відступаючи від стандарту. Таким чином з'являються специфічні для кожної конкретної СУБД діалекти мови SQL.






2. Розробка програми (компоненту)



2.1 Загальний опис програми (компоненту)



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

•назва товару

•вартість

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

Крім того на сайті існує система рейтингу товарів, що задається кількістю додавань до корзини цього товару. Також користувач може у будь-якиий відмінити вміст корзини.

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






2.2 Технічне завдання. Додаткова специфікація



1. Введення

1.1. Найменування продукту: «Інтернет-магазин»»

1.2. Призначення продукту та сфера застосування.

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

1.2.1. Найменування

1.2.2. Вартість

1.2.3. Наявність

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

1.2.4. ПІБ клієнта.

1.2.5. Адреса.

Програма надає користувачу веб - інтерфейс для формування замовлення.

2. Вимоги до програми

2.1. Вимоги до функціональних характеристик

Програма повинна забезпечувати виконання наступних функцій:

2.1.1. Виконувати пошук по наявним товарам.

2.1.2. Виконувати реєстрацію клієнтів.

2.1.3. Додавати нових клієнтів до бази даних.

2.1.4. Оформлення замовлення.

2.1.5. Забезпечувати можливість прогресивних знижок.

2.1.5. Різноманітні функції адміністрування.

2.2. Вимоги до надійності

2.2.1. Вимоги для надійного забезпечення функціонування програми.

Надійне функціонування програми повинне бути забезпечене виконанням Замовником сукупності організаційно - технічних норм, перелік яких наведено нижче:

а) організація неперервного живлення технічних засобів;

б) використання ліцензійного програмного забезпечення;

в) регулярне виконання вимог ГОСТ 51188-98. Захист інформації.

2.2.2. Інтервал відновлення після відмови

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

2.2.3. Відмови із-за некоректних дій користувача

Відмови із-за некоректних дій користувача при взаємодії з програмою через інтерфейс користувача недопустимі.

3. Вимоги експлуатації

3.1. Кліматичні вимоги до експлуатації

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

3.2. Вимоги до кваліфікації та численності персоналу.

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

3.3. Вимоги до технічних засобів

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

3.4. Вимоги до інформаційної та програмної сумісності

3.4.1 Вимоги до коду та мови програмування

Додаткові вимоги не вимагаються

3.4.2. Вимоги до програмних засобів

Системні програмні засоби,що використовуються програмою, повинні бути надані ліцензійною версією операційної системи Windows Server або будь- якою з вільних Unix-систем.

3.4.3. Вимоги до захисту інформації та програм

Вимоги до захисту інформації та програм не вимагаються

4. Вимоги до програмної документації

4.1. Попередній склад програмної документації

Склад програмної документації повинен включати в себе:

4.1.1. технічне завдання;

4.1.2. програма та методика тестування;

4.1.3. інструкція оператора;

5. Техніко – економічні вимоги

5.1. Економічні переваги розробки

Орієнтовний економічний розрахунок не проводиться. Аналогії внаслідок унікальності вимог до розробки не проводяться.

6. Стадії та етапи розробки

6.1. Стадії розробки

Розробка повинна включати в себе 3 стадії:

1. розробка технічного завдання;

2. робоче проектування;

3. впровадження.

6.2. Етапи розробки

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

На стадії робочого проектування повинні бути виконі наступні етапи робот

1. розробка програми;

2. розробка програмної документації;

3. тестування програми.

На стадії впровадження повинна бути виконана розробка, підготовка і передача програми.

6.3. Зміст робот по етапам

На стадії розробки технічного завдання повинен бути виконані наступні роботи:

1. постановка задачі;

2. з’ясування вимог до технічних засобів;

3. з’ясування вимог до програми;

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

5. погодження та затвердження технічного завдання.

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

На етапі тестування програми повинні бути виконані наступні види робіт:

1. розробка, погодження та утвердження методики тестування;

2. проведення приймально- сдавальних тестувань ;

3. коректування програми і програмної документації по результатам тестування.

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

7. Порядок контроля та приймання

7.1. Види тестування

Приймально – сдавальне тестування повинне проводитися на об’єкті Замовника в обумовлені строки.

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

7.2. Загальні вимоги прийомки роботи

На основі Протоколу проведення тестування Виконувач разом з Замовником підписує Акт прийому-здачі програми в експлуатацію.



2.3.Діаграма «сутність-зв'язок»



Діаграма «сутність-зв'язок» відношень у системі представлена в додатку В.



2.4 Діаграма потоків даних (DFD)



Діаграма потоків даних у системі наведена в додатку С.



2.5 Реалізація



Весь процес кодування виконувався в середовищі програмування Netbeans 6.7.1 на мові програмування PHP.Концептуально важливі частини коду наведені у додатку А.



2.6 Програма та методика тестування



Враховуючи специфіку розробки веб – програм більш доречною для тестування продукту є функціональна модель тестування (або тестування «чорного ящика»).

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

Розроблений програмний продукт можна розбити на наступні частини:

•адміністративна частина

•частина користувача

Для адміністративної частини можна запропонувати наступні тести

1.Перевірка коректності вводу товарів на сайт.

2.Перевірка роботи адміністративних функцій.

3.Перевірка коректної взаємодії користувача та адміністратора.

4.Перевірка відсутності SQL-іньекцій.

5.Перевірка коректної роботи системи знижок

Для частини користувача можна запропонувати наступні тести

1.Перевірка коректного доступу на сайт.

2.Перевірка коректності замовлення і накопичення товарів в корзині.

3.Тест реєстрації на сайті.

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



2.7 Інструкція користувача (інструкція підключення компонента)



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

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





Рис.1 - На панелі представлені наступні адміністративні функції.




Управління категоріями. Інтерфейс управління категоріями зображено на рис.2





Рис.2 - Інтерфейс управління категоріями



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



Корзина. Цей розділ має наступний інтерфейс(рис.3) та надає можливість продивитися вміст корзини користувачів.





Рис. 3 – Інтерфейс



Новини. Цей розділ має наступний інтерфейс(рис.4) та надає можливість додавання та редагування новин на сайті.

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








Рис. 4 - Новини





Рис. 5 - Система знижок



Користувачі. Цей розділ має наступний інтерфейс(рис.6) та надає можливість продивитися зареєстрованих користувачів, а також змінити їх реєстраційні дані, а також заблокувати їх.





Рис.6 – Користувачі




Також слід відмітити, що є сторона користувача. В цьому випадку користування значно спрощується оскільки сайт має інтуїтивно зрозумілий інтерфейс і може бути використаним будь-якою людиною, що має навики роботи з комп’ютером. Серед основних моментів можна виділити загальний вигляд сайту (рис.7)





Рис. 7 - Загальний вигляд сайту






Висновок



	В даній курсовій роботі був вивчений процес створення програмного продукта від викладення вимог до продукту до написання коду,відладки та тестування продукту. В якості базової мови для проектування було обрано мову програмування PHP, що дало змогу в короткий термін розробити повноцінний програмний продукт – «Інтернет – магазин». Таким чином були закріплені знання мови програмування PHP, принципи об’єктно – орієнтованого програмування. Також були вивчені і сторонні технології, наприклад SQL. Головним чином, були вивчені всі аспекти проектування, створення і впровадження програмних продуктів, що дає змогу працювати над серйозними проектами. У процесі виконання розроблено програмний продукт, який має наступні переваги:

	скорочення витрат на впровадження проекту

	велика швидкість розверстування

	зручність використання








	Література

	

	Гради Буч. Об'єктно-орієнтований аналіз і проектування. Біном, СПБ, 2000. -560с.

	Орлов С.А. Технология розробки програмного забезпечення. СПБ. Питер, 2002. -464 с.

	Соммервилл Иан. Інженерія програмного забезпечення. М.: Вильямс, 2002. - 624с.

	Давыдов В.И.б Кунгурцев А.Б. Об'єктно-орієнтоване програмування. Одеса :Автограф, 2003. - 124с.

	Вигерс Карл. Разработка требований к программному обеспечению ИД «Русская редакция», 2004-576с.