18.2. Структурное проектирование и программирование
Нисходящее проектирование
Модульное программирование
Структурное программирование
НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ
Метод нисходящего проектирования предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы ("сверху-вниз").
В результате строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций, которая носит название функциональная структура алгоритма (ФСА) приложения.
Последовательность действий по разработке функциональной структуры алгоритма приложения:
определяются цели автоматизации предметной области и их иерархия (цель-подцель);
устанавливается состав приложений (задач обработки), обеспечивающих реализацию поставленных целей;
уточняется характер взаимосвязи приложений и их основные характеристики (информация для решения задач, время и периодичность решения, условия выполнения и др.);
определяются необходимые для решения задач функции обработки данных;
выполняется декомпозиция функций обработки до необходимой структурной сложности, реализуемой предполагаемым инструментарием.
Подобная структура приложения (рис. 18.2) отражает наиболее важное – состав и взаимосвязь функций обработки информации для реализации приложений, хотя и не раскрывает логику выполнения каждой отдельной функции, условия или периодичность их вызовов.
Разложение должно носить строго функциональный характер, т.е. отдельный элемент ФСА описывает законченную содержательную функцию обработки информации, которая предполагает определенный способ реализации на программном уровне.
Функции ввода-вывода информации рекомендуется отделять от функций вычислительной или логической обработки данных.
По частоте использования функции делятся на:
однократно выполняемые;
повторяющиеся.
Степень детализации функций может быть различной, но иерархическая схема должна давать представление о составе и структуре взаимосвязанных функций и общем алгоритме обработки данных. Широко используемые функции приобретают ранг стандартных (встроенных) функций при проектировании внутренней структуры программного продукта.
Пример 18.4. Некоторые функции, например Ф2, далее неразложимы на составляющие: они предполагают непосредственную программную реализацию. Другие функции, например Ф1, Фm, могут быть представлены в виде структурного объединения более простых функций, например Ф11, Ф12 и т.д. Для всех функций-компонентов осуществляется самостоятельная программная реализация; составные функции (типа Ф1, Фm) реализуются как программные модули, управляющие функциями-компонентами, например, в виде программ-меню.
Рис. 18.2. Функциональная структура приложения:
Ц – цель; пЦ – подцель; П – приложение; Ф – функция
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
Свойства модуля
Модульное программupовоние основано на понятии модуля – логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельных программных модулей.
Модуль характеризуют:
один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO (Input – Process – Output) – вход-процесс-выход;
функциональная завершенность – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;
логическая независимость – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей;
слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности минимизирован;
обозримый по размеру и сложности программный элемент.
Таким образом, модули содержат определение доступных для обработки данных, операции обработки данных, схемы взаимосвязи с другими модулями.
Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.
Модульная структура программных продуктов
Принципы модульного программирования программных продуктов во многом сходны с принципами нисходящего проектирования. Сначала определяются состав и подчиненность функций, а затем – набор программных модулей, реализующих эти функции.
Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули.
При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
каждый модуль вызывается на выполнение вышестоящим модулем и, закончив работу, возвращает управление вызвавшему его модулю;
принятие основных решений в алгоритме выносится на максимально "высокий" по иерархии уровень;
для использования одной и той же функции в разных местах алгоритма создается один модуль, который вызывается на выполнение по мере необходимости.
В результате дальнейшей детализации алгоритма создается функционально-модульная схема (ФМС) алгоритма приложения, которая является основой для программирования (рис. 18.3).
Рис. 18.3. Функционально-модульная структура приложения
Пример 18.5. Некоторые функции могут выполняться с помощью одного и того же программного модуля (например, функции Ф1 и Ф2).
Функция Ф3 реализуется в виде последовательности выполнения программных модулей.
Функция Фm реализуется с помощью иерархии связанных модулей.
Модуль n управляет выбором на выполнение подчиненных модулей.
Функция Фх реализуется одним программным модулем.
Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами. Например, применительно к средствам СУБД отдельными модулями могут быть:
экранные формы ввода и/или редактирования информации базы данных;
отчеты генератора отчетов;
макросы;
стандартные процедуры обработки информации;
меню, обеспечивающее выбор функции обработки и др.
Алгоритмы большой сложности обычно представляются с помощью схем двух видов:
обобщенной схемы алгоритма – раскрывает общий принцип функционирования алгоритма и основные логические связи между отдельными модулями на уровне обработки информации (ввод и редактирование данных, вычисления, печать результатов и т.п.);
детальной схемы алгоритма – представляет содержание каждого элемента обобщенной схемы с использованием управляющих структур в блок-схемах алгоритма, псевдокода либо алгоритмических языков высокого уровня.
Наиболее часто детально проработанные алгоритмы изображаются в виде блок-схем согласно требованиям структурного программирования; при их разработке используются условные обозначения согласно ГОСТ 19.003-80 ЕСПД (Единая система программной документации). Обозначения условные графические, ГОСТ 19.002-80 ЕСПД. Схемы алгоритмов и программ. Правила обозначения.
СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
Структурное программирование основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных различных программных модулей (рис. 18.4).
Рис. 18.4. Блок-схема алгоритма поиска в базе данных
В любой типовой структуре блок, кроме условного, имеет только один вход и выход, безусловный переход на блок с нарушением иерархии запрещен (оператор типа GoTo в структурном программировании не используется). Виды основных управляющих структур алгоритма приведены в табл. 18.1.
Пример 18.6. Алгоритм поиска в базе данных сведений о максимальном окладе сотрудников (рис. 18.4).
Таблица 18.1. Управляющие структуры алгоритмов
- Информатика
- К читателю
- Предисловие
- От всей души желаем вам успехов!
- 1.1. Информатизация общества
- Опыт информатизации и перспективные идеи
- 1.2. Информационный потенциал общества
- Рынок информационных продуктов и услуг
- Правовое регулирование на информационном рынке
- 1.3. Информатика – предмет и задачи
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- 2 Глава. Измерение и представление информации
- 2.1. Информация и ее свойства
- 2.2. Классификация и кодирование информации
- 2.1. Информация и ее свойства
- 2.2. Классификация и кодирование информации
- Фасетная система классификации
- Дескрипторная система классификации
- Система кодирования
- Классификационное кодирование
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- После изучения главы вы должны знать:
- 3.1. Информационные системы
- Понятие информационной системы
- Персонал организации
- 3.2. Структура и классификация информационных систем
- Информационные системы для менеджеров среднего звена
- 3.3. Информационные технологии
- Как соотносятся информационная технология и информационная система
- 3.4. Виды информационных технологий
- Характеристика и назначение
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 4. Архитектура персонального компьютера
- После изучения главы вы должны знать:
- 4.1. Информационно-логические основы построения
- 4.2. Функционально-структурная организация
- 4.3. Микропроцессоры
- 4.4. Запоминающие устройства пк
- Накопители на жестких магнитных дисках
- 4.5. Основные внешние устройства пк
- 4.6. Рекомендации по выбору персонального компьютера
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 5. Состояние и тенденции развития эвм
- После изучения главы вы должны знать:
- 5.1. Классификация эвм Классификация эвм по принципу действия
- Классификация эвм по размерам и функциональным возможностям
- 5.2. Большие эвм
- 5.3. Малые эвм
- 5.4. Персональные компьютеры
- 5.5. Суперэвм
- 5.6. Серверы
- 5.7. Переносные компьютеры
- 5.8. Тенденции развития вычислительных систем
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 6. Компьютерные сети
- После изучения главы вы должны знать:
- 6.1. Коммуникационная среда и передача данных
- 6.2. Архитектура компьютерных сетей
- 6.3. Локальные вычислительные сети
- Управление взаимодействием устройств в сети
- 6.4. Глобальная сетьinternet
- 6.5. Локальная вычислительная сетьnovellnetware
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 7. Офисная техника
- После изучения главы вы должны знать:
- 7.1. Классификация офисной техники
- 7.2. Средства изготовления, хранения, транспортирования и обработки документов
- Средства транспортирования документов
- 7.3. Средства копирования и размножения документов
- 7.4. Средства административно-управленческой связи
- Системы передачи недокументированной информации
- Дейтефонная связь
- 7.5. Компьютерные системы в оргтехнике
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 8. Состояние и тенденции развития программного обеспечения
- 8.1. Программные продукты и их основные характеристики
- 8.2. Классификация программных продуктов
- После изучения главы вы должны знать:
- 8.1. Программные продукты и их основные характеристики
- 8.2. Классификация программных продуктов
- Сервисное программное обеспечение
- Офисные ппп
- Системы искусственного интеллекта
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 9. Операционная система ms dos
- 9.1. Основные понятия
- 9.2. Характеристика ms dos
- 9.3. Технология работы в ms dos
- 9.1. Основные понятия
- 9.2. Характеристикаmsdos
- 9.3. Технология работы вmsdos
- Формат команды объединения нескольких файлов
- Форматы команд для обмена данными между внешним устройством и файлом, хранящимся на диске
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 10. Norton commander – инструментарий работы в среде ms dos
- После изучения главы вы должны знать:
- 10.1. Общие сведения
- 10.2. Работа с панелями информационного окна
- 10.3. Управление пакетом при помощи функциональных клавиш и ниспадающего меню
- 10.4. Вспомогательный инструментарий пакета
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- После изучения главы вы должны знать:
- 11.1. Программы-архиваторы
- 11.2. Программы обслуживания магнитных дисков
- Проблема фрагментации дисков
- 11.3. Антивирусные программные средства
- Программы обнаружения и защиты от вирусов
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глaba12. Операционные системыwindows95 иwindows98
- После изучения главы вы должны знать:
- 12.1. Концепция операционных системwindows95 иwindows98
- 32-Разрядная архитектура
- 12.2. Объектно-ориентированная платформаwindows
- Назначение Рабочего стола
- 12.3. Организация обмена данными
- Внедрение объекта
- 12.4. Программные средстваwindows98
- Комплекс программ Связь
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 13. Текстовый процессор
- 13.1. Базовые возможности
- 13.2. Работа с текстом
- 13.3. Работа издательских систем
- После изучения главы вы должны знать:
- 13.1. Базовые возможности
- 13.2. Работа с текстом
- 13.3. Работа издательских систем
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 14. Табличный процессор
- 14.1. Основные понятия
- 14.2. Функциональные возможности табличных процессоров
- 14.3. Технология работы в электронной таблице
- После изучения главы вы должны знать:
- 14.1. Основные понятия
- Окно, рабочая книга, лист
- Перемещение формул
- 14.2. Функциональные возможности табличных процессоров
- Команды для работы с электронной таблицей как с базой данных
- 14.3. Технология работы в электронной таблице
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 15. Система управления базой данных
- После изучения главы вы должны знать:
- 15.1. Основные понятия
- 15.2. Реляционный подход к построению инфологической модели
- 15.3. Функциональные возможности субд
- 15.4. Основы технологии работы в субд
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 16. Интеллектуальные системы
- 16.1. Введение в искусственный интеллект
- 16.2. Экспертные системы: структура и классификация
- 16.3. Технология разработки экспертных систем
- После изучения главы вы должны знать:
- 16.1. Введение в искусственный интеллект
- История развития искусственного интеллекта в России
- 16.2. Экспертные системы: структура и классификация
- 16.3. Технология разработки экспертных систем
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 17. Инженерия знаний
- 17.1. Теоретические аспекты получения знаний
- 17.2. Практические методы извлечения знаний
- 17.3. Структурирование знаний
- После изучения главы вы должны знать:
- 17.1. Теоретические аспекты получения знаний
- 17.2. Практические методы извлечения знаний
- 17.3. Структурирование знаний
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Глава 18. Создание программного продукта
- 18.1. Методология проектирования программных продуктов
- 18.2. Структурное проектирование и программирование
- 18.3. Объектно-ориентированное проектирование
- После изучения главы вы должны знать:
- 18.1. Методология проектирования программных продуктов
- Этапы создания программных продуктов
- 1. Составление технического задания на программирование
- 2. Технический проект
- 3. Рабочая документация (рабочий проект)
- 4. Ввод в действие
- 18.2. Структурное проектирование и программирование
- 18.3. Объектно-ориентированное проектирование
- Методика объектно-ориентированного проектирования
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- После изучения главы вы должны знать:
- 19.1. Автоматизация работы пользователя в средеmicrosoftoffice
- 19.2. Создание приложений на языкеvisualbasicforapplications
- 19.3. Реляционные языки манипулирования данными
- Ключевые понятия
- Вопросы для самопроверки
- Литература
- Макарова Наталья Владимировна
- Матвеев Леонид Анатольевич
- Бройдо Владимир Львович и др.
- Информатика
- 101000, Москва, ул. Покровка, 7
- Глава 13. Текстовый процессор 425