ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Проектирование информационных систем
Добавлен: 21.10.2018
Просмотров: 10772
Скачиваний: 8
181
7.6
Алгоритм
выбора
из
конечного
состояния
Часто
задача
может
быть
сведена
к
множеству
действий,
зависящих
от
текущего
состояния
программы.
Такой
способ
решения
задачи
называется
выбором
из
конечного
состояния
и
обычно
включает
таблицу,
описывающую
выполняемые
дейст-
вия.
Строки
таблицы
определяют
состояние
программы,
а
столбцы
—
возможные
действия.
Элементы
таблицы
описыва-
ют
выполнение
возможных
действий,
в
частности
имя
вызы-
ваемой
подпрограммы
для
обработки
действий.
Переменными
в
этом
случае
являются
текущее
состояние
программы
и
допустимое
воздействие,
определяемое
внешней
средой.
Пересечение
этих
значений
в
матрице
решений
опреде-
ляет
ответное
действие
и
новое
состояние
программы.
Такие
состояния
(алгоритмы)
наиболее
характерны
для
лексического
анализатора
трансляторов.
Решение
подобных
задач
строится
по
типу
модели
конечного
автомата.
Таблица
состояний:
A
B
C
…
I
J
K
…
Y
Z
1
2
…
N–1
N
N+1
…
M
7.7
Сопрограммы
В
некоторых
системах
две
или
более
задач
должны
обра-
батываться
посегментно,
причем
каждый
сегмент
выполняется
с
различной
скоростью
(рис.
7.4).
182
Рис.
7.4
—
Организация
сопрограмм
Использование
сопрограмм
может
быть
полезной
управ-
ляющей
структурой.
Сопрограмма
—
это
такой
вид
программы,
который
со-
храняет
текущее
состояние
счетчика
команд.
Когда
программа
вызывается
повторно,
выполнение
продолжается
с
адреса,
запи-
санного
в
счетчике
программ,
а
не
с
начала
программы.
Сопрограмма,
возвращающая
управление
в
процедуру
X
,
определяется
как
resume
X
.
Использование
такого
оператора
языка
PDL
можно
представить
следующим
образом:
call
DATA;
goto
Next_Statement;
/*
Для элементов данных */
DATA: procedure;
declare
FS, DV;
DV =
значение данных 1;
resume
FORMAT(FS);
call
I/O – process(DV, FS);
DV =
значение данных 2;
resume
FORMAT(FS);
call
I/O – process(DV, FS);
...
DV =
значение данных n;
call
I/O – process(DV, FS);
A
1
A
2
A
3
A
4
B
1
B
2
B
3
B
4
183
end
DATA;
FORMAT: procedure(FS);
LOOP: FS =
спецификация формата 1;
resume
DATA(FS);
FS =
спецификация формата 2;
resume
DATA(FS);
...
FS =
спецификация формата n;
goto
LOOP;
end
FORMAT;
Next_Statement:
...
Здесь
каждая
сопрограмма
вызывает
другую
сопрограмму.
Таким
образом,
программа
обработки
данных
вызывает
про-
грамму
обработки
формата
до
следующего
элемента
формата.
К
сожалению,
сопрограммы
отсутствуют
в
широко
рас-
пространенных
языках
программирования.
Контрольные
вопросы
1.
Стандартные
методы
проектирования.
2.
Разбиение
задачи
на
независимые
подзадачи.
3.
Разбиение
задачи
на
одинаковые
по
сложности
части.
4.
Рекурсия.
5.
Динамическое
программирование.
6.
Моделирование.
7.
Поиск.
Поиск
в
списках.
Прямой
поиск.
Линейный
по-
иск.
8.
Поиск
с
возвратом.
9.
Стратегия
распределения
памяти.
10.
Алгоритм
выбора
из
конечного
состояния.
11.
Сопрограммы.
184
8
МЕТОДЫ
УПРАВЛЕНИЯ
ПРОЕКТИРОВАНИЕМ
ПРОГРАММНЫХ
ИЗДЕЛИЙ
Основная
цель
управления
—
организовать
и
связать
взаимодействие
исполнителей
при
создании
программного
про-
дукта.
8.1
Организация
управления
проектированием
программного
изделия
8.1.1 Понятие изделия как средства общения
Действия
при
создании
программного
изделия
по
многим
параметрам
совпадают
с
действиями
при
создании
техническо-
го
изделия.
Изделие
Программа
1.
Изучение
рынка
1.
Изучение
рынка
2.
Планирование
2.
Планирование
3.
Анализ
окупаемости
3.
Рассмотрение
соглашения
о
требо-
ваниях
4.
Разработка
4.
Разработка
5.
Конфигурационное
управление
5.
Конфигурационное
управление
6.
Обеспечение
гарантии
качества
6. Тестирование
(автономное)
7.
Изготовление
7.
Копирование
8.
Контроль
качества
8.
Тестирование
(системное)
9.
Отправка
потребителю
9.
Передача
пользователю
10.
Ввод
в
действие
10.
Ввод
в
действие
11.
Гарантийный
ремонт
11.
Сопровождение
12.
Усовершенствование
12.
Расширение
функциональных
воз-
можностей
То есть
самые
общие
действия
при
создании
изделия
име-
ют
аналоги
при
создании
программного
продукта,
таким
обра-
зом,
можно
использовать
опыт
по
управлению
изготовлением.
185
8.1.2 Нисходящий анализ процесса управления
проектированием программного изделия
Управление
проектированием
программного
изделия
включает
в
себя
следующие
функции:
−
планирование;
−
разработку;
−
обслуживание;
−
выпуск
документации;
−
испытания;
−
поддержку;
−
сопровождение;
Иерархическая
декомпозиция
управления
разработкой
программного
изделия
может
быть
представлена
следующим
образом
(рис.
8.1).
Рис.
8.1
—
Декомпозиция
управления
Такая
идеализированная
организация
требует
полной
обо-
собленности
процессов,
связанных
с
проектированием,
от
дру-
гих
видов
деятельности
и
изолированности
всех
функций
друг
от
друга.
Естественно,
что
на
практике
это
не
реализуемо.
Каждая
организация
должна
иметь
администратора
(ди-
ректора),
именно
он
несет
ответственность
за
успех
и
неудачу
разработки.
В
структуре
также
должно
существовать
то
или
Главный
разработчик
Администратор
планирования
Руководитель
разработки
Руководитель
поддержки
Руководитель
выпуска
документации
Руководитель
сопровождения
Руководитель
обслуживания
Руководитель
испытаний