3.2.1. Сущность структурного подхода

Проблема сложности является главной проблемой, которую приходится решать при создании больших и сложных систем лю­бой природы, в том числе и ЭИС. Ни один разработчик не в состо­янии выйти за пределы человеческих возможностей и понять всю систему в целом. Единственный эффективный подход к решению этой проблемы, который выработало человечество за всю свою ис­торию, заключается в построении сложной системы из небольшого количества крупных частей, каждая из которых, в свою очередь, строится из частей меньшего размера и т.д., до тех пор, пока самые небольшие части можно будет строить из имеющегося материала. Этот подход известен под самыми разными названиями, среди них такие, как «разделяй и властвуй» (divide et impera), «Иерархическая декомпозиция» и др.

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

Понятие «правильная» по от­ношению к декомпозиции означает следующее:

· количество связей между отдельными подсистемами должно быть минимальным;

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

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

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

· каждая подсистема должна иметь четко определенный интерфейс с другими подсистемами.

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

На сегодняшний день в программной инженерии существуют два основных подхода к разработке ПО ЭИС, принципиальное различие между которыми обусловлено разными способами декомпозиции сис­тем. Первый подход называют функционально-модульным или структур­ным. В его основу положен принцип функциональной декомпозиции, при которой структура системы описывается в терминах иерархии ее функций и передачи информации между отдельными функциональ­ными элементами. Второй, объектно-ориентированный подход исполь­зует объектную декомпозицию. При этом структура системы описыва­ется в терминах объектов и связей между ними, а поведение сис­темы описывается в терминах обмена сообщениями между объектами.

Итак, сущность структурного подхода к разработке ПО ЭИС заключается в его декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, те – на задачи и так далее до конкретных процедур. При этом автоматизируемая си­стема сохраняет целостное представление, в котором все составляю­щие компоненты взаимоувязаны. При разработке системы «снизу вверх», от отдельных задач ко всей системе, целостность теряется, возникают проблемы при описании информационного взаимодей­ствия отдельных компонентов.

Все наиболее распространенные методы структурного подхода базируются на ряде общих принципов. Базовыми принципами яв­ляются:

· принцип «разделяй и властвуй»;

· принцип иерархического упорядочения – принцип организации со­ставных частей системы в иерархические древовидные структу­ры с добавлением новых деталей на каждом уровне.

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

· принцип абстрагирования – выделение существенных аспектов си­стемы и отвлечение от несущественных;

· принцип непротиворечивости – обоснованность и согласованность элементов системы;

· принцип структурирования данных – данные должны быть струк­турированы и иерархически организованы.

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

· DFD (Data Flow Diagrams) – диаграммы потоков данных;

· SADT(Structured Analysis and Design Technique – метод структурно­го анализа и проектирования,) – модели и соответствующие фун­кциональные диаграммы;

· ERD (Entity-Relationship Diagrams) – диаграммы «сущность-связь».

Диаграммы потоков данных и диаграммы «сущность-связь» – наиболее часто используемые в CASE-средствах виды моделей. Конкретный вид перечисленных диаграмм и интерпретация их конструкций зависят от стадии ЖЦ ПО.

На стадии формирования требований к ПО SADT-модели и DFD-модели используются для построения модели «AS-IS» и модели «ТО-ВЕ», отражая, таким образом, существующую и предлагаемую структу­ры бизнес-процессов организации и взаимодействие между ними (использование SADT-моделей, как правило, ограничивается толь­ко данной стадией, поскольку они изначально не предназначались для проектирования ПО). С помощью ERD-модели выполняется описа­ние используемых в организации данных на концептуальном уров­не, не зависимом от средств реализации базы данных (СУБД).

На стадии проектирования DFD-модели используются для описания структуры проектируемой системы ПО, при этом они могут уточнять­ся, расширяться и дополняться новыми конструкциями. Аналогич­но ERD уточняются и дополняются новыми конструкциями, опи­сывающими представление данных на логическом уровне, пригод­ном для последующей генерации схемы базы данных. Данные моде­ли могут дополняться диаграммами, отражающими системную архитектуру ПО, структурные схемы программ, иерархию экранных форм и меню и др.

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

Предметной областью для большинства рассмотренных примеров диаграмм  является налоговая система РФ, наи­более полное описание которой содержится в Налоговом кодексе РФ. Информационные технологии, применяемые в налоговой системе РФ, имеют определенные особенности.