LeadStartup
Получите бесплатно — все материалы с наших курсов
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR

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

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

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

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

Нравится Что такое структурные карты Константайна?
7
Комментарий Что такое структурные карты Константайна?
0
Mikhail Ряженка
Founder, Executive Partner

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

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

Нравится Зачем нужны структурные карты Константайна?
6
Комментарий Зачем нужны структурные карты Константайна?
0
Mikhail Ряженка
Founder, Executive Partner

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

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

Нравится С помощью какой программы можно построить структурную карту Константайна?
5
Комментарий С помощью какой программы можно построить структурную карту Константайна?
0
Mikhail Ряженка
Founder, Executive Partner

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

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

Нравится Структурные карты Константайна
2
Комментарий Структурные карты Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

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

Нравится Зачем нужны структурные карты Константайна
3
Комментарий Зачем нужны структурные карты Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

  • Модули

  • Вызов модуля

  • Связь по данным

  • Связь по управлению.

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

Нравится Из чего состоит структурная карта Константайна
7
Комментарий Из чего состоит структурная карта Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

  • Структурный блок. Это блок кодов с одним входом и выходом.

  • Процедурный блок. Представляет собой вызов процедуры, определенной ранее.

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

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

  • последовательная связь — последовательное выполнение слева направо;

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

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

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

Нравится Объекты структурной карты Константайна
2
Комментарий Объекты структурной карты Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

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

  • модуль может передавать и принимать данные.

Нравится Модули в структурной карте Константайна
5
Комментарий Модули в структурной карте Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

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

  • Шаг объект–структура. Описывает последовательность действий над объектами. Здесь для отображения действий над объектами используют диаграммы Джексона.

  • Шаг начальное моделирование. Здесь определяют связи между моделью продукта и реальными миром/пользователями.

  • Шаг доопределение функций. На этом этапе определяют и описывают сервисные функции продукта.

  • Шаг учета системного времен. Здесь планируют время будущих процессов.

  • Шаг реализации. Здесь про согласование с системной средой и разработку аппаратной платформы.

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

Нравится Структурные карты Джексона
5
Комментарий Структурные карты Джексона
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

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

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

  • Не придется волноваться о внутренних деталях других моделей при сопровождении одного модуля.

  • Проще понять и разобраться с системой.

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

  • удалить необязательные связи между модулями;

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

  • упростить обязательные связи.

Нравится Сцепление модулей в структурных картах Константайна Джексона
2
Комментарий Сцепление модулей в структурных картах Константайна Джексона
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

  • сцепление по общей области — неприемлемое с позиции структурного проектирования;

  • сцепление по содержимому — запрещенное с позиции структурного проектирования.

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

  • Создавать минимальные по числу параметров связи между модулями.

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

  • Создавать очевидные связи между модулями.

  • Использовать гибкие связи, чтобы облегчать модификацию.

Нравится Как на практике ослабить сцепление модулей в структурной карте Константайна
6
Комментарий Как на практике ослабить сцепление модулей в структурной карте Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

  • Сцепление по данным

  • Сцепление по образцу

  • Сцепление по управлению.

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

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

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

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

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

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

Нравится Типы нормального сцепления в структурных картах Константайна
4
Комментарий Типы нормального сцепления в структурных картах Константайна
0
Mikhail Ряженка
Founder, Executive Partner

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

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

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

  • Функциональная. Такой модуль содержит объекты, которые предназначены для выполнения одной задачи. К примеру, расчет зарплаты, считывание кредитки. То есть у каждого такого модуля есть одна четко определенная цель. При его вызове будет выполняться лишь одна задача.

  • Последовательная связность. Здесь выходные данные одной задачи служат входными для следующей. На примере все просто: открыть файл — прочитать текст — закрыть файл.

  • Информационная. Связный модуль содержит объекты, которые используют одни и те же входные или выходные данные. Представим, что вам нужно узнать информацию о книге: название, автор, цена в онлайн–магазине. Знаете вы только ее уникальный номер ISBN. Входной информационный объект тут будет ISBN. А ваши вопросы — тремя связанными подзадачами.

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

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

  • Логическая. В модуле с такой связностью объекты содействуют решению общей подзадачи, для которой они и были отобраны изначально. Объекты при этом не связаны потоками данных или потоками управления. А подзадачи относятся к одной категории. Например, способы перемещения в путешествии: полететь на самолете, поехать на автомобиле, поплыть на корабле, сесть на поезд. Но тут важно, что с большой долей вероятности будет выбрано только одно действие — один способ передвижения, а не все разом.

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

Нравится Связность в структурных картах Константайна
4
Комментарий Связность в структурных картах Константайна
0
Mikhail Ряженка
Founder, Executive Partner