Поясните сущность структурного подхода к разработке ПО. Поясните принципы структурного подхода.




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

Принципы структурного подхода:

 

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

 

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

 

  1. принцип абстрагирования - заключается в выделении существенных аспектов системы и отвлечения от несущественных;

 

  1. принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы;

 

  1. принцип непротиворечивости - заключается в обоснованности и согласованности элементов;

 

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

 

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

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

Декомпозиция — это выявление структуры и организации системы. Система при декомпозиции представляется как нечто целостное, и вместе с тем составленная из простых компонентов.

Алгоритмическая декомпозиция основывается на разбиении системы на действия — алгоритмы. Система делится на подсистемы, которые делятся на более мелкие подсистемы и т.д. Конечными элементами такого деления являются процедуры и функции.

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

В случае нисходящего проектирования структурируют прежде всего действия, которые должна выполнять программа. Большую и сложную задачу, стоящую перед проектируемым программным изделием, представляют в виде нескольких подзадач меньшего объема. Таким образом, модуль самого верхнего уровня, отвечающий за решение всей задачи в целом, получается достаточно простым и обеспечивает только последовательность обращений к модулям, реализующим подзадачи. На первом этапе проектирования модули подзадач выполняются в виде "заглушек". Заглушка - это очень простой по структуре модуль, в котором входные и выходные данные соответствуют замещаемому модулю, но алгоритм обработки данных очень упрощен. Часто в заглушке помимо описания входных и выходных данных присутствует лишь один оператор печати, сообщающий, что в этом месте программы вызывается заглушка.

Затем каждая подзадача в свою очередь подвергается декомпозиции по тем же правилам.

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

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

Преимущество нисходящего проектирования – на самом начальном этапе проектирования отлаживается головной модуль (логика программы).

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

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

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

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

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

 

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

Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:

  • графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих "ограничения", которые в свою очередь определяют, когда и каким образом функции выполняются и управляются;
  • строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
  • ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);
  • связность диаграмм (номера блоков);
  • уникальность меток и наименований (отсутствие повторяющихся имен);
  • синтаксические правила для графики (блоков и дуг);
  • разделение входов и управлений (правило определения роли данных).
  • отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: