Содержание
- 1. Основные понятия
- 1.1 Постановка задачи и треблвания к программе
- 2. Этапы разработки программы «Информационная система ГИБДД»
- 2.1 Анализ предметной области и выбор метода решения
- 2.2 Анализ предметной области и выбор метода решения
- 2.3 Разработка алгоритма программы
- 2.3.1 Понятие алгоритма, виды алгоритмов
- 2.3.2 Алгоритм работы программы
- 2.3.3 Блок - схема программы
- 2.4 Инструментальные средства разработки
- 2.4.1 Анализ инструментальных средств
- 2.5 Разработка интерфейса программы
- 2.5.1 Понятие интерфейса
- 2.5.2 Виды интерфейса
- 2.5.3 Разработка интерфейса программы «Информационная система ГИБДД»
- 2.6 Тестирование программы
- 2.6.1 Понятие тестирования программных средств
- 2.6.2 Виды и методы тестирования
- 2.6.3 Процесс и результат тестирования
- 2.7 Программная документация
- 2.7.1 Руководство программиста
- 2.7.2 Руководство оператора
- 3. Эксплуатация программных средств
- 3.1 Эксплуатация программного обеспечения
- 4. Экономический расчет программного продукта
- 4.1 Расчет себестоимости программного продукта «Информационная система ГИБДД»
- 4.2 Экономический эффект
- 5. Техника безопасности
- 5.1 Общие требования по техники безопасности
- 5.2 Техника безопасности при работе на компьютере
- 5.2.1 Требования безопасности перед началом работы на ПК
- 5.2.2 Требования безопасности во время работы с ПК
5.2.3 Требования безопасности после окончания работы с ПК
Заключение
Литература
1. Основные понятия
База данных. СУБД.
Четкого и однозначного определения базы данных не существует. Тем не менее, можно определить базу данных как физическое пространство (место на внешнем носителе компьютера), на котором в строго определенном порядке записываются и хранятся конкретные значения реквизитов (данные) первичных информационных форм, относящиеся к одному роду объектов учета.
Другое более общее определение определяет базу данных как хранилище данных, предназначенных для совместного использования. Здесь особо выделяется возможность совместного использования информации хранящейся в базе данных многими пользователями одновременно. Многопользовательский режим доступа к данным, хранящимся в базе, может быть организован различными способами:
1) использование в сети файл-серверов, на которых физически хранятся вся база данных. При такой организации каждый пользователь работает с базой данных так, как будто она размещена на собственном компьютере. Недостатком такой организации многопользовательской БД является большая нагрузка на каналы связи т. к. при обслуживании запроса порции данных считываются с диска центрального компьютера (файл-сервера) небольшими порциями и передаются на рабочее место, где происходит их обработка;
2) технология клиент/сервер, при которой вся обработка информации, все транзакции, задаваемые пользователями, выполняется самим сервером, а на рабочие станции передаются только результаты. К пропускной способности каналов связи в этом случае предъявляются значительно меньшие требования, однако центральный компьютер, обслуживающий базу данных, должен быть значительно мощнее, чем в первом варианте. При этом, рабочие станции могут быть бездисковыми терминалами
3) распределенная структура - когда части (фрагменты) одной базы данных физически находятся на различных серверах сети. По такому принципу строятся глобальные информационные системы типа Internet.
Для создания и обслуживания таких систем используется специализированное программное обеспечение - системы управления базами данных СУБД.
К основным функциям СУБД любого типа можно отнести:
создание (конструирование) базы данных путем описания структуры хранимой информации и взаимосвязей между ее частями;
занесение, хранение и удаление информации из базы данных - т. е. поддержание БД в актуальном состоянии;
обслуживание выборок и запросов пользователей
Различные СУБД позволяют создавать и обслуживать базы данных различной структуры: иерархические, сетевые и т. д. Наибольшее распространение получили так называемые реляционные БД. Реляционные базы данных представляют собой набор связанных таблиц и ничего кроме них. Термин «реляционная» указывает на то, что между таблицами базы данных могут быть установлены различные отношения. РСУБД составляют один из крупных сегментов рынка баз данных: они включают все от систем клиент/сервер до настольных систем.
Как отмечалось выше, реляционная модель БД рассматривает все данные как группы таблиц или отношений, которые содержат фиксированные количества рядов и столбцов. Иными словами многие объекты, используемые в реляционной базе данных, аналогичны объектам электронных таблиц. Рассмотрим основные термины и определения связанные с РСУБД.
Поле - базовый элемент любой базы данных, не обязательно реляционной. Поля это элементарный информационный объект базы данных. В данном случае, «элементарный», означает, что поле не может быть разбито на более мелкие порции информации. Кроме того, в каждом поле может храниться только строго определенный тип информации (текстовые поля, поля типа дата/время, числовые поля и т. п.). Большинство СУБД поддерживают возможность создания полей следующих типов:
текстовые (для хранения строк размером до 255 символов);
числовые (целочисленное, с плавающей точкой и т. п.);
memo поля - поля для хранения тестовых фрагментов любого размера;
дата/время - поля, в которых могут храниться даты и (или) время в национальном формате;
логические - поля для хранения утверждений типа ДА/НЕТ, ВКЛЮЧЕНО/ВЫКЛЮЧЕНО, ИСТИНА/ЛОЖЬ и т. п.;
Запись - набор данных специфицирующих некоторый объект. Например в БД автотранспортных средств каждая запись содержит сведения о транспортном средстве (госномер, марку, год выпуска, № кузова и т. п.). Каждая запись БД содержит уникальный набор информации - в нашем примере, каждая запись представляет данные о конкретном транспортном средстве. В РСУБД записи не хранятся в каком либо порядке набора. Иными словами в концепции РСУБД вообще не существует номера записи, как в системах другого типа.
Таблица - это набор полей. Данные, содержащиеся в таблице, хранятся в виде записей. Каждая таблица базы данных представляет некоторый тип хранящихся в ней объектов. В БД может быть любое количество таблиц, между которыми могут быть установлены различные отношения. Тот факт, что таблица представляет только один тип объекта, отнюдь не является недостатком. Наоборот, это один из ключей к созданию эффективной базы данных.
Ключевое поле - это поле, которое используется для связи между двумя и более таблицами. Ключи - это поля, которые являются общими для связываемых таблиц. При этом значение этих полей в связанных таблицах дублируется. Ключи могут быть первичными, внешними или составными. Позже мы рассмотрим эти типы ключей.
Отношение - это связь, устанавливаемая между двумя и более таблицами посредством ключевого поля. Принципиально возможны три типа отношений: один к одному, один к многим и многие к многим.
Соединение - виртуальная таблица, создаваемая, когда пользователь запрашивает информацию из различных таблиц связанных отношением. Ключевые поля в этом случае используются для поиска соответствующих записей в различных таблицах, из которых формируется соединение.
Первичный ключ - уникально идентифицирует каждую запись в таблице и не имеет повторяющихся значений. Выбор поля в качестве первичного ключа - одно из важнейших решений принимаемых при проектировании БД.
Если запись в таблице не может быть однозначно идентифицирована каким-либо одним полем, то можно использовать составной ключ - группу полей. Составные ключи используются значительно реже первичных.
Внешний ключ - это поле (или группа полей) одной таблицы, для которого имеется дублированное значение в другой, связанной таблице. В отличие от первичных ключей, внешние ключи зачастую многократно повторяются при установлении отношения один к многим.
1.1 Постановка задачи и треблвания к программе
У ГИБДД есть четыре наиболее важные функциональные задачи:
- Регистрация автотранспортных средств, при совершении сделки купли-продажи;
- Разработка мер, повышающих безопасность дорожного движения и выполнение всех мер при совершении ДТП (дорожно-транспортное происшествие) на улицах города (регистрация, разбор, выявление виновных, автоэкспертиза и т.п.);
- Борьба с угоном автотранспортных средств;
- Оперативный поиск угнанных машин и задержание преступников.
ГИБДД занимается выделением учетом номерных знаков на автотранспорт. К автотранспортным средствам относятся: легковые, грузовые автомобили, прицепы, полуприцепы, мотоциклы, тракторы, автобусы, микроавтобусы. На разные виды транспорта выдаются разные виды номеров и в базу данных заносятся разные характеристики. Номера могут выделяться как частным владельцам, так и организациям. В справочнике номеров, выданных организации, дополнительно фиксируется: номер, ФИО владельца, его адрес, марка автомобиля, дата выпуска, объем двигателя, номера двигателя, шасси и кузова, цвет и т.п. В справочнике номеров, выданных организации, дополнительно фиксируется: название организации, район, адрес, руководитель. Существует справочник свободных номеров (серия, диапазон номеров). ГИБДД периодически проводит технический осмотр (ТО) машин. Для прохождения техосмотра необходима квитанция об оплате налогов, сумма оплаты зависит от объема двигателя. Периодичность прохождения зависит от года выпуска и вида транспортного средства. Технические характеристики, проверяемые на ТО и допуски, также зависят от вида транспортного средства.
ГИБДД занимается учетом и анализом ДТП (дорожно-транспортное происшествие). При регистрации ДТП фиксируется: дата, тип происшествия (наезд на пешехода, наезд на ограждение либо столб, лобовое столкновение, наезд на впереди стоящий транспорт, боковое столкновение на перекрестке и т.п.), место происшествия, марки пострадавших автомобилей, государственный номер, тип машины (легковая, грузовая, специальная), краткое содержание, число пострадавших, сумма ущерба, причина, дорожные условия и т.п. Анализ накопленной по ДТП статистике поможет правильно расставить запрещающие и предупреждающие знаки на улицах города, а так же спланировать местонахождение постов патрульных.
Угон либо исчезновение виновника ДТП с места происшествия требует оперативного вмешательства всех постов ГИБДД и патрульных машин. Для информации о разыскиваемой машине ее данные (включая номера двигателя и кузова) извлекаются из базы зарегистрированных номеров и передаются по рации всем постам. Ведение статистики угонов, ее анализ и опубликование результатов в СМИ поможет снизить количество угонов, а хозяевам машин принять необходимые меры (самые угоняемые марки, самый популярный способ вскрытия, самые надежные сигнализации и т.п.).
2. Этапы разработки программы «Информационная система ГИБДД»
2.1 Техническое задание
Настоящее техническое задание распространяется на разработку информационной системы ГИБДД. Предполагается, что данную систему будут использовать сотрудники ГИБДД.
Основания для разработки
Информационная система разрабатывается на основании задания на курсовое проектирование, выданное Челябинским энергетическим колледжем имени С.М. Кирова 1 декабря 2007 года. Срок окончания разработки 17 марта 2008 года.
Назначение разработки
Информационная система ГИБДД предназначена для выделения и учета номерных знаков на автотранспорт, учета и анализа ДТП (дорожно-транспортного происшествия), угона либо исчезновения виновника ДТП с места происшествия.
Анализ накопленной по ДТП статистике поможет правильно расставить запрещающие и предупреждающие знаки на улицах города, а так же спланировать местонахождение постов патрульных. Ведение статистики угонов, ее анализ и опубликование результатов в СМИ поможет снизить количество угонов, а хозяевам машин принять необходимые меры (самые угоняемые марки, самый популярный способ вскрытия, самые надежные сигнализации и т.п.)
Требования к программе
Система должна обеспечивать выполнение следующих функций:
- Регистрацию автотранспортных средств, при совершении сделки купли-продажи;
- Меры, повышающие безопасность дорожного движения и выполнение всех мер при совершении ДТП на улицах города;
- Борьба с угоном автотранспортных средств;
- Оперативный поиск угнанных средств.
Исходные данные:
- Перечень транспорта;
- Номерные знаки на автотранспорт;
- Данные владельца автотранспорта;
- Справочник свободных номеров;
- Типы происшествий.
Результат:
- Перечень и общее число организаций, которым выделены номера либо с указанной серией, либо за указанный период;
- Сведения о владельце автотранспортного средства по государственному номеру автомашины;
- «Досье» на автомобиль по государственному номеру - номера двигателя, кузова, шасси, участвовал ли в ДТП, прошел ли техосмотр;
- Статистика по любому типу ДТП;
- Данные о количестве ДТП, совершаемых водителями в нетрезвом виде;
- Список машин, отданных в розыск, будь то скрывшиеся с места ДТП или угнанные;
- Данные об эффективности розыскной работы: количество найденных машин;
- Перечень угонов за указанный период;
Требования к надежности
1. Предусмотреть контроль вводимой информации.
2. Обеспечить блокировку некорректных действий пользователя.
3. Обеспечить ценность хранимой информации.
Требования к составу и параметрам технических средств
Минимальные требования к компьютеру и П.О:
Windows 2000 XP Professional
Servise Pack 1, 2
Windows XP Home Edition
Servise Pack 1, 2
Pentium 3, 866 Гц, 512 Мб, не менее 800 Мб на жестком диске.
Требования к программной совместимости
Система должна работать в ОС Windows.
Требования к программной документации
Программные модули должны быть самодокументированны. Программная система должна включать справочную информацию.
В состав сопровождающей документации необходимо включить:
1. Руководство системного программиста.
2. Руководство пользователя.
3. Пояснительная записка.
Технико-экономические показатели.
Программа должна быстро окупить затраченные на нее средства.
Стадии и этапы разработки
1. Постановка задачи.
2. Анализ предметной области.
3. Разработка алгоритма
4. Разработка интерфейса.
5. Кодирование.
6. Тестирование.
7. Оформление документации.
8. Порядок контроля и приемки
Программа должна быть представлена на отдельном диске в виде инсталляционного пакета, необходимо провести тесты на ввод неправильных данных и т.д.
Примечание.
2.2 Анализ предметной области и выбор метода решения
Современный мир информационных технологий трудно представить себе без возможности обработки больших объёмов информации. Такие объёмы информации удобно обрабатывать с помощью баз данных. Практически все системы в той или иной степени связаны с долговременным хранением и обработкой информации. Фактически, информация становится фактором, определяющим эффективность любой сферы деятельности. Увеличились информационные потоки и повысились требования к скорости обработки данных. Большинство операций не может быть выполнено вручную. Любые административные решения требуют более чёткой и точной оценки текущей ситуации и возможных перспектив ёё изменения.
В данном дипломном проекте необходимо разработать «Информационную систему ГИБДД». Она должна обеспечивать просмотр, обработку, ввод новых данных, поиск данных по определённому критерию. Целью создания данной базы данных является:
1) повышение производительности работы;
2) более надёжное хранение информации.
Стадии и этапы разработки:
1) анализ;
2) проектирование;
3) программирование;
4) тестирование и отладка.
На этапе анализа производится описание задачи. Описание является полным, последовательным, доступным для чтения и обзора различных заинтересованных лиц. В ходе выполнения этого этапа получают следующее:
- уточняются требования, приведённые в задании на дипломное проектирование;
- разрабатывается спецификация на программный продукт.
Итог выполнения этапа анализа - спецификация, содержащая конкретное описание программного продукта.
На этапе проектирования происходит иерархическое разбиение задачи создания программного продукта на подзадачи. На этом этапе производится следующее:
- формируется структура программного продукта и разработка алгоритмов, задаваемых спецификацией;
- выбирается структура информации в базе данных.
Результат работы этапа проектирования - алгоритм решения задачи, структура программного продукта и базы данных.
Цель этапа программирования - создание программного продукта в выбранной среде программирования. Итогом выполнения этого этапа является рабочая программа, отвечающая всем требованиям, указанным в задании на дипломном проектирование.
На этапе тестирования и отладки выявляются ошибки в программном продукте, проверяется работоспособность программного продукта и его соответствие спецификации. В ходе выполнения этого этапа выполняются следующие работы:
1) подготавливаются данные для отладки;
2) планируется сам процесс отладки;
3) проводится испытание программного продукта.
Результат выполнения этого этапа - оттестированный и отлаженный программный продукт.
2.3 Разработка алгоритма программы
2.3.1 Понятие алгоритма, виды алгоритмов
Слово «Алгоритм» происходит от algorithmi - латинского написания имени аль-Хорезми, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухаммеда бен Мусу, жившего в 783-850 гг. В своей книге «Об индийском счете» он сформулировал правила записи натуральных чисел с помощью арабских цифр и правила действий над ними столбиком. В дальнейшем алгоритмом стали называть точное предписание, определяющее последовательность действий, обеспечивающую получение требуемого результата из исходных данных. Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством. Создание алгоритма, пусть даже самого простого, - процесс творческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять. Такой субъект или объект принято называть формальным исполнителем. Примером формального исполнителя может служить стиральная машина-автомат, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок. Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Те действия, которые может совершать исполнитель, называются его его допустимыми действиями. Совокупность допустимых действий образует систему команд исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.
Данное выше определение алгоритма нельзя считать строгим - не вполне ясно, что такое «точное предписание» или «последовательность действий, обеспечивающая получение требуемого результата». Поэтому обычно формулируют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других инструкций.
Алгоритм - система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.
Алгоритм решения задачи имеет ряд обязательных свойств:
1. Дискретность (прерывность, раздельность) - алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
2. Определенность - каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
3. Результативность (конечность) - алгоритм должен приводить к решению задачи за конечное число шагов.
4. Массовость - алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
5. Формализованность - предписания алгоритма должны быть записаны на некотором формальном (искусственном) языке.
В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика применяемых методов проектирования алгоритмов и используемых при этом инструментальных средств разработки программ может повлиять на форму представления и содержание алгоритма обработки данных.
Алгоритм применительно к вычислительной машине - точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.
Виды алгоритмов как логико-математических средств отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
1) Механические алгоритмы, или иначе детерминированные, жесткие (например алгоритм работы машины, двигателя и т.п.);
2) Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.
Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат, если выполняются те условия процесса, задачи, для которых разработан алгоритм.
3) Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата.
4) Эвристический алгоритм (от греческого слова «эврика») - это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений.
5) Линейный алгоритм - набор команд (указаний), выполняемых последовательно во времени друг за другом.
6) Разветвляющийся алгоритм - алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
7) Циклический алгоритм - алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.
Цикл программы - последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Вспомогательный (подчиненный) алгоритм (процедура) - алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи. В некоторых случаях при наличии одинаковых последовательностей указаний (команд) для различных данных с целью сокращения записи также выделяют вспомогательный алгоритм.
2.3.2 Алгоритм работы программы
Программа «Информационная система ГИБДД» выполняется по следующему алгоритму:
1. Загрузка программы в оперативную память;
2. Ожидание реакции пользователя;
3. В начале загружается главная форма. В главной форме пользователь может выбрать нужную базу данных, просмотреть справку и информацию о программе.
4. При выборе базы данных «Справочник частных владельцев» пользователь может просмотреть информацию о владельце, редактировать таблицу, добавить новые номера и закрыть эту форму.
5. При выборе базы данных «Справочник организации» пользователь также сможет редактировать таблицу, просмотреть информацию или закрыть эту форму.
6. При выборе базы данных «Регистрация ДТП» загружается форма базы данных ДТП, где пользователь может редактировать таблицу, просмотреть информацию или закрыть эту форму.
7. При выборе базы данных «Угон автомобилей» загружается форма, в которой хранятся данные об угонах или скрывшихся с места ДТП автомобилях. Здесь пользователь также может редактировать таблицу, просмотреть информацию или закрыть эту форму.
8. При выборе пункта меню «Справка » отобразится окно с подсказками по работе в программе.
9. При выборе пункта «О программе» будет выведена информация о разработчике программы.
10. При нажатии кнопки «Выход» загружается форма, предупреждающая о действительности выхода из программы. При нажатии кнопки «нет» пользователь вернется в главную форму, а при нажатии кнопки «да» пользователь выйдет из программы.
2.3.3 Блок - схема программы
2.4 Инструментальные средства разработки
2.4.1 Анализ инструментальных средств
При выборе программных средств, для разработки программы «Информационная система ГИБДД», необходимо учитывать возможности описания структуры данных, определение модулей программы и связи между ними, оценки развитости аппарата структур и типов данных.
Учёт этих возможностей позволит сделать программу легкодоступной для использования, позволит предупредить возникновение логических ошибок, обеспечить надёжность программного обеспечения и его модифицируемость.
Для написания программы «Информационная система ГИБДД» была выбрана среда программирования Delphi.
Существует несколько способов решения поставленной задачи:
- Flash-программирование;
- языки программирования (Паскаль, Си, Visual Basic);
- среда объектного визуального программирования Delphi;
Flash - программирование
Macromedia Flash - очень мощное, при этом простое в использовании, средство создания анимированных проектов на основе векторной графики с встроенной поддержкой интерактивности.
Flash не требует ничего дополнительного для перехода со ссылке, открытия окна браузера или выполнения чего-либо посредством HTML.
Имеется возможность создавать кнопки, нажатие которых приводит к выдаче информации и воспроизведению звука или переносящее в другое место фильма проекта. Поэтому презентация в проекте может проходить в предопределённой последовательности или по пути указанному пользователем.
Для разработки интерактивных элементов во Flash используют три основных компонента: событие (event), порождающее определённое действие; действие (action), порождающее тем или иным образом событием; целевой объект (target), выполняющий действие или изменяемый событием.
Языки программирования
Прогресс компьютерных технологий определил процесс появления новых разнообразных звуковых систем для записи алгоритмов - языков программирования. Смысл появления такого языка - оснащённый набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм.
Можно писать программы непосредственно на машинном языке, хотя это и сложно. В начале 1950-х г.г. машинный язык был единственным языком. Далее были созданы языки высокого уровня, работающие через трансляционные программы, которые вводят «исходный код» (гибрид английских слов и математических выражений, которые считает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке.
Существуют также другие среды программирования, с помощью которых можно было бы разработать данную программу. Такие как:
- среда программирования С++ - это универсальный язык программирования, который позволяет разрабатывать программы в соответствии с разными типами программирования: процедурным, объектно-ориентированным, параметрическим.
- система программирования Microsoft Visual Basic for Windows, обладая простыми в обращении средствами визуального проектирования, позволяет в полной мере использовать преимущества графической системы Windows и быстро конструировать эффективные приложения.
2.4.2 Среда программирования Delphi
Для реализации решаемой задачи в дипломном проекте необходимо осуществление следующих операций:
1) Добавление и удаление в базе данных записей.
2) Изменение и обновление записей.
3) Быстрое осуществление поиска нужных записей по критериям.
Все эти операции должны осуществляться в удобной для пользователя форме и не вызывать затруднений при работе. Поэтому я выбрал среду программирования Borland Delphi 7.0.
Для хранения данных выбрана база данных Paradox т.к.:
1) Это достаточно известная и изученная хорошо зарекомендовавшая себя БД, особенно для хранения небольших объемов данных
2) БД Paradox поддерживает одновременную работу нескольких пользователей по сети.
3) БД Paradox поддерживает язык запросов SQL
Для разработки приложения БД была выбрана среда разработки Borland Delphi 7 и средство доступа к данным BDE (Borland Database Engine).
BDE было выбрано по следующим причинам:
a) этот продукт много лет присутствует на рынке, поэтому он отличается высокой устойчивостью и надежностью;
b) существует большое количество литературы по программированию BDE;
c) BDE отличается высокой скоростью работы и большим количеством сервисных функций;
d) некоторая сложность при установке программ, использующих BDE компенсируется всеми вышеперечисленными преимуществами.
Система разработки Borland Delphi присутствует на рынке программного обеспечения более 10 лет. За это время фирмой Borland были реализованы многие функции, которые используют программисты при разработке программного обеспечения. Borland Delphi 7 отличается высокой скоростью работы, надежностью самой системы и созданных программ, возможностью разработки новых компонентов (программных объектов, включающих в себя определенную функциональность), возможностью разрабатывать разные классы приложения, компоненты ActiveX, приложения для работы с базами данных (локальные и серверные), WEV приложения, сервисы Windows NT, консольные приложения Windows и приложения Windows с графическим интерфейсом. Также существует пакет Borland KYLIX, который позволяет разрабатывать приложения для операционной системы Linux и во многом совместим с Delphi на уровне исходных текстов. Компания Borland занимается постоянным совершенствованием Delphi, например последняя версия Delphi 8 и недавно вышедшая Delphi 2005 компилируют приложения под новую платформу Microsoft .Net. Для разработки выбран Delphi 7, так как программы, созданные в нем, могут работать на любых версиях Windows без установки дополнительных библиотек.
2.5 Разработка интерфейса программы
2.5.1 Понятие интерфейса
Термин «интерфейс» широко используется в областях, где человеку приходится иметь дело с обработкой информации на компьютере. В переводе с английского языка Interface означает внешнее лицо.
Интерфейс - совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека. Особенно важен интерфейс, обеспечивающий взаимодействие пользователя с персональным компьютером, называемый пользовательским интерфейсом. От удобства этого интерфейса во многом зависит успех нового программного продукта в конкурентной борьбе на рынке программных средств. Пользовательский интерфейс может быть символьным и графическим.
2.5.2 Виды интерфейса
В компьютерном мире известно множество разновидностей интерфейсов:
интерфейс пользователя,
графический интерфейс,
интерфейс ввода-вывода,
внешний или внутренний интерфейс,
интеллектуальный интерфейс,
человеко-машинный интерфейс,
программный интерфейс и т.д.
Графический интерфейс, по сравнению с символьным, воспринимается как более понятный и интуитивно ясный.
Графический пользовательский интерфейс - интерфейс, где для взаимодействия человека и компьютера используются графические средства. Ярким примером графического пользовательского интерфейса служит интерфейс Windows. При разработке этой операционной системы специалисты широко использовали возможные графические средства: рисунки, специальные значки, цветовое оформление, разнообразные начертания шрифтов, дизайн экрана и др. Графический интерфейс Windows позволяет более оперативно задавать команды операционной системы, запускать программы, выбирать файлы, кнопки, пункты меню.
Графический интерфейс пользователя (ГИП) является обязательным компонентом большинства современных программных продуктов, ориентированных на работу конечного пользователя. К ГИП предъявляются высокие требования как с чисто инженерной, так и с художественной стороны, при его разработке ориентируются на возможности человека.
Наиболее часто ГИП реализуется в интерактивном режиме работы пользователя для программных продуктов, функционирующих в среде Windows, и строится в виде системы ниспадающих меню с использованием в качестве средства манипуляции мыши и клавиатуры. Работа пользователя осуществляется с экранными формами, содержащими объекты, панели инструментов с пиктограммами режимов и команд обработки.
Стандартный ГИП должен отвечать ряду требований:
Поддерживать информационную технологию работы пользователя с программным продуктом - содержать привычные и понятные пользователю пункты меню, соответствующие функциям обработки, расположенные в естественной последовательности использования.
Ориентироваться на конечного пользователя, который общается с программой на внешнем уровне взаимодействия.
Удовлетворять правилу «шести» - в одну линейку меню включать не более шести понятий, каждое из которых содержит не более шести действий.
Графические объекты сохраняют своё стандартизированное назначение и по возможности своё местоположение на экране.
2.5.3 Разработка интерфейса программы «Информационная система ГИБДД»
При разработке интерфейса программы «Информационная система ГИБДД» были учтены следующие показатели:
1. Интуитивность - управляющие элементы интерфейса должны быть удобными и заметными, вместе с тем они не должны отвлекать от основного содержания, за исключением случаев, когда управляющие элементы сами являются основным содержанием.
2. Цветовое оформление - используя цвет в передаче информации на дисплее, следует учитывать:
- Чувствительность глаза различна к разным участкам спектра. В условиях дневного освещения чувствительность глаза наиболее высока к желтым и зеленым лучам. По данным экспериментальных исследований, зеленый цвет на экране дает несколько лучшие результаты по скорости и точности чтения, чем оранжево-желтый;
- При длительном цветовом воздействии на глаз снижается его чувствительность к данному цвету. Наибольшее падение чувствительности наблюдается для сине-фиолетового цвета, наименьшее - для зеленого и желтого, т.е. синий цвет наиболее утомляет глаз;
- Светлые цвета на темном фоне кажутся приближенными к зрителю, а темные на светлом - удаленными.
В результате был разработан интерфейс, обладающий хорошим цветовым сочетанием, удобством расположения всех кнопок, выполняющих функции программы и позволяющий при запуске программы перейти на необходимый модуль программы, не прилагая к этому особых усилий.
2.6 Тестирование программы
2.6.1 Понятие тестирования программных средств
Многие организации, занимающиеся созданием программного обеспечения, до 50% средств, выделенных на разработку программ, тратят на тестирование, что составляет миллиарды долларов по всему миру в целом. И все же, несмотря на громадные капиталовложения, знаний о сути тестирования явно не хватает и большинство программных продуктов неприемлемо ненадежно даже после «основательного тестирования».
О состоянии дел лучше всего свидетельствует тот факт, что большинство людей, работающих в области обработки данных, даже не может правильно определить слово «тестирование», и это на самом деле главная причина неудач.
«Тестирование - процесс, подтверждающий правильность программы и демонстрирующий, что ошибок в программе нет. Основной недостаток подобного определения заключается в том, что оно совершенно неправильно; фактически это почти определение антонима слова «тестирование». Читатель с некоторым опытом программирования уже, вероятно, понимает, что невозможно продемонстрировать отсутствие ошибок в программе. Поэтому определение описывает невыполнимую задачу, а так как тестирование зачастую все же выполняется с успехом, по крайней мере с некоторым успехом, то такое определение логически некорректно. Правильное определение тестирования таково: Тестирование - процесс выполнения программы с намерением найти ошибки.
Невозможно гарантировать отсутствие ошибок в нетривиальной программе; в лучшем случае можно попытаться показать наличие ошибок. Если программа правильно ведет себя для солидного набора тестов, нет основании утверждать, что в ней нет ошибок; со всей определенностью можно лишь утверждать, что не известно, когда эта программа не работает. Конечно, если есть причины считать данный набор тестов способным с большой вероятностью обнаружить все возможные ошибки, то можно говорить о некотором уровне уверенности в правильности программы, устанавливаемом этими тестами.
Психологические эксперименты показывают, что большинство людей, поставив цель (например, показать, что ошибок нет), ориентируется в своей деятельности на достижение этой цели. Тестовик подсознательно не позволит себе действовать против цели, т. е. подготовить тест, который выявил бы одну из оставшихся в программе ошибок. Поскольку мы все признаем, что совершенство в проектировании и кодировании любой программы недостижимо и поэтому каждая программа содержит некоторое количество ошибок, самым плодотворным применением тестирования будет найти некоторые из них. Если мы хотим добиться этого и избежать психологического барьера, мешающего нам действовать против поставленной цели, наша цель должна состоять в том, чтобы найти как можно больше ошибок. Сформулируем основополагающий вывод:
Если ваша цель - показать отсутствие ошибок, вы. их найдете не слишком много. Если же ваша цель - показать наличие ошибок, вы найдете значительную их часть. Надежность невозможно внести в программу в результате тестирования, она определяется правильностью этапов проектирования. Наилучшее решение проблемы надежности - с самого начала не допускать ошибок в программе. Однако вероятность того, что удастся безупречно спроектировать большую программу, бесконечно мала. Роль тестирования состоит как раз в том, чтобы определить местонахождение немногочисленных ошибок, оставшихся в хорошо спроектированной программе. Попытки с помощью тестирования достичь надежности плохо спроектированной программы совершенно бесплодны.
2.6.2 Виды и методы тестирования
Тестирование программы методом «черного ящика».
Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией «черного ящика», тестированием с управлением по данным или тестированием с управлением по входу-выходу. При использовании этой стратегии программа рассматривается как «черный ящик». Иными словами, такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Тестовые же данные используются только в соответствии со спецификацией программы (т. е. без учета знаний о ее внутренней структуре). При таком подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных. Если такое испытание представляется сложным, то еще сложнее создать исчерпывающий тест для большой программы.
Построение исчерпывающего входного теста невозможно. Это подтверждается двумя аргументами: во-первых, нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, разработка таких тестов противоречит экономическим требованиям.
Тестирование программы методом «белого ящика»
Стратегия «белого ящика», или стратегия тестирования, управляемого логикой программы, позволяет исследовать внутреннюю структуру программы, В этом случае тестирующий продукт получает тестовые данные путем анализа логики программы. Сравним способ построения тестов при данной стратегии с исчерпывающим входным тестированием стратегии «черного ящика». Непосвященному может показаться, что достаточно построить такой набор тестов, в котором каждый оператор исполняется хотя бы один раз; нетрудно показать, что это неверно. Не вдаваясь в детали, укажем лишь, что исчерпывающему входному тестированию может быть поставлено в соответствие исчерпывающее тестирование маршрутов. Подразумевается, что программа проверена полностью, если с помощью тестов удается осуществить выполнение программы по всем возможным маршрутам ее потока (графа) передач управления. Последнее утверждение имеет два слабых пункта. Первый из них состоит в том, что число не повторяющих друг друга маршрутов в программе -- астрономическое. Второй слабый пункт утверждения заключается в том, что, хотя исчерпывающее тестирование маршрутов является полным тестом и хотя каждый маршрут программы может быть проверен, сама программа будет содержать ошибки. Это объясняется следующим образом. Во-первых, исчерпывающее тестирование маршрутов не может дать гарантии того, что программа соответствует описанию. Например, вместо требуемой программы сортировки по возрастанию случайно была написана программа сортировки по убыванию. В этом случае ценность тестирования маршрутов невелика, поскольку после тестирования в программе окажется одна ошибка, т. е. программа неверна.
Во-вторых, программа может быть неверной в силу того, что пропущены некоторые маршруты. Исчерпывающее тестирование маршрутов не обнаружит их отсутствия.
Восходящее тестирование.
При восходящем подходе программа собирается и тестируется «снизу вверх». Только модули самого нижнего уровня тестируются изолированно, автономно. После того как тестирование этих модулей завершено, вызов их должен быть так же надежен, как вызов встроенной функции языка или оператор присваивания. Затем тестируются модули, непосредственно вызывающие уже проверенные. Эти модули более высокого уровня тестируются не автономно, а вместе с уже проверенными модулями более низкого уровня. Процесс повторяется до тех пор, пока не будет достигнута вершина. Здесь завершается и тестирование модулей, и тестирование сопряжений программы. При восходящем тестировании для каждого модуля необходим драйвер: нужно подавать тесты в соответствии с сопряжением тестируемого модуля. Одно из возможных решений -- написать для каждого модуля небольшую ведущую программу. Тестовые данные представляются как «встроенные» непосредственно в эту программу переменные и структуры данных, и она многократно вызывает тестируемый модуль, с каждым вызовом передавая ему новые тестовые данные. Имеется и лучшее решение: воспользоваться программой тестирования модулей - это инструмент тестирования, позволяющий описывать тесты на специальном языке и избавляющий от необходимости писать драйверы. Здесь отсутствуют проблемы, связанные с невозможностью или трудностью создания всех тестовых ситуаций, характерные для нисходящего тестирования. Драйвер как средство тестирования применяется непосредственно к тому модулю, который тестируется, где нет промежуточных модулей, которые следует принимать во внимание. Не существует также и трудностей с незавершенностью тестирования одного модуля при переходе к тестированию другого, потому что при восходящем тестировании с применением нескольких версий заглушки нет сложностей с представлением тестовых данных.
Нисходящее тестирование.
Нисходящее тестирование (называемое также нисходящей разработкой) не является полной противоположностью восходящему, но в первом приближении может рассматриваться как таковое. При нисходящем подходе программа собирается и тестируется «сверху вниз». Изолированно тестируется только головной модуль. После того как тестирование этого модуля завершено, с ним соединяются (на пример, редактором связей) один за другим модули, непосредственно вызываемые им, и тестируется полученная комбинация. Процесс повторяется до тех пор, пока не будут собраны и проверены все модули. Нисходящий метод имеет как достоинства, так и недостатки по сравнению с восходящим. Самое значительное достоинство -- то, что этот метод совмещает тестирование модуля, тестирование сопряжений и частично тестирование внешних функций. С этим же связано другое его достоинство: когда модули ввода-вывода уже подкл ...........
Страницы: [1] | 2 |
|