Опубликован: 24.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 6:

Прикладные и теоретические методы программирования

Аннотация: Изложены базовые основы методов прикладного, систематического (структурного, компонентного, аспектно-ориентированного и др.) и теоретического (алгебраического, композиционного, концепторного и алгебро-алгоритмического) программирования для ознакомления студентов с теоретическими и прикладными аспектами методов программирования
Ключевые слова: теоретический метод, теоретическое программирование, модель проектирования, SADT, structured analysis, design technique, SSADM, systems analysis, design method, IDEF0, IDEF2, ICAM, функциональная модель предметной области, отображающая функция, логическое проектирование, логическая модель данных, статическая модель, class diagram, список операций, класс-шаблон, контейнерный класс, диаграмма последовательности, деятельность в состоянии, расширение моделей, диаграмма компонентов, физический ресурс, модель данных СУБД, JavaBeans, APL, OSF/1, система классификации, component testing, аспектно-ориентированное программирование, защита доступа, интеллектуализация, domain model, интеграционное тестирование, шаблон проектирования, abstract data type, ADT, предметно-ориентированый язык, KQML, спецификация программы, алгебра, комбинаторика, теория программирования, алгебраические, операции, множество заключительных состояний, последовательная композиция, параллельная композиция, семантическая функция, свойства программы, модель программы, Мультимножество, детерминант, арным отношением, символьная обработка, компьютерная алгебра, законы ассоциативности, Закон исключенного третьего, универсум, операция композиции, предикатный символ

В последние годы наибольшее развитие и использование получили прикладные методы: объектно-ориентированный, компонентный, сервисно-ориентированный и др. Они составляют основу методологии разработки ПС и практически применяются при создании разных видов программ.

Находят применение формальные и теоретические методы программирования (алгебраический, алгебро-алгоритмический, композиционный и др.), которые основываются на логико-алгоритмических и математических подходах.

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

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.1. Структура модели

Базовая диаграмма - иерархическая и включает в себя: список компонентов описываемого объекта; идентифицированные группы выбранных и повторяемых компонентов, а также последовательно используемых компонентов.

Данный метод представлен моделью ЖЦ со следующими этапами разработки программного проекта (рис. 5.2):

  • стратегическое проектирование и изучение возможности выполнения проекта;
  • детальное обследование предметной области, включающее в себя анализ и спецификацию требований;
  • логическое проектирование и спецификация системы;
  • физическое проектирование структур данных в соответствии с выбранной структурой БД (иерархической, сетевой и др.);
  • конструирование и тестирование системы.

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

Цель стратегического проектирования - определение области действия проекта, анализ информационных потоков, формирование общего представления об архитектуре системы, затратах на разработку и подтверждение возможности дальнейшей реализации проекта. Результат - спецификация требований, которая применяется при разработке логической структуры системы.

Логическое проектирование - это определение функций, диалога, метода построения и обновления БД. В логической модели отображаются входные и выходные данные, прохождение запросов и установка связей между сущностями и событиями.

 Жизненный цикл SSADM

увеличить изображение
Рис. 5.2. Жизненный цикл SSADM

Физическое проектирование - это определение типа СУБД и представления данных в ней с учетом спецификации логической модели данных, ограничений на память и времени обработки, а также определение механизмов доступа, размера логической БД, связей между элементами системы. Результат - создание документа, включающего в себя:

  • спецификацию функций и способов их реализации, описание процедурных, непроцедурных компонентов и интерфейсов системы;
  • определение логических и физических групп данных с учетом структуры БД, ограничений на оборудование и положений стандартов на разработку;
  • определение событий, которые обрабатываются как единое целое и выдача сообщений о завершении обработки и др.

Конструирование - это программирование элементов системы и их тестирование на наборах данных, которые подбираются на ранних этапах ЖЦ разработки системы.

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

Александр Медов
Александр Медов

Здравствуйте,при покупке печатной формы сертификата,будут ли выданы обе печатные сторны?

Александр Медов
Александр Медов

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

:

Yegor Lonskiy
Yegor Lonskiy
Финляндия, Tornio
Ри Зар
Ри Зар
Россия, Казань