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

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

 

 

 
 

46

4 

МЕТОДЫ

 

РАЗРАБОТКИ

 

ПРОГРАММНОГО

 

ОБЕСПЕЧЕНИЯ

 

Проведенный

 

ранее

 

анализ

 

показал,

 

что

 

в

 

настоящее

 

вре-

мя

 

методы

 

разработки

 

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

 

обеспечения

 

интенсивно

 

развиваются.

 

Однако

 

далеко

 

не

 

все

 

методы

 

находят

 

широкое

 

практическое

 

применение.

 

Цель

 

наших

 

дальнейших

 

исследова-

ний

 

— рассмотреть

 

лишь

 

те

 

методы,

 

которые

 

считаются

 

основ-

ными

 

для

 

разработки

 

хороших

 

программ.

 

4.1 

Язык

 

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

 

программ

 

При

 

создании

 

программ

 

разработчики

 

обычно

 

используют

 

два

 

способа:

 

либо

 

составляют

 

структурную

 

схему

 

программы,

 

либо

 

сразу

 

пишут

 

программу.

 

Очевидно,

 

что

 

при

 

втором

 

спосо-

бе

 

структура

 

программы

 

наверняка

 

окажется

 

нечеткой.

 

Однако

 

известно,

 

что

 

и

 

хорошая

 

структурная

 

схема

 

может

 

привести

 

к

 

созданию

 

программы

 

с

 

плохой

 

структурой.

 

Необходима

 

неко-

торая

 

система

 

записи,

 

с

 

помощью

 

которой

 

стало

 

бы

 

возможным

 

формальное

 

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

 

программ.

 

Для

 

создания

 

такой

 

системы

 

записи

 

был

 

разработан

 

язык

 

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

 

программ

 

PDL.

 

Этот

 

язык

 

строится

 

по

 

образу

 

универсальных

 

языков

 

программирования.

 

Однако

 

следует

 

от-

метить,

 

что

 

языки

 

программирования

 

и

 

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

 

исполь-

зуются

 

для

 

разных

 

целей,

 

поэтому

 

сравнение

 

их

 

недопустимо.

 

Если

 

языки

 

программирования

 

связаны

 

с

 

обработкой

 

структур

 

данных

 

обычных

 

программ,

 

то

 

языки

 

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

 

могут

 

включать

 

такие

 

«элементарные

 

конструкции»,

 

как

 

«решение

 

задачи»

 

или

 

«обращение

 

матрицы»,

 

или

 

вообще

 

не

 

содержать

 

выражений,

 

заданных

 

в

 

явной

 

форме.

 

Если

 

запись

 

программы

 

на

 

языке

 

программирования

 

известна,

 

то

 

этап

 

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

 

не

 

обязателен.

 

Язык

 

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

 

обычно

 

состоит

 

из

 

двух

 

частей:

 

−

 

заданного

 

набора

 

операторов,

 

построенных

 

по

 

образцу

 

языков

 

программирования;

 

−

 

общего,

 

обычно

 

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

 

синтаксиса,

 

пригод-

ного

 

для

 

описания

 

задач

 

в

 

данной

 

области.

 

background image

 

 

 
 

47

Таким

 

образом,

 

язык

 

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

 

программ

 

включает

 

определенный

 

внешний

 

синтаксис,

 

описывающий

 

логику

 

про-

граммы

 

при

 

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

 

Эта

 

логика

 

строится

 

при

 

помощи

 

управляющих

 

структур,

 

имеющихся

 

в

 

большинстве

 

языков

 

про-

граммирования.

 

С

 

другой

 

стороны,

 

язык

 

PDL

 

содержит

 

неопределенный

 

внутренний

 

синтаксис,

 

который

 

включает

 

все

 

структуры

 

дан-

ных

 

и

 

процедуры

 

по

 

их

 

обработке.

 

Почти

 

любое

 

предложение

 

на

 

естественном

 

языке

 

можно

 

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

 

для

 

описания

 

пре-

образования

 

данных.

 

if X 

неотрицательно 

then return 

(

квадратный корень из X – 

             

действительное число); 

else return 

(

квадратный корень из X – 

             

мнимое число); 

В

 

этом

 

случае

 

на

 

языке

 

PDL

 

фиксируется

 

логика

 

про-

граммы

 

if

 

—

 

then

 

—

 

else

,

 

а

 

внутренние

 

выражения

 

(напри-

мер,

 

«квадратный

 

корень»)

 

не

 

определяются.

 

Далее

 

должно

 

производиться

 

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

 

с

 

помощью

 

PDL-программы

 

«извлечение

 

квадратного

 

корня

 

из

 

X

».

 

Язык

 

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

 

обычно

 

называют

 

псевдокодом.

 

Язык

 

PDL

 

включает

 

шесть

 

групп

 

операторов.

 

Оператор

 

выбора.

 

 

а)

 

if

 

выражение;

 

 

 then 

оператор

1

; 

 

 else 

оператор

2

; 

Оба

 

оператора

 

могут

 

быть

 

последовательностью

 

операто-

ров,

 

входящих

 

в

 

группу

 

do

 

—

 

end

.

 

 

б)

 

do case

 (

выражение); 

 

 /

индекс

1

/ 

оператор

1

; 

  

... 

 

 /

индекс

n

/ 

оператор

n

; 

 

 else 

оператор

n+1

; 

 

 end; 

Оператор

 

case

 

используется

 

для

 

выбора

 

из

 

многих

 

вари-

антов.

 

Оператор

 

case

 

вычисляет

 

выражение

 

и

 

выполняет

 

тот

 

background image

 

 

 
 

48

оператор,

 

у

 

которого

 

индекс

 

равен

 

значению

 

выражения.

 

Если

 

ни-

какой

 

из

 

индексов

 

не

 

равен

 

значению

 

выражения,

 

то

 

выполняется

 

оператор

 

else

 

(если

 

он,

 

конечно,

 

имеется).

 

Как

 

и

 

оператор

 

if

,

 

ка-

ждый

 

из

 

этих

 

операторов

 

может

 

входить

 

в

 

группу

 

do

 

—

 

end

.

 

Оператор

 

цикла.

 

 

а)

 

do

 

while

 

(

выражение); 

 

   

набор

 

операторов; 

 

 end; 

Набор

 

операторов

 

выполняется

 

до

 

тех

 

пор,

 

пока

 

значение

 

выражения

 

остается

 

истинным.

 

 

б)

 

do

 

переменная

 

=

 

выраж

1

 

to

 

выраж

2

 

by

 

выраж

3

; 

 

   

набор

 

операторов; 

 

 end; 

При

 

вхождении

 

в

 

цикл

 

в

 

первый

 

раз

 

вычисляются

 

значе-

ния

 

выраж

1

,

 

выраж

2

 

и

 

выраж

3

.

 

Приращение

 

(

выраж

3

)

 

может

 

быть

 

положительным,

 

отрицательным

 

или

 

опущено

 

(по

 

умол-

чанию

 

предполагается

 

равным

 

+1).

 

Цикл

 

выполняется

 

любое

 

число

 

раз.

 

Оператор

 

описания

 

данных.

 

declare

 

имя атрибуты;

 

Имена

 

объявляются

 

для

 

переменных

 

со

 

списками

 

атрибу-

тов.

 

Атрибуты

 

могут

 

быть

 

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

 

типами

 

данных

 

языка

 

программирования

 

(real,

 

float

,

 

integer

 

и

 

др.)

 

или

 

струк-

турами

 

данных

 

высокого

 

уровня

 

(рис.

 

4.1).

 

 

Рис.

 

4.1

 

—

 

Структура

 

данных

 

в

 

языке

 

PDL

 

A

 

E

 

F

 

B

 

C

 

D

 

background image

 

 

 
 

49

Для

 

определения

 

сложных

 

структур

 

данных

 

используются

 

структуры

 

типа:

 

 

declare

 1 A, 

 

            2 B, 

 

                3 C, 

 

                3 D, 

 

            2 E, 

 

            2 F;

 

Это

 

соответствует

 

структуре

 

дерева,

 

изображенного

 

на

 

рисунке.

 

Для

 

ссылки

 

на

 

элементы

 

подобных

 

структур

 

использу-

ется

 

система

 

уточненных

 

имен.

 

Таким

 

образом,

 

на

 

узел

 

C

 

мож-

но

 

ссылаться

 

как

 

на

 

A.B.C,

 

хотя

 

к

 

C

 

можно

 

обращаться

 

и

 

непо-

средственно,

 

если

 

это

 

имя

 

используется

 

однозначно.

 

Другие

 

операторы.

 

 

а)

 

переменная = выражение;

 

 

б)

 

call

 

имя процедуры(список аргументов);

 

 

в)

 

return

 (

значение);

 

 

г)

 

имя procedure (список параметров);

 

 

    

список операторов; 

 

 

end

; 

 

д)

 

get

 (

список данных для ввода);

 

 

е)

 

put

 (

список данных для вывода);

 

Все

 

параметры

 

в

 

процедуре

 

вызываются

 

с

 

помощью

 

ссы-

лок

 

(т.е.

 

адреса

 

переменных

 

передаются

 

в

 

процедуру).

 

Область

 

действия

 

имен

 

—

 

в

 

блоке,

 

где

 

проведено

 

их

 

описание.

 

Оператор

 

leave

.

 

Оператор

 

leave

 

обеспечивает

 

выход

 

из

 

цикла,

 

организо-

ванного

 

с

 

помощью

 

оператора

 

do

.

 

Оператор

 

leave

 

является

 

типом

 

управляющего

 

оператора

 

перехода.

 

Предложения

 

на

 

естественном

 

языке.

 

Кроме

 

указанных

 

пяти

 

классов

 

операторов,

 

любое

 

пред-

ложение,

 

написанное

 

на

 

естественном

 

языке,

 

можно

 

использо-

вать

 

как

 

оператор

 

языка

 

PDL.

 

 

а)

 

Найти наибольший элемент в массиве B; 

 

б)

 

do

 

для всех X из {a, b, c}; 

 

в)

 

A = 

первый  элемент B, который  больше 

чем C. 

background image

 

 

 
 

50

Для

 

языка

 

PDL

 

разработаны

 

специальные

 

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

 

С

 

помощью

 

таких

 

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

 

можно

 

получать

 

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

 

которая

 

необходима

 

для

 

изучения

 

и

 

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

 

любой

 

сис-

темы.

 

Кроме

 

того,

 

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

 

с

 

помощью

 

языка,

 

сходного

 

с

 

языком

 

программирования,

 

в

 

значительной

 

мере

 

уменьшает

 

количество

 

ошибок.

 

4.2 

Стратегия

 

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

 

4.2.1 Нисходящее проектирование и нисходящая 

разработка 

Язык

 

программирования

 

является

 

лишь

 

средством

 

разра-

ботки

 

проектов.

 

Важное

 

место

 

в

 

построении

 

правильных

 

проек-

тов

 

играет

 

методология

 

проектирования.

 

При

 

разработке

 

про-

грамм

 

на

 

этапе

 

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

 

обычно

 

используется

 

два

 

под-

хода:

 

нисходящий

 

и

 

восходящий.

 

Суть

 

нисходящего

 

проектиро-

вания

 

можно

 

объяснить

 

следующей

 

схемой

 

(рис.

 

4.2).

 

 

Рис.

 

4.2

 

—

 

Пример

 

базисной

 

схемы

 

На

 

приведенной

 

базисной

 

схеме

 

каждый

 

блок

 

—

 

это

 

мо-

дуль

 

системы.

 

При

 

этом

 

вызов

 

каждого

 

модуля

 

производится

 

модулем

 

более

 

высокого

 

уровня.

 

При

 

нисходящем

 

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

 

вначале

 

проектируется

 

управляющая

 

программа

 

—

 

драйвер.

 

Управляющий

 

модуль

 

может

 

быть

 

представлен

 

программой

 

на

 

PDL.

 

DRIVER

 

AAA

 

AAB

 

AA

 

ACA

 

ACB

 

AC

 

AB

 

A

 

BA

 

BB

 

B

 

CA

 

C

 

Источник: https://files.student-it.ru/previewfile/390