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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,59 Мб
  • Опубликовано:
    2013-09-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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














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

Содержание

Введение

1. Аналитическая часть

.1 Компьютерная экспертиза в г. Железногорске Красноярского края

.2 Описание предметной области

.3 Обзор существующего специализированного программного обеспечения

.3.1 Судебно-экспертный комплекс EnCase

.3.2 Инструментальные экспертные средства Vogon International

.3.3 Экспертная система ILOOK Investigator

.3.4 Сравнение специализированного программного обеспечения21

.4 Требования к системе

2. Выбор программных средств

.1 Обзор и выбор системы управления базой данных

.1.1 Обзор существующих СУБД

.1.2 Выбор СУБД

.2 Обзор и выбор языка программирования

.2.1 Подход с применением языка С и API-интерфейса Windows

.2.2 Подход с применением языка C++ и платформы MFC

.2.3 Подход с применением Visual Basic 6.0

.2.4 Подход с применением Java

.2.5 Подход с применением СОМ

.2.6 Сложность представления типов данных СОМ

.2.7 Решение .NET

.2.8 Что привносит язык С#

.2.9 Выбор среды программирования

3. Разработка базы данных системы

.1 Инфологическое проектирование

.2 Физическое проектирование базы данных

.3 Поддержка целостности данных

.4 Оценка возможностей проектируемой программной среды

4. Разработка программного обеспечения

.1 Функциональное проектирование

.2 Структура программного обеспечения

.3 Разработка алгоритмов работы

.4 Разработка интерфейса пользователя

.5 Руководство пользователя

5. Тестирование программного обеспечения

.1 План тестирования

.2 Результаты тестирования

6. Безопасность жизнедеятельности

.1 Анализ условий труда на рабочем месте инженера

.1.1 Анализ микроклимата

.1.2 Электробезопасность

.1.3 Анализ освещения

.1.4 Уровень шума

.1.5 Эргономика рабочего места инженера

.2 Требования безопасности и технической эстетики к рабочему месту

.3 Расчет освещенности помещения

.4 Инструкция по охране труда

7. Технико-экономическое обоснование

.1 Карта описания программного продукта

.2 Прямой метод определения технико-экономических показателей проекта (метод экспертных оценок)

.3 Метод определения ТЭП проекта на основе размерности базы данных программной системы

.4 Определение договорной цены на создание программной системы

.4.1 Определение фонда оплаты труда на разработку и комплексные испытания программной системы

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

.5 Структура договорной цены на программное обеспечение

Резюме

Заключение

Список используемых источников

Приложение А

Приложение Б

Введение


В последние годы возрастает количество преступлений в сфере компьютерной информации.

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

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

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

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

Исходя из этого, на разработку были установлены следующие задачи:

процесс автоматизированной индексации файлов;

функция выборки файлов и каталогов по параметрам и атрибутам;

функция формирования временных диапазонов работы с файлами;

поддержка экспорта выборки файлов и диапазонов в табличную форму;

полнотекстовый поиск по индексу.

Для реализации поставленных задач были выбраны:

СУБД - MySql 5.5;

среда разработки Visual Studio 2010;

язык программирования C#.

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

1. Аналитическая часть

   

    1.1 Компьютерная экспертиза в г. Железногорске Красноярского края


Данный вид экспертиз производится в 10 Межрайонном Отделении «Железногорский» Экспертно-Криминалистического Центра Главного Управления МВД РФ по Красноярскому краю с 2008 года. Допуск на производство данного вида исследований имеет капитан полиции эксперт Дегтярев К.И.

«Компьютерная экспертиза» - является востребованным направлением экспертно-криминалистической деятельности в г. Железногорске Красноярского края (за 2010-2011 г. в 10 МРО «Железногорский» было выполнено более 15 экспертиз и 40 исследований).

    1.2 Описание предметной области


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

В основу метода, использованного при проектировании функций системы «Компьютерная криминалистическая экспертиза», положены идеи и нотации стандарта IDEF0 (Integrated computer aided manufacturing DEFinition), который является развитием методики SADT (Structural Analysis and Design Technique). Использование методики IDEF0 позволило создать функциональную структуру программного комплекса, выявить производимые им действия и связи между этими действиями, управляющие воздействия и механизмы выполнения каждой функции, что, в конечном итоге, позволило на ранней стадии проектирования предотвратить возможные ошибки. Внешний вид контекстной диаграммы функциональной модели предметной области: «Компьютерная криминалистическая экспертиза» представлен на рисунке 1.1.

Рисунок 1.1 - Контекстная диаграмма функциональной модели

На верхнем уровне функциональной модели выделены три основных потока входной информации в систему (Input): Информация об обстоятельствах преступления, носители информации ЭВМ подозреваемого и данные об аппаратной конфигурации ЭВМ подозреваемого. Интерфейс управления (Control) разбит на два логических блока: разрешение на изменение объектов, порядок проведения экспертизы (разрешенная методика).

Механизмы (Mechanism) представлены набором основных ресурсов доступных эксперту: вспомогательное ПО, ресурсы ЭВМ, сам эксперт-криминалист.

В качестве выходной информации (Output), понимается вывод эксперта относительно исследуемой информации: доказательства и выводы о причастности к преступлению подозреваемого.

Первый уровень декомпозиции функциональной модели «Компьютерная криминалистическая экспертиза» предполагает разбиение на законченные, информационно, с точки зрения использования данных для анализа, взаимосвязанные подсистемы. Диаграмма первого уровня декомпозиции модели представлена на рисунке 1.2.

Рисунок 1.2 - Первый уровень декомпозиции функциональной модели «Криминалистическая компьютерная экспертиза»

Функция «Подготовка к проведению экспертизы» обеспечивает правовую поддержку эксперта, при производстве экспертизы. На входе функция имеет носитель информации из ЭВМ подозреваемого (эксперт проверяет отсутствие следов постороннего воздействия). Руководящими документами для этой подсистемы являются: разрешенный приказом порядок проведения экспертизы (методика) и постановление следователя с разрешением на изменение объектов исследования. Осматривает объекты, изучает порядок проведения экспертизы и получает разрешение следователя на изменение объектов эксперт-криминалист.

Результатом выполнения функции являются готовые правовые условия для выполнения экспертизы.

Функция «Определение перечня возможных следов» обеспечивает формирование экспертом предполагаемого списка следов (плана проведения исследования). Входными данными являются: информация об обстоятельствах преступления и готовые условия для выполнения экспертизы. Выполняет все действия сам эксперт-криминалист.

Результатом выполнения функции является список возможно имеющихся следов.

Функция «Анализ результатов» обеспечивает, на основе найденных следов, формирование экспертом выводов о причастности подозреваемого к преступлению и вывод списка собранных в процессе исследования доказательств преступления.

Функция «Поиск следов» обеспечивает поиск и формирование списка следов преступления. Входными данными являются: носитель информации из ЭВМ подозреваемого, список возможных следов, данные об аппаратной конфигурации ЭВМ подозреваемого. Управляющим воздействием является порядок проведения экспертизы (методика). Выполняется функция экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

Результатом выполнения функции является список обнаруженных следов.

Функция «Поиск следов» декомпозируется на две составляющие: поиск следов на носителях и поиск следов в аппаратной части (рисунок 1.3).

Функция «Поиск следов в аппаратной части» обеспечивает поиск и формирование списка следов преступления относительно аппаратной части объектов исследования (например, смодулированные или декодированные сигналы в сети). Управляющим воздействием является порядок проведения экспертизы (методика). Входными данными являются: список возможных следов, аппаратная конфигурация ЭВМ подозреваемого. Функция выполняется экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

Результатом выполнения функции является список обнаруженных следов.

Функция «Поиск следов на носителях» обеспечивает поиск и формирование списка следов преступления обнаруженных на носителях информации из ЭВМ подозреваемого. Управляющим воздействием является порядок проведения экспертизы (методика). Входными данными являются: носители информации ЭВМ подозреваемого, список возможных следов. Функция выполняется экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

Результатом выполнения функции является список обнаруженных следов.

Рисунок 1.3 - Декомпозиция функции «Поиск следов»

Функция «Поиск следов на носителях» декомпозируется на две составляющие: создание копий носителей, индексация, поиск (рисунок 1.4).

Функция «Создание копий носителей» обеспечивает создание точных копий (клонов) носителей информации из ЭВМ подозреваемого, для исключения любой возможности записи данных на исходный носитель. Управляющим воздействием является порядок проведения экспертизы (методика). На входе у функции носители информации из ЭВМ подозреваемого. Функция выполняется экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

Результатом выполнения функции является копия носителя информации.

Рисунок 1.4 - Декомпозиция функции «Поиск следов на носителях»

Функция «Индексация» обеспечивает автоматизированную индексацию текстовых данных. На входе функции копия носителя информации из ЭВМ подозреваемого. Управляющим воздействием является порядок проведения экспертизы (методика). Функция выполняется экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

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

Функция «Поиск» обеспечивает поиск и формирование списка следов преступления обнаруженных на носителе информации из ЭВМ подозреваемого. Входными данными являются: список возможно имеющихся следов, индексные данные, копия носителя информации из ЭВМ подозреваемого. Управляющим воздействием является порядок проведения экспертизы (методика). Функция выполняется экспертом, с помощью ресурсов стендовой ЭВМ и вспомогательного ПО.

Результатом выполнения функции является список обнаруженных следов.

Таким образом, на основе системного подхода с использованием методологии IDEF0 разработана функциональная модель «Компьютерная криминалистическая экспертиза», определены основные функции и взаимосвязи между отдельными функциональными блоками.

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

    1.3 Обзор существующего специализированного программного обеспечения

   

    1.3.1 Судебно-экспертный комплекс EnCase

Одним из мировых лидеров в области разработки программного обеспечения и программных средств, организации профессионального обучения специалистов для сферы судебно-экспертного исследования компьютерных систем является компания Guidance Software.

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

Характерной особенностью EnCase - методологии является практическая реализация творческого подхода к судебно-экспертному исследованию компьютерных систем. Последняя версия программного пакета EnCase, имеет следующие функциональные характеристики:

-  поиск и анализ информации в различных файловых системах целого ряда аппаратных платформ;

-       встроенный макроязык ESCRIPT позволяет писать фильтры и программы, чтобы настроить EnCase и применять современные методы автоматизированного анализа криминалистически значимой компьютерной информации;

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

-       просмотр содержимого файлов и установление времени их создания (изменения);

-       проведение базового поиска ключевых слов с использованием произвольного набора алфавитно-цифровых данных;

-       автоматический поиск скрытых и архивированных файлов;

-       сортировка файлов по заданным признакам, включая временные метки (создания, модификации, удаления);

-       осуществление выделения (пометки) интересуемых файлов либо их частей (фрагментов) и сохранение ссылок на них для последующей подготовки заключения эксперта;

-       экспортирование копии любой части исследуемого файла, выделенных файлов или полных деревьев папок;

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

-       построение библиотек форматов (типов) файлов, типичных для экспертной практики, с целью применения их при автоматическом распознавании информации;

-       формирование отчета о выполненном исследовании (заключения эксперта) с проставлением дат и времени проведенных определенных действий (операций);

-       отображение просматриваемого файла в текстовом или Hex-виде и др.

    1.3.2 Инструментальные экспертные средства Vogon International

В настоящее время частое применение в зарубежной следственной практике находят инструментальные средства Vogon International. Использование данного комплекса, как свидетельствуют специалисты правоохранительной сферы, имеет особую эффективность при раскрытии и расследовании таких преступлений, как мошенничество, Internet/e-mail - злоупотребления, убийство, терроризм и пр. Наибольшее распространение средства Vogon International получили в Великобритании и ряде стран Европы, Северной Америки и Дальнего Востока.

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

Кроме того, средства Vogon International спроектированы с учетом следующих важных принципов получения доброкачественных доказательств:

-  никакое действие, предпринятое специалистом правоохранительной сферы, не должно изменить данные, содержащиеся на представленном компьютере или других средствах информатизации, которые можно впоследствии представить в суде как вещественные доказательства;

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

Средства Vogon International отличаются высокой производительностью. Например, 200Gb-диск может быть просмотрен на предмет контекстного поиска менее чем за 2 минуты. Автоматический режим предварительного просмотра содержания обнаруженных искомых файлов организован независимо от продолжения дальнейшей работы программного обеспечения.

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

    1.3.3 Экспертная система ILOOK Investigator

Данная система (разработка Elliot Spencer & the Criminal Investigation Division of the United States Internal Revenue Service, U.S. Treasury Department) также служит задачам обеспечения производства судебной экспертизы в сфере современных информационных технологий. Программный комплекс ILOOK является экспертным инструментом, предназначенным для всестороннего исследования и анализа представленной на экспертизу компьютерной системы. Пакет программ состоит из главного исполнимого файла, нескольких файлов, создаваемых во время работы программы, а также файла диалоговой помощи.используется как для экспертизы целой компьютерной системы посредством создания побитной копии (образа) носителя информации, так и исследования отдельных файлов различных типов.имеет следующие функциональные характеристики:

-  имеет интерфейс типа Проводника Windows для осуществления навигации по файловой системе исследуемого компьютера;

-       сервисные средства обеспечения исследования позволяют анализировать всю файловую систему либо лишь требуемую ее часть;

-       реализует иерархический алгоритм поиска необходимой информации (стандартный, расширенный и индексированный способы поиска);

-       содержит возможности проведения автономного поиска и выявления признаков индексации данных;

-       просматривает файлы в различных форматах и кодировках;

-       организует автоматизированную подготовку и последующую обработку образа (зеркальной копии) исследуемого носителя информации;

-       проводит диагностику сигнатуры исследуемых файлов;

-       имеет интегрированный многофункциональный вьюер.

    1.3.4 Сравнение специализированного программного обеспечения

Основные характеристики перечисленного выше программного обеспечения приведены в таблице 1.1.

Таблица 1.1

Характеристики специализированного программного обеспечения

Характеристика

Программное обеспечение


EnCase

Vogon International

ILOOK Investigator

Поддержка языка запросов

Да

Нет

Нет

Поиск по индексированным данным

Да

Нет

Да

Хранение индекса на удаленной станции

Да

Нет

Да

Фильтрация файлов по типу

Да

Нет

Да

Создание диапазонов дат

Да

Нет

Нет

Поддержка кириллицы

Да

Да

Нет

Встроенный вьювер

Нет

Нет

Да

Анализ сигнатуры файла

Да

Нет

Да

Ручное пополнение базы сигнатур

Да

Нет

Нет

Регулярные обновления

Да

Нет

Нет


Из таблицы 1.1 очевидно, что судебно-экспертный комплекс EnCase обладает наибольшим набором криминалистически-значимых функций. Однако работа в нем производится с помощью сложного скриптового языка (базовый курс обучения длительностью 6 месяцев). Кроме того, стоимость базовой версии EnCase составляет порядка 800 т.р.

Инструментальные экспертные средства Vogon International изначально разрабатывались как набор инструментов для работы с аппаратными компонентами и имеют ограниченные функции работы с файлами. Функциональность инструментальных экспертных средств Vogon International и ILOOK Investigator гораздо слабее, а их производители не производят обновления уже длительное время.

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

    1.4 Требования к системе

Разрабатываемая система должна обеспечивать:

Функциональные требования

-  соответствие стандартам интерфейса пользователя Microsoft Windows;

-       сканирование и индексацию файловой системы;

-       сохранение индексированных данных;

-       устойчивость и контроль всевозможных ошибок ввода;

-       обработку корректно введенных запросов;

-       экспорт результатов в формате Word, Excel, txt.

Требования практичности

Интерфейс программной среды должен быть максимально понятный даже неподготовленному человеку.

Программная среда должна быть снабжена всплывающими подсказками и сообщениями.

Требования надёжности

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

Требования к производительности

Рекомендуемые минимальные требования к аппаратной части:

-  процессор не ниже Intel Core 2 с производительностью не менее 1.8Ггц;

-       оперативная память 1024Мб, HDD 80 Гб.

Разрабатываемая программная среда должен работать под управлением операционной системы Microsoft Windows (не ниже Windows XP), с установленной программной платформой .Net Framework версии не ниже 3.5.

Внешние требования

Программное обеспечение «Эксперт-поиск» будет установлено на персональных компьютерах Экспертно-Криминалистического Центра. Выгрузка результатов в формате удобном для пользователя (документ Excel, txt).

Требования к документации

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

«Эксперт-поиск» будет включать систему интерактивной справки всплывающих подсказок.

 


2. Выбор программных средств

   

    2.1 Обзор и выбор системы управления базой данных

   

    2.1.1 Обзор существующих СУБД

Согласно данным Википедии[1], наиболее популярными СУБД являются:

- InterBase;

Firebird;

MySql;

PostgreSql;

Oracle;

- MS SQL Server.

Рассмотрим их более подробно.

InterBase

В настоящее время последней версией является InterBase 2009 , в которой появилась поддержка Unicode и шифрование AES/DES. InterBase 7.5/2007 и Firebird 1.5/2.0 похожи, но уже далеки от полной совместимости - то есть миграция между их форматами баз данных легче, чем между форматами совсем «чужих» баз данных, но все же сопряжена с определенными проблемами.

Основными достоинствами последней версии InterBase являются низкие требования к системе, с одновременной масштабируемостью на несколько процессоров, плюс развитая система мониторинга, временные таблицы, встраиваемая аутентификация пользователей, журналирование. Традиционным достоинством считается кросс-платформенность - InterBase поддерживает Linux, Microsoft Windows, Unix и Solaris.

Firebird

Firebird (FirebirdSQL) - компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах.

В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland 25 июля 2000 года в виде свободной версии Interbase 6.0.

Среди недостатков: отсутствие кеша результатов запросов, полнотекстовых индексов.

MySql

MySQL [1] - свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

PostgreSql

PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2003 (ISO/IEC 9075)[1].

Сильными сторонами PostgreSQL считаются:

    поддержка БД практически неограниченного размера;

-        мощные и надёжные механизмы транзакций и репликации;

         расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme и PL/sh, а также имеется поддержка загрузки C-совместимых модулей;

         наследование;

         легкая расширяемость.

Oracle

СУБД Oracle поставляется в четырех различных редакциях, ориентированных на различные сценарии разработки и развертывания приложений (а также отличающиеся ценой):

Enterprise Edition Standard Edition, не может устанавливаться на системы, имеющие более 4-х процессорных разъёмов;

Standard Edition One,не может устанавливаться на системы, имеющие более 2-х процессорных разъёмов;

Personal Edition, один пользователь;

Lite,для мобильных и встраиваемых устройств

Express Edition,бесплатная редакция; используемая оперативная память - 1 Гбайт, а так же используется только 1 процессор. Максимальный объем базы данных Oracle Database XE составляет 12 гигабайт (Гб). Из них от 0.5 до 0.9 Гб используются словарем данных, внутренними схемами и временным дисковым пространством. Поэтому остается 11.0 Гб для пользовательских данных.

Ms SQL Server

Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.

Сервер баз данных Microsoft SQL Server в качестве языка запросов использует версию языка SQL, получившую название Transact-SQL (сокращённо T-SQL). Язык T-SQL является реализацией SQL-92 (стандарт ISO для языка SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением).

Для обеспечения доступа к данным Microsoft SQL Server поддерживает Open Database Connectivity (ODBC) - интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Компания Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.

Также SQL Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL - это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP-адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.

В SQL Server 2005 встроена поддержка .NET Framework. Благодаря этому хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System (система обращения с типами данных в Microsoft .NET Framework). Однако, в отличие от других процессов, .NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.и другие компании производят большое число программных средств разработки, позволяющих разрабатывать бизнес-приложения с использованием баз данных Microsoft SQL Server. Microsoft SQL Server 2005 включает в себя также Common Language Runtime (CLR) Microsoft .NET, позволяющий реализовывать хранимые процедуры и различные функции приложениям, разработанным на языках платформы .NET (например, VB.NET или C#). Предыдущие версии средств разработки Microsoft использовали только API для получения функционального доступа к Microsoft SQL Server.

    2.1.2 Выбор СУБД

Основные характеристики [1] перечисленных выше СУБД приведены в таблицах 2.1 - 2.3.

Таблица 2.1

Операционные системы, поддерживаемые СУБД

СУБД

Операционная система


Windows

Mac OS X

Linux

BSD

UNIX

Firebird

Yes

Yes

Yes

Yes

Yes

InterBase

Yes

Yes

Yes

No

Yes (Solaris)

Microsoft SQL Server

Yes

No

No

No

No

MySQL

Yes

Yes

Yes

Yes

Yes

Oracle

Yes

Yes

Yes

No

Yes

PostgreSQL

Yes

Yes

Yes

Yes

Yes


Таблица 2.2

Ограничения по размерам данных в СУБД

СУБД

Ограничение


Максимальный размер базы

Максимальный размер таблицы

Firebird

Unlimited

~32TB

InterBase

Unlimited

~32TB

Microsoft SQL Server

524 258 TB (32 767 files * 16 TB max file size)

524 258TB

MySQL

Unlimited

MyISAM storage limits: 256 TB; Innodb storage limits: 64 TB

Oracle

Unlimited (4 GB * block size per tablespace)

4 GB * block size (with BIGFILE tablespace)

PostgreSQL

Unlimited

32 TB


Таблица 2.3

Другие характеристики

СУБД

Характеристика


Шифрование траффика

Подключение anonymous

Аудит

Full-text

Firebird

No

Yes

No

No

InterBase

No

Yes

No

No

Microsoft SQL Server

Yes

Yes (From 2008)

Yes

MySQL

Yes (SSL with 4.0)

Yes

-

MyISAM tables only

Oracle

Yes

Yes

Yes

Yes

PostgreSQL

Yes (for 9.1)

No

Yes

Yes


Основываясь на данных таблиц 2.1-2.3 и описаниях СУБД, следует:

Firebird и InterBase не обладают функциями полнотекстового поиска;

Microsoft SQL Server не поддерживает сторонние операционные системы (но вполне возможна ситуация, когда будет необходимо сохранить индексную базу на машине под управлением другой ОС (например, ubuntu));

бесплатная редакция Oracle Express Edition имеет недопустимое количество ограничений (используемая оперативная память - 1 Гбайт, а так же используется только 1 процессор. Максимальный объем базы данных Oracle Database XE составляет 12 гигабайт (Гб)).

Далее, методом исключения, на выбор остались две СУБД: MySql и PostgreSQL. Согласно статье [2], MySql позиционируется как более быстрая, а применение PostgreSql оправдано, когда необходим расширенный набор функций.

Таким образом, для решения поставленных задач, была выбрана СУБД MySql.

   

    2.2 Обзор и выбор языка программирования

   

    2.2.1 Подход с применением языка С и API-интерфейса Windows

Традиционно, разработка программного обеспечения для операционных систем семейства Windows подразумевала использование языка программирования С в сочетании с API-интерфейсом Windows (Application Programming Interface - интерфейс прикладного программирования). И хотя то, что за счет применения этого проверенного временем подхода было успешно создано очень много приложений, мало кто станет спорить по поводу того, что процесс создания приложений с помощью одного только API-интерфейса является очень сложным занятием.

Первая очевидная проблема состоит в том, что С представляет собой очень лаконичный язык. Разработчики программ на языке С вынуждены мириться с необходимостью "вручную" управлять памятью, безобразной арифметикой указателей и ужасными синтаксическими конструкциями. Более того, поскольку С является структурным языком программирования, ему не хватает преимуществ, обеспечиваемых объектно-ориентированным. Из-за сочетания тысяч глобальных функций и типов данных, определенных в API-интерфейсе Windows, с языком, который и без того выглядит устрашающе, совсем не удивительно, что сегодня в обиходе присутствует столь много дефектных приложений.

    2.2.2 Подход с применением языка C++ и платформы MFC

Огромным шагом вперед по сравнению с подходом, предполагающим применение языка С прямо с API-интерфейсом, стал переход на использование языка программирования C++. Язык C++ во многих отношениях может считаться объектно-ориентированной надстройкой поверх языка С. Из-за этого, хотя в случае его применения программисты уже могут начинать пользоваться преимуществами известных "главных столпов ООП" (таких как инкапсуляция, наследование и полиморфизм), они все равно вынуждены иметь дело с утомительными деталями языка С (например, необходимость осуществлять управление памятью "вручную", безобразная арифметика указателей и ужасные синтаксические конструкции). Невзирая на сложность, сегодня существует множество платформ для программирования на C++. Например, MFC (Microsoft Foundation Classes - библиотека базовых классов Microsoft) предоставляет в распоряжение разработчику набор классов C++, которые упрощают процесс создания приложений Windows. Основное предназначение MFC заключается в представлении "разумного подмножества" исходного API-интерфейса Windows в виде набора классов, "магических" макросов и многочисленных средств для автоматической генерации программного кода (обычно называемых мастерами).

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

    2.2.3 Подход с применением Visual Basic 6.0

Благодаря искреннему желанию иметь возможность наслаждаться более простой жизнью, многие программисты перешли из "мира платформ" на базе С (C++) в мир менее сложных и более дружественных языков наподобие Visual Basic 6.0 (VB6). Язык VB6 стал популярным благодаря предоставляемой им возможности создавать сложные пользовательские интерфейсы, библиотеки программного кода (вроде СОМ-серверов) и логику доступа к базам данных с приложением минимального количества усилий. Во многом как и в MFC, в VB6 сложности API-интерфейса Windows скрываются из вида за счет предоставления ряда интегрированных мастеров, внутренних типов данных, классов и специфических функций VB.

Главный недостаток языка VB6 (который с появлением платформы .NET был устранен) состоит в том, что он является не полностью объектно-ориентированным, а скорее - просто "объектным". Например, VB6 не позволяет программисту устанавливать между классами отношения "подчиненности" (т.е. прибегать к классическому наследованию) и не обладает никакой внутренней поддержкой для создания параметризованных классов. Более того, VB6 не предоставляет возможности для построения многопоточных приложений, если только программист не готов опускаться до уровня вызовов API-интерфейса Windows (что в лучшем случае является сложным, а в худшем - опасным подходом).

   
2.2.4 Подход с применением Java

Теперь пришел черед языка Java. Язык Java представляет собой объектно-ориентированный язык программирования, который своими синтаксическими корнями уходит в C++. Как многим известно, достоинства Java не ограничиваются одной лишь только поддержкой независимости от платформ. Java как язык не имеет многих из тех неприятных синтаксических аспектов, которые присутствуют в C++, а как платформа - предоставляет в распоряжение программистам большее количество готовых пакетов с различными определениями типов внутри. За счет применения этих типов программисты на Java могут создавать "на 100% чистые Java-приложения" с возможностью подключения к базе данных, поддержкой обмена сообщениями, веб-интерфейсами и богатым настольными интерфейсами для пользователей (а также многими другими службами).

Хотя Java и представляет собой очень элегантный язык, одной из потенциальных проблем является то, что применение Java обычно означает необходимость использования Java в цикле разработки и для взаимодействия клиента с сервером. Надежды на появление возможности интегрировать Java с другими языками мало, поскольку это противоречит главной цели Java - быть единственным языком программирования для удовлетворения любой потребности. В действительности, однако, в мире существуют миллионы строк программного кода, которым бы идеально подошло смешивание с более новым программным кодом на Java. К сожалению, Java делает выполнение этой задачи проблематичной. Пока в Java предлагаются лишь ограниченные возможности для получения доступа к отличным от Java API-интерфейсам, поддержка для истинной межплатформенной интеграции остается незначительной.

    2.2.5 Подход с применением СОМ

Модель COM (Component Object Model - модель компонентных объектов) была предшествующей платформой для разработки приложений, которая предлагалась Microsoft, и впервые появилась в мире программирования приблизительно в 1991 г. (или в 1993 г., если считать моментом ее появления рождение версии OLE 1.0). Она представляет собой архитектуру, которая, по сути, гласит следующее: в случае построения типов в соответствии с правилами СОМ, будет получаться блок многократно используемого двоичного кода. Такие двоичные блоки кода СОМ часто называют "серверами СОМ".

Одним из главным преимуществ двоичного СОМ-сервера является то, что к нему можно получать доступ независимым от языка образом. Это означает, что программисты на C++ могут создавать СОМ-классы, пригодные для использования в VB6, программисты на Delphi - применять СОМ-классы, созданные с помощью С, и т.д. Однако, как не трудно догадаться, подобная независимость СОМ от языка является несколько ограниченной. Например, никакого способа для порождения нового СОМ-класса с использованием уже существующего не имеется (поскольку СОМ не обладает поддержкой классического наследования). Вместо этого для использования типов СОМ-класса требуется задавать несколько неуклюжее отношение принадлежности (has-a).

Еще одним преимуществом СОМ является прозрачность расположения. За счет применения конструкций вроде системного реестра, идентификаторов приложений (AppID), заглушек, прокси-объектов и исполняющей среды СОМ программисты могут избегать необходимости иметь дело с самими сокетам, RPC-вызовам и другими низкоуровневыми деталями при создании распределенного приложения.

Хотя COM и можно считать очень успешной объектной моделью, ее внутреннее устройство является чрезвычайно сложным (и требует затрачивания программистами многих месяцев на его изучение, особенно теми, которые программируют на C++). Для облегчения процесса разработки двоичных СОМ-объектов программисты могут использовать многочисленные платформы, поддерживающие СОМ. Например, в ATL (Active Template Library - библиотека активных шаблонов) для упрощения процесса создания СОМ-серверов предоставляется набор специальных классов, шаблонов и макросов на C++.

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

    2.2.6 Сложность представления типов данных СОМ

Хотя СОМ, несомненно, упрощает процесс создания программных приложений с помощью различных языков программирования, независимая от языка природа СОМ не является настолько простой, насколько возможно хотелось бы. Некоторая доля этой сложности является следствием того факта, что приложения, которые сплетаются вместе с помощью разнообразных языков, получаются совершенно не связанными с синтаксической точки зрения. Например, синтаксис JScript во многом похож на синтаксис С, а синтаксис VBScript представляет собой подмножество синтаксиса VB6. СОМ-серверы, которые создаются для выполнения в исполняющей среде СОМ+ (представляющей собой компонент операционной системы Windows, который предлагает общие службы для библиотек специального кода, такие как транзакции, жизненный цикл объектов, безопасность и т.д.), имеют совершенно не такой вид и поведение, как ориентированные на использование в веб-сети ASP-страницы, в которых они вызываются. В результате получается очень запутанная смесь технологий.

Более того, что, пожалуй, даже еще важнее, каждый язык и/или технология обладает собственной системой типов (которая может быть совершенно не похожа на систему типов другого языка или технологии). Помимо того факта, что каждый API-интерфейс поставляется с собственной коллекцией готового кода, даже базовые типы данных могут не всегда интерпретироваться идентичным образом. Например, тип CComBSTR в ATL представляет собой не совсем то же самое, что тип String в VB6, и оба они не имеют совершенно ничего общего с типом char* в С.

Из-за того, что каждый язык обладает собственной уникальной системой типов, СОМ-программистам обычно требуется соблюдать предельную осторожность при создании общедоступных методов в общедоступных классах СОМ. Например, при возникновении у разработчика на C++ необходимости в создании метода, способного возвращать массив целых чисел в приложении VB6, ему пришлось бы полностью погружаться в сложные вызовы API-интерфейса СОМ для построения структуры SAFE ARRAY, которое вполне могло бы потребовать написания десятков строк кода. В мире СОМ тип данных SAFEARRAY является единственным способом для создания массива, который могли бы распознавать все платформы СОМ. Если разработчик на C++ вернет просто собственный массив C++, у приложения VB6 не будет никакого представления о том, что с ним делать.

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

    2.2.7 Решение .NET

.NET Framework представляет собой программную платформу для создания приложений на базе семейства операционных систем Windows, а также многочисленных операционных систем производства не Microsoft, таких как Mac OS X и различные дистрибутивы Unix и Linux.

В .Net проработано обеспечение взаимодействия с существующим программным обеспечением. Эта возможность, несомненно, является очень хорошей функцией, поскольку позволяет комбинировать существующие двоичные единицы СОМ (т.е. обеспечивать их взаимодействие) с более новыми двоичными единицами .NET и наоборот.

Приложения .NET можно создавать с помощью множества языков программирования (С#, Visual Basic, F#, S# и т.д.).

В .NET поддерживается межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка кода.

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

Как не трудно догадаться по приведенному выше перечню, платформа .NET не имеет ничего общего с СОМ (за исключением разве что того факта, что обе этих платформы являются детищем Microsoft). На самом деле единственным способом, которым может обеспечиваться взаимодействие между типами .NET и СОМ, будет использование уровня функциональной совместимости.

    2.2.8 Что привносит язык С#

Из-за того, что платформа .NET столь радикально отличается от предыдущих технологий, в Microsoft разработали специально под нее новый язык программирования С#. Синтаксис этого языка программирования очень похож на синтаксис языка Java. Однако сказать, что С# просто переписан с Java, будет неточно. И язык С#, и язык Java просто оба являются членами семейства языков программирования С (в которое также входят языки С, Objective С, C++ и т.д.) и потому имеют схожий синтаксис.

Правда состоит в том, что многие синтаксические конструкции в С# моделируются согласно различным особенностям Visual Basic 6.0 и C++. Например, как и в VB6, в С# поддерживается понятие формальных свойств типов (в противоположность традиционным методам get и set) и возможность объявлять методы, принимающие переменное количество аргументов (через массивы параметров). Как и в C++, в С# допускается перегружать операции, а также создавать структуры, перечисления и функции обратного вызова (посредством делегатов).

Более того, в С# поддерживается целый ряд функциональных возможностей, которые традиционно встречаются в различных функциональных языках программирования (например, LISP или Haskell) и к числу которых относятся лямбда-выражения и анонимные типы. Кроме того, с появлением технологии LINQ в С# стали поддерживаться еще и конструкции, которые делают его довольно уникальным в мире программирования. Несмотря на все это, наибольшее влияние на него все-таки оказали именно языки на базе С.

Благодаря тому факту, что С# представляет собой собранный из нескольких языков гибрид, он является таким же "чистым" с синтаксической точки зрения, как и язык Java (а то и "чище" его), почти столь же простым, как язык VB6, и практически таким же мощным и гибким как C++ (только без ассоциируемых с ним громоздких элементов).

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

Никаких указателей использовать не требуется! В программах на С# обычно не возникает необходимости в манипулировании указателями напрямую.

Управление памятью осуществляется автоматически посредством сборки мусора. По этой причине ключевое слово delete в С# не поддерживается.

Предлагаются формальные синтаксические конструкции для классов, интерфейсов, структур, перечислений и делегатов.

Предоставляется аналогичная C++ возможность перегружать операции для пользовательских типов, но без лишних сложностей (например, заботиться о "возврате *this для обеспечения связывания" не требуется).

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

С выходом версии .NET 2.0 (примерно в 2005 г.), язык программирования С# был обновлен и стал поддерживать многочисленные новые функциональные возможности, наиболее заслуживающие внимания из которых перечислены ниже.

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

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

Многочисленные упрощения в модели "делегат-событие", в том числе возможность применения ковариантности, контравариантности и преобразования групп методов. (Если какие-то из этих терминов пока не знакомы, не стоит пугаться; все они подробно объясняются далее в книге.)

Возможность определять один тип в нескольких файлах кода (или, еслинеобходимо, в виде представления в памяти) с помощью ключевого слова partial.

В версии .NET 3.5 (которая вышла примерно в 2008 г.) в язык программирования С# снова были добавлены новые функциональные возможности, наиболее важные из которых описаны ниже.

Поддержка для строго типизированных запросов (также называемых запросами LINQ), которые применяются для взаимодействия с различными видами данных.

Поддержка для анонимных типов, которые позволяют моделировать форму типа, а не его поведение.

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

Возможность использовать лямбда-операцию (=>), которая даже еще больше упрощает работу с типами делегатов в .NET.

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

В текущем выпуске платформы .NET версии 4.0 язык С# был опять обновлен и дополнен рядом новых функциональных возможностей.

Поддержка необязательных параметров в методах, а также именованных аргументов.

Поддержка динамического поиска членов во время выполнения посредством ключевого слова dynamic.

Вместе с предыдущей возможностью в .NET 4.0 значительно упрощается обеспечение взаимодействия приложений на С# с унаследованными серверами СОМ, благодаря устранению зависимости от сборок взаимодействия (interop assemblies) и предоставлению поддержки необязательных аргументов ref.

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

Возможно, наиболее важным моментом, о котором следует знать, программируя на С#, является то, что с помощью этого языка можно создавать только такой код, который будет выполняться в исполняющей среде .NET (использовать С# для построения "классического" СОМ-сервера или неуправляемого приложения с вызовами API-интерфейса и кодом на С и C++ нельзя). Официально код, ориентируемый на выполнение в исполняющей среде .NET, называется управляемым кодом (managed code), двоичная единица, в которой содержится такой управляемый код - сборкой (assembly; о сборках будет более подробно рассказываться позже в настоящей главе), а код, который не может обслуживаться непосредственно в исполняющей среде .NET - неуправляемым кодом.

В качестве языка программирования выбран язык C#[4] как наиболее перспективный и полностью удовлетворяющий заявленным требованиям.

    2.2.9 Выбор среды программирования

Для решения поставленной задачи была выбрана среда разработки Microsoft Visual Studio 2010 Express.Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов цикла разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

Таким образом, выбрав Microsoft Visual Studio C# 2010, были получены следующие основные преимущества:

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

Механизмы автоматического управления ресурсами, встроенные в CLR, позволяют не заботиться об освобождении занятых ресурсов.

Технология .NET позволяет эффективно использовать код, написанный на предыдущих (не .NET) версиях языка, включая COM(+) (Component Object Model), DNA (Distributed iNternet Architecture) и др.

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

Код, сгенерированный для .NET, может быть проверен на безопасность. Это гарантирует, что приложение не может навредить пользователю или нарушить функционирование операционной системы. Кроме того, полный отказ от использования реестра также позволяет существенно повысить безопасность приложений.

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

3. Разработка базы данных системы

   

    3.1 Инфологическое проектирование


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

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

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

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

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

-       для каждой сущности составляется перечень сведений (атрибутов), которые нужно знать о ней;

-       установить, каким образом каждое вхождение сущности можно уникально идентифицировать.

Выделим из предметной области следующие сущности:

-  файл;

-       тип файла;

-       директория;

-       группы типов файлов;

-       выделенные директории.

Для разработки модели используем программное средств AllFusion ERwin Data Modeler от CA. Используем при этом логический уровень представления модели.

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

Рисунок 3.1 - ER модель базы данных

Определим нормальные формы отношений.

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

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

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

    3.2 Физическое проектирование базы данных


Последовательно преобразуя сущности в таблицы, получаем физическую структуру базы данных (рисунок 3.2).

Рисунок 3.2 - Физическая структура организации БД

База данных системы состоит из 5 таблиц:

dtFiles - информация о файлах;

dtftype - информация о типах файлов;

dtfgroups - информация о группах типов файлов;

dtfolders - информация о директориях;

dtselectedfolders - информация о выделенных директориях.

Описание структуры разработанной базы данных приведено в таблицах (Таблица 3.1-Таблица 3.5).

Таблица 3.1

dtfgroups

Название

Идентификатор

Тип

Ограничения целостности

Код группы типов

idFileGroupTypes

INT

PRIMARY KEY, NOT NULL

Название

Name

VARCHAR(45)

NOT NULL


Таблица 3.2

dtftype

Название

Идентификатор

Тип

Ограничения целостности

Код типов файлов

idFileTypes

INT

PRIMARY KEY, NOT NULL

Название

Name

VARCHAR(45)

NOT NULL

Внешний ключ

idFileGroupTypes

INT

FOREIGN KEY


Таблица 3.3

dtfiles

Название

Идентификатор

Тип

Ограничения целостности

Код файла

idFile

BINARY

PRIMARY KEY, NOT NULL

Код типа файла

idFileTypes

INT

FOREIGN KEY

Код директории

idDirectory

INT

FOREIGN KEY

Имя файла

filename

VARCHAR(255)

NOT NULL

Время создания

CreatTime

DATETIME

NOT NULL

Время доступа

AccessTime

DATETIME

NOT NULL

Время изменения

ChangeTime

DATETIME

NOT NULL

Атрибут Только для чтения

Onlyread

BIT

NOT NULL

Атрибут Скрытый

Hidden

BIT

NOT NULL

Атрибут Зашифрованный

Encrypted

BIT

NOT NULL

Размер файла

Size

BIGINT

NOT NULL

Содержимое файла

Body

TEXT

NOT NULL


Таблица 3.4

dtfolders

Название

Идентификатор

Тип

Ограничения целостности

Код директории

ID

INT

PRIMARY KEY, NOT NULL

Название

Dir

VARCHAR(255)

NOT NULL

Время создания

CreationTime

DATETIME

NOT NULL

Время доступа

AccessTime

DATETIME

NOT NULL

Время последней записи

LastWriteTime

DATETIME

NOT NULL

Атрибут Только для чтения

ReadOnly

INT

NOT NULL

Атрибут Скрытая

Hidden

BIT

NOT NULL

Атрибут Зашифрованная

Encrypted

BIT

NOT NULL

Код выбранной директории

idSelectedDirs

INT

FOREIGN KEY


Таблица 3.5

dtselectedfolders

Название

Идентификатор

Тип

Ограничения целостности

Код выбранной директории

idSelectedDirs

INT

PRIMARY KEY, NOT NULL

Название

Dir

VARCHAR(255)

NOT NULL


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

Рассматриваемая схема базы данных дает возможность полного копирования данных (или выборкой sql-команды) в кэш данных класса dataset в памяти компьютера. Что позволяет работать с виртуальной копией данных, переходить от таблицы к таблице и вносить необходимые изменения, удаления или вставки, а в завершении отправить измененные данные обратно в хранилище. В результате получается очень масштабируемое, быстрое и надежное приложение [4].

    3.3 Поддержка целостности данных


Перечислим требования поддержки целостности данных.

Ограничение целостности - это механизм, используемый СУБД для предотвращения ввода некорректных данных в базовые таблицы базы данных. Если любые из результатов выполнения предложения DML нарушают ограничение целостности, это предложение откатывается, и возвращается ошибка.

Опишем преимущества, которыми обладают ограничения целостности.

) Легкость объявления.

Поскольку ограничения целостности определяются с помощью команд SQL, при определении или изменении таблицы, то они не требуют программирования. Поэтому их легко составлять, исправлять ошибки, а их работа контролируется СУБД. По этим причинам декларативные ограничения целостности предпочтительнее триггеров базы данных и запрограммированных в приложениях правил.

) Централизованные правила.

Ограничения целостности определяются для таблиц (а не для приложений), и хранятся в словаре данных. Поэтому данные, вводимые любыми приложениями, автоматически подчиняются одним и тем же ограничениям целостности, ассоциированным с таблицей.

) Максимальная продуктивность разработки приложений.

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

) Немедленная обратная связь с пользователем.

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

) Высшая производительность.

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

) Гибкость при загрузке данных и идентификации нарушений.

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

Перечислим используемые ограничения целостности БД.

Ограничения целостности PRIMARY KEY.

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

Реализация ограничения целостности PRIMARY KEY в СУБД гарантирует, что оба следующих утверждения истинны:

-  никакие две строки в таблице не имеют совпадающих значений в указанном столбце (или группе столбцов);

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

Ссылочная целостность и ограничения целостности FOREIGN KEY.

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

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

По умолчанию, все столбцы в таблице допускают пустые значения (т.е. отсутствие значения). Ограничение NOT NULL требует, чтобы для столбца таблицы всегда предоставлялось (непустое) значение.

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

    3.4 Оценка возможностей проектируемой программной среды


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

-  выборка по имени файла/каталога;

-       выборка по типу/расширению;

-       выборка по диапазону даты создания/изменения/доступа;

-       выборка по атрибутам (скрытый/только чтение/зашифрован);

-       выборка по содержанию (текст, бинарный набор, или др);

-       поиск ключевых слов в файлах (ФИО, название правообладателя, серийный номер, и т.д.);

-       группировка файлов по дате с заданным интервалом;

-       комбинации приведенных выше вариантов.

Рассмотрим пример из экспертной практики: «подозреваемый Н., находясь дома 17.09.11 г. с 11:00 до 13:00 за своим компьютером, осуществлял выход в сеть Интернет, используя имя и пароль потерпевшего М. В свою очередь потерпевший М. в указанный промежуток времени не мог осуществить подключение и выход в сеть Интернет. Таким образом, Н. осуществлял блокирование доступа».

Экспертом требуется установить: «Подключался ли к сети Интернет подозреваемый Н. 17.09.11 г. с 11:00 до 13:00?», «Имеется ли на накопителе информации, изъятом у подозреваемого, информация о логине и пароле («MaximPerepilica/password1») потерпевшего М.?»

Для решения поставленных вопросов потребуется произвести всего два-три действия:

Выбрать файлы с датой создания/изменения/доступа в указанный период. Указать тип файлов - гипертекстовый.

Выбрать файлы, в которых встречаются слова MaximPerepilica и password1.

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

4. Разработка программного обеспечения

   

    4.1 Функциональное проектирование


Язык UML (Unified Modeling Language - унифицированный язык моделирования). UML - это графический язык описания архитектуры системы.

Программа на UML не кодируется, а описывается при помощи диаграмм. Диаграммы UML состоят из объектов и связей между ними или из этапов процесса.

Наиболее распространена Unified (унифицированная) нотация. Именно ее и будем использовать в данном проекте.

Для построения диаграмм будем использовать программное средство Enterprise Architect фирмы Sparx Systems.

Функциональность системы опишем с помощью модели Use Case Model (Модель вариантов использования). Модель описывает, как проект выглядит с точки зрения его использования. Кто и куда вводит данные, что после этого делает программа и кому передает результат, т.е. определяет функциональность программы в терминах актеров и вариантов использования.

UML Use Case диаграмма представлена на рисунке 4.1.

Внешняя сущность, или актер отображается человечком и является инициатором выполнения вариантов использования.

Овалом отображается вариант использования - заданная функциональность.

Тип диаграммы Use Case предназначен для создания списка операций, которые выполняет система, и часто его называют диаграммой функций, потому что на основе набора таких диаграмм строится набор функций, выполняемых системой, и описываются сценарии поведения объектов, которые взаимодействуют с системой.

Рисунок 4.1 - UML Use Case диаграмма системы «Эксперт-поиск»

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

Вариант использования «Индексация файлов» и «Полная индексация», «Срез файлов» или «Выборочная индексация» связаны стереотипом «расширяет», т.е. данные варианты могут выполняться при индексации файлов, либо нет.

Аналогично вариант использования «Поиск файла» имеет связь «расширяет».

    4.2 Структура программного обеспечения


Структуру системы опишем диаграммой классов (Class diagram). Это основная диаграмма для создания кода приложения [3]. При помощи диаграммы классов создается внутренняя структура системы, описывается наследование и взаимное положение классов друг относительно друга. Здесь описывается логическое представление системы. Именно логическое, так как классы - это лишь заготовки для создания объектов, на основе которых затем будут определены физические объекты.

Диаграмма классов включает в себя следующие классы (рисунок 4.2):

SelectHost - служит для выбора хоста базы данных, возможности его изменения, подключения к БД. Данный класс находится в состоянии ассоциации с классами DAL и setup.

Класс имеет методы:

-  SelectHost() - публичный метод (public, т.е. полностью открытый) для инициализации объектов формы путем вызова приватного метода InitializeComponent().

-       SelectHost_Load(object, EventArgs) - приватный метод (private, позволяет вызывать себя только в контексте собственного объекта), вызываемый при загрузки формы (по событию Load формы), для загрузки списка хостов из конфигурационного файла Hosts.cfg.

DAL - класс интерфейс, уровня доступа к базе данных (Data Access Layer). Данный класс реализует все операции по работе с базой данных. Таким образом, все операции по работе с базой данных сводятся к выполнению методов данного класса.

Класс содержит следующие public методы:(string, string) - создание нового индекса и соответственно базы данных;(string, string) - добавление данных по выбранной области поиска в БД;() - проверка подключения к БД;() - подготавливает структуру данных таблиц файлов и каталогов;

Рисунок 4.2 - Диаграмма классов системы «Эксперт-поиск»

-  DeleteIndex() - удаление индекса, т.е. базы данных с указанным именем;

-       GeDirSrez - создание среза файлов;

-       GeFilesSrez - создание среза каталогов;

-       GetBody - получение данных при полнотекстовом поиске;

-       GetDiapazons - получение данных при временном поиске;

-       GetFilesInDiapazon - получение данных по файлу при временном поиске;

-       GetSelecteddirs(string) - получение данных по выбранной области поиска;

-       GetSelecteddirs_S(string) - получение данных по выбранной области поиска в виде списка;

-       LoadConfig() - загрузка данных по имеющимся индексам из БД config, либо создание БД config, в случае ее отсутствия;

-       MySql_no_result_query(string, MySqlConnection) - выполнение SQL запроса;

-       PrepareTables(string) - подготовка таблиц в БД;

-       Refreshlists(string) - обновление списка типов файлов;

-       SaveDirArray(string) - сохранение массива каталогов;

-       SaveFilesArray(string) - сохранение массива файлов;

-       SeachText(string, string) - поиск текста при полнотекстовом поиске;

-       UpdateConfig() - обновление индекса.

Класс DAL имеет одно приватное поле Config_CS для хранения данных для подключения к СУБД.

MainForm - класс для визуального отображения основной формы и ее взаимодействия.

Класс содержит следующие методы:

-  MainForm() - public метод для инициализации компонентов формы;

-       Form1_Load() - private метод по событию Load формы для загрузки начальных установок;

-       Refresh() - private метод для обновления списка индексов;

-       MainForm_FormClosing() - private метод по событию FormClosing формы, осуществляющий очистку индекса при закрытии окна.

New_index - класс создания индекса.

Класс содержит следующие методы:

-  GetDirectories - приватный метод;

-       New_index() - публичный метод для инициализации объектов формы путем вызова приватного метода InitializeComponent();

-       PopulateTreeView(string) - private метод формирующий структуру диска для отображения в качестве области индексации;

-       PrintRecursive - private метод рекурсивно записывающий в файл.

SearchForm - класс, реализующий поиск по различным критериям.

Класс содержит следующие методы:

-  SeachForm_Load - private метод, вызываемый при загрузке формы (по событию Load формы) для формирования списка типов файлов при выборе параметров поиска;

-       SeachForm() - публичный метод для инициализации объектов формы путем вызова приватного метода InitializeComponent().

Scanner - класс для переиндексации данных.

Класс содержит следующие методы:

-  Scanner() - публичный метод для инициализации объектов формы путем вызова приватного метода InitializeComponent();

-       Scanner_Load() - private метод, вызываемый при загрузке формы (по событию Load формы) для формирования списка типов файлов при выборочной индексации;

-       TraverseTree - private метод сканирования дерева каталогов.

TypeDetect - класс, определяющий тип файла по расширению или содержимому, содержащий единственный public метод Detect().

Extract - класс хранения данных.

Класс содержит следующие методы:

-  CleanString - public метод;

-       ext - public метод;

-       extDoc - public метод;

-       extExcel - public метод;

-       exttxt - public метод;

-       releaseObject - private метод.

Global - класс для хранения глобального набора данных.

Ftype - класс для хранения данных типов файлов.

Класс содержит следующие public методы:

-  Ftype - запись полей класса значениями;

-       GetGroup - получение значения поля groupid.

Класс содержит следующие public поля:

-  Description - описание типа файла;

-       Groupid - id группы;

-       Id - уникальный идентификатор (id) типа файла;

-       Name - название типа файла.

FGType - класс для хранения групп типов файлов.

Класс содержит следующие public методы:

-  FGtype - запись полей класса значениями.

Класс содержит следующие public поля:

-  Description - описание типа файла;

-       Id - уникальный идентификатор (id) группы типа файла;

-       Name - название группы типа файла.

PreView - класс для просмотра текстового содержимого файла.

Класс содержит единственный публичный метод PreView () для инициализации объектов формы путем вызова приватного метода InitializeComponent() и отображает содержимое файла.- управляющий класс, содержащий метод main() - точку входа в программу.

Содержит единственный приватный метод Main() для запуска приложения.

Setup - класс для хранения данных директорий приложения.

Класс содержит следующие public поля:

-  AppDir - директория приложения;

-       DataDir - директория данных;

-       TmpDir - временная директория;

-       TmpFile - временный файл;

-       Version - версия.

    4.3 Разработка алгоритмов работы


Поведение системы в динамике опишем диаграммой кооперации Collaboration Diagram (рисунок 4.43).

Рисунок 4.3 - Диаграмма кооперации системы «Эксперт-поиск»

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

Блок схема алгоритма работы системы «Эксперт-поиск» (рисунок 4.4).

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

При успешном подключении к БД по указанному адресу осуществляется вывод главной формы (MainForm), позволяющей производить основные операции: поиск, создание индекса, перестройка индекса, удаление индекса, выбор индекса и области поиска.

При создании индекса отображается форма New_index с запросом имени БД создаваемого индекса и области индексации. Результат сохраняется в БД как данные по индексам.

При перестройке индекса отображается форма Scanner и производится запрос типа индексации. Результат сохраняется в БД как данные по индексам.

При выполнении процесса сканирования меняется текстовая информация об активном процессе (textBox1.Text), выполняется метод подготовки таблиц в БД (dal.PrepareTables), формируется массив данных по выбранной области поиска в виде списка (dal.GetSelecteddirs_S), производится запись в БД списка каталогов (dal.SaveDirArray) с расчетом и отображение времени выполнения данной операции (DateTime). Далее производится запись в БД списка файлов (dal.SaveFilesArray) и обновление списка типов файлов (dal.refreshlists). После чего происходит обновление таблицы индексов на главной форме (global.dsconfig.Tables…) и очистка памяти (global.dtfiles.Clear() и global.dtfolders.Clear()).

 

Рисунок 4.4 - Блок-схема алгоритма работы системы «Эксперт-поиск»

Процедура перестройки индекса:

void button2_Click(object sender, EventArgs e)

{timestart = DateTime.Now; DateTime timeend;.Visible = false; button1.Text = "Завершить";.Text = "Индексирую:" + @global.SelectedDB_FileName;

textBox1.Text = "Сканирование выбранных каталогов";.PrepareTables(@global.SelectedDB_FileName);

ArrayList Maindirs = .GetSelecteddirs_S(@global.SelectedDB_FileName);(string result in Maindirs)(result);t1, t2; TimeSpan t;

textBox1.Text = "Запись в базу списка каталогов"; textBox2.Text = "";

t1 = DateTime.Now;.SaveDirArray(@global.SelectedDB_FileName);= DateTime.Now;= t2 - t1;1.Items.Add("Запись в базу информации о " +

global.dtfolders.Rows.Count + " каталогов выполнена за:" + t.Seconds + "

секунд");

textBox1.Text = "Запись в базу списка файлов"; textBox2.Text = "";

t1 = DateTime.Now;.SaveFilesArray(@global.SelectedDB_FileName);= DateTime.Now;= t2 - t1;1.Items.Add("Запись в базу информации о " +

global.dtfiles.Rows.Count + " файлах выполнена за:" + t.Seconds + "

секунд");

dal.refreshlists(@global.SelectedDB_FileName);

timeend = DateTime.Now; t = timeend - timestart;.Text = "Индексация завершена"; listBox1.Items.Add("Общее

время процесса индексации: " + t.Minutes + " минут");

listBox1.SelectedIndex = listBox1.Items.Count - 1;.IndexDate = DateTime.Now;.FilesCount = global.dtfiles.Rows.Count;.dsconfig.Tables["Indexes"].Rows[global.CurrentRow]["FilesSize"] = .FilesSize / 1048576 / 1024;.dsconfig.Tables["Indexes"].Rows[global.CurrentRow]["FilesCount"]

= global.FilesCount;.dsconfig.Tables["Indexes"].Rows[global.CurrentRow]["LastIndex"]

= global.IndexDate;.dtfiles.Clear();.dtfolders.Clear();

}

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

Процедура удаления индекса:

private void button4_Click(object sender, EventArgs e)

{Ask = MessageBox.Show("Вы уверены, что хотите удалить

индекс:\n" + dgv_indexes.CurrentRow.Cells["Name"].Value.ToString(),

"Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);(Ask == DialogResult.Yes)

{

{.DeleteIndex(dgv_indexes.CurrentRow.Cells["DBNAME"].Value.ToStri());_indexes.Rows.RemoveAt(dgv_indexes.CurrentRow.Index);.UpdateConfig();

}

{.Show("Операция выполнена успешно");

}

}();

}

Из кода видим, что при выборе положительного ответа на запрос (Ask == DialogResult.Yes) и успешного удаления (dal.DeleteIndex) индекса и обновления (dal.UpdateConfig) выводится информационное сообщение (MessageBox.Show("Операция выполнена успешно")). После чего выполняется метод обновления формы (refresh).

При поиске данных отображается форма SearchForm с запросом типа поиска и параметров поиска. По результатам поиска производится их обработка: визуальный анализ или экспорт в формат Excel или txt. Для визуального анализа выводится форма PreView. Для поиска используются индексированные данные из БД.

Реализация метода при типе поиска «Создание среза файлов»:

public void GeFilesSrez(string dbname,CheckIncludeMask, string mask1,CheckExcludeMask, string mask2,CheckCreation, DateTime Cr_start, DateTime Cr_End,CheckAccess, DateTime Ac_start, DateTime Ac_End,CheckChange, DateTime Ch_start, DateTime Ch_End,CheckHidden,CheckOnlyRead,CheckEncrypt,CheckMinSize, string minsize,CheckMaxSize, string maxsize,CheckExtension, string Ext,CheckTypes, int Gtype

)

{CS = "Database = '" + dbname + "';Data Source=" + .mysql_host + ";User Id=" + global.mysql_user + ";Password=" + .mysql_pass;con = new MySqlConnection(CS);sql ="Select "+

"ft.TYPE, " +

"fo.Dir, " +

"fi.Name, "+

"fi.Extension, " +

"fi.Size, " +

"fi.CreationTime, " +

"fi.LastAccessTime, " +

"fi.LastWriteTime, " +

"fi.ReadOnly, " +

"fi.Hidden, " +

"fi.Encrypted, " +

"fi.ID " +

" from folders as fo, files as fi, FTYPES AS FT where fi.dir_id = fo.id and .Type = ft.ID AND ";(CheckIncludeMask) sql += "fi.NAME LIKE '%" + mask1 + "%' AND ";(CheckExcludeMask) sql += "fi.NAME NOT LIKE '%" + mask2 + "%' ";(CheckCreation) sql += " fi.CreationTime between @date1 and @date2 ";(CheckAccess) sql += " fi.LastAccessTime between @date3 and @date4 ";(CheckChange) sql += " fi.LastWriteTime between @date5 and @date6 ";(CheckOnlyRead) sql += " fi.ReadOnly = 1 AND";(CheckHidden) sql += " fi.Hidden = 1 AND";(CheckEncrypt) sql += " fi.Encrypted = 1 AND";(CheckMinSize) sql += " fi.Size >= " + minsize + " AND ";(CheckMaxSize) sql += " fi.Size <= " + maxsize + " AND ";(CheckExtension) sql += " fi.Extension LIKE '." + Ext + "' AND ";(!CheckTypes) sql += "ft.GroupID =" + Gtype + " AND ";+= " 1=1;";com = new MySqlCommand(sql, con);da = new MySqlDataAdapter();.Parameters.Add("@date1", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date2", MySqlDbType.DateTime,

).Value = Cr_End;.Parameters.Add("@date3", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date4", MySqlDbType.DateTime,

).Value = Ac_End;.Parameters.Add("@date5", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date6", MySqlDbType.DateTime,

).Value = Ch_End;

{.SelectCommand = com;.Fill(global.dtFsrez);

}(Exception ex)

{.Show("GetFilesSrez\n" + ex.ToString()+"\nСодержимое

запроса\n\n"+sql);

}

}

Реализация метода при типе поиска «Создание среза каталогов»:

public void GeDirSrez(string dbname,CheckIncludeMask, string mask1,CheckExcludeMask, string mask2,CheckCreation, DateTime Cr_start, DateTime Cr_End,CheckAccess, DateTime Ac_start, DateTime Ac_End,CheckChange, DateTime Ch_start, DateTime Ch_End,CheckHidden,CheckOnlyRead,CheckEncrypt

)

{CS = "Database = '" + dbname + "';Data Source=" + .mysql_host + ";User Id=" + global.mysql_user + ";Password=" + .mysql_pass + ";Charset=" + global.mysql_CharSet;con = new MySqlConnection(CS);sql = "Select Dir, " +

"CreationTime, " +

"LastAccessTime, " +

"LastWriteTime, " +

"ReadOnly, " +

"Hidden, " +

"Encrypted " +

" from folders where ";(CheckIncludeMask) sql += "Dir LIKE '%" + mask1 + "%' AND ";(CheckExcludeMask) sql += "Dir NOT LIKE '%" + mask2 + "%' AND ";(CheckCreation) sql += " CreationTime between @date1 and @date2 ";(CheckAccess) sql += " LastAccessTime between @date3 and @date4 ";(CheckChange) sql += " LastWriteTime between @date5 and @date6 ";(CheckOnlyRead) sql += " ReadOnly = 1 AND";(CheckHidden) sql += " Hidden = 1 AND";(CheckEncrypt) sql += " Encrypted = 1 AND";+= " 1=1";com = new MySqlCommand(sql, con);da = new MySqlDataAdapter();.Parameters.Add("@date1", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date2", MySqlDbType.DateTime,

).Value = Cr_End;.Parameters.Add("@date3", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date4", MySqlDbType.DateTime,

).Value = Ac_End;.Parameters.Add("@date5", MySqlDbType.DateTime, 8).Value = _start; com.Parameters.Add("@date6", MySqlDbType.DateTime,

).Value = Ch_End;

{.SelectCommand = com;.Fill(global.dtDsrez);

}(Exception ex)

{.Show("GetDirSrez\n" + ex.ToString() + "\nСодержимое

запроса\n\n" + sql);

}

}

Реализация метода при типе поиска «Полнотекстовый поиск»:

public Boolean SeachText(string dbname, string Text)

{CS = "Database = '" + dbname + "';Data Source=" + .mysql_host + ";User Id=" + global.mysql_user + ";Password=" + .mysql_pass + ";Charset=" + global.mysql_CharSet;con = new MySqlConnection(CS);sql = "Select fo.Dir, " +

"fi.Name, " +

"fi.Extension, " +

"fi.Size, " +

"fi.CreationTime, " +

"fi.LastAccessTime, " +

"fi.LastWriteTime, " +

"fi.ReadOnly, " +

"fi.Hidden, " +

"fi.Encrypted, " +

"fi.ID, " +

"MATCH (Name, Extension, Body) AGAINST ('" + Text + "' IN MODE) AS REL"+

" from folders as fo, files as fi where fi.dir_id = fo.id and MATCH (Name, , Body) AGAINST ('" + Text + "' IN BOOLEAN MODE) " +

"ORDER BY REL;";com = new MySqlCommand(sql, con);da = new MySqlDataAdapter();

{.SelectCommand = com;.Fill(global.dtFsrez);

}(Exception ex)

{.Show("GetFilesSrez\n" + ex.ToString() + "\nСодержимое

запроса\n\n" + sql);

}true;

}

Реализация метода при типе поиска «Временные диапазоны»:

public void GetDiapazons(string dbname,CheckCreation,CheckAccess,CheckChange,StartTime, DateTime EndTime )

{CS = "Database = '" + dbname + "';Data Source=" + .mysql_host + ";User Id=" + global.mysql_user + ";Password=" + .mysql_pass;con = new MySqlConnection(CS);sql = "";(CheckCreation) sql += "Select CreationTime as date from files where between @date1 and @date2 ";(CheckAccess==true && sql!="") sql += " UNION Select as date from files where LastAccessTime between @date1 @date2 ";if (CheckAccess)sql += "Select LastAccessTime as date from files LastAccessTime between @date1 and @date2 ";(CheckChange==true && sql!="") sql += " UNION Select LastWriteTime date from files where LastWriteTime between @date1 and @date2 ";if(CheckChange)sql += "Select LastWriteTime as date from files where between @date1 and @date2 ";(sql == "") return;com = new MySqlCommand(sql, con);da = new MySqlDataAdapter();.Parameters.Add("@date1", MySqlDbType.DateTime, 8).Value = ;.Parameters.Add("@date2", MySqlDbType.DateTime, 8).Value = ;

{.SelectCommand = com;.Fill(global.dtdates);

}(Exception ex)

{.Show("GetFilesSrez\n" + ex.ToString() + "\nСодержимое

запроса\n\n" + sql);

}

}

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

Диаграмма развертывания предназначена для визуализации элементов и компонентов программы, существующих лишь на этапе ее исполнения (runtime). При этом представляются только компоненты-экземпляры программы, являющиеся исполняемыми файлами или динамическими библиотеками. Те компоненты, которые не используются на этапе исполнения, на диаграмме развертывания не показываются.

Диаграмма развертывания Deployment Model приведена на рисунке 4.5

Рисунок 4.5 - Диаграмма развертывания Deployment Model системы «Эксперт-поиск»

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

При разработке диаграммы развертывания были достигнуты следующие цели:

-  определить распределение компонентов системы по ее физическим узлам;

-       показать физические связи между всеми узлами реализации системы на этапе ее исполнения;

-       выявить узкие места системы и реконфигурировать ее топологию для достижения требуемой производительности.

Из данной диаграммы видно, что развертывание приложения на рабочих местах осуществляется с помощью манифеста развертывания приложения “ Эксперт-поиск.application” инсталлятора .NET. Развертывание БД на сервере осуществляется установкой СУБД MySQL и запуском SQL скрипта создания БД.

    4.4 Разработка интерфейса пользователя


Интерфейс пользователя, должен использовать стандартные, привычные пользователям элементы, и обеспечивать максимальное удобство. Всё это, в конечном счете, определяется таким критерием как эффективность интерфейса - максимальный результат с минимальными усилиями.

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

-  “Прозрачность интерфейса”. Интерфейс пользователя должен быть интуитивно понятным, простым для освоения, и не создавать для пользователя проблем, которые он вынужден будет преодолевать в процессе работы. Для этого используем стандартные, без излишнего украшательства компоненты, и будем применять привычные, используемые аналогичными программами приёмы управления.

-       Пренебрежение интеллектуальными способностями пользователей. Часто пользователи не только не умеют работать за компьютером, но и просто боятся предпринять что-либо самостоятельно. Поэтому интерфейс пользователя должен быть максимально дружественным.

-       Необходимо создавать программу с максимально возможными "умственными" способностями.

Для взаимодействия с пользователем разработаем следующие формы:

-  MainForm - главная форма приложения, отправная точка для поиска и индексации;

-       New_index - форма создания индекса;

-       Scanner - форма переиндексации данных;

-       SeachForm - форма поиска;

-       PreView - форма просмотра содержимого файла;

-       SelectHost - форма выбора хоста для подключения к БД.

Форма SelectHost служит для выбора источника данных и запускается первой при старте программы (рисунок 4.6).

Рисунок 4.6 - Форма выбора источника данных (SelectHost)

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

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

.SetToolTip(button1, "Продолжить работу с выбранным

источником данных");.SetToolTip(button2, "Завершить работу программы");.SetToolTip(button3, "Нажмите, чтобы удалить выбранный

источник данных");.SetToolTip(textBox1,"Введите адрес источника данных в

тектовом формате или IP");

Главная форма приложения (MainForm) служит выполнения основных действия с системой: поиск, создания индекса, перестройка индекса, удаление индекса, выбора индекса и области поиска при поиске (рисунок 4.7).

Рисунок 4.7 - Главная форма приложения (MainForm)

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

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

компьютерный экспертиза автоматизированный файл

buttonToolTip.SetToolTip(button1, "Продолжить работу с выбранной

базой");.SetToolTip(button2, "Cоздание нового индекса");.SetToolTip(button4, "Удалить выбранную базу");.SetToolTip(button5, "Завершить работу программы");.SetToolTip(button6, "Перестроение индексной базы");

Форма создания нового индекса (New_index) служит для выбора области индексации, указания имени БД и ее описания и сохранения этих данных в БД (рисунок 4.8).

Рисунок 4.8 - Форма создания индекса (New_index)

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

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

.SetToolTip(button1, "Завершить создание индекса");.SetToolTip(button2, "Отменить операцию");.SetToolTip(textBox1, "Краткое описание индексной

базы");.SetToolTip(textBox2, "Имя индексной базы для СУБД");

Форма переиндексации (Scanner) служит для переиндексации данных с выбором его типа (рисунок 4.9).

Форма имеет стандартный интерфейс с возможностью сворачивания, разворачивания и закрытия окна. Имеется три типа индексации:

-  полная;

-       срез файлов;

-       выборочная.

При выборочной индексации возможно указание типа файлов из списка. Для удобства группового выбора предусмотрены кнопки «Отметить все», «Снять все».

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

Рисунок 4.9 - Форма переиндексации (Scanner)

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

.SetToolTip(Button2, "Приступить к индексированию

файлов");.SetToolTip(button1, "Отменить операцию и вернуться на

главную форму");

Форма поиска (SearchForm) служит для различных типов поиска данных по различным критериям и экспорта результата поиска в Excel и txt форматы (рисунок 4.10).

Форма имеет стандартный интерфейс с возможностью сворачивания, разворачивания и закрытия окна. Форма имеет отдельные вкладки для различных типов поиска:

-  Создание среза файлов;

-       Создание среза каталогов;

-       Полнотекстовый поиск;

-       Временные диапазоны.

Рисунок 4.10 - Форма поиска (SearchForm)

Вкладка «Создание среза файлов» содержит отдельные вкладки для типа среза файлов:

-  Типы и расширения;

-       Параметры;

-       Атрибуты.

При поиске по типу и расширению, возможно выбрать критерий поиска из списка типов файлов либо указать расширение в соответствующем поле.

При поиске по параметрам имеется возможность указать временные рамки и размер данных для поиска, а также маски включения и выключения (рисунок 4.11).

При поиске по атрибутам имеется возможность указать атрибуты поиска (рисунок 4.12).

Рисунок 4.11 - Форма поиска по параметрам (SearchForm)

Рисунок 4.12 - Форма поиска по атрибутам (SearchForm)

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

Рисунок 4.13 - Создание среза каталогов

При типе поиска «Создание среза каталогов» имеется возможность указать временные рамки, атрибуты и маски включения и выключения данных для поиска (рисунок 4.13)

При варианте поиска «Полнотекстовый поиск» в верхней части формы отображено текстовое поле ввода для поиска (рисунок 4.14).

Рисунок 4.14 - Вариант поиска «Полнотекстовый поиск»

Рисунок 4.15 - Вариант поиска «Временные диапазоны»

При варианте поиска «Временные диапазоны» в верхней части формы отображены элементы выбора временных критериев поиска по различным параметрам (рисунок 4.15).

Для экспорта результатов поиска предусмотрены кнопки экспорта в нижней части формы «Экспорт в Excel» и «Сохранить как текст».

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

.SetToolTip(button1, "Завершить работу");.SetToolTip(button2, "Нажмите, чтобы получить срез

файлов");.SetToolTip(button3, "Нажмите, чтобы увидеть текстовое

содержимое файла");.SetToolTip(button4, "Нажмите, чтобы сохранить список в

текстовый файл");.SetToolTip(button5, "Нажмите, чтобы экспортировать

список в Excel");.SetToolTip(button6, "Нажмите, чтобы получить срез

каталогов");.SetToolTip(button7, "Нажмите, чтобы осуществить

полнотекстовый поиск");.SetToolTip(button8, "Нажмите, чтобы сгенерировать

список временных диапазонов");.SetToolTip(button9, "Нажмите, чтобы экспортировать

список в Excel");.SetToolTip(button10, "Нажмите, чтобы получить список

файлов, входящий в выбранный диапазон");.SetToolTip(button11, "Нажмите, чтобы сохранить список

диапазонов в текстовом файле");.SetToolTip(button12, "Нажмите, чтобы копировать

выделенные файлы в папку");

    4.5 Руководство пользователя


Руководство пользователя приведено в приложении Б. Оно включает в себя разделы:

-  Аннотация;

-       Назначение и условия выполнения программы;

-       Работа с системой.

 


5. Тестирование программного обеспечения

   

    5.1 План тестирования


Тестирование (testing) это процесс выполнения программы (или части программы) с намерением (или целью) найти ошибки.

Существует несколько основных методов тестирования ПО:

-  восходящее тестирование;

-       нисходящее тестирование;

-       модифицированный нисходящий;

-       метод большого скачка;

-       модифицированный метод сандвича;

При тестировании необходимо оценить следующие проблемные моменты:

-  функциональные возможности;

-       практичность;

-       навигацию;

-       форму;

-       содержимое.

    5.2 Результаты тестирования


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

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

-  формы;

-       временные рабочие окна.

Тестирование форм.

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

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

-       тестирование граничных значений;

-       проверка корректного отлавливания формами неверных данных, в особенности форматов даты и числовых форматов;

-       проверка правильного обновления формами информации.

Результаты тестирования форм приведены в таблицах (Таблица 5.1-Таблица 5.6).

Таблица 5.1

Тестирование формы «MainForm» (Главная форма)

ID тестового примера

Описание входных данных

Входные данные

Ожидаемые результаты

Реальные результаты

1

2

3

4

5

W-1

1. Запустить «Эксперт-поиск» 2. Открыть главную форму 3. Осуществить переход между полями по клавише Tab

Окно поиска MainForm

1. Циклический последовательный переход по полям

1. Циклический последовательный переход по полям

W-2

1. Запустить «Эксперт-поиск» 2. Открыть главную форму 3. Осуществить создание индекса

Окно поиска MainForm

1. Появление нового индекса в списке

1. Появление нового индекса в списке

W-3

1. Запустить «Эксперт-поиск» 2. Открыть главную форму 3. Осуществить удаление

Окно поиска MainForm

1. Исчезновение индекса из списка

1. Исчезновение индекса из списка

W-4

1. Запустить «Эксперт-поиск» 2. Открыть главную форму 3. Осуществить перемещение между индексами

Окно поиска MainForm

1. Изменение списка области поиска

1. Изменение списка области поиска


Таблица 5.2

Тестирование формы «New_index» (Создание индекса)

ID тестового примера

Описание входных данных

Входные данные

Ожидаемые результаты

Реальные результаты

1

2

3

4

5

W-1

1. Запустить «Эксперт-поиск» 2. Открыть форму создания индекса 3. Осуществить переход между полями по клавише Tab

Окно поиска New_index

1. Циклический последовательный переход по полям

W-2

1. Запустить «Эксперт-поиск» 2. Открыть форму создания индекса 3. Осуществить создание индекса с именем Index1

Окно поиска New_index; Имя индекса Index1

1. Успешное создание индекса 2. Запись данных в БД

1. Успешное создание индекса 2. Запись данных в БД

W-3

1. Запустить «Эксперт-поиск» 2. Открыть форму создания индекса 3. Осуществить создание индекса с именем 555

Окно поиска New_index; Имя индекса 555

1. Сообщение об ошибке 2. Запись данных в БД не производится

1. Сообщение об ошибке 2. Запись данных в БД не производится

W-4

1. Запустить «Эксперт-поиск» 2. Открыть форму создания индекса 3. Осуществить создание индекса с именем Index2 по частичной области посика

Окно поиска New_index; Имя индекса Index2

1. Успешное создание индекса 2. Запись данных в БД

1. Успешное создание индекса 2. Запись данных в БД


Таблица 5.3

Тестирование формы «PreView» (Предпросмотр)

ID тестового примераОписание входных данныхВходные данныеОжидаемые результатыРеальные результаты





1

2

3

4

5

W-1

1. Запустить «Эксперт-поиск» 2. Открыть форму предпросмотра 3. Осуществить переход между полями по клавише Tab

Окно поиска Preview

1. Циклический последовательный переход по полям

1. Циклический последовательный переход по полям


Таблица 5.4

Тестирование формы «Scanner» (индексация)

ID тестового примера

Описание входных данных

Входные данные

Ожидаемые результаты

Реальные результаты

1

2

3

4

5

W-1

1. Запустить «Эксперт-поиск» 2. Открыть форму переиндексации 3. Осуществить переход между полями по клавише Tab

Окно поиска Scanner

1. Циклический последовательный переход по полям

1. Циклический последовательный переход по полям

W-2

1. Запустить «Эксперт-поиск» 2. Открыть форму переиндексации 3. Осуществить полную индексацию

Окно поиска Scanner

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД

W-3

1. Запустить «Эксперт-поиск» 2. Открыть форму переиндексации 3. Осуществить переиндексацию «Срез файлов»

Окно поиска Scanner

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД

W-4

1. Запустить «Эксперт-поиск» 2. Открыть форму переиндексации 3. Осуществить переиндексацию «Выборочно» исполняемые файлы

Окно поиска Scanner

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД

1. Отображение хода процесса 2. Успешное завершение процесса 3. Запись данных в БД


Таблица 5.5

Тестирование формы «SearchForm» (Эксперт-поиск)

ID тестового примера

Описание входных данных

Входные данные

Ожидаемые результаты

Реальные результаты

W-1

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить переход между полями по клавише Tab

Окно поиска SearchForm

1. Циклический последовательный переход по полям

1. Циклический последовательный переход по полям

W-2

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить поиск файла размером от 0 до Окно поиска SearchForm

1. Отображение всех файлов

1. Отображение всех файлов


W-3

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить полнотекстовый поиск файла readme.txt

Окно поиска SearchForm

1. Нахождение файла readme.txt

1. Нахождение файла readme.txt

W-4

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить поиск «Временные диапазоны» при диапазоне 0 мин.

Окно поиска SearchForm

1. Нахождение 0 записей

1. Нахождение 0 записей

W-5

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить поиск «Временные диапазоны» при диапазоне 15 мин.

Окно поиска SearchForm

1. Нахождение 4 записей

1. Нахождение 4 записей

W-6

1. Запустить «Эксперт-поиск» 2. Открыть форму поиска 3. Осуществить поиск файла по расширению avi

Окно поиска SearchForm

1. Нахождение 1 записи

1. Нахождение 1 записи


Таблица 5.6

Тестирование формы «SelectHost» (Выбор хоста)

ID тестового примера

Описание входных данных

Входные данные

Ожидаемые результаты

Реальные результаты

1

2

3

4

5

W-1

1. Запустить «Эксперт-поиск» 2. Осуществить переход между полями по клавише Tab

Окно выбора источника SelectHost

1. Циклический последовательный переход по полям

1. Циклический последовательный переход по полям

W-2

1. Запустить «Эксперт-поиск» 2. Осуществить выбор источника из списка

Окно выбора источника SelectHost

1. Удачное подключение к БД

1. Удачное подключение к БД

W-3

1. Запустить «Эксперт-поиск» 2. Осуществить удаление источника из списка по нажатию на Del

Окно выбора источника SelectHost

1. Удаление источника из списка

1. Удаление источника из списка

W-4

1. Запустить «Эксперт-поиск» 2. Осуществить ввод нового источника 0000

Окно выбора источника SelectHost

1. Получение сообщения об ошибке

1. Получение сообщения об ошибке


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

6 Безопасность жизнедеятельности


.1 Анализ условий труда на рабочем месте инженера

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

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

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

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

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

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

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

Рабочее место, в котором происходит дипломирование, находится на первом этаже здания, без затемняющих окна зданий и сооружений, расположенное в 1км. от автомагистрали. Схема рабочего кабинета приведена на рисунке 6.1.

 

Рисунок 6.1 - План рабочего кабинета

В кабинете имеется 2 рабочих места, оснащенные компьютерами, и один принтер.

Площадь и расположение рабочего места дипломника полностью соответствует нормативам по площади и освещенности.

    6.1.1 Анализ микроклимата

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

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

Параметры микроклимата в рабочем помещении лежат в диапазонах, определенных в (таблица 6.1).

Таблица 6.1

Параметры микроклимата в помещении

Период года

Температура воздуха, °С

Относительная влажность, %

Скорость движения воздуха, м/c, не более

Холодный Теплый

20-23 22-25

40-60 40-60

0,2 0,2


Для поддержания требуемого значения температуры используется центральное отопление. Для поддержания определенной скорости воздуха и влажности, дополнительно к естественной вентиляции, применяется кондиционер General. Интенсивность теплового излучения работающих от нагретых поверхностей технологического оборудования осветительных приборов, на постоянное и не постоянное рабочее место не должна превышать 35 Вт/м2 при облучении 50% поверхности тела и не более 70 Вт/м2 - при величине облучаемой поверхности от 25% до 50% и 100 Вт/м2 при облучении не более 25 % поверхности тела.

    6.1.2 Электробезопасность

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

По классификации помещений по степени опасности поражения электрическим током рабочее помещение относится к категории "помещение без повышенной опасности".

    6.1.3 Анализ освещения

Освещённость на поверхности стола в зоне размещения документа должна быть 300-500 лк. Допускается установка светильников местного освещения для подсветки документов. Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещённость экрана на более 300 лк.

Яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, должна быть не более 200 кд/м2.

В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛВ. Допускается применение металлогалогенных ламп до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения. В целом, рассматриваемый кабинет соответствует нормам, накладываемым на освещенность согласно [5].

    6.1.4 Уровень шума

Шум - звук, оцениваемый негативно и наносящий вред здоровью (ГОСТ 12.1.003-83). В нашем случае главным источником шума служит принтер, но шум создается также самим персональным компьютером (ПК). В рабочем помещении расположено 2-5 рабочих места с ПК и принтером.

Так как шум оказывает воздействие на общее состояние человека, вызывая чувства неуверенности, стесненности, тревоги, плохого самочувствия, что приводит к снижению производительности труда, возникновению ошибок в работе, то уровень шума в помещении кабинета не должен превосходить 50 дБА, что соответствует ГОСТ 12.1.003-83.

    6.1.5 Эргономика рабочего места инженера

С точки зрения эргономики - науки о “здоровом образе работы” - человек, работающий за компьютером, подвергается опасности с трех сторон.

Первая опасность - это электромагнитные поля, излучаемые компьютером. С физической точки зрения, ткани человека - парамагнитный материал: то есть они способны “намагничиваться”, воспринимать магнитные поля. Медицинские исследования показывают, что воздействие таких полей вызывает изменение метаболизма (обмена веществ) на клеточном уровне. Переменные электромагнитные поля вызывают колебания ионов в человеческом организме, что тоже имеет определенные последствия. Электромагнитные поля давно и широко используются в медицине (физиотерапия и др.). Однако неконтролируемое излучение, которому подвергается человеческий организм, вряд ли полезно, поэтому производители мониторов стремятся принимать меры для снижения их электромагнитного излучения.

Рентгеновское излучение характерно для любого кинескопа - и телевизионного, и компьютерного. Однако в современных жидкокристаллических LCD мониторах применяются жидкие кристаллы. Поэтому радиация (в традиционном понимании) человеку, работающему за компьютером, не грозит.

Говоря о мониторах компьютеров, не следует забывать об электростатическом поле, которое создают эти устройства. При работе монитора электризуется не только его экран, но и воздух в помещении. Причем приобретает он положительный заряд. Еще полвека назад российский ученый А. Чижевский пришел к выводу о благотворном влиянии на человеческий организм отрицательных аэроионов и столь же негативном влиянии положительных. Целебные свойства горного и морского воздуха объясняются именно их насыщенностью отрицательными аэроионами. В помещении же, где работает монитор, отрицательных аэроионов почти нет, зато положительных в избытке. Положительно наэлектризованная молекула кислорода не воспринимается нашим организмом как кислород. В помещении может быть сколько угодно свежего воздуха, но если он имеет положительный заряд - это все равно, что его нет. Человек в буквальном смысле начинает задыхаться.

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

Изображение, снятое с сетчатки, проходит сложную “математическую” обработку в нашем мозге. В ходе этой обработки изображение переворачивается на 180 градусов, и в нем устраняются все геометрические искажения.

Изображение на экране монитора также искажено. Однако человек этого искажения практически не замечает, поскольку мозг и здесь включается в работу и корректирует искажения, однако в этом случае характер вычислений, которые производит мозг, резко отличается от тех вычислений, которые он проводит, корректируя искажения, вносимые глазом. Там все известно наперед: искажения, вносимые каждой точкой сетчатки, просчитаны заранее. Здесь же они непредсказуемы. Соответственно и объем вычислений гораздо больше. Кроме того, помимо искаженного экранного изображения в глаз попадают неискаженные окружающие предметы, и мозг вынужден постоянно переключаться “из одного режима работы в другой”. Изображение на экране монитора будет точным только тогда, когда каждому пикселю изображения будет четко соответствовать один пиксель экрана монитора - то есть когда зерно монитора будет абсолютно соответствовать разрешению видеокарты.

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

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

На глаза также ложится страшная нагрузка.

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

Кроме этого, есть еще одно обстоятельство. Поверхность монитора не идеально черного цвета. Отражающийся от нее свет забивает полезное изображение. Чтобы этого не происходило, приходится повышать яркость. А это опять-таки вредно для глаз. Экран монитора светится с интенсивностью осветительного прибора, диапазон яркостей между изображением на нем и предметами окружающей обстановки зачастую превышает тот диапазон, на который рассчитан глаз человека. Все это вызывает сильную усталость глазных мышц и локальные нарушения глазного кровообращения.

Наконец, третья опасность заключается в том, что человек, работающий за компьютером, подолгу пребывает в вынужденной, неподвижной позе. Речь здесь идет вовсе не о малоподвижном образе жизни и гиподинамии. Это, конечно, тоже присутствует, но страшнее все-таки другое: мышцы, и кости человека испытывают при этом такие нагрузки, на которые не рассчитаны. И дело не в величине нагрузок - они невелики. Дело в их характере. Например, естественное, “рассчитанное” природой положение кистей рук человека - это положение, перпендикулярное плоскости тела, ладонями друг к другу. Руки, лежащие на клавиатуре, параллельны плоскости тела и расположены в одной плоскости. Позвоночник человека не предназначен для сидения - когда природа “проектировала” его, стульев не было и в помине. Иначе говоря, когда человек сидит за компьютером, он пребывает в положении, на которое не рассчитана его костно-мышечная система. При этом затрудняется кровообращение, отток лимфы, скелет испытывает значительные статические нагрузки. Нарушается обмен веществ в мышцах. Частые и однообразные движения кистей и пальцев приводят к тому, что медики называют ТПН - травмами повторяющихся нагрузок. В докомпьютерную эпоху они были уделом машинисток и радиооператоров, даже считались их профессиональными заболеваниями. Теперь же, когда за компьютеры села масса людей, они приобрели характер эпидемии.

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

    6.2 Требования безопасности и технической эстетики к рабочему месту


Рабочее место (РМ) - это зона приложения труда определенного работника или группы работников. Планировка РМ должна удовлетворять требованиям удобства выполнения работ, экономии энергии и времени, рационального использования производственных площадей и удобства обслуживания устройств ЭВМ, соблюдение техники безопасности. При планировке РМ необходимо учитывать удобство расположения дисплея, клавиатуры, системного блока, печатающего устройства, других используемых устройств, а также зоны досягаемости рук программиста без наклона туловища. Эти зоны, установленные на основании антропологических данных человеческого тела, дают возможность рационально разместить клавиатуру ЭВМ, и другие используемые устройства.

При конструировании РМ должны быть соблюдены следующие требования [5]:

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

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

-       оптимальное размещение РМ в производственных помещениях, а также безопасные достаточные проходы для работающих людей;

-       объем и площадь производственного помещения на каждого работающего должен составлять 15 м3 и 4.5м2. соответственно;

-       необходимое естественное и искусственное освещение для выполнения трудовых задач, технического обслуживания (в соответствии санитарными нормативами и правилами для освещения рабочей поверхности расположенной на высоте 0.8 м от пола необходимо 300 лк);

-       запыленность воздуха не должна превышать 0.75 мг/м3;

-       допустимый уровень акустического шума, создаваемого оборудованием РМ или другими источниками [5] не должен превышать 50 dB;

-       время работы за дисплеем не должно превышать четырех часов в сутки, а при продолжительной работе необходимо делать технический перерыв, выключая оборудование на 10-15 мин, и по возможности инженерам смотреть вдаль 3-5 мин для снятия напряжения глаз;

-       напряжение в сети на РМ должно быть не более 220 В, поэтому следует соблюдать все правила техники безопасности как при работе с электрооборудованием, в частности, обязательное заземление всех устройств ЭВМ;

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

При проектировании РМ необходимо принимать во внимание:

-  рабочую позу;

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

-       пространство для ног и стоп при работе “сидя” должно составлять 650*500*600 мм;

-       высота сидения от пола должна регулироваться в пределах 370-460 мм. Оптимальная высота - 425 мм;

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

Для успешного труда необходима рациональная окружающая среда, ограждающая работника от воздействия постоянных раздражителей, которыми могут быть мрачная окраска устройств ЭВМ и помещения, неудобное расположение источников питания и т.д. Установлено, что красные, оранжевые, желтые (теплые) цвета действуют на человека возбуждающе (расширяются зрачки, учащается пульс), ускоряя его общее утомление на работе. Наоборот, синие, голубые, зеленые (холодные) цвета успокаивают его и уменьшают зрительное утомление.

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

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

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

-       соответственно временам года применяются кондиционеры, отопление, общеобменная вентиляция;

-       для защиты от шума применяются малошумящие вентиляторы и кондиционеры, шумопоглощающие покрытия;

-       для уменьшения зрительного утомления и успокоения человека отделка помещения выполнена белым цветом;

-       для уменьшения воздействия излучения от дисплея применяются защитные экраны.

    6.3 Расчет освещенности помещения


Во время работы используется общая система освещения. Определим минимальную освещённость по формуле:

,

где E - освещённость рабочей поверхности в Лк;

F - световой поток лампы в Лм;

M - количество светильников;

L - коэффициент использования светового потока;

k - коэффициент запаса;

S - площадь помещения в м2;

I - коэффициент перехода.

Световой поток сдвоенных ламп дневного света (мощность одной лампы 40 Вт, световая отдача - 40 Лм/Вт) составляет:

F = 2 × 40 × 40 = 3200 Лм

Найдём индекс помещения, учитывающий размеры помещения и высоту подвеса светильников, по формуле:

,

где S - площадь помещения в м2;

А - длина помещения в м;

B - ширина помещения в м;

h - высота подвеса светильников в м.

Учитывая, что высота помещения равна 3 м, высота рабочей поверхности - 1 м, а высота свеса светильников - 0,1 м, определим высоту подвеса светильников.

= 3 - 1 - 0.1 = 1.9 м,

При А = 10 м и В = 4.5 м по формуле:

Зная индекс помещения i и определив из таблицы коэффициенты отражения стен Pс = 50% и потолка Pп = 70%, находим значение коэффициента использования светового потока L = 0.7. При коэффициенте перехода I = 1 определим освещённость рабочей поверхности:

E=3000∙9∙0,7/1,3∙45∙1=415,5Лк

Расчет показал, что уровень освещения соответствует требованиям санитарно-гигиенических норм

    6.4 Инструкция по охране труда


Общие положения:

Прежде чем работника допустить к работе с персональной электронно-вычислительной машиной (ПЭВМ) и видеодисплейной техникой (ВДТ), он должен в соответствии с приказом Минздрава РФ от 14.03.96 № 90 пройти предварительный медицинский осмотр и не иметь медицинских противопоказаний.

Перед началом работы с ВДТ и ПЭВМ с работниками проводятся:

-  первичный инструктаж по охране труда на рабочем месте;

-       инструктаж по пожарной безопасности и проверка знаний на первую группу допуска по электробезопасности.

Повторный инструктаж работник проходит не реже 1 раза в 6 месяцев, а проверку знаний на первую группу допуска по электробезопасности - ежегодно. Инструкция по охране труда при работе с ВДТ и ПЭВМ составляется с учётом конкретных особенностей рабочего места и утверждается в установленном порядке.

Требования безопасности перед началом работы:

-  проверить исправность разъемов устройств в сети электропитания, отсутствие изломов и повреждений изоляции питающих проводов, наличие заземления;

-       принять меры, чтобы при нормальной освещенности РМ прямой свет не падал на дисплей;

Требования безопасности во время работы.

Во время работы запрещается:

-  подключать и отключать питающие кабели под напряжением;

-       вскрывать корпуса и снимать защитные экраны без предварительного отключения электронно-вычислительной техники от питающей сети;

-       прикасаться к неизолированным проводам и электрическим устройствам, находящимися под напряжением;

-       закрывать вентиляционные отверстия;

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

Требования безопасности по окончании работы:

-  обесточить оборудование;

-       убрать РМ, весь инструмент и приспособления;

-       вымыть руки водой с мылом;

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

Требования безопасности в аварийных ситуациях:

-  в случае ухудшения самочувствия или получения даже незначительной травмы необходимо прекратить работу, сообщить об этом руководителю и обратиться в медпункт;

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

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

7. Технико-экономическое обоснование


Под технико-экономическим обоснованием стоимости (договорной цены) программной системы будем понимать методику оценивания трудовых, временных и финансовых ресурсов по созданию программной системы, соответствующей требованиям заказчика.

В основу определения требуемых объемов ресурсов должны быть положены:

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

-       требования к функциональной полноте и качеству реализации каждого бизнес-процесса.

В качестве основных показателей оценки стоимости программной системы используются:

-  сложность (размеры) программной системы;

-       трудозатраты на разработку;

-       длительность разработки программной системы в целом и ее отдельных этапов;

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

-       фонд оплаты труда специалистов на создание программной системы в целом и по конкретному этапу жизненного цикла;

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

    7.1 Карта описания программного продукта

АИС «Эксперт-Поиск» - «Автоматизированная информационная система «Эксперт-Поиск», версия 1.0.0.6.

Поставщик АИС «Эксперт-Поиск» - 10 отдел «Железногорский» Экспертно-Криминалистического Центра Главного Управления Министерства Внутренних Дел России по Красноярскому краю.

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

АИС соответствует ГОСТ Р ИСО/МЭК 12119-2000 «Информационная технология. Пакеты программ. Требование к качеству и тестирование».

Программно-технические средства:

•программное обеспечение АИС разработано с поддержкой архитектуры «клиент-сервер», средой разработки является Visual Studio 2010, язык программирования C#, СУБД - MySQL (версии 5 и старше), под управлением операционной системы семейства Windows, с установленным .Net Framework версии не ниже 3.5.

•техническое обеспечение:

Сервера: CPU Intel Core 2 2,6 GHz, RAM 2048 Mb , HDD 1Tb SATA, сеть 1000/100 Mb/s, ОС MS Windows, СУБД - MySQL, .Net Framework 3.5;

Клиент: CPU Intel Core 2 2,6 GHz, RAM 1024 Mb, HDD 120 Gb, ОС MS Windows, СУБД - MySQL, .Net Framework 3.5.

В комплект поставки входят:

) оптический носитель (компакт-диск), содержащий дистрибутив системы в виде манифеста развертывания приложения «Эксперт-поиск.application» и папки приложения Application Files, а также дистрибутив СУБД MySQL 5 разрабатывающейся как Open Source продукт (данная СУБД может использоваться бесплатно).

Информацию о СУБД MySQL 5 можно получить на сайте производителя #"650711.files/image027.gif">

Рисунок 7.1 - Декомпозиция бизнес-процесса АИС «Эксперт-Поиск»

Рисунок 7.2 - Декомпозиция бизнес-процесса «Создание нового индекса»

Рисунок 7.3 - Декомпозиция бизнес-процесса «Перестроение индекса»

В результате проведенного анализа получаем следующую структуру программных комплексов и компонент (рисунок 7.5).

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

Рисунок 7.4 - Декомпозиция бизнес-процесса «Операции с индексом»

Эксперт должен дать оптимистическую (o), пессимистическую (p) и реалистическую (b) оценки строк исходного кода для каждой программной компоненты.

Рисунок 7.5 - Структура программного комплекса АИС «Эксперт-Поиск»

Средняя оценка по бета-распределению определяется по формуле:

,

где o - оптимистическая оценка; b - реалистическая оценка;

p - пессимистическая оценка;

k - номер участвующего в оценке эксперта;

i - номер уровня;

j - номер программной компоненты.

Эксперт оценивает размерность программной системы, заполняя таблицу оценивания размерности ПС (таблица 7.1).

Таблица 7.1

Бланк экспертного оценивания размерности программной системы

Компоненты АИС «Эксперт-Поиск»

Оценка


П

Р

О

Средняя оценка

ПК - Подключение к БД

300

250

200

250

ПК - Основная форма

400

350

300

350

ПК - Удаление индекса

100

50

40

63

СПК - Создание нового индекса

ПК -Ввод данных

150

110

80

113

ПК -Проверка данных

200

140

100

146

ПК -Формирование таблиц

150

120

60

110

СПК - Перестроение индекса

ПК -Выбор метода

250

200

180

210

ПК -Индексация файла

100

50

40

63

ПК -Распознавание типа

150

115

100

121

250

200

150

200

ПК -Экспорт в БД

150

120

100

123

СПК - Операции с индексом

ПК -Срез файлов

800

620

450

623

ПК -Срез каталогов

700

570

400

556

ПК -Полнотекстовый поиск

600

450

400

483

ПК -Формирование диапазонов

1000

700

600

766

ИТОГО

4177

Сокращения: П - пессимистическая оценка; Р - реалистическая оценка; О - оптимистическая оценка.

После оценивания всех компонент на каждом уровне, суммируются результаты измерения по принципу «снизу-вверх» и определяется размерность системы

,

где  - количество экспертов,

- количество программных компонент на i -ом уровне.

R = 4177 строк кода

Следующим этапом определения технико-экономических показателей (ТЭП) проекта является оценка трудозатрат, длительности и средней численности разработчиков при реализации проекта. Она основана на согласовании между разработчиком и заказчиком производительности труда программиста - P.

Используя нормативы трудоемкости разработки программ в базовой модели Constructive Cost Model (COCOMO), примем P = 220 строк/чел.-месяц (простая информационно-справочная система, количество строк - до 30 тыс.). Трудозатраты на разработку определяются по формуле:

T= R / P = 4177 / 220 = 18,98 чел.- месяцев

И, наконец, при заданной длительности разработки (6 месяцев), получаем искомую среднюю численность персонала, необходимого для ее разработки:

Z = T / Д = 18,98 / 6 = 3,16 чел.

Итак, с помощью прямого метода мы определили основные технико-экономические показатели разработки:

) трудозатраты на разработку системы составят 18,98 человеко-месяцев;

) необходимые людские ресурсы при реализации системы = 3,16 чел.

    7.3 Метод определения ТЭП проекта на основе размерности базы данных программной системы


Исходные данные

Тип системы: программно-информационная.

Сложность системы: простая.

СУБД: MySQL 5.1.

Плановый срок разработки системы - 6 месяцев.

В результате анализа объекта автоматизации с помощью ER-моделирования построена концептуальная модель базы данных программной системы для определения количества таблиц (объектов) предметной области, связей и атрибутов (рисунок 7.6).

Рисунок 7.6 - Концептуальная модель базы данных

Анализируя построенную модель базы данных получаем:

N - количество таблиц (объектов) = 5;

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

M - количество атрибутов на один объект = 29/5=5,8

Размерность программного обеспечения (в данном случае - базы данных) определяется по формуле:

,

Подставляя в формулу вышеприведенные результаты анализа, получаем размерность базы данных:

R=2∙5∙5∙4∙10∙5.8=11600 полей БД

Далее, переходим к расчету ТЭП проекта. Здесь необходимо ввести понятие «нормализованной величины» при создании программной системы. Этой величиной является количество формируемых атрибутов, входящих в электронные таблицы посредством установленных связей. При значениях N,  и М, равных единице, величина, выражающая их количество равна 100.

Трудозатраты определяются по следующей формуле:

,

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

В нашем случае размерность базы данных (11600) находится в нормативном промежутке до 90 тыс. полей, что соответствует значению норматива  = 0,00566. Таким образом, трудоемкость будет равна:

T=0.01∙11600∙0,00566=0,65 чел.-месяцев

Длительность разработки, установленная заказчиком Д = 6 месяцев, тогда средняя численность специалистов, которые должны быть привлечены к реализации ПС, определяется по формуле:

Z=T/Д=0,65/6=0,11 чел.

Таким образом, применяя метод определения ТЭП на основе размерности базы данных ПС, мы определили следующие основные технико-экономические показатели разработки:

1) трудозатраты на разработку системы составят 0,65 человеко-месяцев;

) необходимые людские ресурсы при реализации системы = 0,11 чел.

Выводы:

При расчете технико-экономических показателей по двум методам, при установленной длительности разработки 6 месяцев, трудозатраты и численность исполнителей приведены в таблице 7.2.

Таблица 7.2

Оценка методов определения трудозатрат

Метод

Трудозатраты, чел.-месяц.

Длительность, месяцев

Исполнителей, чел.

Прямой метод (экспертных оценок)

18,98

6

3,16

На основе размерности базы данных

0,65

6

0,11

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

После расчета технико-экономических показателей проекта выбираем исходные данные (трудозатраты/длительность) для определения стоимости (договорной цены) на создание программной системы.

   

7.4    Определение договорной цены на создание программной системы

 

.4.1 Определение фонда оплаты труда на разработку и комплексные испытания программной системы

В основу определения фонда оплаты труда положены:

- длительность реализации каждого этапа жизненного цикла проекта;

-       количество и качественный состав специалистов, привлекаемых на каждом этапе проекта;

-       базовая месячная ставка специалиста-программиста.

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

- трудоемкость (Т) = 18.98 чел.-месяцев;

-       длительность (Д) = 6 месяцев.

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

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

 где i=1,4.

В результате вычислений по данной формуле получаем результирующую таблицу 7.3.

Таблица 7.3

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

Этапы жизненного цикла

Численность сотрудников, чел.

Длительность, месяцев

Анализ предметной области и разработка требований

3,16

0,6

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

2,31

1,8

Программирование

3,66

2,1

Тестирование и комплексные испытания

3,47

1,5


Следующим шагом является распределение специалистов по этапам жизненного цикла системы, при этом численность каждого типа специалистов на каждом из этапов жизненного цикла определяется с использованием статистического распределения по выражению (таблица 7.4):

, i=1,4 j=1,3,

где  - относительная доля (%) специалистов J-го типа, привлекаемых для реализации проекта на i-ом этапе.

Таблица 7.4

Численность каждого типа специалистов на каждом из этапов жизненного цикла создания программной системы

Этапы жизненного цикла

Типы специалистов, чел. (Zij)


Аналитики

Программисты

Технические специалисты

Анализ предметной области и разработка требований

1,26

0,63

1,26

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

0,80

0,81

0,69

Программирование

0,36

2,38

0,92

Тестирование и комплексные испытания

0,52

2,08

0,87

Фонд заработной платы для реализации i-го этапа проекта определим по формуле:

, i= 1,4,

где  - длительность i-го этапа проекта;

 - месячный фонд заработной платы j-го типа специалиста.

В основу определения  примем среднюю месячную ставку программиста, рыночный размер которой в г. Железногорске Красноярского края равен примерно 20000 рублей.

Соотношение месячной ставки специалиста-программиста к месячной ставке системного аналитика составляет как 1:1,2, а к месячной ставке технического специалиста - как 1:0,8., то есть:

-  базовая ставка программиста 20000 рублей;

-       ставка аналитика 24000 рублей;

-       ставка техника 18000 руб.

Общий фонд заработной платы на реализацию проекта определим по формуле:


Таблица 7.5

Распределение фонда заработной платы по этапам жизненного цикла программной системы, руб.

Этапы жизненного цикла

Аналитик

Программист

Техник

ФЗП по этапу

Анализ предметной области и разработка требований

18201

7584

13651

39436

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

34927

29106

24948

88981

Программирование

18446

99918

34587

128418

Тестирование и комплексные испытания

18738

62460

23422

104620

Итого общий фонд заработной платы

361 456

Таким образом, фонд оплаты труда на разработку и комплексные испытания ПС составляет 361456 руб.

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

Численность сотрудников, привлекаемых к опытной эксплуатации определяется по формуле:

,

где - срок опытной эксплуатации;

N - норматив трудоемкости при проведении опытной эксплуатации.

Установим срок опытной эксплуатации по согласованию с Заказчиком - 3 месяца. Норматив трудоемкости при проведении опытной эксплуатации N определяется из категории сложности - примем его равным 0,00354 чел./месяцев (количество пользователей (не более 10), количество сеансов работы с системой в течение года (от 10 до 150)).

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

= 3∙0,00354 = 0,01062 чел.

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

Фонд заработной платы на проведение опытной эксплуатации определяется по формуле:

· 0,85 = 0,01062∙3∙20000∙0,85= 541 руб.,

где  - месячная базовая ставка программиста.

Общий фонд зарплаты на разработку и внедрение системы составит:

+ 541 = 361997 руб.

   

    7.5 Структура договорной цены на программное обеспечение


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

Основополагающим элементом, из которого и будет произведен расчет стоимости проекта, является рассчитанный выше общий фонд заработной платы (361997 руб.).

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

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

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

Далее определяем необходимые виды основных расходов, из которых и складывается окончательная смета затрат (коммунальные услуги, прочие расходы, накладные расходы и т.д.). Процент накладных расходов не имеет жестких нормативов и зависит от затрат на содержание АУП, бухгалтерии и т.д. в организации.

Итак, с учетом нормативов, приведенных в [6], составим смету затрат и определим общую стоимость проекта (таблица 7.6).

Таблица 7.6

Смета затрат на разработку и внедрение системы

Наименование статей расходов

Сумма (руб.)

Фонд оплаты труда

361 997

Страховые взносы ПФР, ФСС и ФОМС (34%)

123 078

Увеличение стоимости основных средств (1 компьютер по цене 20 тыс. рублей)

20 000

Амортизация средств вычислительной техники (срок полезного использования - 3 года)

0

Коммунальные услуги, услуги связи (телефон, Интернет) (1000р. * 6 мес.)

6 000

Прочие расходы (600р. * 6 мес.)

3 600

Итого прямые расходы

514 675

Фонд развития производства (10% от прямых затрат)

51 467

Накладные расходы (12% от прямых затрат)

61 761

Всего расходов

627 903

Налог на добавленную стоимость (0%, не облагается)

0

ИТОГО ДОГОВОРНАЯ ЦЕНА

627 903


Таким образом, договорная цена на разработку и внедрение программной системы составляет 627 903 рубля.

   

    Резюме

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

Основные преимущества программного продукта:

•централизованная база индексных данных, с возможностью удаленного подключения к ней посредством IP-сети;

•параметризированные выборки, позволяющие получить исключительно необходимый набор файлов;

•экспорт результатов среза и поиска в Excel или текстовый форматы;

Программный продукт является эксклюзивной разработкой и предназначен для служебного использования в организации, поэтому дальнейшее его тиражирование не предусмотрено. Таким образом, анализ рыночной стоимости системы не производился. Реальный срок разработки и внедрения программного продукта (определенный Заказчиком) составляет 6 месяцев.

Суммарные затраты на реализацию проекта (разработка и внедрение) составляют порядка 628 тыс. рублей.

Заключение


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

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

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

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

В рамках разработки информационного обеспечения была подробным образом разработана и описана инфологическая модель системы с описанием сущностей и атрибутов, разработана физическая модель системы с привязкой к СУБД MySQL с приведением структуры таблиц базы данных, описана входная, промежуточная и выходная информация с отображением необходимых форм. Разработана структура диалога и программного комплекса в целом, а также детально описаны блок-схемы алгоритма основного рабочего модуля приложения и описание технологического процесса работы с системой.

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

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

Список используемых источников


1. Википедия. Свободная энциклопедия [Электронный ресурс] официальный сайт

2.      MySQL против PostgreSQL [Электронный ресурс]

.        Сенченко П.В. Организация баз данных: Учебное пособие. - Томск: Томский межвузовский центр дистанционного образования, 2005. - 208 с.

.        Язык программирования С# 2010 и платформа .NET 4.0, 5-е изд.: Пер. с англ. - М.: ООО "И.Д. Вильяме", 2011. - 1392 с.: ил. - Парал. тит. англ.

.        Т.А. Ципилева. Безопасность жизнедеятельности. Учебное пособие. Томск: ТУСУР, 2003. - 255 с

.        Ю.П. Ехлаков, Б.А. Рыбалов «Методические указания по выполнению экономической части дипломного проекта для студентов специальности 230102 «Автоматизированные системы обработки информации и управления»», Томск 2007 г.

Приложение А

Руководство пользователя

АННОТАЦИЯ

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

. НАЗНАЧЕНИЕ И УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ

.1 Назначение программы и ее функции

Программа «Эксперт-поиск» предназначена для индексации файлов и дальнейшего поиска по различным критериям при проведении криминалистических компьютерных экспертиз.

.2 Аппаратное обеспечение

Для функционирования системы необходимо аппаратное обеспечение:

-  процессор Pentium IV 2ГГц или выше;

-       оперативная память 256 мб и выше;

-       свободное дисковое пространство 500 мб;

-       видеокарта SVGA 1024 * 768;

-       манипулятор «Мышь»;

1.3 Программное обеспечение

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

-  операционная система ОС Windows XP или выше;

-       .NET Framework 3.5 или выше.

На выделенный сервер необходимо установить:

-  СУБД MySQL.

При отсутствии выделенного сервера все ПО устанавливается на одну рабочую станцию.

.4 Комплект поставки

Система поставляется в виде манифеста развертывания приложения «Эксперт-поиск.application» из папки приложения Application Files.

.5 Установка системы

Для установки систем необходимо запустить манифест развертывания приложения «Эксперт-поиск.application» и нажать на кнопку «Установить» (рисунок 8.1).

Рисунок 8.1 - Установка системы «Эксперт-поиск»

. РАБОТА С СИСТЕМОЙ

.1 Последовательность действий пользователя при работе с программой.

Запуск программы осуществляется стандартными средствами операционной системы. Ярлык программы находится в меню «Пуск»-«Все программы»-«Microsoft»-«Эксперт-поиск».

При первом запуске БД будет создана автоматически.

.1.1 Вход в систему

Для входа в систему необходимо указать источник данных, т.е. IP адрес сервера СУБД. Если вся система (СУБД и рабочее место) функционирует на одном компьютере, то указываем “LocalHost” (рисунок 8.2).

Рисунок 8.2 - Форма выбора источника данных

Если в выпадающем списке нет нужного адреса, вводим его в поле «Новый» и нажимаем на «Продолжить».

При успешном подключении к базе данный открывается главная форма системы «Эксперт-поиск».

.1.2 Работа с главной формой

При подключении к базе данный открывается главная форма системы «Эксперт-поиск» (рисунок 8.3).

Данная форма отображает индексированные данные, по которым можно осуществлять поиск, хранящиеся в БД, с отображением сводки по ним, а также служит отправной точкой для дальнейших операций «Поиск» и «Индексирование».

2.1.3 Индексация данных

Для начала работы необходимо проиндексировать источник данных. Для этого нажимаем на кнопку «Создать индекс» в окне главной форме (рисунок 8.3). При этом открывается окно для создания индекса (рисунок 8.4).

Рисунок 8.3 - Главная форма системы «Эксперт-поиск»

Рисунок 8.4 - Создание индекса

Для создания индекса необходимо указать имя индексной базы в поле «Имя БД» и при необходимости краткое описание индексной базы для последующего наглядного его отображения в списке.

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

Чтобы завершить создание индекса необходимо нажать на кнопку «Готово».

Для перестройки индекса необходимо нажать на кнопку «Перестроить индекс» в окне главной форме (рисунок 8.3). При этом открывается окно для перестройки индекса (рисунок 8.5).

Рисунок 8.5 - Перестройка индекса: а) выбор параметров, б) процесс перестройки

Выбираем необходимый тип индексации (полная, срез файлов, выборочная) и нажимаем «Приступить» (рисунок 8.5, а). После завершения индексации и автоматического сохранения результата в БД закрываем окно, нажимая кнопку «Завершить» (рисунок 8.5, б).

Для удаления ранее созданного индекса необходимо нажать на кнопку «Удалить индекс» в окне главной форме (рисунок 8.3). При этом выдается запрос на подтверждение операции удаления (рисунок 8.6).

Рисунок 8.6 - Запрос на подтверждение операции удаления индекса

При удалении индекса данные удаляются из БД и работа с ними не возможна. Также при удалении данные больше не отображаются в главном окне программы (рисунок 8.3).

.1.4 Работа с поиском

Для начала осуществления поиска необходимо осуществить индексацию интересующего источника данных, затем выбрать в главной форме (рисунок 8.3) интересующий индекс и область поиска и нажать на кнопку «Пуск». При этом открывается окно поиска (рисунок 8.7).

Рисунок 8.7 - Окно поиска системы «Эксперт-поиск»

Имеется 4 варианта поиска:

-  Создание среза файлов - поиск файлов по различным критериям;

-       Создание среза каталогов - поиск каталогов по различным критериям

-       Полнотекстовый поиск - поиск по содержимому;

-       Временные диапазоны - поиск по временным критериям.

Тип поиска «Создание среза файлов» позволяет производить поиск файлов по трем критериям:

-  типам и расширениям;

-       атрибутам;

-       параметрам.

Для поиска по отдельным типам файлов необходимо снять флажок с поля «Все типы» и выбрать из списка необходимый тип.

Для поиска по расширению необходимо установить флажок в поле «Расширение» и указать расширения для поиска.

Для осуществления поиска нажимаем на кнопку «Выполнить» (рисунок 8.8).

Рисунок 8.8 - Поиск по типам и расширениям

В нижней части окна отображается результат поиска с подробным указанием параметров и суммарного количества записей (рисунок 8.8).

Поиск по параметрам позволяет производить поиск по временным критериям и размерам файлов (рисунок 8.9)

Рисунок 8.9 - Поиск по параметрам

Отображение результата поиска происходит аналогичным образом.

Поиск по атрибутам позволяет находить файлы с заданными атрибутами (рисунок 8.10).

Рисунок 8.10 - Поиск по атрибутам

Для сохранения результатов поиска имеется возможность экспорта данных в Excel или txt формат. Для экспорта в Excel или txt нажимаем на кнопку «Экспорт в Excel» (рисунок 8.11) или «Сохранить как текст» (рисунок 8.12) соответственно в окне поиска.

Вариант поиска «Создание среза каталогов» позволяет производить поиск каталогов по временным критериям, атрибутам и различным маскам (рисунок 8.13).

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

Результат поиска также можно экспортировать в Excel или txt формат.

Рисунок 8.11 - Экспорт результата поиска в Excel

Рисунок 8.12 - Экспорт результата поиска в текстовый формат

Рисунок 8.13 - Создание среза каталогов

Вариант поиска «Полнотекстовый поиск» позволяет произвести полнотекстовый поиск (рисунок 8.14).

Результат поиска также можно экспортировать в Excel или txt формат.


Вариант поиска «Временные диапазоны» позволяет произвести поиск по заданным временным диапазонам (рисунок 8.15).

Результат поиска также можно экспортировать в Excel или txt формат.

Рисунок 8.15 - Вариант поиска «Временные диапазоны»

 

Приложение Б

Описание структуры таблиц базы данных

Таблица dtfgroups

Название

Идентификатор

Тип

Ограничения целостности

Код группы типов

idFileGroupTypes

INT

PRIMARY KEY, NOT NULL

Название

Name

VARCHAR(45)

NOT NULL


Таблица dtftype

Название

Идентификатор

Тип

Ограничения целостности

Код типов файлов

idFileTypes

INT

PRIMARY KEY, NOT NULL

Название

Name

VARCHAR(45)

NOT NULL

Внешний ключ

idFileGroupTypes

INT

FOREIGN KEY


Таблица dtfiles

Название

Идентификатор

Тип

Ограничения целостности

Код файла

idFile

BINARY

PRIMARY KEY, NOT NULL

Код типа файла

idFileTypes

INT

FOREIGN KEY

Код директории

idDirectory

INT

FOREIGN KEY

Имя файла

filename

VARCHAR(255)

NOT NULL

Время создания

CreatTime

DATETIME

NOT NULL

Время доступа

AccessTime

DATETIME

NOT NULL

Время изменения

ChangeTime

DATETIME

NOT NULL

Атрибут Только для чтения

Onlyread

BIT

NOT NULL

Атрибут Скрытый

Hidden

BIT

NOT NULL

Атрибут Зашифрованный

Encrypted

BIT

NOT NULL

Размер файла

Size

BIGINT

NOT NULL

Содержимое файла

Body

TEXT

NOT NULL


Таблица dtfolders

Название

Идентификатор

Тип

Ограничения целостности

Код директории

ID

INT

PRIMARY KEY, NOT NULL

Название

Dir

VARCHAR(255)

NOT NULL

Время создания

CreationTime

DATETIME

NOT NULL

Время доступа

AccessTime

DATETIME

NOT NULL

Время последней записи

LastWriteTime

DATETIME

NOT NULL

Атрибут Только для чтения

ReadOnly

INT

NOT NULL

Атрибут Скрытая

Hidden

BIT

NOT NULL

Атрибут Зашифрованная

Encrypted

BIT

NOT NULL

Код выбранной директории

idSelectedDirs

INT

FOREIGN KEY


Таблица dtselectedfolders

Название

Идентификатор

Тип

Ограничения целостности

Код выбранной директории

idSelectedDirs

INT

PRIMARY KEY, NOT NULL

Название

Dir

VARCHAR(255)

NOT NULL


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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!