УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
РАЗРАБОТКА И ДОКУМЕНТИРОВАНИЕ ПРОГРАММ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО КУРСОВОМУ ПРОЕКТИРОВАНИЮ
ДЛЯ СТУДЕНТОВ НАПРАВЛЕНИЯ 071900
Составители: А.Е.Докторов,
Е.А.Докторова
Ульяновск 2000
УДК 681.3.08 (076)
ББК 32.973-01 я 7
Р 17
Рецензент доцент кафедры «Высшая математика», канд. техн. наук В.В. Селиванов
Одобрено секцией методических пособий научно-методического совета университета
Разработка и документирование программ: Методические указания по
Р 17 курсовому проектированию для студентов направления 071900 / Сост.: А.Е. Докторов, Е.А. Докторова. – Ульяновск: УлГТУ, 2000. – 38 с.
Составлены в соответствии с учебным планом направления 091700. Преследуют цель ориентировать студентов на содержание и порядок выполнения курсовой работы по программированию. Даются основные принципы и технология структурного программирования. Излагаются необходимые сведения по составу программной документации и требования к ней, соответствующие государственным стандартам ЕСПД. Работа подготовлена на кафедре ИВК.
УДК 681.3.08 (076)
ББК 32.973-01 я 7
© Оформление УлГТУ, 2000
© А.Е. Докторов,
Е.А. Докторова, 2000
Содержание.................................................................................................... 3
ВВЕДЕНИЕ.................................................................................................... 4
1. ЦЕЛЬ КУРСОВОЙ РАБОТЫ................................................................. 4
2. СУЩНОСТЬ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ.............. 5
2.1. Проектирование «сверху вниз»......................................................... 5
2.2. Модульное программирование......................................................... 6
2.3. Структурное кодирование.................................................................. 8
2.4. Технология структурного программирования............................... 8
3. ДОКУМЕНТИРОВАНИЕ И СТАДИИ РАЗРАБОТКИ ПРОГРАММЫ 10
3.1. Общие сведения о ЕСПД................................................................... 13
3.2. Содержание программных документов......................................... 15
3.2.1. Техническое задание....................................................................... 15
3.2.2. Текст программы............................................................................ 16
3.2.3. Описание программы.................................................................... 16
3.2.4 Программа и методика испытаний............................................... 17
3.2.5. Описание применения.................................................................... 17
3.3. Стадии разработки программы...................................................... 18
4. ПРИМЕР РАЗРАБОТКИ ПРОГРАММЫ............................................ 18
4.1. Постановка задачи............................................................................ 18
4.2. Предварительный анализ задачи.................................................... 19
4.3. Проектирование программы........................................................... 20
4.3.1. Подготовительный этап работы программы.......................... 21
4.3.2. Основной цикл работы программы.......................................... 30
4.3.3. Завершение работы программы................................................ 35
5. ОФОРМЛЕНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ............................ 36
СПИСОК ЛИТЕРАТУРЫ.......................................................................... 37
Для решения простейших задач программирования необходимо знать средства и возможности конкретного языка программирования. По мере усложнения задач знание свойств языка, оставаясь необходимым, уже не является фактором, определяющим успех проектирования программы. На первый план выдвигаются знание и умение конструировать логику вычислительного процесса в целом, а не отдельных его шагов. Определяющими здесь становятся вопросы методологии и технологии программирования.
Данные методические указания призваны восполнить этот пробел и помочь в выполнении курсовой работы, когда возникает необходимость решения достаточно сложной задачи программирования. В указаниях приводится краткое изложение особенностей структурного, модульного программирования. Значительная часть пособия посвящена ознакомлению студентов со стандартами, входящими в единую систему программной документации (ЕСПД), поскольку они регламентируют состав и содержание программных документов, оформляемых в процессе курсового проектирования. В указаниях также приводится иллюстрация процесса проектирования программы методом «сверху вниз» на примере решения относительно несложной задачи.
К моменту выполнения курсовой работы по программированию прослушан курс лекций по языку Турбо Паскаль, а также есть опыт выполнения лабораторных работ и прохождения учебной вычислительной практики. Задания лабораторных работ преследуют цель усвоения студентами отдельных средств языка программирования. Курсовая работа является следующим важным шагом в освоении методологии и технологии программирования, так как впервые ставит относительно сложную задачу создания программного продукта, для решения которой далеко недостаточно знать тонкости языка программирования.
В процессе проектирования программы практически осваиваются основные этапы этого процесса, а также правила документального оформления результатов каждого этапа в соответствии с требованиями ЕСПД, включающей в себя около 30 государственных стандартов.
С целью ознакомления с современными концепциями методологии и технологии программирования курсовая работа предполагает обязательное применение части из них и, прежде всего, - реализации идей структурного программирования, которое не противоречит ни одному из современных методов борьбы со сложностью разработки программного обеспечения, будь то инструментальное программирование, объектно-ориентированное программирование или программирование с использованием прототипов.
2. СУЩНОСТЬ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
Сложность существующих программных систем превышает возможности человеческого интеллекта. Благодаря все новым и новым методологиям, технологиям и даже идеологиям создаются программные системы такой сложности, что все их задачи невозможно охватить одним разработчиком. Одной из таких технологий и является структурное программирование.
Структурное программирование предусматривает такую организацию проектирования программы и процесса кодирования, которая предотвращает большинство логических ошибок и обнаружение уже допущенных. Структурное программирование фокусирует усилия проектировщика на отработку логики программы, т.е. фактора программирования, наиболее подверженного ошибкам.
Структурное программирование включает три главные составляющие:
1. Проектирование «сверху вниз».
2. Модульное программирование.
3. Структурное кодирование.
2.1. Проектирование «сверху вниз»
Проектирование программы «сверху вниз» - это, прежде всего, правильная постановка задачи; разбиение этой задачи на подзадачи; разбиение этих подзадач на еще более мелкие подзадачи и т.д. Процесс такого поэтапного уточнения продолжается до тех пор, пока подзадачи не станут настолько простыми, что дальнейшее разбиение становится нецелесообразным. При этом каждой подзадаче будет соответствовать один модуль будущей программы.
Сначала необходимо уяснить постановку задачи и четко ее изложить. Приступая к проектированию, нужно на естественном языке описать то, что надлежит сделать. До этого момента к программированию приступать нельзя, поскольку такая попытка заведомо будет обречена на провал. Считается, что правильная постановка задачи - это 90% ее решения.
Метод проектирования «сверху вниз» предусматривает сначала определение задачи в общих чертах, а затем постепенное уточнение структуры путем внесения более мелких деталей. На каждом шаге выявляются основные функции, которые нужно выполнить.
Описанный процесс на каждом этапе должен сопровождаться составлением спецификаций, в которых указывается, как программа или подпрограмма связаны с реальным миром или моделью реального мира. В результате получается письменный документ, который служит для справок и руководства к последующей работе.
Описание данных - одна из составных частей задачи проектирования. Это описание должно включать тщательно подобранные примеры, демонстрирующие функции системы, и наиболее существенные варианты сочетаний значений данных.
Неизбежным этапом разработки является тестирование. В процессе описания каждого модуля должны быть описаны и его тестовые данные. Логическая проверка фрагментов программы уменьшает объем тестирования конечной программы. При использовании структурного программирования правильность программы обеспечивается уже самим методом программирования. Проектирование должно быть завершено до начала программирования.
Исправление ошибок, обнаруженных во время проектирования, обходится относительно недорого (переделать проект) по сравнению с обнаружением и исправлением ошибок на конечном этапе тестирования (перепрограммировать задачу).
Таким образом, до того как начать программирование, необходимо написать программу на естественном языке, разработать заранее тестовые данные, т.е. разработать проект, уделяя особое внимание исключению возможных ошибок.
2.2. Модульное программирование
Модульное программирование - это процесс разделения программы на логические части, называемые модулями, и последовательное программирование каждой части. Когда большая единая задача разделена на подзадачи, то значительно проще понять и прочесть программу.