Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет ТП (Taxi).docx
Скачиваний:
11
Добавлен:
19.09.2019
Размер:
1.62 Mб
Скачать
    1. Описание и диаграммы набора компонентов, входящих в приложение

    1. UML-диаграммы приложения

      1. Диаграммы последовательностей:

        1. Добавление нового сотрудника (администратора, оператора):

        1. Добавление нового таксиста:

        1. Добавление нового заказа:

        1. Отчет

    1. Описание использованных шаблонов проектирования

1. MVC (Model View Controller) – шаблон проектирования, с помощью которого модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Данная схема проектирования используется для построения архитектурного каркаса при переходе от теории к реализации заданной предметной области. Помогает разделить бизнес-логику (модель) от ее представления. Применяется из-за возможности видеть пользователем тех же самых данных одновременно в различных контекстах. Позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

2. DAO (Data Access Object) – предоставляет абстрактный интерфейс к какому-либо типу базы данных или механизму хранения. Определённые возможности предоставляются независимо от того, какой механизм хранения используется и без необходимости специальным образом соответствовать этому механизму хранения. Этот шаблон проектирования применим ко множеству языков программирования, большинству программного обеспечения, нуждающемуся в хранении информации и к большей части баз данных.

    1. Макеты экранных форм приложения

      1. Форма «авторизации»

      1. Для пользователя «Администратор»

        1. Форма «главная»

        1. Форма «добавить сотрудника»

        1. Форма «добавить таксиста»

        1. Форма «отчет»

      1. Для пользователя «Оператор»

        1. Форма «главная»

        1. Форма «добавить заказ»

        1. Форма «отменить заказ»

        1. Форма «закрыть заказ»

        1. Форма «назначить таксиста»

    1. Схема переходов между экранными формами

  1. Анализ и управление рисками

В ходе реализации проекта могут возникать некоторые риски. Для их предотвращения и устранения должна быть предусмотрена следующая методика:

Тип

риска

Риск

Методика предотвращения

Методика устранения

1

Технологические

Риск, связанный с ошибками в программном коде приложения

Риск возникает из-за большого объема исходного кода. Для предотвращения необходимо разделять код на классы, проводить структурирование кода.

Для устранения данного риска необходимо проведение следующих мероприятий:

1) Поиск ошибок в коде и их устранение.

2) Оптимизация кода.

3) Функциональное и модульное тестирование кода.

2

Риск, связанный с ошибками в программном коде, реализующем доступ к базе данных

Для предотвращения возникновения данного риска необходимо выполнить тестирование всех операций на ранней стадии реализации проекта.

Для устранения данного риска необходимо проведение следующих мероприятий:

1) Поиск модуля или стадии, на которой происходят ошибки, и их исправление.

2) Тестирование след. операция: create, read, update, delete.

3

Риск, связанный с недостатком или избыточностью информации в базе данных

Риск возникает в том случае, если архитектура БД была разработана не верно, или, если функционал ИС не отвечает требованиям заказчика, потому что в базе данных хранится не вся требуемая информация.

Для предотвращения необходимо иметь полный перечень требований заказчика и составить архитектуру согласно требованиям. При разработке архитектуры следовать правилам разработки БД.

Для устранения данного риска необходимо проведение следующих мероприятий:

1) Если возможно, то добавление в БД необходимых сущностей и атрибутов.

2) Если добавление новых сущностей и атрибутов невозможно, то изменение архитектуры БД в целом.

4

Риск, связанный с нарушением сроков сдачи ИС, по причине нарушения работоспособности технических средств у команды разработчиков, таких как ЭВМ, съемные хранилища данных и т.п.

Данный риск может возникнуть в случае, когда команда разработчиков не имеет возможность завершить работу вовремя из-за неисправности технических средств.

Для предотвращения риска необходимо создавать резервные копии ИС. А также производить проверку технических средств до начала процесса разработки.

С целью устранения последствий возникновения данного риска необходимо проведение следующих мероприятий:

1) Уведомление заказчика о возникновении данной проблемы.

2) Восстановление работоспособности технических средств (ремонт).

3) В случае потери данных возврат к более старой версии ИС.

5

Кадровые

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

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

Для устранения данного риска, необходимо перенести срок сдачи проекта с учетом потерянного времени, и уведомить об этом заказчика.

6

Эксплуатационные, управленческие

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

Данный риск может возникнуть в случае, когда некоторые не выявленные ранее ошибки были выявлены на этапе сдачи ИС заказчику.

Для предотвращения данного риска необходимо более тщательно проверять работу ИС.

Для устранения данного риска, необходимо сдать проект в доработку.

7

Технологические, производственные

Риск, связанный с выбором нестабильных версий сред разработки.

Для предотвращения данного риска необходимо пользоваться только официальными проверенными версиями.

С целью устранения последствий возникновения данного риска необходимо проведение следующих мероприятий:

1) Пересмотр версий систем разработки, используемых в программе.

2) Замена всех неофициальных версий.

8

Риски требований

Риск срыва сроков сдачи ИС по причине не полной реализации функционала ИС

Данный риск возникает из-за возникновения проблем во время разработки ИС, недостатка времени для разработки ИС и т.п.

Для предотвращения данного риска необходимо внимательнее прорабатывать все требования заказчика.

С целью устранения последствий возникновения данного риска необходимо проведение следующих мероприятий:

1) Уведомление заказчика о возникновении данной проблемы.

2) Реализация всего недостающего функционала в кратчайшие сроки.

3) Увеличение рабочего дня.

9

Коммерческие, правовые и общественные, контрактные, инвестиционные, конъюнктурные

Другие риски

В зависимости от риска

В зависимости от риска

  1. Тестирование

    1. Тестирование модели Cabdriver

Добавление, изменение, удаление таксиста.

<?php

require_once dirname(__FILE__) . '../../../../../application/models/DbTable/Cabdriver.php';

class Application_Model_DbTable_CabdriverTest extends ControllerTestCase

{

protected $object ;

private $id;

public function setUp(){

parent::setUp();

$this->object = new Application_Model_DbTable_Cabdriver();

}

public function setId($a){

$this->id=$a;

}

public function isEqualsArray($A = null, $B = null ){

$tests = array_diff($A,$B);

return $tests == null;

}

public function addCabdriver($name,$contract,$phone,$namber_car,$list_car,$status)

{

///$db = NULL;

///$db = Zend_Registry::get('connectDB',$db);

$this->object->addCabdriver($name,$contract,$phone,$namber_car,$list_car,$status);

///$id = $db->lastInsertId();

///$this->setId($id);

$te = $this->object->getAll();

//print_r ($te);

$val = (array)end($te);

//print_r ($val);

$this->setId($val['id']);

//print_r ($this->id);

$arr = array(

"name" => $name,

"contract" => $contract,

"phone" => $phone,

"namber_car" => $namber_car,

"list_car" => $list_car,

"status" => $status

);

$this->assertTrue($this->isEqualsArray($arr,$val));

}

public function updateCabdriver($id,$name_update,$contract_update,$phone_update,$namber_car_update,$list_car_update,$status_update){

$this->object->updateCabdriver($id,$name_update,$contract_update,$phone_update,$namber_car_update,$list_car_update,$status_update);

$te = $this->object->getCabdriver($id);

$val = (array) $te;

$arr = array(

"name" => $name_update,

"contract" => $contract_update,

"phone" => $phone_update,

"namber_car" => $namber_car_update,

"list_car" => $list_car_update,

"status" => $status_update

);

$this->assertTrue($this->isEqualsArray($arr,$val));

}

public function deleteCabdriver($id){

//print_r ($id);

$this->object->deleteCabdriver($id);

$te = $this->object->getAll();

$val = (array)end($te);

if($val['id'] != $id){$this->assertTrue(true);}

else {$this->assertTrue(false);}

}