Материал: 4970

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

21

 

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

Цель: описание

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

и

работ, выполняемых

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

при создании

 

 

программных средств

Начало

 

Нисходящее функциональное

Подцель: ФСА

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

 

Модульное программирование

Подцель: ФМС

 

Структурное программирование

Подцель: Алгоритм

 

работы функций

 

программного средства

Конец

 

ФСА – функциональная структура алгоритма приложения

ФМС – функционально-модульная структура алгоритма приложения

Рисунок 3 Структурная парадигма проектирования программных продуктов

Достоинства структурного программирования:

1)структурное программирование отражает функциональную структуру информационной системы, что снижает сложность программы и облегчает понимание её другими разработчиками;

2)в структурированных программах логически связанные операторы сгруппированы в одном модуле, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой);

3)упрощается процесс тестирования и отладки.

22

Цель 1 ( Автоматизация делопроизводства )

ПодЦель 11

ПодЦель 12

( Автоматизация регистрации

( Автоматизация регистрации

документов )

поручений )

Приложение111

 

Приложение 112

 

Приложение 113

(Автоматизация ведения

 

(Автоматизация ведения

 

( Разделение доступа и

регистрационных карт

 

списков документов)

 

защиты данных)

документов)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отформатировано: Шрифт: 11 пт Отформатировано: Шрифт: 11 пт

Функция 1111

Функция 1112

Функция 111N

Отформатировано: Шрифт: 10 пт

(Автоматизация

(Автоматизация

 

нумерации документов)

ведения записей

)

Отформатировано: Шрифт: 11 пт

Отформатировано: Шрифт: 11 пт

Функция 11111

Функция 1111N

 

( Проверка текущего

(Увеличение

 

номера документа )

текущего номера)

Отформатировано: Шрифт: 11 пт

 

 

Отформатировано: Шрифт: 11 пт

Рисунок 4 Функциональная структура алгоритма приложения (ФСА)

23

Последовательность каскадной разработки программных средств:

1)составляется текст основной программы, который содержит вызовы процедур в виде наименований («заглушек»), и отражает функциональномодульную схему алгоритма;

2)полученная программа проверяется и отлаживается, т.е. оценивается правильность последовательности вызова подпрограмм на основании функциональной схемы алгоритма;

3)вызовы (имена подпрограмм-заглушек) последовательно заменяются вызовами реально работающих подпрограмм, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы;

4)разработка заканчивается тогда, когда не останется ни одной «заглушки», которая не была бы удалена (это гарантирует обозримость фрагментов кода отсутствие ошибок);

5)внесение изменений производится только в той подпрограмме, которая отвечает за реализацию конкретной задачи, не затрагивая при этом другие части разрабатываемой программы.

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

1.5.3. Модульное проектирование и программирование

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

24

модулями и программами. В состав модуля входит: объявление и определение доступных для обработки данных; операции обработки данных; элементы взаимосвязи с другими модулями. Модули применяются в процедурной парадигме в виде библиотек функций и подпрограмм, а в объектно-ориентированной парадигме программирования и в виде библиотек классов. В языках программирования поддержка модульной структуры программных приложений осуществляется посредством специальных деклараций области видимости для программных элементов (например, в языке Си такими декларациями служат ключевые слова для указания классов памяти: extern, static).

Для управления модулями в языке Си (равно как и в С++) существуют специальные инструкции – директивы препроцессора, которые указывают, какие именно модули будут использованы при компоновке исполняемой программы

(например: # include “Имя_файла.расширение”).

Размер модуля должен ограничиваться правилом «обозримости» программного кода, т.е. количество строк исходного программного кода модуля не должно превышать нескольких страниц. Пример структуры программного модуля приведён на рисунке 5.

Сгруппируем краткие характеристики модуля:

1)модуль представляет собой совокупность логически связанных элементов, предназначенных для использования другими модулями и программами;

2)модули предназначены для хранения готовых программ;

3)объекты модуля используются другими программными единицами (процедурами, функциями);

4)модуль получает определённый набор исходных данных, выполняет обработку набора данных и возвращает один набор в виде результата;

5)модуль выполняет полный перечень операций для реализации каждой отдельной функции;

6)результат работы модуля зависит только от исходных данных и не зависит от работы других модулей;

7)обмен информации между модулями должен быть минимизирован. Результатом модульного проектирования является модульная структура

приложения, которая может описывать:

 

1)

состав и подчинённость функций (при процедурном подходе);

 

2)набор программных модулей, реализующих функции;

Формат: Список

2)

 

 

3)

состав компонент объектно-ориентированного проекта.

 

25

 

Начало модуля

Файл «func.h»

 

Объявление функции

 

(описание интерфейса или прототип функции)

Объявление локальных переменных функции

Определение функции ( рабочий код функции)

Возвращаемые функцией значения

 

Конец модуля

 

Рисунок 5 − Пример структуры программного модуля

1.5.4. Объектно-ориентированная парадигма

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

Источник: https://studfile.net/preview/16710630/