3 как составляются структурные схемы константайна

от admin

Структурные карты Константайна

Методика структурных карт используется на этапе проектирования ПО для того, чтобы продемонстрировать, каким образом программный продукт выполняет системные требования. При этом наиболее часто применяются две техники: структурные карты Константайна (Constantine), предназначенные для описания отношений между модулями, и структурные карты Джексона (Jackson), предназначенные для описания внутренней структуры модулей.

Структуру программной системы составляют модули, которые в любом языке программирования имеют следующие общие свойства:

модуль имеет имя, по которому к нему можно обращаться как к единому фрагменту;

модуль состоит из множества операторов языка программирования, записанных последовательно;

модуль может принимать и/или передавать данные как параметры в вызывающей последовательности или связывать данные через фиксированные ячейки или общие области.

Структурные карты Константайна представляют собой модель отношений между модулями программы. Узлы структурных карт соответствуют модулям и областям данных, потоки изображают межмодульные связи. На диаграмме специальными узлами изображаются циклические и условные вызовы модулей, а потоки проходят через эти специальные узлы. Потоки, изображающие межмодульные связи по данным и управлению также изображаются на диаграмме специальными узлами, а стрелками указываются направления потоков. На рис. 4 приведены основные компоненты структурных карт Константайна:

Рис. 4. Элементы структурных карт

а – модуль; б – вызов модуля; в – связь по данным; связь по управлению

Модуль является базовым элементом структурной карты. Различают следующие типы модулей (см. рис. 5):

модуль (рис. 5, а);

подсистема – детализированный модуль или программа. Может использоваться повторно любое число раз (рис. 5, б);

библиотека – совокупность подпрограмм размещенных в модуле отдельно от данной системы (рис. 5, в);

область данных – описывает модули, содержащие исключительно области глобальных/распределенных данных (рис. 5, г).

Рис. 5. Типы модулей

Отдельные части программной системы (программы, подпро­граммы) могут вызываться последовательно, параллельно или как сопро­граммы (см. рис. 6).

Для моделирования условных и циклических вызовов применяются следующие узлы (рис. 7):

условный узел применяется для моделирования конструкций IF-THEN-ELSE (на диаграмме из узла выходят два потока) и IF-THEN (из узла выходит один поток). Условный узел изображается в виде ромба, потоки – альтернативные вызовы изображаются выходящими из него;

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

Рис. 6. Типы вызовов модулей

Если необходимо показать, что подчиненный модуль вызывается однократно, это осуществляется указанием цифры «1» рядом со стрелкой, обозначающей вызов модуля-наследника.

Рис. 7. Условные и циклические вызовы модулей

а — циклический; б — условный; в — однократный

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

Рис. 8. Связи а – по данным и б – по управлению

Пример 2. Разработать структурную карту Константайна для задачи сортировки одномерного массива с помощью алгоритмов Пузырька, прямого выбора и Шелла.

Программа состоит из модулей Меню, Методов сортировки, и Вывода результата. Пользователь выбирает нужный метод, вводит массив и получает в результате отсортированный массив.

Структурные карты Константайна

На структурной карте отношения между модулями представляют в виде графа, вершинам которого соответствуют модули и общие области данных, а дугам — межмодульные вызовы и обращения к общим областям данных.

Различают четыре типа вершин (рис. 5.7):

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

При этом отдельные части программной системы (программы, подпрограммы) могут вызываться последовательно, параллельно или как сопрограммы (рис. 5.8).

Чаще всего используют последовательный вызов, при котором модули, передав управление, ожидают завершения выполнения вызванной программы или подпрограммы, чтобы продолжить прерванную обработку.

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

Обозначения вершин по стандартам IBM, ISO и ANSI

Рис. 5.7. Обозначения вершин по стандартам IBM, ISO и ANSI:

а — модуль; б — подсистема; в — библиотека; г — область данных

Обозначения типа вызова

Рис. 5.8. Обозначения типа вызова:

а — последовательный вызов; б — параллельный вызов; в — вызов сопрограммы

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

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

Диаграммы реализации параллельного вызова (а) и вызова сопрограммы (б)

Рис. 5.9. Диаграммы реализации параллельного вызова (а) и вызова сопрограммы (б):

Если стрелка, изображающая вызов, касается блока, то обращение происходит к модулю целиком, а если входит в блок, то — к элементу внутри модуля.

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

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

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

Пример 5.2. Представим в виде структурной карты Константайна полную структурную схему, полученную в предыдущем примере (см. рис. 5.6).

Обозначение типа связи

Рис. 5.11. Обозначение типа связи:

а — по данным; б — по управлению

Обозначения особых условий вызова

Рис. 5.10. Обозначения особых условий вызова:

а — циклический; б — условный; в — однократный

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

Для остальных подпрограмм покажем особые условия вызова и типы связей (рис. 5.12).

Модули Расчет значений функции, Вывод таблицы и Построение графика связаны с основной программой по образцу, так как параметры X и Y структурные (массивы), следовательно, программа считается сцепленной по образцу.

Анализ показывает, что количество сцеплений по образцу в программе можно уменьшить, если подпрограмму Расчет значений функции перенести на следующий уровень (рис. 5.13). Однако в этом случае при смене вида результата таблица значений будет рассчитываться заново.

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

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

В соответствии с требованиями нисходящей разработки (комбинированный подход) можно предложить следующий порядок реализации модулей:

  • • Основная программа;
  • • Вывод окна с текстом;
  • • Вывод заголовка и меню;
  • • Разбор функции;
  • • Вычисление значений функции;
  • • Вывод таблицы;
  • • Расчет значений функции;
  • • Построение графика.

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

Что такое структурные карты Константайна, для чего они нужны и где построить. Отличия от структурных карт Джексона.

Структурные карты Константайна используют при проектировании ПО. Они показывают, как продукт будет выполнять системные требования и описывает отношения между модулями.

Зачем нужны структурные карты Константайна?

Карты позволяют продемонстрировать структуру системы, модулей, и их связи друг с другом. На основе структурных карт можно оценивать и улучшать качество проекта.

С помощью какой программы можно построить структурную карту Константайна?

В векторном графическом редакторе Microsoft Visio

Структурные карты Константайна

Структурные карты Константайна используют при проектировании программного обеспечения. Они показывают, как продукт будет выполнять системные требования и описывает отношения между модулями.

Зачем нужны структурные карты Константайна

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

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

Построить структурную карту Константайна можно, например, в векторном графическом редакторе Microsoft Visio.

Из чего состоит структурная карта Константайна

Структурная карта состоит из разных элементов:

  • Модули
  • Вызов модуля
  • Связь по данным
  • Связь по управлению.

Модули — ключевой элемент структурной карты Константайна. Они бывают разных типов: детализированный модуль, совокупность подпрограмм в модуле (библиотека), модули с областями глобальных или распределенных данных.

Объекты структурной карты Константайна

  • Структурный блок. Это блок кодов с одним входом и выходом.
  • Процедурный блок. Представляет собой вызов процедуры, определенной ранее.
  • Библиотечный блок. Представляет собой вызов библиотечного модуля.

Чтобы увязывать блоки между собой используют связи:

  • последовательная связь — последовательное выполнение слева направо;
  • параллельная связь — блоки выполняются одновременно;
  • условная связь — можно выбрать одну из альтернатив;
  • итерационная связь — блоки выполняются в цикле.

Модули в структурной карте Константайна

Структуру любой программной системы составляют модули. У них есть определенные общие свойства:

  • у модуля есть имя, по нему к нему можно обращаться как к единому фрагменту;
  • состоит модуль из разных операторов языка программирования, которые последовательно записаны;
  • модуль может передавать и принимать данные.

Структурные карты Джексона

Структурные карты Джексона нужны для описания внутренней структуры модулей и во–многом схожи со структурными картами Константайна.

Метод Джексона включает шесть шагов. Три первых шага выполняются на этапе анализа продукта. Остальные три шага выполняются на этапе проектирования продукта.

  • Шаг объект–действие. Здесь определяют объекты — источники или приемники информации и действия — это внешние события из реального мира, которые воздействуют на объекты.
  • Шаг объект–структура. Описывает последовательность действий над объектами. Здесь для отображения действий над объектами используют диаграммы Джексона.
  • Шаг начальное моделирование. Здесь определяют связи между моделью продукта и реальными миром/пользователями.
  • Шаг доопределение функций. На этом этапе определяют и описывают сервисные функции продукта.
  • Шаг учета системного времен. Здесь планируют время будущих процессов.
  • Шаг реализации. Здесь про согласование с системной средой и разработку аппаратной платформы.
Читать:
Acpi 10251229 0 что за устройство

Шаг первый — объект действие — начинают с определения проблемы. На втором шаге — объект–структура — создают структуру объектов, которая будет описывать последовательность действий над ними.

Сцепление модулей в структурных картах Константайна Джексона

Оценить качество проекта помогает анализ сцепления модулей. Сцепление отражает зависимость модулей друг от друга. И в удачном проекте сцепления должно быть минимальным. Точнее говоря, модули должны слабо зависеть друг от друга, быть независимыми насколько возможно.

Почему слабое сцепление модулей — это признак хорошо спроектированной системы? На то есть несколько причин:

  • Чем меньше соединений между двумя модулями, тем меньше «волнового эффекта», когда одна ошибка тянет за собой другие в связанных модулях.
  • Уменьшается риск «эффекта ряби», когда внесли изменения в одном модуле и нужно делать то же самое с другими, иначе исправление ошибок в одном месте может привести к появлению таковых в другом модуле.
  • Не придется волноваться о внутренних деталях других моделей при сопровождении одного модуля.
  • Проще понять и разобраться с системой.

Чтобы добиться такого минимального сцепления модулей, нужно:

  • удалить необязательные связи между модулями;
  • уменьшить число обязательных связей между модулями, насколько это возможно;
  • упростить обязательные связи.

Как на практике ослабить сцепление модулей в структурной карте Константайна

На практике проектировщики системы применяют три основных типа сцепления модулей:

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

Чтобы на практике ослабить сцепление модулей в структурной карте Константайна нужно:

  • Создавать минимальные по числу параметров связи между модулями.
  • Создавать прямые, а не косвенные, связи между модулями. Ведь интерфейс между двумя модулями достаточно понятен, несложен. А это значит, что пользователь сможет понять его сразу. Без ссылок на другие информационные объекты.
  • Создавать очевидные связи между модулями.
  • Использовать гибкие связи, чтобы облегчать модификацию.

Типы нормального сцепления в структурных картах Константайна

Различают три типа нормального сцепления модулей в структурных картах:

  • Сцепление по данным
  • Сцепление по образцу
  • Сцепление по управлению.

На практике чаще всего используют сцепление по данным — data coupling. Оно отлично подходит, когда нужно передавать небольшое количество параметров. Модули взаимодействуют через передачу параметров. Каждый параметр — это информационный объект.

При сцеплении по образцу — stamp coupling — один модуль посылает другому объект с внутренней структурой. Например, это может быть информация о клиенте с названием организации, почтовым адресом, номером счета.

При сцеплении по управлению — control coupling — один модуль отправляет другому информационный объект. Это как флаг для управления внутренней логикой. Флаги бывают двух видов: описательные и управляющие.

  • Описательный флаг помогает описать ситуацию, которая произошла, например, конец файла или введенная кредитная карта.
  • Управляющий флаг указывает на определенные действия в модуле. Например, установить в начало или читать предыдущую запись.

Флаги усиливают сцепление. А как мы помним, это не очень хорошо может сказаться на качестве проекта.

Связность в структурных картах Константайна

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

3 как составляются структурные схемы константайна

Описание схемы функционирования АРМ для учета, планирования и анализа учебной деятельности осуществляется с помощью SSD-диаграммы. Данная технология также носит название «Структурные карты». Она используется на фазе проектирования для того, чтобы продемонстрировать, каким образом системные требования будут отражаться комбинацией программных структур.

На Рисунке 3.5 представлена SSD-диаграмма в нотации Константайна. Структурная карта Константайна предназначена для описания отношений между модулями. На диаграмму вынесены области данных, которые изображены в виде овалов. Такой вид представления наглядно показывает взаимосвязь модулей с хранилищами данных [3.10].

Схема функционирования АРМ

Рисунок 3.5 — Схема функционирования АРМ

Описание технологии работы с АРМ

Приложение устанавливается на персональном компьютере сотрудника учебного центра. Исполняемый файл МУЦ.accde копируется на системный диск ПК и на рабочий стол помещается ярлык. База данных может находиться в локальной сети на специально выделенном сервере. При настройке системы необходимо установить связь между клиентской частью и таблицами базы данных. Запуск АРМ производится с Рабочего стола при нажатии ярлыка «НОЧУ». После загрузки программы появляется окно Главная форма, представленная на Рисунке 3.6. Главная форма содержит кнопки, которые обеспечивают доступ к функциональности АРМ.

Главная форма приложения

Рисунок 3.6 — Главная форма приложения

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

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

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

Окно «Предварительная запись»

Рисунок 3.7 — Окно «Предварительная запись»

Главная форма приложения

Рисунок 3.8 — Главная форма приложения

Для начала создания группы необходимо выбрать нужную специальность и внести название создаваемой группы. Когда клиенты заполнят договоры и внесут первый взнос оплаты, напротив их фамилий в графе «Включить в группу» ставится «Да». В том случае, если клиент отказался пройти обучение по данной специальности, в графе «Включить в группу» выбирается значение «Нет», что служит основанием для удаления из списка кандидатов. Удаление будет выполнено автоматически при создании группы. После окончательного формирования списка кандидатов на обучение нужно нажать на клавишу «Создать группу».

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

Окно «Учебный процесс» вкладка «Учащиеся»

Рисунок 3.9 — Окно «Учебный процесс» вкладка «Учащиеся»

Данное окно можно условно разделить на две части. В верхней части представлены все группы, которые обучались или продолжают обучение на данный момент. При закрытии группы в графе «Закрыта» устанавливается значение «Да». В данной форме реализована функция фильтрации групп по их активности. Чтобы отобрать только открытые группы нужно установить переключатель на пункт «Открытые». Аналогично выбираются все группы, которые проходили обучение (переключатель на пункте «Все», или закрытые группы (переключатель на пункте «Закрытые»).

В нижней части окна представлен ряд вкладок: «Учащиеся», «Преподаватели», «График занятий», «Комиссия», «Экзамен» и «Оплата».

Рассмотрим вкладку «Учащиеся». В ней расположен список учащихся, которые зарегистрированы в данной группе. Напротив каждой фамилии находится клавиша «Личная карточка», при нажатии которой открывается одноименное окно, представленное на Рисунке 3.10.

Личная карточка

Рисунок 3.10 — Личная карточка

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

На вкладке «Преподаватели» (Рисунок 3.11) заносятся фамилии и должности преподавателей, которых закрепили за данной группой. Если при выборе преподавателя не нашлось нужного, его можно добавить, нажав на кнопку «Добавить преподавателя». В поля окна «Преподаватели», представленном на Рисунке 3.12, заносится необходимая информация, после чего его необходимо закрыть.

На вкладке «График занятий» (Рисунок 3.13) при нажатии кнопки «Составить график» автоматически составляется подробный график, указываются даты занятий и количество часов, прочитанных в день.

Окно «Учебный процесс» вкладка «Преподаватели»

Рисунок 3.11 — Окно «Учебный процесс» вкладка «Преподаватели»

Окно «Преподаватели»

Рисунок 3.12 — Окно «Преподаватели»

Окно «Учебный процесс» вкладка «График занятий»

Рисунок 3.13 — Окно «Учебный процесс» вкладка «График занятий»

Вкладка «Комиссия» служит для хранения информации о комиссии, которая будет участвовать в проведении экзамена.

Для просмотра информации об оплате за обучение используется вкладка «Оплата». Нажав на кнопку «Загрузить оплату» и следуя инструкциям мастера, в БД загружается файл в формате.xls, информация из которого будет отражена на вкладке «Оплата».

Когда обучение в группе подходит к концу, необходимо распечатать аттестационную документацию. Для этого на форме «Учебный процесс» выбирается группа, а затем кнопка с наименованием нужного документа. После этого вся необходимая информация поместится в документ MS Word, где в дальнейшем ее можно отредактировать.

Для быстрого поиска необходимой группы или учащегося используется архив. Чтобы его открыть на «Главной форме» необходимо нажать на клавишу «Архив», после чего откроется одноименное окно.

Чтобы найти ученика в поле со списком, нужно выбрать специальность, по которой он проходил обучение, занести примерные сроки начала занятий в группе, а также фамилию, имя и отчество ученика. В нижнем поле будет отражена найденная запись. Чтобы перейти непосредственно к группе, в которой проходил обучение данный учащийся, нужно выделить необходимую и нажать на кнопку «Найти группу».

Для редактирования тематических планов на «Главной форме» нужно нажать на кнопку «Темпланы», после чего откроется окно «Специальность» (Рисунок 3.18). Сюда заносятся названия специальностей и количество часов, необходимое для их изучения.

Для анализа учебной деятельности, а в частности, для подсчета минимального количества человек в группе, чтобы устранить убыточность группы, используется окно «Анализ безубыточности». В поле «Специальность» выбирается необходимая специальность, в поля «Дата с» и «Дата по» заносятся сроки, за которые будут суммироваться затраты на группу. Далее, в поле «Сумма» вносится общая сумма оплаты за обучение по данной специальности.

Постоянные и переменные затраты вводятся либо вручнуюв соответствующие поля, либо импортируются из файла формата.xls нажатием кнопки «Импорт». После заполнения всех полей будет автоматически подсчитано количество человек, оплата за обучение которых полностью покроет затраты на группу.

При завершении работы с программой все окна закрываются нажатием клавиши «Выход».

Похожие статьи