Получите все материалы с наших тренингов — бесплатно
Что Такое Структурные Карты Константайна, 🗒️ Модули и Связи
Что Такое Структурные Карты Константайна, 🗒️ Модули и Связи
Что Такое Структурные Карты Константайна, 🗒️ Модули и Связи
⚡ Ответим в течение 30 минут — contact@leadstartup.ru
+7 495 150 42 63 — с 8:00 до 21:00 МСК
Катерина Сухих

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

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

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

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

Получите нашу единую MIRO–доску с 100+ инструментами и доступ к Google–диску
Материалы тренингов LeadStartup

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Различают несколько уровней связности:

  • Функциональная. Такой модуль содержит объекты, которые предназначены для выполнения одной задачи. К примеру, расчет зарплаты, считывание кредитки. То есть у каждого такого модуля есть одна четко определенная цель. При его вызове будет выполняться лишь одна задача.
  • Последовательная связность. Здесь выходные данные одной задачи служат входными для следующей. На примере все просто: открыть файл — прочитать текст — закрыть файл.
  • Информационная. Связный модуль содержит объекты, которые используют одни и те же входные или выходные данные. Представим, что вам нужно узнать информацию о книге: название, автор, цена в онлайн–магазине. Знаете вы только ее уникальный номер ISBN. Входной информационный объект тут будет ISBN. А ваши вопросы — тремя связанными подзадачами.
  • Процедурная связность. В таком модуле объекты включены в разные подзадачи. Они не всегда могут быть связными. И управление переходит от одной подзадачи к другой. Разберемся на простом допандемичном примере: сделать утром зарядку, сходить в душ, сварить себе кофе, одеться, пойти на работу.
  • Временная связность. Здесь схема схожая с процедурной, но объекты включены в подзадачи, которые связаны временем выполнения. Опять же смотрим на примере: поужинать, почистить зубы, поставить будильник, лечь спать. Все эти действия не связаны друг с другом ничем, кроме времени, когда их выполняют. Вечером, в конце дня.
  • Логическая. В модуле с такой связностью объекты содействуют решению общей подзадачи, для которой они и были отобраны изначально. Объекты при этом не связаны потоками данных или потоками управления. А подзадачи относятся к одной категории. Например, способы перемещения в путешествии: полететь на самолете, поехать на автомобиле, поплыть на корабле, сесть на поезд. Но тут важно, что с большой долей вероятности будет выбрано только одно действие — один способ передвижения, а не все разом.
  • Случайная связность. Объекты в таком модуле соответствуют подзадачам, которые почти не связаны друг с другом. Этот модуль похож на логически связный, но подзадачи будут из разных категорий. Например, гулять с собакой, заниматься спортом, смотреть сериал.
Получите единый доступ ко всем нашим 21 курсам, 8 тренингам, 4 профессиям и 126 воркшопам — с сертификацией