Министерство образования и науки Украины
Севастопольский национальный технический университет
Методические указания
к курсовому проектированию по дисциплине
«Объектно-ориентированное программирование»
для студентов дневной и заочной формы обучения
направления 050101 – «Компьютерные науки»
Часть 1
Севастополь
2011
УДК 004.42 (075.8) Методические указания к курсовому проектированию по дисциплине «Объектно-ориентированное программирование» для студентов дневной и заочной формы обучения направления 050101 «Компьютерные науки»: в 2 ч. / СевНТУ; сост.
Ю.В. Доронина, Т.И. Сметанина, А.К. Забаштанский. Севастополь: Изд-во СевНТУ, 2011. ч. 1. 24 с.
Цель указаний: оказать методическую помощь студентам дневной и заочной формы обучения направления 050101 «Компьютерные науки» в выполнении курсовой работы по дисциплине «Объектно-ориентированное программирование».
Методические указания составлены в соответствии с требованиями программы дисциплины «Объектно-ориентированное программирование» для студентов дневной и заочной формы обучения направления 050101 — «Компьютерные науки» и утверждены на заседании кафедры Информационных систем протоколом № 7 от февраля 2011 г.
Допущено учебно-методическим центром СевНТУ в качестве методических указаний.
Рецензент: Кожаев Е.А., канд. техн. наук, доцент кафедры кибернетики и вычислительной техники.
СОДЕРЖАНИЕ
1. Цель и задачи курсового проектирования ……………………………………. 2. Тематика курсового проектирования ………………………………………… 3. Выбор варианта задания………………………………………………………… 4. Порядок выполнения курсовой работы ……………………………………… 5. Краткая характеристика основных этапов разработки программы ………… 6. Разработка программных документов………………………………………… 6.1. Единая система программной документации…………………………… 6.2. Требования к содержанию пояснительной записки и правила оформления……..……………………..…………………………….….………………… 7. Порядок защиты курсовой работы …………………………………………… Библиографический список ……………………………………………………… Приложение А. (обязательное) Варианты заданий к курсовой работе …….… Приложение Б. (справочное) Пример оформления титульного листа ………… Приложение В. (обязательное) Бланк задания на курсовое проектирование.…1. ЦЕЛИ И ЗАДАЧИ КУРСОВОГО ПРОЕКТИРОВАНИЯ
Целями курсового проектирования является изучение современного подхода к программированию на основе объектно-ориентированной технологии, приобретение навыков написания программ на языке с поддержкой ООП (С++, Java и Object Pascal) на примере написания программы согласно варианту задания.Для достижения цели на разных этапах курсового проектирования должны быть решены следующие задачи:
- выбор варианта задания и языка реализации, детализация поставки задачи;
- абстрагирование, разработка классов и их иерархии;
- написание текста (кодирование) разработанных классов на выбранном языке;
- разработка тестовых примеров;
- тестирование и отладка программы;
- разработка программных документов в соответствии с действующими стандартами.
По окончанию курса студенты должны овладеть объектно-ориентированным подходом решения практических задач, овладеть инструментами, сопровождающими разработку программных систем с использованием этого подхода.
2. ТЕМАТИКА КУРСОВОГО ПРОЕКТИРОВАНИЯ
Объектный подход — один из современных методов реализации программных систем (ПС). Наиболее показательна эффективность применения объектного подхода для больших ПС со сложным характером взаимодействия значительного количества элементов.Тематика курсовой работы продиктована популярностью динамических моделей реального времени. В качестве примера можно привести системы моделирования работы электронных схем (язык VHDL), симуляция работы динамической системы пакетом Simulink. По схожему принципу организуется работа стратегических игр, которые развивают у пользователя стратегическое мышление, обдумывание действий на несколько шагов вперед, предвидение и тактику действий.
Рассматриваемые модели учитывают влияние большого количества факторов на многие элементы системы, и разработка таких систем требует от проектировщика продуманных шагов и взвешенных решений.
Таким образом, основная задача курсовой работы — детальное проектирование и программная реализация системы, моделирующей процессы создания и взаимодействия группы объектов.
3. ВЫБОР ВАРИАНТА ЗАДАНИЯ
Выбор варианта осуществляется по согласованию с преподавателем.Все варианты разбиты на 4 группы (Приложение А):
- в первой группе заданий необходимо на базе объектного подхода спроектировать и разработать модель игры по заданному плану-варианту;
- во второй группе заданий предлагается разработать на базе теории систем массового обслуживания модель по заданному плану-варианту;
- в третьей группе заданий необходимо разработать систему сбора статистической информации по заданному плану-варианту;
- в четвертой группе заданий необходимо на базе объектного подхода спроектировать и разработать модель сложной системы по заданному плану-варианту.
Примечание: при выполнении работы возможно дополнение или незначительное изменение исходных условий постановки задачи в целях более качественной реализации проекта. По сути задания представляют собой лишь канву тех или иных описаний поведения одиночных объектов или их групп. Внесение изменений согласовывается с преподавателем.
4. ПОРЯДОК ВЫПОЛНЕНИЯ КУРСВОЙ РАБОТЫ
Курсовая работа (КР) по дисциплине ООП выполняется в течение семестра.Защита курсового проекта происходит в комиссии на 13-14 неделе семестра по утвержденному графику. Чтобы получить допуск к защите, необходимо предъявить следующие документы и программные продукты:
- пояснительную записку (ПЗ);
- графические материалы (плакат формата А1).
Общий порядок работы над КР определяется календарным планом, приведенным в бланке задания на курсовое проектирование.
Курсовая работа может выполняться индивидуально или группой студентов 2человека, в зависимости от сложности задания. В качестве языка программирования выбираются языки Object Pascal, Cи++, Java и др. (выбор языка программирования ограничивается требованием абсолютно полной поддержки возможностей объектного подхода).
Выполнение работы разбивается на несколько этапов:
1. Объектно-ориентированный анализ. Описание объектов, классов и их атрибутов. Описание цели игры, стратегии. Построение информационной модели (ИМ) как представления предметной области разработки в статике. Построение жизненного цикла системы (программы и объекта) (ЖЦ) и диаграммы переходов состояний (ДПС) как динамического представления системы. Построение диаграммы потоков данных и действий (ДПДД), как представления внутренней организации программной системы.
2. Объектно-ориентированное проектирование. Разработка иерархии классов в терминах программной среды.
3. Объектно-ориентированное программирование. Описание входных и выходных данных, методов, функций (процедур).
4. Пользовательский интерфейс, описание работы программы.
5. Анализ программы. Критерии качества ПС. Краткая характеристика содержания каждого из этапов изложена в следующем разделе.
Во время защиты КР студент должен сделать доклад, продемонстрировать работу программы на персональном компьютере, ответить на вопросы, относящиеся как к работе программы, так и к основным теоретическим положениям дисциплины ООП.
Курсовая работа оценивается по пятибалльной и рейтинговой шкалам (ECTS). Критериями, влияющими на результирующую оценку, являются:
- полнота реализации требований к программе;
- удобство программного интерфейса;
- стиль написания программного кода;
- тщательность тестирования программы;
- качество оформления пояснительной записки и графических материалов;
- полнота и правильность ответов на вопросы;
- соблюдение календарного плана выполнения курсового проектирования.
Критерии оценок:
- отлично: полностью разработанная ПС в соответствии с предложенным или самостоятельно разработанным (предварительно утвержденным ведущим преподавателем) заданием, положительные критерии качества ПС;
- хорошо: полностью разработанная ПС в соответствии с предложенным заданием или самостоятельно разработанным заданием (предварительно утвержденным ведущим преподавателем), но критерии качества ПС имеют недостаточный уровень;
- удовлетворительно: полностью спроектированная ПС в соответствии с предложенным заданием (исследована предметная область, построены иерархии классов, сделаны все необходимые проектные решения и предположения, полностью описан результат функционирования ПС, описаны пути обеспечения критериев качества ПС), но ПС реализована частично;
- неудовлетворительно: ПС спроектирована, но реализована частично, критерии качества ПС не соблюдены.
5. КРАТКАЯ ХАРАКТЕРИСТИКА ОСНОВНЫХ
ЭТАПОВ РАЗРАБОТКИ ПРОГРАММЫ
Создание любой программы начинается с постановки задачи. Описание общих требований к программе и постановка задачи на курсовое проектирование изложены в разделах 2 и 3. На этом этапе также определяется среда, в которой будет выполняться программа: требования к аппаратуре, используемая операционная система и другое программное обеспечение.Объектный подход предусматривает следующие этапы:
- OOA (object oriented analysis) — объектно-ориентированный анализ;
- OOD (object oriented design) — объектно-ориентированное проектирование;
- OOP (object oriented programming) — объектно-ориентированное программирование.
Рассмотрим кратко эти ключевые понятия (определения Г. Буча)[2]:
Объектно-ориентированный анализ — это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
Объектно-ориентированное проектирование — это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
В данном выше определении содержатся два важных свойства объектноориентированного проектирования:
1) оно основывается на объектно-ориентированной декомпозиции;
2) использует многообразие приемов представления моделей, отражающих логическую (классы и объекты) и физическую (модули и процессы) структуру системы, а также ее статические и динамические аспекты.
Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Программа будет объектно-ориентированной только при соблюдении трех требований:
1) ООП использует в качестве базовых элементов объекты, а не алгоритмы;
2) каждый объект является экземпляром какого-либо определенного класса;
3) классы организованы иерархически.
6. РАЗРАБОТКА ПРОГРАММНЫХ ДОКУМЕНТОВ
6.1. Единая система программной документации (ЕСПД) Разработка документации на программу ответственный этап проектирования.От качества выполнения документации в значительной степени зависит не только эффективность использования программы, но и пригодность её к дальнейшему развитию и сопровождению.
Разработка программных документов выполняется в соответствии с ЕСПД, которая представляет собой комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ и программной документации. Перечень стандартов, входящих в ЕСПД, приведен в приложении Б. В соответствии с ЕСПД на разных стадиях проектирования программы составляются следующие программные документы (ГОСТ 19.101-77): техническое задание, пояснительная записка, текст программы, описание программы, программа и методика испытаний, различные эксплуатационные документы (формуляр, описание применения, руководство оператора, руководство программиста и др.). Общие требования к программным документам изложены в ГОСТ 19.105-78.
При выполнении курсового проекта разрабатывается пояснительная записка.
6.2. Требования к содержанию пояснительной записки и В рамках настоящего учебного проекта совмещены несколько стадий проектирования (эскизное, техническое и рабочее проектирование). Поэтому разрабатываемая пояснительная записка к курсовому проекту будет объединять в себе несколько документов, требования к которым определяются ГОСТ 19.404-79 (требования собственно к пояснительной записке), ГОСТ 19.505-79 (требования к руководству оператора) и ГОСТ 19.401-78 (требования к тексту программы). ПЗ к курсовому проекту должна содержать следующие структурные элементы и разделы:
- техническое задание (на специальном бланке);
- содержание;
- перечень сокращенных и условных обозначений (при необходимости);
- список исполнителей (при необходимости);
- постановка задачи;
- проектное решение;
- программная реализация;
- перечень ссылок;
- приложения (обязательное приложение — текст программы).
Титульный лист пояснительной записки оформляют в соответствии с приложением В.
Техническое задание - документ на специальном бланке, в соответствии с которым выполняется курсовое проектирование. Образец заполнения бланка задания представлен в приложении Г. Бланк задания заполняется в начале проектирования и подписывается студентом и руководителем проекта.
В аннотации приводят сведения о назначении документа (в данном случае пояснительной записки) и краткое изложение его сути в виде 6 — 8 предложений. В содержании указываются наименования разделов и подразделов пояснительной записки (кроме титульного листа и технического задания), а также номера соответствующих страниц.
Перечень сокращений и условных обозначений содержит все используемые в тексте пояснительной записки малораспространенные условные обозначения, символы, единицы, сокращения и термины. Независимо от этого при первом появлении этих элементов в тексте необходимо привести их расшифровку. Элементы перечня должны быть упорядочены по алфавиту.
Во введении следует указать наименование программы, а также документы, на основании которых ведется разработка с указанием организации и даты утверждения. В рамках настоящего курсового проектирования документ – это техническое задание, организация – Севастопольский национальный технический университет.
Наименование программы и дата утверждения, указанные в разделе «Введение», должны соответствовать значениям, указанным на листе технического задания. В этом разделе обосновывается актуальность решаемой задачи, указываются цель и перечисляются задачи, которые необходимо решить для достижения поставленной цели. Во введении также приводится краткое изложение последующих разделов пояснительной записки.
При формулировке цели следует указать наименование программы, важнейшие её характеристики и назначение. Рекомендованный объем введения — страница.
Раздел «Список исполнителей» приводится в случае выполнения задания группой студентов. В разделе приводится список исполнителей с подробным указанием вклада каждого из них.
Раздел «Постановка задачи» должен содержать следующие подразделы:
- цель разработки (например: разработать программную систему на базе объектного подхода, реализующую заданные функции);
- описательная постановка задачи (описание стратегии работы системы, предполагаемого интерфейса, взаимодействия с пользователем);
- ограничения, условия выполнения, функционирования.
Рекомендуемый объем этого раздела 1 – 2 страницы.
Раздел «Проектное решение (разработка объектной модели)» должен содержать следующие подразделы:
- абстрагирование и выделение объектов;
- построение иерархии классов (структура);
- построение информационной модели;
- описание ЖЦ (описание жизненного цикла программы и жизненного цикла одного из объектов);
- ДПС (диаграмма переходов состояний);
- ДПДД (диаграмма потоков данных и действий).
Рекомендуемый объем этого раздела 8 … 10 страниц.
Раздел «Программная реализация» должен содержать следующие подразделы:
- обоснование выбора языка (системы) программирования;
- общее описание взаимодействия программных модулей (структурная схема программы);
- описание реализации основных классов и их методов (продемонстрировать использование наследования, полиморфизма, инкапсуляции);
- интерфейс пользователя (подробное описание работы программы со снимками экрана);
- критерии качества программной системы.
Рекомендуемый объем раздела 15…20 страниц.
В выводах указываются основные и смежные отрасли использования спроектированной программы, делаются выводы о соответствии её техническому заданию и о путях дальнейшего усовершенствования.
Выводы формулируют в прошедшем времени («получено», «достигнуто», «разработано» и т.п.) в обратном порядке по отношению к порядку следования задач во введении, т.е. от решенных задач к цели. При этом следует не только констатировать факт решения задачи (например, «разработана схема алгоритма»), но дать краткую характеристику результату. Отдельным абзацем приводят фразу о факте достижения цели проекта, формулируют достигнутую цель и приводят рекомендации о дальнейшем использовании результатов проекта.
Рекомендуемый объем выводов — 1 страница.
В разделе «Перечень ссылок» необходимо поместить перечень научнотехнических публикаций, нормативно-технических документов и других научнотехнических материалов, на которые есть ссылки в основном тексте ПЗ.
В обязательном приложении приводится текст программы с комментариями. Текст программы содержит символическую запись программы на языке программирования с комментариями, отражающими структуру и назначение частей программы. Помимо текста программы, в приложение могут быть включены и другие документы, использованные при разработке.
Графический материал представляется в виде 1 плаката, на котором схематически изображается описание проектного решения: иерархия объектов, их взаимодействие, структура модулей программой системы.
Правила оформления пояснительной записки приведены в [8].
В случае выполнения курсовой работы группой студентов, пояснительная записка оформляется в единственном экземпляре, как и плакат (один на группу).
7. ПОРЯДОК ЗАЩИТЫ КУРСОВОЙ РАБОТЫ
Курсовая работа защищается перед ведущим преподавателем.Порядок защиты следующий:
1. За три-пять дней до назначенного срока защиты сдается на проверку пояснительная записка, полностью оформленная и сшитая вместе с макетами плакатов или чертежей.
2. В назначенный срок разработчиками демонстрируется реализованный программный продукт в окончательном варианте (Защищаемая программная система должна содержать в обязательном порядке руководство пользователя, удобный интерфейс).
3. Наряду с демонстрацией разработанной программной системы студенты отвечают на вопросы комиссии, касающиеся как конкретного проекта и его реализации, так и объектного подхода в целом.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Белецкий Я. Энциклопедия языка Си / Я.Белецкий. — М.: Мир, 1992. — 687 с.2. Буч Г. Объектно-ориентированное проектирование с примерами применения / Г.Буч. — М.: Конкорд, 1992. — 519 с.
3. Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. 2-е изд. / Г.Буч. — М.: "Издательство Бином", СПб:"Невский диалект", 1998. — 278 с.
4. Р. Вайнер. С++ изнутри / Р.Вайнер. Л.Пинсон. — Киев: НПИФ "ДиаСофт", 1993. — 304 с.
5. Айра Пол. Объектно-ориентированное программирование на С++ /Айра Пол. — М. : "Издательство Бином", СПб: "Невский диалект", 2001. — 464 с.
6. Г. Шилдт. Самоучитель С++. 3-издание / Г. Штлдт. — БХВ-Петербург, 2003. — 687 с.
7. Х. М. Дейтел, П. Дж. Дейтел. Как программировать на С++ (полное издание) / Х. М. Дейтел, П. Дж. Дейтел.; под ред. В.В.Тимофеева. — М.: Бином, 2008. — 1454 с.
8. Методические указания к курсовому проекту по дисциплине «Основы программирования и алгоритмические языки» для студ. дневной и заочной формы обучения направления 050101 — «Компьютерные науки» / СевНТУ ; сост. В. Н. Бондарев, Л. Ф. Давиденко, Т. И. Сметанина, В. Н. Хоролич. — Севастополь: Изд-во СевНТУ, 2009. — 76 с.
ПРИЛОЖЕНИЕ А
Таблица А.1 — Стратегические игры № ва- НаименоФункции системы рианта вание В системе моделируется противоборство двух колоний.1.1 «Противоборство – Колония состоит из строений и юнитов (живых существ).
Юнит обладает набором характеристик: на сколько клеток