обе стороны сертификата |
Прикладные и теоретические методы программирования
В последние годы наибольшее развитие и использование получили прикладные методы: объектно-ориентированный, компонентный, сервисно-ориентированный и др. Они составляют основу методологии разработки ПС и практически применяются при создании разных видов программ.
Находят применение формальные и теоретические методы программирования (алгебраический, алгебро-алгоритмический, композиционный и др.), которые основываются на логико-алгоритмических и математических подходах.
В данной лекции представлено описание базовых понятий и особенностей методов систематического (прикладного), отдельных методов теоретического программирования с целью ознакомления студентов с современной теорией и практикой разработки программ.
5.1. Методы систематического программирования
К методам систематического программирования отнесены следующие методы:
- структурный,
- объектно-ориентированный,
- UML-метод,
- компонентный,
- аспектно-ориентированный,
- генерирующий,
- агентный и др.
Каждый метод имеет свое множество понятий и операций для проведения процесса разработки компонентов или ПС. Метод генерирующего программирования использует возможности объектно-ориентированного, компонентного, аспектно-ориентированного методов и др.
5.1.1. Структурный метод
Сущность структурного подхода к разработке ПС заключается в декомпозиции (разбиении) системы на автоматизируемые функции, которые в свою очередь делятся на подфункции, на задачи и так далее. Процесс декомпозиции продолжается вплоть до определения конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимосвязаны.
В основе структурного метода лежат такие общие принципы:
- разбивка системы на множество независимых задач, доступных для понимания и решения;
- иерархическое упорядочивание, т.е. организация составных частей проблемы в древовидные структуры с добавлением новых деталей на каждом уровне.
К основным принципам относятся:
- абстрагирование, т.е. выделение существенных аспектов системы и отвлечение от несущественных;
- формализация, т.е. общее методологическое решение проблемы;
- непротиворечивость, состоящая в обосновании и согласовании элементов системы;
- иерархическая структуризация данных.
При структурном анализе применяются три наиболее распространенные модели проектирования ПС:
- SADT (Structured Analysis and Design Technique) - модель и соответствующие функциональные диаграммы [5.1];
- SSADM (Structured Systems Analysis and Design Method) - метод структурного анализа и проектирования [5.2];
- IDEF0 (Integrated Definition Functions) - метод создания функциональной модели, IDEF1 - информационной модели, IDEF2 - динамической модели и др. [5.3].
На стадии проектирования эти модели расширяются, уточняются и дополняются диаграммами, отражающими структуру или архитектуру системы, структурные схемы программ и диаграммы экранных форм.
Метод функционального моделирования SADT. На основе метода SADT, предложенного Д.Россом, разработана методология IDEF0 (Icam DEFinition), которая является основной частью программы ICAM (Интеграция компьютерных и промышленных технологий), проводимой по инициативе ВВС США.
Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели предметной области, которая отображает функциональную структуру, производимые функции и действия, а также связи между ними.
Основные элементы этого метода базируются на следующих концепциях:
- графическое представление структуры системы диаграммами, отображающими функции в виде блоков, а интерфейсы (вход/выход) - дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описывается в виде ограничений, которые определяют условия управления и выполнения функции;
- наличие ограничений на количество блоков (от 3 до 6) на каждом уровне декомпозиции и связей диаграмм через номера этих блоков;
- уникальность меток и наименований;
- разделение входов и операций управления;
- отделение управления от функций, т.е. исключение влияния организационной структуры на функциональную модель.
Метод SADT применяется при моделировании широкого круга систем, для которых определяются требования и функции, а затем проводится их реализация. Средства SADT могут применяться при анализе функций в действующей ПС, а также при определении способов их реализации.
Результат применения метода SADT - модель, которая состоит из диаграмм, фрагментов текстов и глоссария со ссылками друг на друга. Все функции и интерфейсы представляются диаграммами в виде блоков и дуг. Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация входит в блок сверху, в то время как информация, которая подвергается обработке, указывается с левой стороны блока, а результаты выхода - с правой стороны. Механизм, осуществляющий операцию (человек или автоматизированная система), задается дугой, входящей в блок снизу (рис. 5.1).
Одна из наиболее важных особенностей метода SADT - постепенная детализация модели системы по мере добавления диаграмм, уточняющих эту модель.
Метод SSADM базируется на таких структурных диаграммах, как последовательность, выбор и итерация. Моделируемый объект задается последовательностью групп, операторами выбора из группы и циклическим выполнением отдельных элементов.
Базовая диаграмма - иерархическая и включает в себя: список компонентов описываемого объекта; идентифицированные группы выбранных и повторяемых компонентов, а также последовательно используемых компонентов.
Данный метод представлен моделью ЖЦ со следующими этапами разработки программного проекта (рис. 5.2):
- стратегическое проектирование и изучение возможности выполнения проекта;
- детальное обследование предметной области, включающее в себя анализ и спецификацию требований;
- логическое проектирование и спецификация системы;
- физическое проектирование структур данных в соответствии с выбранной структурой БД (иерархической, сетевой и др.);
- конструирование и тестирование системы.
Детальное обследование предметной области проводится для того, чтобы изучить ее особенности, рассмотреть потребности и предложения заказчика, провести анализ требований из разных документов, специфицировать их и согласовать с заказчиком.
Цель стратегического проектирования - определение области действия проекта, анализ информационных потоков, формирование общего представления об архитектуре системы, затратах на разработку и подтверждение возможности дальнейшей реализации проекта. Результат - спецификация требований, которая применяется при разработке логической структуры системы.
Логическое проектирование - это определение функций, диалога, метода построения и обновления БД. В логической модели отображаются входные и выходные данные, прохождение запросов и установка связей между сущностями и событиями.
Физическое проектирование - это определение типа СУБД и представления данных в ней с учетом спецификации логической модели данных, ограничений на память и времени обработки, а также определение механизмов доступа, размера логической БД, связей между элементами системы. Результат - создание документа, включающего в себя:
- спецификацию функций и способов их реализации, описание процедурных, непроцедурных компонентов и интерфейсов системы;
- определение логических и физических групп данных с учетом структуры БД, ограничений на оборудование и положений стандартов на разработку;
- определение событий, которые обрабатываются как единое целое и выдача сообщений о завершении обработки и др.
Конструирование - это программирование элементов системы и их тестирование на наборах данных, которые подбираются на ранних этапах ЖЦ разработки системы.
Проектирование системы является управляемым и контролируемым. Создается сетевой график, учитывающий работы по разработке системы, затраты и сроки. Слежение и контроль выполнения плана проводит организационный отдел. Проект системы задается структурной моделью, в которой содержатся работы и взаимосвязи между ними и их исполнителями, а потоки проектных документов между этапами отображаются в сетевом графике. Результаты каждого из этапов ЖЦ контролируются и передаются на следующий этап в виде, удобном для дальнейшей реализации другими исполнителями.