Разработка информационной системы ОВД г. Донецка

Анализ решений по автоматизации предметной области. Выбор методологии проектирования информационной системы. Обоснование выбора платформы. Взаимодействие приложения с источниками данных. Выбор жизненного цикла разработки программного обеспечения.

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

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

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

//

// sqlInsertCommand1

//

this.sqlInsertCommand1.CommandText = @"INSERT INTO dbo.Employee(EmployeeID, JobRoleID, EmployeeSurname, EmployeeName, EmployeePatronymic, EmployeeStatus, Access, NetName) VALUES (@EmployeeID, @JobRoleID, @EmployeeSurname, @EmployeeName, @EmployeePatronymic, @EmployeeStatus, @Access, @NetName); SELECT EmployeeID, JobRoleID, EmployeeSurname, EmployeeName, EmployeePatronymic, EmployeeStatus, Access, NetName FROM dbo.Employee WHERE (EmployeeID = @EmployeeID)";

this.sqlInsertCommand1.Connection = this.sqlConnection1;

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeID", System.Data.SqlDbType.TinyInt, 1, "EmployeeID"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleID", System.Data.SqlDbType.TinyInt, 1, "JobRoleID"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeSurname", System.Data.SqlDbType.VarChar, 20, "EmployeeSurname"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeName", System.Data.SqlDbType.VarChar, 20, "EmployeeName"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeePatronymic", System.Data.SqlDbType.VarChar, 20, "EmployeePatronymic"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeStatus", System.Data.SqlDbType.Int, 4, "EmployeeStatus"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Access", System.Data.SqlDbType.NVarChar, 20, "Access"));

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@NetName", System.Data.SqlDbType.VarChar, 20, "NetName"));

//

// sqlUpdateCommand1

//

this.sqlUpdateCommand1.CommandText = @"UPDATE dbo.Employee SET JobRoleID = @JobRoleID, EmployeeSurname = @EmployeeSurname, EmployeeName = @EmployeeName, EmployeePatronymic = @EmployeePatronymic, EmployeeStatus = @EmployeeStatus, Access = @Access, NetName = @NetName WHERE (EmployeeID = @Original_EmployeeID) AND (Access = @Original_Access OR @Original_Access IS NULL AND Access IS NULL) AND (EmployeeName = @Original_EmployeeName) AND (EmployeePatronymic = @Original_EmployeePatronymic) AND (EmployeeStatus = @Original_EmployeeStatus OR @Original_EmployeeStatus IS NULL AND EmployeeStatus IS NULL) AND (EmployeeSurname = @Original_EmployeeSurname) AND (JobRoleID = @Original_JobRoleID) AND (NetName = @Original_NetName OR @Original_NetName IS NULL AND NetName IS NULL); SELECT EmployeeID, JobRoleID, EmployeeSurname, EmployeeName, EmployeePatronymic, EmployeeStatus, Access, NetName FROM dbo.Employee WHERE (EmployeeID = @EmployeeID)";

this.sqlUpdateCommand1.Connection = this.sqlConnection1;

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleID", System.Data.SqlDbType.TinyInt, 1, "JobRoleID"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeSurname", System.Data.SqlDbType.VarChar, 20, "EmployeeSurname"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeName", System.Data.SqlDbType.VarChar, 20, "EmployeeName"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeePatronymic", System.Data.SqlDbType.VarChar, 20, "EmployeePatronymic"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeStatus", System.Data.SqlDbType.Int, 4, "EmployeeStatus"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Access", System.Data.SqlDbType.NVarChar, 20, "Access"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@NetName", System.Data.SqlDbType.VarChar, 20, "NetName"));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeID", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_Access", System.Data.SqlDbType.NVarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Access", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeName", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeName", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeePatronymic", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeePatronymic", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeStatus", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeStatus", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeSurname", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeSurname", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleID", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_NetName", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "NetName", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeID", System.Data.SqlDbType.TinyInt, 1, "EmployeeID"));

//

// sqlDeleteCommand1

//

this.sqlDeleteCommand1.CommandText = @"DELETE FROM dbo.Employee WHERE (EmployeeID = @Original_EmployeeID) AND (Access = @Original_Access OR @Original_Access IS NULL AND Access IS NULL) AND (EmployeeName = @Original_EmployeeName) AND (EmployeePatronymic = @Original_EmployeePatronymic) AND (EmployeeStatus = @Original_EmployeeStatus OR @Original_EmployeeStatus IS NULL AND EmployeeStatus IS NULL) AND (EmployeeSurname = @Original_EmployeeSurname) AND (JobRoleID = @Original_JobRoleID) AND (NetName = @Original_NetName OR @Original_NetName IS NULL AND NetName IS NULL)";

this.sqlDeleteCommand1.Connection = this.sqlConnection1;

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeID", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_Access", System.Data.SqlDbType.NVarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Access", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeName", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeName", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeePatronymic", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeePatronymic", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeStatus", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeStatus", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeSurname", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeSurname", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleID", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_NetName", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "NetName", System.Data.DataRowVersion.Original, null));

//

// sqlDataAdapterEmployee

//

this.sqlDataAdapterEmployee.DeleteCommand = this.sqlDeleteCommand1;

this.sqlDataAdapterEmployee.InsertCommand = this.sqlInsertCommand1;

this.sqlDataAdapterEmployee.SelectCommand = this.sqlSelectCommand1;

this.sqlDataAdapterEmployee.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {

new System.Data.Common.DataTableMapping("Table", "Employee", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("EmployeeID", "EmployeeID"),

new System.Data.Common.DataColumnMapping("JobRoleID", "JobRoleID"),

new System.Data.Common.DataColumnMapping("EmployeeSurname", "EmployeeSurname"),

new System.Data.Common.DataColumnMapping("EmployeeName", "EmployeeName"),

new System.Data.Common.DataColumnMapping("EmployeePatronymic", "EmployeePatronymic"),

new System.Data.Common.DataColumnMapping("EmployeeStatus", "EmployeeStatus"),

new System.Data.Common.DataColumnMapping("Access", "Access"),

new System.Data.Common.DataColumnMapping("NetName", "NetName")})});

this.sqlDataAdapterEmployee.UpdateCommand = this.sqlUpdateCommand1;

//

// sqlSelectCommand2

//

this.sqlSelectCommand2.CommandText = "SELECT JobRoleID, JobRoleName FROM dbo.[Job Title]";

this.sqlSelectCommand2.Connection = this.sqlConnection1;

//

// sqlInsertCommand2

//

this.sqlInsertCommand2.CommandText = "INSERT INTO dbo.[Job Title] (JobRoleID, JobRoleName) VALUES (@JobRoleID, @JobRole" +

"Name); SELECT JobRoleID, JobRoleName FROM dbo.[Job Title] WHERE (JobRoleID = @Jo" +

"bRoleID)";

this.sqlInsertCommand2.Connection = this.sqlConnection1;

this.sqlInsertCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleID", System.Data.SqlDbType.TinyInt, 1, "JobRoleID"));

this.sqlInsertCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleName", System.Data.SqlDbType.NVarChar, 50, "JobRoleName"));

//

// sqlUpdateCommand2

//

this.sqlUpdateCommand2.CommandText = @"UPDATE dbo.[Job Title] SET JobRoleID = @JobRoleID, JobRoleName = @JobRoleName WHERE (JobRoleID = @Original_JobRoleID) AND (JobRoleName = @Original_JobRoleName OR @Original_JobRoleName IS NULL AND JobRoleName IS NULL); SELECT JobRoleID, JobRoleName FROM dbo.[Job Title] WHERE (JobRoleID = @JobRoleID)";

this.sqlUpdateCommand2.Connection = this.sqlConnection1;

this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleID", System.Data.SqlDbType.TinyInt, 1, "JobRoleID"));

this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobRoleName", System.Data.SqlDbType.NVarChar, 50, "JobRoleName"));

this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleID", System.Data.DataRowVersion.Original, null));

this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleName", System.Data.SqlDbType.NVarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleName", System.Data.DataRowVersion.Original, null));

//

// sqlDeleteCommand2

//

this.sqlDeleteCommand2.CommandText = "DELETE FROM dbo.[Job Title] WHERE (JobRoleID = @Original_JobRoleID) AND (JobRoleN" +

"ame = @Original_JobRoleName OR @Original_JobRoleName IS NULL AND JobRoleName IS " +

"NULL)";

this.sqlDeleteCommand2.Connection = this.sqlConnection1;

this.sqlDeleteCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleID", System.Data.SqlDbType.TinyInt, 1, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleID", System.Data.DataRowVersion.Original, null));

this.sqlDeleteCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobRoleName", System.Data.SqlDbType.NVarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobRoleName", System.Data.DataRowVersion.Original, null));

//

// sqlDataAdapterJobTitle

//

this.sqlDataAdapterJobTitle.DeleteCommand = this.sqlDeleteCommand2;

this.sqlDataAdapterJobTitle.InsertCommand = this.sqlInsertCommand2;

this.sqlDataAdapterJobTitle.SelectCommand = this.sqlSelectCommand2;

this.sqlDataAdapterJobTitle.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "Job Title", new System.Data.Common.DataColumnMapping[] {

new System.Data.Common.DataColumnMapping("JobRoleID", "JobRoleID"), new System.Data.Common.DataColumnMapping("JobRoleName", "JobRoleName")})});

this.sqlDataAdapterJobTitle.UpdateCommand = this.sqlUpdateCommand2;

Приложение В - техническое задание

ОБЩИЕ СВЕДЕНИЯ

Автоматизированная информационная система (далее АИС) представляет собой аппаратно-программный комплекс, служащий для получения, обработки, анализа и хранения информации.

Заказчиком системы является ОВД г.Донецка. Исполнителем выступает студентка 5 курса кафедры «Управления и Информационных технологий» института «Управления, Бизнеса и Права» Ковалева Елена.

Дата начала работ: 15.10.2005 г.

Дата окончания работ: 16.06.2006 г.

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

НАЗНАЧЕНИЕ И ЦЕЛИ СОЗДАНИЯ АИС

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

Создаются следующие рабочие места:

Администратор системы - полный контроль над системой, внесение любых изменений в настройки.

Учетчик - доступ к учетным таблицам.

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

ХАРАКТЕРИСТИКА ОБЪЕКТА АВТОМАТИЗАЦИИ

Автоматизируемый объект - инженерный отдел милиции, точнее процесс учета оргтехники и средств связи. В настоящее время учет оргтехники и средств связи практически не автоматизирован. Информация собирается при помощи специально разработанных бланков - учетных таблиц, данные, из которых, в последствии переносятся в сводные таблицы. Учетчик, находящийся в отделе ведет учет всей поступающей техники, техники которая находится в других отделах милиции, списанной техники и заказов на новую технику. В итоге, скапливается огромное количество бумажной документации, это приводит к огромным затратам времени и человеческих ресурсов при формировании отчетов. В результате, формирование сводных таблиц и отчетов может длиться в течение нескольких дней или недель.

ТРЕБОВАНИЯ К СИСТЕМЕ

Разрабатываемая информационная система должна осуществлять ведение (создание, изменение, хранение, удаление) и учет имеющейся техники в ОВД, поставляемых комплектующих и материалов, деталей, бракованных изделий и т.д.

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

Система должна иметь удобный и интуитивно понятный пользовательский интерфейс, показ только необходимых для работы форм

Внедряемая, АИС должна иметь русскоязычный интерфейс.

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

СОСТАВ И СОДЕРЖАНИЕ РАБОТ

Разработка программного комплекса: разработка новых программ и изменение существующих решений под требования заказчика. Сроки выполнения: 15.10.2005 - 16.06.2006

Установка и наладка программного обеспечения. Сроки выполнения: 20.05.2005 - 1.06.2006

Тестирование и доработка АИС. Сроки выполнения: 1.06.2006 - 19.06.2006

По окончанию работ заказчику выдается инструкция по эксплуатированию системы. Исходные коды программной части АИС являются собственностью исполнителя и заказчику не выдаются.

ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ СИСТЕМЫ

Контроль осуществляется путем проверки результатов полученных по окончанию каждого этапа работ. Утверждение также производится после завершения каждого этапа работ. На этапе тестирования система проверяется при помощи реальных данных и контрольного примера. В случае выявления недоработок или недостатков, находящихся в рамках настоящего технического задания, система возвращается на доработку. Любые изменения, не перечисленные в настоящем техническом задании, производятся с согласия исполнителя.

ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТ ПО ПОДГОТОВКЕ ОБЪЕКТА К ВВОДУ В ДЕЙСТВИЕ СИСТЕМЫ

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

Приложение Г - ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

Исходное положение

Автоматизируемый объект - инженерный отдел милиции. Организационная структура приведена в ПРИЛОЖЕНИИ А. Выполняемые подразделениями задачи описаны выше. Ведется учет новой техники, поступившей в милицию, техники, находящейся в других отделах милиции, списанной техники, техники, поставленной на ремонт и т.д.

Характеристики и технико-экономические данные

В процессе учета практически отсутствуют какие-либо технические средства. Учет ведется вручную на специальных бланках.

Сортировка таблиц и составление отчетов занимает много времени. Информацию сложно анализировать.

Обоснование цели создания АИС

Внедрение АИС позволит автоматизировать процесс учета оргтехники и средств связи. Уменьшить затраты во времени и человеческих ресурсах при ведении учета.

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

Выводы

Внедрение АИС на исследуемом объекте является насущной необходимостью. Оно позволит увеличить эффективности работы, снизит затраты времени на многих операциях. Стоимость АИС, предлагаемой к внедрению, относительно невысока, благодаря применению дешевого и нетребовательного к аппаратным ресурсам программного обеспечения.

ПРИЛОЖЕНИЕ Д - ПЛАН ТЕСТИРОВАНИЯ ПО

План тестирования определяется международным стандартом IEEE 829-1983.

1. Объект тестирования: информационная система МРССиСТ.

2. Дата тестирования: 19.05.2006

3. Составитель теста: студентка Ковалева Е.Н.

4. Цель тестирования: выполнялся для полной проверки работоспособности программы;

5. Тип тестирования: тестирование методом черного ящика. Проводится тестирование в целом свей системы учёта оргтехники и средств связи.

6. Описание среды тестирования - ОС MS Windows XP, Microsoft Access 2003, MS Visual C#.

ПРИЛОЖЕНИЕ Е ? ОБОСНОВАНИЕ ВЫБОРА МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА

Таблица Е.1 - Выбор модели ЖЦ на основе характеристик требований

Требования

Каскадная

V-образ-ная

Прото-типиро-вание

Спиральная

RAD

Инкре-ментная

Являются ли требования легко определимыми и/или хорошо известными

Да

Да

Нет

Нет

Да

Нет

Могут ли требования заранее определятся в цикле

Да

Да

Нет

Нет

Да

Да

Часто ли изменяются требования в цикле

Нет

Нет

Да

Да

Нет

Нет

Нужно ли демонстрировать требования с целью определения

Нет

Нет

Да

Да

Да

Нет

Требуется ли демонстрация возможностей проверка концепции

Нет

Нет

Да

Да

Да

Нет

Будут ли требования отражать сложность системы

Нет

Нет

Да

Да

Нет

Да

Обладает ли требование функциональными свойствами на раннем этапе

Нет

Нет

Да

Да

Да

Да

Таблица Е.2 - Выбор модели ЖЦ на основе характеристик участников команды разработчиков

Команда разработчиков проекта

Каскадная

V-

образная

Прототипирование

Спиральная

RAD

Инкрементная

Являются ли проблемы предметной области проекта новыми для большинства разработчиков

Нет

Нет

Да

Да

Нет

Нет

Является ли технология предметной области проекта новой для большинства разработчиков

Да

Да

Нет

Да

Нет

Да

Являются ли инструменты, используемые проектом, новыми для большинства разработчиков

Да

Да

Нет

Да

Нет

Нет

Изменяются ли роли участников проекта во время ЖЦ

Нет

Нет

Да

Да

Нет

Да

Могут ли разработчики проекта пройти обучение

Нет

Да

Нет

Нет

Да

Да

Является ли структура более значимой для разработчиков, чем гибкость

Да

Да

Нет

Нет

Нет

Да

Будет ли менеджер про-екта строго отслеживать прогресс проекта

Да

Да

Нет

Да

Нет

Да

Важна легкость распределения ресурсов

Да

Да

Нет

Нет

Да

Да

Приемлет ли команда равноправные обзоры инспекций, менедж-мент/обзоры заказчиков, а так же стадии

Да

Да

Да

Да

Нет

Да

Таблица Е.З - Выбор модели ЖЦ на основе характеристик типа проектов и рисков

Тип проекта и риски

Каскадная

V-

образ-ная

Прото-типиро-вание

Спиральная

RAD

Инкре-ментная

Будет ли проект идентифицировать новое направление продукта для организации

Нет

Нет

Да

Да

Нет

Да

Будет ли проект иметь тип системной интеграции

Нет

Да

Да

Да

Да

Да

Будет ли проект являться расширением существующей системы

Нет

Да

Нет

Нет

Да

Да

Будет ли финансирование проекта стабильным на всем протяжении ЖЦ

Да

Да

Да

Нет

Да

Нет

Ожидается ли длительная эксплуатация продукта в организации

Да

Да

Нет

Да

Нет

Да

Должна ли быть высокая степень надежности

Нет

Да

Нет

Да

Нет

Да

Будет ли система изменяться, возможно, с применением непредвиденных методов, на этапе сопровождения

Нет

Нет

Да

Да

Нет

Да

Является ли график ограниченным

Нет

Нет

Да

Да

Да

Да

Являются ли «прозрачными» интерфейсные модули

Да

Да

Нет

Нет

Нет

Да

Доступны ли повторно используемые компоненты

Нет

Нет

Да

Да

Да

Нет

Являются ли достаточными ресурсы (время, деньги, инструменты, персонал)

Нет

Нет

Да

Да

Нет

Нет

Таблица Е.4 - Выбор модели ЖЦ на основе характерактеристик пользователей

Коллектив

пользователей

Каскадная

V-

образная

Прото-типиро-вание

Спиральная

RAD

Инкре-ментная

Будет ли присутствие пользователей ограниченно в ЖЦ

Да

Да

Нет

Да

Нет

Да

Будут ли пользователи знакомы с определением системы

Нет

Нет

Да

Да

Нет

Да

Будут ли пользователи ознакомлены с проблемами предметной области

Нет

Нет

Да

Нет

Да

Да

Будут ли пользователи вовлечены во все фазы ЖЦ

Нет

Нет

Да

Нет

Да

Нет

Будет ли заказчик отслеживать ход выполнения проекта

Нет

Нет

Да

Да

Нет

Нет


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

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