Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Проектирование программ через функциональное усовершенствование.






 

Поскольку любая CF Pascal программа имеет функцию программы, задача проектирования программы может быть рассмотрена в два шага:

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

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

{< входное число, список делителей> }

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

В любом случае, мы концентрируемся на шаге 2 задачи проектирования, имея в виду, что оператор BEGIN программы или процедуры CF Pascal, который определяет ее значение, состоит из составных операторов всего трех видов:

1. операторов BEGIN

2. операторов IF

3. операторов WHILE

Каждый из этих операторов в свою очередь состоит из составных операторов тех же видов.

 

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

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

 

Заключение.

 

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

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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.