Інтерактивна автоматизована соціальна мережа, направлена на спілкування людей за місцем проживання

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

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

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

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

Виносимо SQL-код в окремий клас. Насамперед ми інкапсулюємо роботу з DB в окремий клас OrdersDAO, щоб цю частину коду можна було б використовувати повторно. Введемо клас OrdersDAO і будемо отримувати об'єкти цього класу через Registry:

<?php

class FeaturedOrdersDAO

{

function & fetch()

{

$toolkit =& Limb :: toolkit();

$orders_dao =& $toolkit->createDAO('OrdersDAO');

$orders_rs =& $orders_dao->fetch();

$order_mapper = new OrderMapper();

$result = array();

for($orders_rs->rewind(); $orders_rs->valid(); $orders_rs->next())

{

$order_record =& orders_rs->current();

$order =& $order_mapper->map($order_record);

if($this->_passCriteria($order))

$result[] =& $order;

}

return new PagedArrayDataset($result);

}

}

?>

Тепер вибірка замовлень інкапсульований у клас OrdersDAO (тіло класу ми показувати не будемо). OrdersDAO можна тестувати окремо. Так як ми легко можемо змінювати поведінку об'єкта $ toolkit, щоб він вирощує мок на OrdersDAO це дозволить ізолювати тест на FeaturedOrderDAO від бази даних:

<?php

class FeaturedOrdersDAOTest extends UnitTestCase

{

function setUp()

{

$mock_orders_dao = new MockDAO($this);

$mock_orders_dao->expectOnce('fetch');

$mock_orders_dao->setReturnReference('fetch', $orders_rs);

$mock_toolkit = MockToolkit($this);

$mock_toolkit->setReturnReference('OrdersDAO', $this->_mock_orders_dao);

Limb :: registerToolkit($mock_toolkit);

}

function tearDown()

{

$this->mock_orders_dao->tally();

Limb :: restoreToolkit($mock_toolkit)

}

function testManyDifferentOrderForWinter(){}

function testManyDifferentOrderForSummer(){}

function testManyDifferentOrderForSpring(){}

}

?>

Тепер тест буде набагато швидше. Однак він все також громіздкий і складний.. Виносимо бізнес логіку у окремий клас. Наступним кроком може стати винос методу _passCriteria () в окремий клас, наприклад, FeaturedOrdersCriteria, у якої буде метод pass (& $ order). По суті ми застосовуємо тут патерн Specification, в короткій формі:

<?php

class FeaturedOrderCriteria

{

function pass(&$order){ // some complex logic that return true or false}

}

?>

Цей клас набагато легше тестувати в поодинці, більше того, тепер цей елемент бізнес-логіки можна легко використовувати повторно з іншими подібними класами.

<?php

class FeaturedOrderCriteriaTest extends UnitTestCase

{

function testOrder1ForWinter(){}

function testOrder2ForWinter(){}

function testOrder3ForWinter(){}

...

}

?>

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

<?php

class FeaturedOrdersDAO

{

var $criteria;

function FeaturedOrdersDAO(&$criteria)

{

$this->criteria =& $criteria;

}

function & fetch()

{

$toolkit =& Limb :: toolkit();

$orders_dao =& $toolkit->createDAO('OrdersDAO');

$orders_rs =& $orders_dao->fetch();

$order_mapper = new OrderMapper();

$result = array();

for($orders_rs->rewind(); $orders_rs->valid(); $orders_rs->next())

{

$order_record =& orders_rs->current();

$order =& $order_mapper->map($order_record);

if($this->criteria->pass($order))

$result[] =& $order;

}

return new PagedArrayDataset($result);

}

...

}

?>

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

<?php

class FeaturedOrdersDAOTest extends UnitTestCase

{

function setUp()

{

$mock_orders_dao = new MockDAO($this);

$mock_toolkit = MockToolkit($this);

$mock_toolkit->setReturnReference('OrdersDAO', $this->_mock_orders_dao);

Limb :: registerToolkit($mock_toolkit);

}

function tearDown()

{

$this->mock_orders_dao->tally();

Limb :: restoreToolkit($mock_toolkit)

}

function testFetch()

{

$orders_rs = new.... (2 orders in rs initially);

$expected_rs = new.... (1 order in rs - only 1 should pass the criteria);

$mock_orders_dao->expectOnce('fetch');

$mock_orders_dao->setReturnReference('fetch', $orders_rs);

$dao = new FeaturedOrdersDAO($mock_criteria);

$this->assertEqual($dao->fetch(), $expected_rs);

$mock_criteria->tally();

}

?>

6. Особливості застосування

Для того, щоб отримати можливість повноцінно користуватися сервісом, необхідно увійти на сайт, Рис. 5.1, але, якщо користувач не зареєстрований то потрібно зареєструватися. При цьому, необхідно ввести номер власної існуючої електронної пошти та бажаний пароль, який необхідно також підтвердити. Після цього, з'являється можливість зайти на власну сторінку, та редагувати інформацію про себе. Далі можна скористуватись пошуком друзів, вводячи їх ім'я. А після переходу на сторінку знайденого користувача Рис. 5.2, з'являється можливість додати його до списку друзів, як показано на Рис. 5.3.

Рисунок 5.1 - Сторінка входу користувача

Рисунок 5.2 - Реєстраційна форма користувача

Рисунок 5.3 - Додавання користувача до списку друзів

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

Рисунок 5.4 - Відправлення приватного повідомлення

Рисунок 5.5 - Пошук користувача

Для того, щоб вийти з системи необхідно натиснути кнопку «Вихід».

Висновки

Розроблений веб-застосування, має усі шанси отримати популярність серед користувачів мережі Інтернет, адже він має високу швидкість роботи, надійність, та у деякій мірі новизну.

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

Нинішні мережі стають робочим інструментом, і, більше того, необхідним інструментом для ведення діяльності, будь то бізнес або творчість. Соціальні мережі служать майданчиком для неформального спілкування приятелів подібно LiveJournal. Соціальні мережі допомагають створювати нову музику як MySpace. Соціальні мережі розширюють ігровий досвід масових онлайн-ігр в мережі Xfire. Соціальні мережі служать серйозним інструментом для пошуку співробітників і партнерів в LinkedIn.

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

Перелік посилань

1. CSS [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/csscert/

2.Web-программирование на PHP [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/phpwebprog/

3.Web-технологии PHP [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/webtechno/

4. Введение в программирование на PHP5 [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/pl/php5/

5. Основы клиентской оптимизации [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/csoptb/

6. Практика разработки Web-страниц [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/webdev/

7. Разработка клиентских приложений Web-сайтов [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/internet/devcapw/

8. Основы тестирования программного обеспечения [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/se/testing/

9. Анализ требований к автоматизированным информационным системам [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/itmngt/analisis/

10. Визуальное моделирование: теория и практика [Електронний ресурс] / Интернет-университет информационных технологий - ИНТУИТ.ру, 2008. ? Режим доступу: URL: http://www.intuit.ru/department/se/vismodtp/

11. Оптимизация работы с MySQL [Електронний ресурс] / Соціальна мережа Хабрахабр. - Режим доступу: URL: http://habrahabr.ru/blogs/mysql/20246/

12. Тестирование Електронний ресурс] / Соціальна мережа Хабрахабр. ? Режим доступу: URL: http://habrahabr.ru/blogs/testing/110307/

13. Дюбуа П. MySQL, 2-е изд. / Дюбуа П. - М.: Вильямс, 2004. - 1056 с.

14. MySQL. Справочник по языку. / Компания МySQL AB. - М.: Вильямс, 2005. - 432 с.

15. Дюбуа П. MySQL. Сборник рецептов. / Дюбуа П. - М.: Вильямс, 2005. - 1056 с.

16. Дворжецкий A. SQL: Structured Query Language. Руководство пользователя. ? М.: Познавательная Книга Плюс, 2001. ? 416 с.

17. Астахова И.Ф. SQL в примерах и задачах. / И.Ф. Астахова, А.П. Толстобров, В.М. Мельников. ? М.: Новое знание, 2002. ? 176 с.

18. Кауффман Дж. SQL. Программирование. / Дж. Кауффман, Б. Матсик, К. Спенсер. ? М.: Бином. Лаборатория знаний, 2002. ? 746 с.

19. Документація Apache [Електронний ресурс] / The Apache Software Foundation. - Режим доступу: www/URL: http://www.apache.org/.

20. Использование Linux, Apache, MySQL и PHP для разработки Web-приложений [Електронний ресурс] / Гугл книги. ? Режим доступу: URL: http://books.google.com/books?id=rcVqWVFpbrsC.

Додаток А

Project Vision

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

Solution concept (Концепція рішення).Цілі:

- працювати з користувачами мережі Інтернет;

- надати можливість вільно спілкуватися он-лайн усім бажаючим користувачам;

Задачі:

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

- забезпечити швидку роботу веб-сервісу;

- створити прості умови реєстрації користувача;

Аssumptions (Припущення і обмеження):

- кожен користувач має можливість створити власну сторінку лише 1 раз;

- картинка фото користувача обмежена у розмірі до 1 мегабайту;

- текст приватного повідомлення обмежений кількістю символів;

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

Users (Користувачі). Користувачів два види:

- зареєстровані користувачі;

- незареєстровані користувачі (гість).

Usage scenarios (Сценарии использования)

Діаграма використання показана на Рис. А.

Рисунок А. - Діаграма використання

Project scope (Рамки проекту)

Функціональність рішення:

- Веб-сайт знаходиться на веб-сервері;

- Реєстрація користувача після заповнення обов'язкової інформації;

- перевірка правильності вводу даних;

- перевірка, чи існує вже користувач з такими даними;

- перевірка, чи існує таке місто.

- Додання обраного користувача до списку друзів;

- відправлення заявки;

- підтвердження користувачем вашої заявки;

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

- Авторизація користувача можлива лише після заповнення ним обов'язкових полів;

- відправлення запиту до бази даних на момент присутності такого користувача;

- перевірка правильності вводу паролю.

- Завантаження власного фото на сторінку;

- перевірка розміру фото.

- Видалення користувача зі списку друзів.

- Видалення повідомлень на сторінці користувача.

Додаток Б

Test Plan

Тест: 1

Тип тесту: тестування графічного інтерфейсу користувача

Описання: тестування на відповідність графічного інтерфейсу стандартам

Вхідні дані: графічний інтерфейс користувача

Очікуваний результат: відповідність графічного інтерфейсу стандартам

Тест: 2

Тип тесту: тестування графічного інтерфейсу користувача

Описання: тестування з різною роздільною здатністю екрана

Вхідні дані: графічний інтерфейс користувача

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

Тест: 3

Тип тесту: тестування графічного інтерфейсу користувача

Описання: сумісність з різними типами браузерів

Вхідні дані: робота програми в різних браузерах

Очікуваний результат: стабільна робота програми у різних браузерах

Тест: 4

Тип тесту: тестування безпеки

Описання: тестування контролю доступу

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

Очікуваний результат: відсутність можливості несанкціонованого доступу

Тест: 5

Тип тесту: тестування безпеки

Описання: тестування авторизації користувачів

Вхідні дані: дані авторизації користувачів усіх груп

Очікуваний результат: відсутність дефектів та збоїв авторизації

Тест: 6

Тип тесту: тестування баз даних

Описання: тестування моделі логіки

Вхідні дані: оригінальний файл

Очікуваний результат: відсутність повтору інформації, мінімізація моделі логіки

Таблиця Б. - Журнал тестування

Дата

Тест

Спроба

Тестер

Вхід

Вихід

Результат

01.05.11

1

1

Баранов

Стандарт графічного інтерфейсу

Графічний інтерфейс розробленої програми

позитивний

01.05.11

3

1

Баранов

Робота програми у браузері Safari

Відображення графічного інтерфейсу

позитивний

2.05.11

5

1

Баранов

Дані авторизації користувачів усіх груп

Дані про помилки відсутність помилок

позитивний

Додаток В

Слайди презентації

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


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

  • Систематизація знань як основна функція бази даних. Логічне та фізичне проектування бази даних. Створення таблиць у базі даних, визначення основних зв'язків. Інструментальні засоби проектування та створення програмного забезпечення для обробки даних.

    курсовая работа [1,4 M], добавлен 29.04.2010

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

    дипломная работа [5,6 M], добавлен 02.07.2015

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

  • Проектування бази даних для КП "ВодГео" - комунального підприємства у сфері водопостачання та водовідведення в м. Сміла. Предметна область, вимоги до продукту. Розробка інтерфейсу програми. Вибір архітектури та сервера бази даних, її логічна структура.

    курсовая работа [1,2 M], добавлен 14.07.2015

  • Планування програмного забезпечення автоматизованої системи бюро працевлаштування. Накопичення даних стосовно ринку праці. Проектування статичних аспектів, поведінки та архітектури програмного забезпечення. Особливості функціонування програмного продукту.

    курсовая работа [184,5 K], добавлен 05.07.2015

  • Огляд популярних програм для спілкування. Спілкування в чатах як один із видів електронного спілкування (вікова група "підлітки"). Правила поведінки в мережі. Надсилання миттєвого повідомлення. Увімкнення та вимкнення стану підключення в Outlook.

    курсовая работа [119,4 K], добавлен 15.12.2010

  • Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.

    дипломная работа [1,2 M], добавлен 26.02.2014

  • Характеристика функціональної структури предметної області програмного комплексу. Розробка архітектури програмної системи. Вибір типу архітектури й зразків проектування. Опис декомпозиції, залежностей та інтерфейсу. Детальне проектування модулів та даних.

    курсовая работа [462,2 K], добавлен 19.12.2013

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.

    курсовая работа [1,1 M], добавлен 22.09.2015

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