Файл: Иванова Г.С. Технология программирования.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.11.2019

Просмотров: 9518

Скачиваний: 184

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

3.

В

каких

случаях

целесообразно

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

диаграммы

переходов

состояний

Разработайте

диаграмму

переходов

для

калькулятора

техническое

задание

на

который

составлялось

вами

в

соответствии

заданием

к

предыдущей

главе

4. 

В

чем

заключается

основное

различие

между

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

диаграммами

и

диаграммами

потоков

данных

Постройте

оба

вида

диаграмм

для

выполнения

вычислений

с

использованием

внутренней

памяти

калькулятора

Проанализируйте

сходство

и

различие

В

каких

случаях

использование

диаграмм

потоков

данных

является

предпочтительным

5.

Что

называют

  «

структурами

данных

»? 

Какие

данные

имеются

в

виду

В

каких

случаях

структуры

данных

необходимо

описывать

Какие

модели

используют

для

описания

структур

данных

6.

Опишите

стек

и

очередь

с

использованием

предлагаемых

моделей

описания

данных

Какие

аспекты

этих

структур

остались

не

описанными

и

почему

7.

В

каких

случаях

используют

математические

модели

Что

понимают

под

адекватностью

модели

Зачем

необходимо

выполнять

доказательство

адекватности

и

как

строятся

подобные

доказательства


background image

5. 

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

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

ОБЕСПЕЧЕНИЯ

  

ПРИ

СТРУКТУРНОМ

ПОДХОДЕ

 
 

Как

уже

упоминалось

ранее

сущность

структурного

подхода

заключается

в

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

программы

или

программной

системы

по

функциональному

принципу

Все

предлагаемые

методы

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

используют

интерфейсы

простейшего

типа

примитивные

интерфейсы

и

традиционные

меню

и

рассчитаны

на

анализ

и

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

как

структур

данных

так

и

обрабатывающих

их

программ

Причем

в

большинстве

случаев

первичным

считают

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

обрабатывающих

компонентов

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

же

структур

данных

выполняют

параллельно

Существует

и

альтернативный

подход

при

котором

первичным

считают

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

данных

а

обрабатывающие

программы

получают

анализируя

полученные

структуры

данных

В

любом

случае

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

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

обеспечения

начинают

с

определения

его

структуры

.  

 
 

5.1. 

Разработка

структурной

и

функциональной

схем

Процесс

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

сложного

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

обеспечения

начинают

с

уточнения

его

структуры

т

е

определения

структурных

компонентов

и

связей

между

ними

Результат

уточнения

структуры

может

быть

представлен

в

виде

структурной

и

/

или

функциональной

схем

и

описания

(

спецификаций

компонентов

Структурная

схема

разрабатываемого

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

обеспечения

.

Структурной

называют

схему

отражающую

состав

и

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

по

управлению

частей

разрабатываемого

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

обеспечения

Структурные

схемы

п

а

к

е

т

о

в

  

п

р

о

г

р

а

м

м

не

информативны

поскольку

организация

программ

в

пакеты

не

предусматривает

передачи

управления

между

ними

Поэтому

структурные

схемы

разрабатывают

для

каждой

программы

пакета

а

список

программ

пакета

определяют

анализируя

функции

указанные

в

техническом

задании

Самый

простой

вид

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

обеспечения

 - 

программа

которая

в

качестве

структурных

компонентов

может

включать

только

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

и

библиотеки

ресурсов

Разработку

структурной

схемы

программы

обычно

выполняют

методом

пошаговой

детализации

 (

см

. § S.2). 

Структурными

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

программной

системы

или

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

комплекса

могут

служить

программы

подсистемы

базы

данных

библиотеки

ресурсов

и

т

п

Структурная

схема

   

п

р

о

г

р

а

м

м

н

о

г

о

     

к

о

м

п

л

е

к

с

а

   

демонстрирует

передачу

управления

от

программы

-

диспетчера

соответствующей

программе

 (

рис

. 5.1). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

Структурная

схема

   

п

р

о

г

р

а

м

м

н

о

й

     

с

и

с

т

е

м

ы

,  

как

правило

показывает

наличие

подсистем

или

других

структурных

компонентов

В

отличие

от

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

комплекса

отдельные

части

 (

подсистемы

программной

системы

интенсивно

обмениваются

данными

между

собой

и

возможно

с

основной

программой

Структурная

же

схема

программной

системы

этого

обычно

не

показывает

 (

рис

. 5.2). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Более

полное

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

о

проектируемом

программном

обеспечении

с

точки

зрения

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

его

компонентов

между

собой

и

с

внешней

средой

дает

функциональная

схема

Функциональная

схема

.

Функциональная

схема

или

схема

данных

 (

ГОСТ

 19.701-90) - 

схема

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

компонентов

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

обеспечения

с

описанием

информационных

потоков

состава

данных

в

потоках

и

указанием

используемых

файлов

и

устройств

Для

изображения

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

схем

используют

специальные

обозначения

установленные

стандартом

Основные

обозначения

схем

данных

по

ГОСТ

 19.701-90 

приведены

в

табл

. 5.1. 

Функциональные

схемы

более

информативны

чем

структурные

На

рис

. 5.3 

для

сравнения

приведены

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

схемы

программных

комплексов

и

систем

Все

компоненты

структурных

и

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

схем

должны

быть

описаны

При

структурном

подходе

особенно

тщательно

необходимо

прорабатывать

спецификации

межпрограммных

интерфейсов

так

как

от

качества

их

описания

зависит

количество

самых

дорогостоящих

ошибок

К

самым

дорогим

относятся

ошибки

обнаруживаемые

при

комплексном

тестировании

так

как

для

их

устранения

могут

потребоваться

серьезные

изменения

уже

от

-

лаженных

текстов

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

5.2. 

Использование

метода

пошаговой

детализации

для

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

структуры

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

обеспечения

 
 
 

Структурный

подход

к

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

в

том

виде

в

котором

он

был

сформулирован

в

 70-

х

годах

 XX 

в

., 

предлагал

осуществлять

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

программ

методом

пошаговой

детализации

Результатом

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

является

структурная

схема

программы

которая

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

собой

многоуровневую

иерархическую

схему

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

подпрограмм

по

управлению

Минимально

такая

схема

отображает

два

уровня

иерархии

т

е

показывает

общую

структуру

программы

Однако

тот

же

метод

позволяет

получить

структурные

схемы

с

большим

количеством

уровней

Метод

пошаговой

детализации

  (

см

. § 1.3) 

реализует

нисходящий

подход

  (

см

. § 2.3) 

и

базируется

на

основных

конструкциях

структурного

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

  (

см

. § 2.4). 

Он

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

пошаговую

разработку

алгоритма

Каждый

шаг

при

этом

включает

разложение

функции

на

подфункции

Так

на

первом

этапе

описывают

решение

поставленной

задачи

выделяя

общие

подзадачи

на

следующем

аналогично

описывают

решение

подзадач

формулируя

при

этом

подзадачи

следующего

уровня

Таким

образом

на

каждом

шаге

происходит

уточнение

функций

проектируемого

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

обеспечения

Процесс

продолжают

пока

не

доходят

до

подзадач

алгоритмы

решения

которых

очевидны

Декомпозируя

программу

методом

пошаговой

детализации

следует

придерживаться

  

о

с

н

о

в

н

о

г

о

     

п

р

а

в

и

л

а

   

структурной

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

следующего

из

принципа

вертикального

управления

в

первую

очередь

детализировать

управляющие

процессы

декомпозируемого

компонента

оставляя

уточнение

операций

с

данными

напоследок

Это

связано

с

тем

что

приори

-

тетная

детализация

управляющих

процессов

существенно

упрощает

структуру

компонентов

всех

уровней

иерархии

и

позволяет

не

отделять

процесс

принятия

решения

от

его

выполнения

так

определив

условие

выбора

некоторой

альтернативы

, -

сразу

же

вызывают

модуль

ее

реализующий

Детализация

операций

со

структурами

в

последнюю

очередь

позволит

отложить

уточнение

их

спецификаций

и

обеспечит

возможность

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

безболезненной

модификации

этих

структур

за

счет

сокращения

количества

модулей

зависящих

от

этих

данных

Кроме

этого

целесообразно

Придерживаться

следующих

рекомендаций

• 

не

отделять

операции

инициализации

и

завершения

от

соответствующей

обработки

так

как

модули

инициализации

и

завершения

имеют

плохую

связность

 (

временную

и

сильное

сцепление

(

по

управлению

); 

не

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

слишком

специализированных

или

слишком

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

модулей

так

как

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

излишне

специальных

модулей

увеличивает

их

количество

а

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

излишне

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

модулей

повышает

их

сложность

избегать

дублирования

действий

в

различных

модулях

так

как

при

их

изменении

исправления

придется

вносить

во

все

фрагменты

программы

где

они

выполняются

 - 

в

этом

случае

целесообразно

просто

реализовать

эти

действия

в

отдельном

модуле

группировать

сообщения

об

ошибках

в

один

модуль

по

типу

библиотеки

ресурсов

тогда

будет

легче

согласовать

формулировки

избежать

дублирования

сообщений

а

также

перевести

сообщения

на

другой

язык

При

этом

описывая

решение

каждой

задачи

желательно

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

не

более

 1—2-

х

структурных

управляющих

конструкций

таких

как

цикл

-

пока

или

ветвление

что

позволяет

четче

представить

себе

структуру

организуемого

вычислительного

процесса

Пример

 5.1.

Разработать

алгоритм

программы

построения

графиков

функций

одной

переменной

на

заданном

интервале

изменения

аргумента

[

]

2

1

,

x

x

при

условии

непрерывности

функции

на

всем

интервале

определения

Примечание

.

Для

того

чтобы

программировать

построение

графиков

функций

с

точками

разрыва

первого

и

второго

рода

необходимо

аналитически

исследовать

заданные

функции

что