Формулировка проблемы и конкретизация решаемой задачи
Под проблемой понимается совокупность взаимосвязанных вопросов, решение которых позволяет получить несуществующее к настоящему времени качество в той или иной сфере человеческой деятельности. Задача исследователя (студента) состоит в конкретизации решаемой проблемы, определении её источника и оценке возможностей решения на современном этапе.
Данный этап отражается во «Введении», где формулируется проблема, связанная с темой дипломного проекта, и выполняется обоснование её выбора через актуальность и новизну исследования; цели и задачи исследования; описание объекта исследования.
Любая научно-техническая проблема представляет собой сложный комплекс взаимосвязанных вопросов, для решения которых необходим большой коллектив специалистов, в общем случае, различной квалификации. Для поэтапного или параллельного решения проблемы её обычно разбивают (декомпозируют) на отдельные относительно самостоятельные задачи, решение которых позволяет достичь решения проблемы в целом.
Студент должен самостоятельно провести декомпозицию проблемы так, чтобы тема дипломного проекта входила в состав задач решаемой проблемы. Полученные при этом результаты с указанием конкретной задачи, решаемой студентом, отражаются в разделе «Постановка задачи» пояснительной записки. Здесь же приводится оценка состояния вопроса по теме дипломного проекта в виде обзора литературы.
Обзор рекомендуется проводить, например, в следующем виде:
«В работе [1] рассмотрен подход к построению информационных систем на основе технологии… Работы [2‑5] посвящены…» и т.д.
Материалы обзора следует систематизировать в определённой логической последовательности. Не нужно излагать всё, что стало известно студенту из прочитанного, и имеет лишь косвенное отношение к теме дипломного проекта.
В конце обзора необходимо отметить недостатки существующих подходов, не позволяющих непосредственно использовать их для решения задачи дипломного проекта или выбрать с обоснованием один из существующих методов.
Для построения обзора целесообразно выполнить библиографический поиск в специализированных электронных журналах и базах данных в сети Интернет. В частности обзорные, аналитические и прикладные статьи по программному обеспечению публикуются на следующих сайтах:
· http://msdn.microsoft.com и http://www.microsoft.com/rus/msdn («Microsoft developer network»);
· http://www.infocity.kiev.ua (сайт «InfoCity»);
· http://citforum.ru («Сервер Информационных Технологий «CIT Forum»);
· http://www.rusdoc.ru (сайт «Русские документы (Русская компьютерная библиотека)»);
· http://www.codenet.ru (сайт «CodeNET»);
· http://www.exponenta.ru («Образовательный математический сайт»).
Для поисков других источников информации по теме дипломного проекта необходимо использовать поисковые системы Интернет, как отечественные (Яндекс), так и зарубежные (Google, Yahoo). Целесообразно использовать более чем одну поисковую систему.
Выбор или разработка метода решения задач
После постановки задачи следует важнейший этап – выбор или разработка метода решения задачи. Конкретное содержание этапа определяется решаемой задачей и отражается студентом во втором разделе пояснительной записки, в котором предлагается осветить следующие вопросы:
· выбрать в соответствии с постановкой задачи класс методов решения или возможных путей решения задачи;
· рассмотреть суть методов, входящих в выбранный класс, с анализом их достоинств и недостатков;
· указать (разработать) конкретный метод, который будет использован для решения задачи с обоснованием его применения;
· составить UML-модели решения задачи в виде диаграмм вариантов использования, последовательности для вариантов использования, классов, размещения и компонентов;
· привести алгоритм решения задачи в виде словесного описания (псевдокода) или блок-схемы.
Данные вопросы в краткой форме должны быть изложены в докладе.
Модель и алгоритм решения задачи должны быть отражёны на слайдах презентации.
Реализация решения
Данный этап является основным и отражается в третьем разделе пояснительной записки.
Данный раздел должен отражать процесс разработки программного продукта и в целом соответствовать основным этапам жизненного цикла программного изделия:
· бизнес-анализ и определение требований;
· проектирование;
· разработка (кодирование);
· тестирование и оценка качества;
· документирование;
· внедрение и сопровождение.
Объём работ (и соответственно объём пояснительной записки) по каждому из подразделов определяется типом и масштабом решаемой в дипломной работе задачи. Реализация каждого из подразделов должна выполняться с помощью современных специализированных информационных технологий и программных инструментов ведущих разработчиков. Выбор того или иного конкретного инструмента должен быть обоснован и может определяться масштабом проекта, а также требованиями заказчика к оформлению документации.
В первом подразделе приводятся результаты предпроектного обследования, проводимого совместно с заказчиком и потенциальными пользователями. Полученные материалы должны быть оформлены в виде технического задания и обязательно должны включать сведения о назначении продукта, набор требований к нему и описание границ проекта. Рекомендуется описание требований иллюстрировать UML и IDEF0-диаграммами, описывающими сценарии взаимодействия пользователя с продуктом, порядок передачи сообщений от одних объектов к другим, взаимодействие объектов друг с другом, потоки работ и изменение состояний объектов. Для создания таких диаграмм можно применять такие современные продукты как Microsoft Visio, IBM Rational Rose, IBM Rational XDE, Borland Together, CA AllFusion Process Modeler (ранее известный как BPwin). Для того чтобы облегчить реализацию требований на последующих этапах разработки, рекомендуется использовать специальные средства управления требованиями, например, RequisitePro, DOORS, CaliberRM.
Второй подраздел содержит описание решений относительно архитектуры и составных частей разрабатываемого продукта (например, программных модулей), а также технологий его реализации. Здесь же осуществляется проектирование логической структуры данных и классов приложения, разрабатывается физическая структура для выбранной (с обоснованием) в предыдущем подразделе СУБД, выполняется прототипирование пользовательских интерфейсов (с обоснованием и описанием выбранных форм диалога и используемых инструментальных средств).
Инструментальное обеспечение данного подраздела может осуществляться программными средствами трёх типов. Диаграммы классов и диаграммы развёртывания реализуются с помощью тех же средств UML-моделирования, что использовались и в предыдущем подразделе. Для проектирования данных можно использовать AllFusion Data Modeler (ранее известный как ERwin), Sybase Power Designer, Oracle Designer, Microsoft Visio и аналогичные инструменты, обеспечивающие возможность автоматической генерации базы данных для выбранного типа СУБД. Прототипирование интерфейса может выполняться с применением средств Microsoft Visio, графических редакторов либо непосредственно в рамках используемого средства разработки приложений.
Третий подраздел посвящён непосредственно созданию кода приложения (продукта). Основным инструментом здесь является средство разработки приложения. Выбор такого средства определяется в первую очередь платформой (Win32 API, UNIX/Linux, MS .NET, Java/ME/SE/EE и т.п.) и архитектурой приложения (служба, GUI-приложение, консольное приложение и т.п.) и должен осуществляться и обосновываться в предыдущих подразделах. При этом предпочтение следует отдавать современным компонентным оболочкам и технологиям (Embarcadero Delphi/Kylix/C++ Builder/Java Builder, Microsoft Visual C++/C#, Java NetBeans и т.п.). Желательно, чтобы средство разработки приложения могло взаимодействовать со средствами моделирования и управления требованиями, поддерживая прямое и обратное проектирование, синхронное изменение кода и модели, а также обеспечивало средства оптимизации и отладки кода.
Приветствуется, но не является обязательным, использование в процессе разработки дипломного проекта программных средств контроля версий (Merant PVCS Version Manager, Microsoft Visual SourceSafe) и при необходимости средств управления проектами (Microsoft Project, SureTrack Project Manager) и управления коллективной работой (Borland StarTeam).
Четвёртый подраздел описывает процесс тестирования программного продукта на соответствие установленным требованиям. В частности необходимо осветить следующие вопросы:
· удобство использования пользовательского интерфейса;
· производительность приложения и отдельных его компонентов (нагрузочное тестирование);
· наличие ошибок исполнения;
· безопасность данных;
· совместимость с различными операционными системами и приложениями
При этом обязательным является описание используемой методики тестирования, разработанных студентом тестов, полученных результатов и принятых проектных решений. При чрезмерно большом объёме соответствующих данных их необходимо вынести в приложение.
Тестирование желательно проводить с применением средств автоматизированного планирования и управления тестированием, а также управления дефектами ведущих производителей (IBM/Rational, Borland, Compuware)
Пятый подраздел содержит документацию, описывающую разработанный программный продукт. В её состав могут включаться следующие документы:
· руководство пользователя (включая файлы справочной системы);
· примеры презентационных и рекламных материалов;
· руководство администратора (освещаются вопросы установки, настройки и сопровождения продукта);
· руководство разработчика (описывается структура продукта, состав и функция его отдельных компонентов и модулей).
Все документы должны быть написаны чётким и понятным языком, и при необходимости сопровождаться иллюстрациями. Конкретное содержимое документов определяется действующими международными, государственными, отраслевыми и корпоративными стандартами.
В шестом подразделе описываются результаты или планы по внедрению разработанного программного продукта.
На слайдах презентации можно привести фрагменты организации диалога, формы выходных документов (если они являются достаточно оригинальными разработками).
В докладе необходимо остановиться на следующих вопросах:
· основные технические требования (тип ЭВМ, вид операционной системы, необходимые драйверы и т.п.);
· обоснование предлагаемой структуры;
· особенности программирования с использованием выбранной инструментальной среды;
· объём разработанного программного продукта (например, число операторов языка, объём необходимой памяти для исходных, объектных и загрузочных модулей).