Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Структура сложных систем






Сложность присущая программному обеспечению

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

1. Сложность реального мира (реальной предметной области) откуда исходи заказ на разработку.

2. Сложность управления процессом разработки. За последние 20 лет объём программного кода вырос в 1000-чи раз, один человек часто не в состоянии охватить такую систему, требуется коллектив разработчиков – откуда вытекают трудности организации этого коллектива.

3. Обеспечение гибкости ПО.

4. Не удовлетворительные способы описания больших дискретных систем.

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

Структура сложных систем

Из общей теории сложных систем была произведена адаптация признаков для сферы разработки ПО и были сформулированы пять общих признаков любой сложной системы:

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

2. Выбор какие компоненты являются элементарными или не делимыми, относительно произволен.

3. Внутри компонентная связь обычно сильнее чем связь между компонентами – это позволяет отделить высокочастотное взаимодействие внутри компонента от низко частотного между компонентами. Это даёт возможность изолировано изучать каждую часть.

4. Иерархические системы обычно состоят из немногих типов подсистем по разному скомбинированных и организованных.

5. Любая работающая сложная система является результатом развития работавшей более простой системы. Сложная система реализованная с нуля практически не заработает с первого раза.

Каноническая форма сложной программной системы


В канонической форме присутствуют две ортогональные иерархии классов и объектов. Каждая иерархия многоуровневая, классы и объекты более высокого порядка построены из более простых. Какой класс или объект выбирается в качестве элементарного зависит от задачи. Объекты одного уровня имеют чётко выраженные связи. Структуры классов и объектов не является не зависимыми, каждый объект является объектом какого-то класса. Структура класса показывает общие свойства экземпляров, если бы не было структуры класса, то пришлось в каждом объекте повторять одни и те же сведения (общие). Структуры класса и объекта в целом называются архитектурой системы. Каноническая форма упорядочивает или организует сложность ПО, но не на много упрощает восприятие. По исследованию человеческий мозг одновременно может следить за 7 (+\-2) единицами информации. Как воспринимать? Есть три способа:

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

2. Объектно-ориентированная декомпозиция – при этом подходе предметная область представляется в виде автономных действующих лиц, которые взаимодействуют друг с другом, чтобы обеспечить поведение системы более высокому уровню. Каждый объект обладает своим собственным поведением, каждый объект моделирует объект реального мира (предметной области), объект получает сообщения и выполняет некоторое своё действие для обеспечения
в общем виде топология – это граф, рёбра между взаимодействующими объектами.

Рекомендуется комбинировать эти два способа, начинать рекомендуют с объектно-ориентированной декомпозиции.

3. Абстракция – одновременно воспринимается 7(+/-2) единицы информации, и это число не зависит от информации. Для преодоления сложностей исп. Абстрагирование. В это случае не слишком важные детали игнорируются, дело имеют с обобщённой идеализированной моделью реального объекта. При создании объектно-ориентированного ПО на начальном этапе производят выделение абстракций претендентов на бедующие объекты и классы.

4. Иерархия – ещё одни способ преодолеть сложность является организацию внутри системы иерархии классов и объектов. В структуре классов показываются общие структуры поведения, в структуре объекта показывается конкретная схема поведения.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.