В последние годы наибольшее развитие и использование получили прикладные методы: объектно-ориентированный, компонентный, сервисно-ориентированный и др. Они составляют основу методологии разработки ПС и практически применяются при создании разных видов программ.
Находят применение формальные и теоретические методы программирования (алгебраический, алгебро-алгоритмический, композиционный и др.), которые основываются на логико-алгоритмических и математических подходах.
В данной лекции представлено описание базовых понятий и особенностей методов систематического (прикладного), отдельных методов теоретического программирования с целью ознакомления студентов с современной теорией и практикой разработки программ.
К методам систематического программирования отнесены следующие методы:
Каждый метод имеет свое множество понятий и операций для проведения процесса разработки компонентов или ПС. Метод генерирующего программирования использует возможности объектно-ориентированного, компонентного, аспектно-ориентированного методов и др.
Сущность структурного подхода к разработке ПС заключается в декомпозиции (разбиении) системы на автоматизируемые функции, которые в свою очередь делятся на подфункции, на задачи и так далее. Процесс декомпозиции продолжается вплоть до определения конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимосвязаны.
В основе структурного метода лежат такие общие принципы:
К основным принципам относятся:
При структурном анализе применяются три наиболее распространенные модели проектирования ПС:
На стадии проектирования эти модели расширяются, уточняются и дополняются диаграммами, отражающими структуру или архитектуру системы, структурные схемы программ и диаграммы экранных форм.
Метод функционального моделирования SADT. На основе метода SADT, предложенного Д.Россом, разработана методология IDEF0 (Icam DEFinition), которая является основной частью программы ICAM (Интеграция компьютерных и промышленных технологий), проводимой по инициативе ВВС США.
Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели предметной области, которая отображает функциональную структуру, производимые функции и действия, а также связи между ними.
Основные элементы этого метода базируются на следующих концепциях:
Метод SADT применяется при моделировании широкого круга систем, для которых определяются требования и функции, а затем проводится их реализация. Средства SADT могут применяться при анализе функций в действующей ПС, а также при определении способов их реализации.
Результат применения метода SADT - модель, которая состоит из диаграмм, фрагментов текстов и глоссария со ссылками друг на друга. Все функции и интерфейсы представляются диаграммами в виде блоков и дуг. Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация входит в блок сверху, в то время как информация, которая подвергается обработке, указывается с левой стороны блока, а результаты выхода - с правой стороны. Механизм, осуществляющий операцию (человек или автоматизированная система), задается дугой, входящей в блок снизу (рис. 5.1).
Одна из наиболее важных особенностей метода SADT - постепенная детализация модели системы по мере добавления диаграмм, уточняющих эту модель.
Метод SSADM базируется на таких структурных диаграммах, как последовательность, выбор и итерация. Моделируемый объект задается последовательностью групп, операторами выбора из группы и циклическим выполнением отдельных элементов.
Базовая диаграмма - иерархическая и включает в себя: список компонентов описываемого объекта; идентифицированные группы выбранных и повторяемых компонентов, а также последовательно используемых компонентов.
Данный метод представлен моделью ЖЦ со следующими этапами разработки программного проекта (рис. 5.2):
Детальное обследование предметной области проводится для того, чтобы изучить ее особенности, рассмотреть потребности и предложения заказчика, провести анализ требований из разных документов, специфицировать их и согласовать с заказчиком.
Цель стратегического проектирования - определение области действия проекта, анализ информационных потоков, формирование общего представления об архитектуре системы, затратах на разработку и подтверждение возможности дальнейшей реализации проекта. Результат - спецификация требований, которая применяется при разработке логической структуры системы.
Логическое проектирование - это определение функций, диалога, метода построения и обновления БД. В логической модели отображаются входные и выходные данные, прохождение запросов и установка связей между сущностями и событиями.
Физическое проектирование - это определение типа СУБД и представления данных в ней с учетом спецификации логической модели данных, ограничений на память и времени обработки, а также определение механизмов доступа, размера логической БД, связей между элементами системы. Результат - создание документа, включающего в себя:
Конструирование - это программирование элементов системы и их тестирование на наборах данных, которые подбираются на ранних этапах ЖЦ разработки системы.
Проектирование системы является управляемым и контролируемым. Создается сетевой график, учитывающий работы по разработке системы, затраты и сроки. Слежение и контроль выполнения плана проводит организационный отдел. Проект системы задается структурной моделью, в которой содержатся работы и взаимосвязи между ними и их исполнителями, а потоки проектных документов между этапами отображаются в сетевом графике. Результаты каждого из этапов ЖЦ контролируются и передаются на следующий этап в виде, удобном для дальнейшей реализации другими исполнителями.