Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011 / 2011 / UP_MODPR_.RTF
Скачиваний:
38
Добавлен:
12.03.2015
Размер:
541.34 Кб
Скачать

2. Проектирование программы

Не спешите выходить на машину, тщательное проектирование сокращает общее время разработки! Проектирование программы включает: постановку задачи, внешнее проектирование, проектирование структуры и проектирование модулей. Проектируйте программу сверху вниз (от целого к деталям), не углубляйтесь преждевременно в детали!

2.1. Постановка и анализ задачи

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

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

2.2. Внешнее проектирование

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

2.2.1. Методика внешнего проектирования

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

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

Назначение и функции программы определяются и описываются как указано в разделе 2.1.

Описание входных и выходных данных включает их перечень, структуру и местонахождение. Оно составляется как инструкция для пользователя по вводу исходных данных и использованию результатов программы.

Описание данных приводится в общем виде и иллюстрируется примерами. Удобно использовать примеры из раздела постановки задачи.

При составлении спецификации программы во время внешнего проектирования необходимо доопределить результаты ее работы для всех возможных недопустимых данных. Программа должна проверять правильность входных данных. При обнаружении ошибок программа обычно сообщает о них, а затем, если возможно, исправляет их каким-либо образом и продолжает работу. Худшее, что может сделать программа, - принять неправильные входные данные и выдать бессмысленный, но правдоподобный результат.

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

Сообщения необходимо пронумеровать, так удобнее на них ссылаться. Формулировки сообщений должны быть единообразными и понятными пользователю. Ему должно быть ясно, что произошло и как поступить. В частности, не следует упоминать в сообщениях неизвестные (и ненужные!) пользователю детали алгоритма или внутренних структур данных программы. Неудачное сообщение: "n > 10. Таблица переполнена" лучше сформулировать, например, так:

"Ошибка: количество вершин > 10. Повторите ввод".

Более подробно выбор внешнего представления данных рассмотрен в разделе 2.2.2.

Программа может иметь входные и выходные файлы, имена которых указываются ей в команде запуска программы из операционной системы. Эти имена передаются программе как параметры функции main (см., например, [27, 29]). Для входного файла vhod и выходного файла rez, в операционной системе MS DOS или UNIX программу можно запустить, например, командой:

pkrc vhod rez

где pkrc - имя файла, содержащего исполняемый модуль программы.

Можно не указывать в программе в явном виде имена файлов. В этом случае подразумевается стандартный входной файл, обычно вводимый с клавиатуры, и стандартный выходной файл, обычно выводимый на экран, которые при запуске программы можно переключить на любые файлы с заданными именами с помощью переадресации ввода-вывода [27]. Если, например, исходные данные вместо клавиатуры необходимо взять из файла vhod, а результат вместо экрана должен выводиться в файл rez, программа вызывается следующей командой операционной системы MS DOS или UNIX:

pkrc <vhod >rez

где pkrc - имя файла с исполняемым модулем программы.