- •Сложная система. Признаки сложной системы.
- •2. Состав и структура по. Специальное и общее по
- •Основные этапы жцпо - схема.
- •Классификация по по продолжительности жц
- •Каскадные модели жц по. Достоинства и недостатки.
- •Спиральная модель жц по. Ее отличие от каскадной
- •Принципы проектирования пользовательского интерфейса
- •Жц по в соответствии со стандартом iso-iec 12207.
- •Управление требованиями к системе
- •Принципы структурного подхода. Свойства иерархических систем.
- •Иерархия данных и компонентов при структурном подходе.
- •Восходящее и нисходящее проектирование
- •Типовая структура программного комплекса
- •Структурированная программа. Элементарные базовые конструкции, используемые для ее создания.
- •Модульность, модульное программирование.
- •Функциональное моделирование. Принципы построения модели idef0
- •Типы связей между функциями при построении функциональной модели системы
- •Принципы построения иерархии диаграмм потоков данных
- •Проектирование бд
- •Диаграмма “сущность-связь” в нотации р. Баркера
- •Принципы объектного подхода. Объектная декомпозиция ее отличие от алгоритмической.
- •Сложная система с точки зрения объектного подхода.
- •Этапы создания по при объектном подходе
- •Объект. Поведение объекта. Состояние объекта. Индивидуальность
- •Класс. Отношения между классами.
- •Составляющие объектного подхода (основные)
- •Составляющие объектного подхода дополнительные
- •Принципы проектирования пользовательского интерфейса
- •Саse-технология: общие характеристики. Критерии выбора. Состав полного комплекта саse-средств
- •Этапы внедрения саse-средств. Пилотный проект
- •Классификация case-средств
- •Технология и методология case-проектирования
- •Методология rad
- •Унифицированный язык моделирования uml. Основные компоненты
- •Диаграммы вариантов использования
Восходящее и нисходящее проектирование
Иерархический подход при проектировании сложной позволяет проектировать систему по принципу сверху-вниз, с позиции оптимального решения основной целевой задачи, разрабатываемого комплекса. В основе этой методики лежит принцип декомпозиции, т.е. разбиения, а элементом декомпозиции является один из шагов решения задачи. Такая декомпозиция называется функциональной или алгоритмической. Общая задача системы разбивается на ряд подзадач, решающих самостоятельные проблемы. Каждая из подзадач в свою очередь т.ж. может подвергаться декомпозиции. Процесс декомпозиции продолжается до тех пор, пока на одном из нижних иерархических уровнях выделенная подзадача будет иметь достаточно простое решение.
Такой подход обеспечивает концептуальное единство системы и рациональное распределение ресурсов проектирования по мере декомпозиции компонентов. В этом случае легко привлечь к проектированию и разработке системы достаточно большую группу специалистов.
Иногда основному проектирования сверху-вниз сопутствует разработка отдельных компонентов по принципу снизу-вверх. В этом случае разработка начинается с самого нижнего уровня и поднимается вверх по иерархической лестнице. При переходе к разработке компонентов более высокого, модули нижнего уровня считаются полностью готовыми и подключаются к компонентам верхнего уровня на стадии отладки.
Однако в этом случае отсутствует обобщающий взгляд на проблему с позиции верхнего уровня, который определяет цель построения системы, что не позволяет в отдельных случаях принять верные решения, а это может привести к ошибкам, которые могут привести к повторной разработке или значительной корректировке уже готовых модулей. При этом, чем выше уровень на котором была обнаружена ошибка, тем тяжелее последствия.
Разработка снизу-вверх возможна только для относительно небольших групп программ, разрабатываемых одним специалистом, который может оценить, как структуру разрабатываемых программ, так и функции любого из модулей на каждом уровне иерархии.
Типовая структура программного комплекса
Структура программного комплекса не зависит от содержания функциональных задач, решаемых программной системой.
Независимо от профиля решаемых задач каждый программный комплекс включает четыре группы программ:
-решения функциональных задач,
-обмена с внешними абонентами,
-организации вычислительного процесса,
-контроля и обеспечения надежности.
Структурированная программа. Элементарные базовые конструкции, используемые для ее создания.
Простота исходных конструкций структурного программирования предотвращает появление сложных информационных связей. Каждая программа может быть создана на основе элементарных базовых конструкций 3-типов:
-простой вычислительной последовательности,
-выбора или альтернативы,
-повторения или итерации.
Простая вычислительная последовательность заключается в последовательном преобразовании исходных данных. При этом операторы конструкции следуют один за другим, причем конец предыдущего оператора замыкается на начало следующего
Итерация представляет собой конструкцию, в которой оператор или группа операторов повторяется боле одного раза. Для структурированной программы число итераций должно быть задано до входа в цикл.
Альтернатива состоит в проверке некоторого условия и в выборе одного из двух операторов преобразования данных. При ветвлении происходит однократный проход по одной из ветвей решения задачи.
Существуют программные конструкции, использование которых рекомендуется максимально ограничивать. При искажении исходных данных они могут привести к непредсказуемым последствиям. Наиболее неустойчивой и трудно контролируемой конструкцией является безусловный переход по содержимому ячейки оперативной памяти (GO TO).
Структурированной считается программа, которая:
-не имеет переходов внутрь циклов или условных операторов,
-не имеет выходов из внутренней части циклов и условных операторов,
-число итераций должно быть задано до входа в цикл.
-ограничено использование оператора GO TO.
При повышении структурированности снижается сложность программ, возрастает их наглядность, что способствует сокращению числа ошибок. Однако, повышение качества программы может повлечь необходимость в дополнительной памяти и времени реализации.