Рекомендации по выполнению курсовой работы
Федеральное агентство по образованию
Российской Федерации
Московский государственный университет дизайна и технологии
Кафедра информационных технологий
А.А. Семенов
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по выполнению курсовой работы для студентов
специальности
230401 «Системы автоматизированного проектирования»
по дисциплине “Технология разработки программного обеспечения”
МГУДТ 2009 г.
Работа рассмотрена на заседании кафедры и рекомендована к использованию при выполнении курсовых работ по дисциплине
“Технология разработки программного обеспечения”.
Протокол № _____ от «__» _______200__г.
Зав. кафедрой: к.т.н. Разин И.Б.
Авторы: к.т.н. Семенов А.А.
Рецензент: к.т.н. Миронов В.П.
В методических указаниях рассмотрены вопросы выполнения и оформления курсовой работы по дисциплине “Технология разработки программного обеспечения ”.
Предназначены для студентов специальности 230401 «Системы автоматизированного проектирования».
СОДЕРЖАНИЕ
Цель курсовой работы………………………………………….…………4
Содержание курсовой работы……………………………………….……5
Рекомендации по выполнению курсовой работы……………………….6
Рекомендации по составлению пояснительной записки………………..8
Список заданий для выполнения курсовой работы……………………..10
Список рекомендуемой литературы……………………………………. 17
Приложения………………………………………………………………. 18
Цель курсовой работы
Курсовая работа по «Технологии разработки программного обеспечения» выполняется при обучении студентов специальности 230401 «Системы автоматизированного проектирования» на третьем курсе (пятый семестр) в соответствии с установленным учебным планом.
Цель курсовой работы:
· закрепление и практическая реализация знаний, полученных при изучении курса “Технология разработки программного обеспечения”;
· развитие у студентов навыков самостоятельной научно-исследовательской работы в части разработки программных продуктов;
· приобретение опыта выработки обоснованных и оптимальных решений поставленных задач;
· совершенствование приемов работы с научно-технической и нормативной литературой;
· повышение уровня инженерной культуры при разработке документов.
Выполнение работы требует творческого подхода и всестороннего исследования поставленного задания.
Основными этапами курсовой работы являются:
· Анализ поставленной задачи.
· Выбор, обоснование и изложение метода решения поставленной задачи.
· Построение алгоритма решения задачи.
· Создание и отладка программного модуля.
· Тестирование и проверка правильности работы программы.
· Оформление пояснительной записки.
· Защита курсовой работы.
В процессе выполнения работы студент должен научиться самостоятельно работать с литературой, список которой должен быть обязательно включен в пояснительную записку.
По окончании выполнения и защиты курсовой работы студенты должны уметь комплексно подходить к решению прикладных задач программирования на основе системного подхода с помощью методов процедурного и объектно-ориентированного программирования, интерпретировать результаты исследования, обосновывать выводы и предложения, работать с научно-технической и справочной литературой, оформлять документацию в соответствии с требованиями нормативных документов.
Содержание курсовой работы
Дисциплина "Технология разработки программного обеспечения" относится к циклу специальных дисциплин, формирующих профессиональную базу будущего инженера по специальности "Системы автоматизированного проектирования". Целью дисциплины является формирование у студентов ясных представлений о современном состоянии программирования, языке программирования С/С++, являющегося на сегодняшний день одним из самых мощных языков для разработки операционных систем и программ различного уровня сложности.
Курсовая работа представляет собой разработку программного продукта для развития практических навыков использования языка программирования высокого уровня и современных интегрированных сред для разработки программного обеспечения.
Для руководства деятельностью студентов назначается руководитель, который составляет задание на курсовую работу, следит за ее ходом, проводит консультации, оказывает студентам консультационную помощь в процессе выполнения.
Каждому студенту выдается индивидуальное задание. Выполнение работы осуществляется во время самостоятельной работы студентов. Промежуточный контроль работы и консультации студентов проводятся назначенным преподавателем в предусмотренные расписанием часы.
По окончании выполнения работы студент должен представить преподавателю разработанную им программу и пояснительную записку. Преподаватель проверяет соответствие выполненной работы полученному заданию и оценивает качество и правильность работы программы. По результатам проверки выставляется оценка. Неудовлетворительное или недостаточное выполнение работы ведет к её доработке или переработке.
На выполнение курсовой работы отводится семестр, окончательная сдача работы студента преподавателю должна быть произведена до сессии.
Рекомендации по выполнению курсовой работы
Анализ поставленной задачи и выбор метода ее решения.
Выполнение курсовой работы студент должен начать с четкого уяснения поставленной задачи. Необходимо ответить на вопросы: “Что задано?” , “Какой должен быть получен результат?”, “Как получить результат?”
Выбор метода решения задачи требует изучения литературы по теме этой задачи. Необходимо разобраться в основных принципах и методах разработки программного обеспечения, создания прикладных программ. Метод решения должен ясно описывать, каким образом может быть получен исходный результат. В ряде случаев метод решения может опираться на некоторый математический аппарат, тогда требуется получить математическое решение задачи.
Когда существует несколько методов решения одной задачи, встает проблема выбора оптимального (наилучшего) метода. В первую очередь надо определиться, каким критерием оптимальности воспользоваться. Критериям могут быть легкость реализации метода в виде алгоритма, время решения задачи, возможность проверки правильности решения задачи и прочие.
Когда метод решения выбран, нужно на примерах рассмотреть возможные значения исходных данных и для каждого случая построить выходной результат.
Разбиение задачи на подзадачи (структуризация).
В большинстве случаев задача может быть разбита на подзадачи, каждая из которых имеет собственный алгоритм решения. Разбиение задачи необходимо для того, чтобы программа была хорошо структурирована, а следовательно, понятна и удобна для отладки. Имеет смысл представить каждую подзадачу в виде отдельной процедуры или функции.
Алгоритмизация подзадач.
Для каждой подзадачи строится отдельный алгоритм, определяются входные, промежуточные и выходные данные, указываются связи между подзадачами, для чего следует составить структурную схему всей задачи.
Программная реализация задачи.
В данной курсовой работе реализация проводится на языке C++. Отдельные подзадачи оформляются в виде процедур или функций, методов класса. Обязательное условие - использование параметров при передаче данных из основной программы в подпрограммы и обратно. Требуется четкое понимание различий между формальными и фактическими параметрами, а также между параметрами-значениями и параметрами-переменными.
Отладка и тестирование программы.
Большие трудности возникают при нахождении и устранении семантических (смысловых) ошибок, которые возникают из-за неправильно составленного алгоритма, неверно понятого условия задачи, не учтенных значений исходных данных и т.д. Устранением этих ошибок программист занимается во время отладки. Отладка состоит из двух взаимосвязанных действий - тестирования и исправления.
Цель процесса тестирования - найти ошибки, если такие имеются. Исправление ошибки - это поиск ее места (локализация), причины и соответствующее изменение программы.
Если программа не содержит синтаксических ошибок и может быть выполнена на компьютере, то она обязательно реализует какую-то функцию (функция понимается в самом широком смысле - как отображение входных данных в выходные). Функция, которую вычисляет программа, может сильно отличаться от той, для вычисления которой программа написана (желаемая функция). Любое описание желаемой функции называется спецификацией. Спецификация может быть задана математическим выражением, просто перечислением возможных значений исходных данных и соответствующих им результатов.
В конечном итоге тестирование - это сравнение спецификаций желаемой и фактически выполняемой функции.
Набор исходных данных, для которых известен результат, называют тестом. Если результаты работы теста не совпадут с известными значениями, то, значит, в программе имеется ошибка. Тест, выявивший ошибку, считается успешным. Если результаты работы теста совпадут с известными заранее, то данный тест не смог выявить ошибку. Такой тест называется неуспешным. Отладка программы заканчивается, когда достаточное количество тестов выполнилось неуспешно, т.е. программа на них выдала правильные результаты.