Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1-3.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
499.71 Кб
Скачать

Основные этапы проектирования программ

Проектирование и последующая поддержка программного обеспечения включает несколько этапов:

  1. разработка спецификации (specification);

  2. проектирование или конструирование программы (design);

  3. доказательство правильности проекта (verification);

  4. кодирование, т. е. описание программ на языке про­граммирования (coding);

  5. отладка и проверка правильности программ (debugging and testing);

  6. доработка и улучшение программ (refining);

  7. производство окончательного программного продукта (production);

  8. поддержка программного продукта в процессе его ис­пользования (maintenance).

Рассмотрим перечисленные этапы более подробно. На первом этапе детально анализируется основная цель разработки программы и составляется подробное описание всех действий, которые она должна выполнять. Такое содер­жательное описание называется спецификацией. При разра­ботке спецификации необходимо дать ответы на следующие вопросы:

  • какими должны быть входные данные;

  • какие данные являются корректными и какие ошибоч­ными;

  • кто будет использовать разработанное программное обеспечение и каким должен быть интерфейс (средство общения с пользователем);

  • какие ошибки необходимо выявлять и какие сообщения желательно выдавать пользователю при наличии оши­бок;

  • какие упрощения, предположения и допущения можно сделать по отношению к программам;

  • перечислить все особые ситуации, которые требуют до­полнительного учета и специального рассмотрения;

  • какими должны быть выходные данные;

  • какая документация по программам должна быть подго­товлена;

  • как развивать и улучшать программы в будущем.

На этапе проектирования необходимо построить структу­ру программы, выбрать или разработать все алгоритмы, ко­торые она будет реализовывать, решить все вопросы по орга­низации данных. Здесь эффективным подходом является раз­деление сложной исходной задачи на некоторые подзадачи.

В частности, общую схему любой программы можно (и даже полезно) представить в виде трех последовательных блоков, причем правильность этой схемы сомнений не вызывает:

Блок 1. Задание исходных данных.

Блок 2. Решение поставленной задачи.

Блок 3. Вывод полученных результатов.

Выделение первого блока полезно для того, чтобы в самом начале проектирования программы подумать о том, что представляют собой ее исходные данные, в каком виде они должны быть представлены во внешней среде и в программе. Если исходные данные при каждом запуске программы должны задаваться человеком, то следует позаботиться об удобстве пользователя. При вводе исходных данных нетрудно допустить ошибку, поэтому при проектировании программы следует продумать, как должна вести себя программа при вводе ошибочных данных, предусмотреть реакцию программы на ошибку.

Многое из того, что говорилось об исходных данных, относится и к окончательным результатам.

После разработки общей структуры программы необхо­димо выполнить следующие этапы:

  1. установить, какие библиотечные (ранее разработанные) средства можно использовать и какие новые процедуры необходимо разработать;

  2. разработать новые структуры данных и алгоритмы вы­полнения новых процедур;

  3. обосновать (доказать) правильность проекта. При до­казательстве правильности проекта в первую очередь не­обходимо проверить критические части алгоритмов, ка­кими являются циклы и условные переходы. Выявление ошибок на этом этапе позволяет существенно упростить последующие этапы кодирования и отладки программ;

  4. произвести кодирование, т. е. описание алгоритмов и данных с помощью инструкций выбранного языка про­граммирования. Многие рассматривают этот этап как главный в программировании, хотя в действительности он является относительно второстепенным;

  5. произвести отладку и проверку (тестирование) програм­мы, цель которых — устранение логических ошибок. Ос­новным инструментом здесь являются отладчики, кото­рые позволяют проверить программу в некоторых спе­циальных режимах ее выполнения (пошаговый режим).

В процессе выполнения этапов 1—5 накапливается опре­деленный опыт, который дает основание для усовершенство­вания программы (этап 6). В этом случае дорабатываются или изменяются некоторые алгоритмы и модули. Усовершен­ствование не должно приводить к повторению цикла разра­ботки с самого начала.

После завершения программного продукта он передается пользователям (этап 7).

Последующая поддержка программного обеспечения (этап 8) сводится к устранению возможных ошибок, выявлен­ных пользователями на этапе эксплуатации. Другая цель под­держки — постепенное улучшение (развитие и модификация) программного продукта.

Итак, подведем итог и сформулируем требования к выполнению лабораторных работ, обязательные для каждого, кто начинает программировать. Для выполнения лабораторной работы необходимо проделать следующие этапы:

  1. Внимательно прочитать теоретический материал, приведенный перед лабораторной работой, текст лекций по данной теме, соответствующую главу учебника.

  2. Определить количество необходимых переменных для решения задачи, их имена и тип.

  3. Определить входные данные, область допустимых значений и способ их задания.

  4. Определить выходные данные, формат вывода, способ вывода на экран.

  5. Записать словесно по шагам ход решения задачи. Начать следует с разбиения задачи на блоки ввода данных, собственно решения задачи и вывода данных. Каждый блок затем конкретизируется путем разбиения на подзадачи до тех пор, пока решение задачи не будет продумано и записано в мельчайших деталях.

  6. Написать текст программы решения задачи.

  7. Определить заранее значение выходных данных при тестовых значениях входных данных.

  8. Откомпилировать и запустить программу на выполнение.

  9. Провести тестовый прогон программы, сравнить полученные результаты с ожидаемыми.

  10. Проверить работу программы для «пограничных» значений данных, особое внимание уделить конечным значениям параметров циклов.

  11. При необходимости воспользоваться трассировкой программы, проверить правильность работы при пошаговом выполнении.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]