Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AlgStr / Библиотека / ЛЕКЦИИ / POSIBNIK / Виды и методы абстракции.DOC
Скачиваний:
36
Добавлен:
23.03.2015
Размер:
90.62 Кб
Скачать

Спецификации(с.). Виды спецификаций. Спецификация процедур. Спецификация а.Т.Д.

Этапы создания ПО:1.Изучение, 2.Проектирование, 3.Кодирование, 4.Тестирование и отладка, 5.Использование, 6.Повторное использование. На этапе проектирования что-то необходимо писать. В результате получаем спецификации. Спецификации проверяются на полноту и непротиворечивость. На этапе кодирования проверяется соответствие программы спецификации. Виды спецификаций:1)С. ЯП, 2)С. модулей, 3)С. процедур, 4)С. данных. Отличие процедуры от математ. ф-ции: 1)прцедуры могут иметь побочный эффект, 2)генерировать исключения, 3)могут обладать собственными данными, 4)может зацикливаться, т.к. обл. определения часто определяется PostFactum, 5)выдача неопределённого значения, 6)модификация глобальных объектов. Значением спецификации явл-ся набор всех программных модулей, ей удовлетворяющих. Этот набор модулей называется необходимым набором спецификаторов для данной спецификации. Критерии, применяемые к С. – ограниченность (С. д.б. настолько ограниченны, чтобы можно было отличить правильную реализацию от неправильной) и обобщенность. Два стиля написания С.: дефинитивный (описываются св-ва вх. и вых. значений, но нет алг-ма получения вых. значений) и операционный (приводится способ конструирования вых. значений). Свойства С.: 1)простота, 2)понимаемость. Факторы, обеспечивающие эти св-ва: 1)краткость, 2)избыточность, 3)структурированность. Третье св-во С. – полнота. Важность С. на различных этапах жизни прогр. обеспечения: Для разработчика спецификации дают сведения о том, что ему надо сделать, не ограничивая его в том, как это надо сделать. Пользователю они говорят, на что он может положиться при создании своих модулей. При тестировании они помогают генерировать тестовые данные.

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

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

pname = proc(..)returns(..)

requires % этот оператор задаёт все необх. требования, modifies % идентифицирует все модифицируемые вх. данные, effects % описывает выполняемые функции. Обязательным явл. только effects.

Пр. coneat = proc(a,b:string)

returns (ab:string)

effects при возврате ab есть новая строка, содержащая символы из а (в том порядке, в кот-м они расположены в а), за кот-ми следуют символы из b (в том порядке, в кот-м они расположены в b).

C. обычно принципиально отличаются от программ, поскольку они фокусируют своё внимание на описании самой абстракции, а не её реализации.

Спецификация АТД.

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

dname=data tupe is

% список операций.

Описание % здесь приводится описание абстр. д.

Операции % задаются спецификации для всех операций

end dname

C. бывают: 1)алгебраическими, 2)логическими, 3)модельными. Алгебраич. С. состоят из двух частей: 1)синтаксическая, 2)аксиоматическая.

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

Логические С. Определяют некоторую операцию с помощью формул полной корректности: {P} A {Q}. P – предусловие, Q –постусловие. Каждая такая ф-ла включает в себя два предиката –предусл-е и постусл-е , а также сегмент пр-мы. Эта ф-ла означает: если св-во Р изначально верно и если выполняется А, то св-во Q становится верным после этого выполнения.

Модельными наз. С., описывающие новый объект в терминах других объектов, таких, кот-е по предположению понятны тем, для кого эта С. предназначена. Ср-ва моделирования: 1)таблицы (используются для описания конечных ф-ций, конечных отношений и табличных стр-р данных), 2)Равенства и системы подстановок, 3)логические ср-ва, 4)Графы, сети, диаграммы.

Соседние файлы в папке POSIBNIK