Файл: Методические рекомендации по выполнению курсового проекта.docx
Добавлен: 26.10.2023
Просмотров: 39
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Целью данного раздела является определение границ автоматизируемой области, обоснования необходимости автоматизации для решения задачи (комплекса задач).
Поэтому в данном разделе рассматривается существующее состояние предметной области, содержится информация о текущем состоянии объекта автоматизации, дается характеристика объекта и системы управления, выявляются недостатки существующей системы управления и обосновываются предложения по устранению выявленных недостатков. Также проводится анализ существующих информационных подсистем по выбранной тематике с целью выявления их возможностей, достоинств и недостатков для определения направлений собственной разработки.
Анализ задания
Основой курсового проекта является некоторая предметная область со своими терминами, понятиями, объектами, отношениями между этими объектами. Очевидно, что специалист в области информационных технологий далеко не всегда является специалистом в той сфере, для которой он выполняет разработку информационной системы. Поэтому залогом успешного решения поставленной перед ним задачи является подробный и качественный анализ всех аспектов той пользовательской среды, в которой будет функционировать создаваемое программное приложение или информационная система.
В ходе анализа предметной области необходимо на основе знакомства с литературными источниками и общения с заказчиком выявить:
-
Чему посвящена предметная область, какие в ней есть термины и понятия, субъекты и объекты, способы взаимодействия субъектов, способы использования объектов, закономерности. Например, если речь идёт о графических примитивах в трёхмерном пространстве, то следует выявить список возможных примитивов (точка, линия, прямоугольник, параллелепипед, шар и т.п.), способы их описания (так, для точки достаточно указать её координаты, а для шара необходимо знать координаты центра и радиус), возможные способы преобразования (перемещение, масштабирование, поворот и т.п.). -
Что входит в словарь предметной области, отдельно выделив список существительных и список глаголов, которые могут быть связаны с существительными. Для графических примитивов существительными могут быть: «точка», «координата», «шар», «угол», «цвет», «длина», «ширина» и др. А в качестве глаголов можно указать: «нарисовать», «повернуть», «масштабировать», «переместить». -
Каковы функциональные требования к разрабатываемой информационной системе. Основой их служат потребности заказчика, однако разработчик должен оценить возможность реализации требований, исходя из технических возможностей и имеющихся ресурсов.
Результат анализа должен быть формализован. В реальной ситуации обычно оформляется протокол обсуждения, заключается договор, формулируется техническое задание. Все документы заверяют полномочные представители заказчика и разработчика. Во избежание конфликтных ситуаций следует задокументировать все решения, принятые по спорным моментам.
В рамках курсового проекта в роли заказчика выступает преподаватель, выдавший задание (либо представитель работодателя, если задание было сформулировано им). Студент проводит анализ предметной области, основываясь на своих собственных знаниях, литературных источников и в ходе общения с преподавателем. Результат должен быть оформлен в виде реферативного описания предметной области. Из этого описания должен логически следовать словарь предметной области, состоящий из списка существительных и глаголов. Именно он послужит основой следующего этапа работы.
Проектирование системы классов
Проектирование системы классов начинается с обработки словаря предметной области. Эта обработка состоит в выявлении того, какие слова соответствуют объектам, классам, свойствам и методам. Список существительных служит основой для выделения классов и их свойств, а список глаголов – для определения методов.
Для приведённого выше примера можно указать следующее соответствие:
-
классы: точка, шар; -
свойства: координата, угол, цвет, длина, ширина; -
методы: нарисовать, повернуть, масштабировать, переместить.
Следующий шаг является, фактически, завершающим на этапе проектирования классов. Он состоит в том, чтобы определить, какой из классов какие свойства и методы содержит. Следует обратить внимание на то, что наборы свойств и методов у разных классов могут «пересекаться». Например, и для класса «точка», и для класса «шар» справедливо наличие методов «нарисовать», «масштабировать», «переместить». В то же время, метод «повернуть» не имеет смысла по отношению к объектам данных классов, зато может присутствовать у класса «параллелепипед».
Ещё одним вопросом, требующим решения на данном шаге, является выявление отношений между классами. Речь идёт об отношениях наследования и включения. Следует обратить внимание, что понятие «наследование» чаще всего возникает тогда
, когда разные классы обладают частично схожими наборами свойств и методов. При составлении словаря предметной области далеко не всегда в список могут попасть понятия, которым можно сопоставить базовые классы в иерархии наследования. Поэтому следует внимательно проанализировать список классов, свойств, методов, их соответствие, и, возможно, выделить ряд новых классов, связанных с имеющимися отношениями наследования и включения. На данном этапе можно уже учитывать не только законы предметной области, но и такие принципы объектно-ориентированного подхода как абстракция, инкапсуляция, полиморфизм.
В рассматриваемом примере можно выделить абстрактный класс «фигура» со свойствами «абсцисса», «ордината», «аппликата», «цвет» и методом «нарисовать». Классы «точка» и «шар» будут являться наследниками класса «фигура», а метод «нарисовать» может являться виртуальным, что даёт нам полиморфический кластер, включающий три класса.
Результаты такого анализа должны быть оформлены в виде диаграммы классов. Предпочтительным является использование нотации языка UML. В частности, следует придерживаться следующих правил:
-
класс обозначается прямоугольником; -
прямоугольник делится на три части, в каждой из которых, соответственно, указываются: имя класса, список свойств, список методов; -
имена классов, свойств и методов могут быть записаны на русском языке, но в соответствии с нормами написания стандартных идентификаторов (одно слово, включающее буквы, цифры, символ подчёркивания и не начинающееся с цифры); -
имена классов записываются с заглавной буквы, имена свойств и
методов – со строчной;
-
перед именем свойства или метода ставится символ, указывающий на режим доступности: закрытый (-), защищённый (#), открытый (+); -
после имени метода ставятся круглые скобки, в которых могут быть перечислены параметры метода; -
наследование классов обозначается стрелкой с треугольным незакрашенным наконечником; -
стрелка при наследовании направляется от класса-наследника к родительскому классу.
Пример диаграммы классов приведён на рисунке 1.
Фигура |
#абсцисса #ордината #аппликата #цвет |
+нарисовать() |
-видимый_размер_точки
-радиус
Рис. 1. Диаграмма классов трёхмерных графических примитивов
Диаграмма классов с комментариями к ней является результатом данного этапа работы.
5.2.2 Практическая часть
В специальной части должно содержаться: описание структуры информационной системы; краткий процесс разработки информационной системы; описание ролей и пользователей; руководство пользователя.
Выбор средств реализации продукта автоматизации
После завершения проектирования можно приступать к её программной реализации. Однако этот процесс невозможен без предварительного решения ряда технических вопросов: на каком языке следует писать программу, какая среда разработки должна использоваться, каких правил именования идентификаторов следует придерживаться, как организовать проектную работу, как документировать процесс программирования, как отслеживать изменения в коде программы. В реальной ситуации данные вопросы решает руководство проекта, исходя из корпоративных стандартов, системных требований и многих других принципов.
В курсовому проекту набор перечисленных вопросов остаётся, однако от студента требуется обоснование ответа лишь на два из них – о выборе языка программирования и о выборе среды разработки. Рекомендованными в рамках дисциплины языками являются C++ и C#. Рекомендуемой средой разработки является система Microsoft Visual Studio. Тем не менее, студент имеет право остановиться на каком-либо другом объектно-ориентированном языке высокого уровня, позволяющем разрабатывать независимые оконные приложения. Выбор языка требует обязательного обоснования. В случае выбора одного из рекомендованных языков обоснование выбора среды разработки не требуется – достаточно лишь указать на используемый инструментарий.
Обоснование строится на основе выполненного анализа предметной области, исходя из следующих определяющих факторов:
-
функциональные требования к системе; -
наличие в языке возможностей для реализации функциональных требований; -
трудоёмкость разработки.
Обоснование должно быть оформлено в виде связного текста и содержательно являться сравнительной оценкой альтернативных вариантов выбора по указанным критериям. То есть в случае выбора языка программирования должна быть выполнена оценка каждой из альтернатив и, как следствие, указан сделанный выбор.
Разработка программного модуля
Этот этап работы соответствует разделу «Практическая часть» пояснительной записки. В рамках этапа следует выполнить генерацию иерархии классов на выбранном языке программирования с получением основных классов и структур данных, сформировать архитектуру программного модуля или модулей, определить алгоритмы методов, разработать при необходимости интерфейс программного продукта.
Следует заметить, что раздел «Практическая часть» пояснительной записки является наиболее объемным и практически важным. Здесь описывается выполнение основной части работы, связанное непосредственно с программированием и формированием структуры программного продукта. Каждое действие в рамках разработки программного модуля (модулей) должно быть обосновано и задокументировано.
Все классы должны быть описаны с указанием свойств и методов, для сложных методов, если такие есть, должны быть приведены алгоритмы. Все действия разработчика в этой части должны выполняться в соответствии с результатами проектирования, а описание разработки должно показывать связь между элементами проекта на языке UML и элементами программного проекта.
Программный текст должен выполняться в соответствии со стандартом образовательного учреждения. Тексты программных модулей в пояснительной записке не приводятся. Вместо этого программный проект записывается на компакт-диск, который прилагается к пояснительной записке.
Определение методики тестирования
Тестирование информационной системы входит в более общий процесс верификации, полноценное рассмотрение которого выходит за рамки дисциплины «Объектно-ориентированное программирование». Тем не менее, следует отметить ряд моментов, учёт которых является обязательным даже в том случае, когда речь не идёт о менеджерах проектов или специалистах в области верификации и тестирования.
Во-первых, следует различать процессы тестирования и отладки программного кода. Отладка выполняется программистом с помощью встроенных средств среды разработки и исходя из опыта написания программного кода. В основном она сводится к выявлению синтаксических и семантических ошибок в тексте программы. Тестирование – это процесс, требующий планирования и выполнения ряда предварительных процедур, основной из которых является составление набора тестовых примеров, образующих тест-план. Тестовые примеры в большинстве случаев основаны на функциональных требованиях к системе и могут затрагивать различные уровни разработки (модульное тестирование, интеграционное тестирование, системное тестирование).