Чтение онлайн

на главную

Жанры

Технологии программирования

Костерин В В

Шрифт:

Рис. 1.4. Абстракция программы как набора данных, обрабатываемых процедурами

Рис. 1.5. Абстракция данных

Поток данных соединяет выход объекта (или процесса) с входом другого объекта (или

процесса). Он представляет промежуточные данные вычислений.

Хранилище данных — это пассивный объект в составе ДПД, в котором данные сохраняются для последующего доступа. Хранилище данных допускает доступ к хранимым в нем данным в порядке, отличном от того, в котором они были туда помещены. Агрегатные хранилища данных, как, например, списки и таблицы, обеспечивают доступ к данным в порядке их поступления либо по ключам.

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

Рис. 1.6. Фрагменты диаграммы потоков данных (ДПД):

а — копирование данных (числа); б — расщепление данных; в — активный объект «Клиент» посредством операции «Нахождение цены» работает с хранилищем «Прайс-лист»

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

Если в структурном программировании главными являются функции и процедуры (действия), то в технологии абстрактных данных Дейкстры во главе ставятся данные.

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

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

Шаг 1. Основываясь на потоке данных в задаче, выделите 3—10 смысловых частей обработки данных.

Шаг 2. Доопределите

главный входной и выходной потоки данных задачи.

Шаг 3. Проследите, как следует входной поток от части к части, от входа к концу обработки, найдите эту точку. Проследите от конца к началу, как следует выходной поток; найдите абстрактную точку, где он появился (рис. 1.7).

Найденные точки делят задачу на две или три наиболее независимые (по данным) части.

Шаг 4. Представьте независимые части подпрограммами и определите их функции. Эти подпрограммы будут подчиненными по отношению к модулю, разбиение которого выполняется.

Шаг 5. Определите сопряжения подпрограмм по данным.

Рис. 1.7. Превращение главного входного потока информации в выходной поток:

1 — участок соответствует преобразованию информации входного потока в промежуточную информацию; 2 — участок соответствует получению выходной и промежуточной информации из входной и промежуточной информации; 3 — участок соответствует получению выходной информации из промежуточной информации

Современная, вытесняющая технологии структурного программирования и абстракции данных объектно-ориентированная технология сочетает в себе абстракции процедур и данных в новой абстракции — объекте (рис. 1.8). Понятие абстракции данных расширено до того, что как внутренние данные, так и код процедур рассматриваются как новый тип данных — объект.

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

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

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

Рис. 1.8. Абстракция объекта

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

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

Поделиться:
Популярные книги

Ищу жену для своего мужа

Кат Зозо
Любовные романы:
любовно-фантастические романы
6.17
рейтинг книги
Ищу жену для своего мужа

Имперец. Земли Итреи

Игнатов Михаил Павлович
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
5.25
рейтинг книги
Имперец. Земли Итреи

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Титан империи

Артемов Александр Александрович
1. Титан Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Титан империи

Вечная Война. Книга VIII

Винокуров Юрий
8. Вечная Война
Фантастика:
боевая фантастика
юмористическая фантастика
космическая фантастика
7.09
рейтинг книги
Вечная Война. Книга VIII

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Гром над Тверью

Машуков Тимур
1. Гром над миром
Фантастика:
боевая фантастика
5.89
рейтинг книги
Гром над Тверью

Возвышение Меркурия. Книга 13

Кронос Александр
13. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 13

Кодекс Охотника XXVIII

Винокуров Юрий
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXVIII

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Новый Рал

Северный Лис
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Новый Рал

Вечный. Книга III

Рокотов Алексей
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга III