Файл: Технология раработки програмного обеспечения УП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

 

 
 

181 

7.6 

Алгоритм

 

выбора

 

из

 

конечного

 

состояния

 

Часто

 

задача

 

может

 

быть

 

сведена

 

к

 

множеству

 

действий,

 

зависящих

 

от

 

текущего

 

состояния

 

программы.

 

Такой

 

способ

 

решения

 

задачи

 

называется

 

выбором

 

из

 

конечного

 

состояния

 

и

 

обычно

 

включает

 

таблицу,

 

описывающую

 

выполняемые

 

дейст-

вия.

 

Строки

 

таблицы

 

определяют

 

состояние

 

программы,

 

а

 

столбцы

 

 

возможные

 

действия.

 

Элементы

 

таблицы

 

описыва-

ют

 

выполнение

 

возможных

 

действий,

 

в

 

частности

 

имя

 

вызы-

ваемой

 

подпрограммы

 

для

 

обработки

 

действий.

 

Переменными

 

в

 

этом

 

случае

 

являются

 

текущее

 

состояние

 

программы

 

и

 

допустимое

 

воздействие,

 

определяемое

 

внешней

 

средой.

 

Пересечение

 

этих

 

значений

 

в

 

матрице

 

решений

 

опреде-

ляет

 

ответное

 

действие

 

и

 

новое

 

состояние

 

программы.

 

Такие

 

состояния

 

(алгоритмы)

 

наиболее

 

характерны

 

для

 

лексического

 

анализатора

 

трансляторов.

 

Решение

 

подобных

 

задач

 

строится

 

по

 

типу

 

модели

 

конечного

 

автомата.

 

Таблица

 

состояний:

 

 

 

A

 

B

 

C

 

… 

I

 

J

 

K

 

… 

Y

 

Z

 

1

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

…           

N–1

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

N+1

 

 

 

 

 

 

 

 

 

 

 

…           

M

 

 

 

 

 

 

 

 

 

 

 

7.7 

Сопрограммы

 

В

 

некоторых

 

системах

 

две

 

или

 

более

 

задач

 

должны

 

обра-

батываться

 

посегментно,

 

причем

 

каждый

 

сегмент

 

выполняется

 

с

 

различной

 

скоростью

 

(рис.

 

7.4).

 


background image

 

 

 
 

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

 


background image

 

 

 
 

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.

 

Сопрограммы.

 


background image

 

 

 
 

184 

МЕТОДЫ

 

УПРАВЛЕНИЯ

 

ПРОЕКТИРОВАНИЕМ

 

ПРОГРАММНЫХ

 

ИЗДЕЛИЙ

 

Основная

 

цель

 

управления

 

 

организовать

 

и

 

связать

 

взаимодействие

 

исполнителей

 

при

 

создании

 

программного

 

про-

дукта.

 

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.

 

Расширение

 

функциональных

 

воз-

можностей

 

 
То есть

 

самые

 

общие

 

действия

 

при

 

создании

 

изделия

 

име-

ют

 

аналоги

 

при

 

создании

 

программного

 

продукта,

 

таким

 

обра-

зом,

 

можно

 

использовать

 

опыт

 

по

 

управлению

 

изготовлением.

 


background image

 

 

 
 

185 

8.1.2 Нисходящий анализ процесса управления 

проектированием программного изделия 

Управление

 

проектированием

 

программного

 

изделия

 

включает

 

в

 

себя

 

следующие

 

функции:

 

 

планирование;

 

 

разработку;

 

 

обслуживание;

 

 

выпуск

 

документации;

 

 

испытания;

 

 

поддержку;

 

 

сопровождение;

 

Иерархическая

 

декомпозиция

 

управления

 

разработкой

 

программного

 

изделия

 

может

 

быть

 

представлена

 

следующим

 

образом

 

(рис.

 

8.1).

 

 

Рис.

 

8.1

 

 

Декомпозиция

 

управления

 

Такая

 

идеализированная

 

организация

 

требует

 

полной

 

обо-

собленности

 

процессов,

 

связанных

 

с

 

проектированием,

 

от

 

дру-

гих

 

видов

 

деятельности

 

и

 

изолированности

 

всех

 

функций

 

друг

 

от

 

друга.

 

Естественно,

 

что

 

на

 

практике

 

это

 

не

 

реализуемо.

 

Каждая

 

организация

 

должна

 

иметь

 

администратора

 

(ди-

ректора),

 

именно

 

он

 

несет

 

ответственность

 

за

 

успех

 

и

 

неудачу

 

разработки.

 

В

 

структуре

 

также

 

должно

 

существовать

 

то

 

или

 

Главный

 

разработчик

 

Администратор

 

планирования

 

Руководитель

 

разработки

 

Руководитель

 

поддержки

 

Руководитель

 

выпуска

 

документации

 

Руководитель

 

сопровождения

 

Руководитель

 

обслуживания

 

Руководитель

 

испытаний