Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль-1-шпора-ТРПО.doc
Скачиваний:
65
Добавлен:
21.03.2015
Размер:
2.59 Mб
Скачать

1.5. Сложность по

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

Сложность ПО определяется четырьмя основными причинами:

1.Сложностью реальной предметной области, из кот. исходит заказ на разработку;

2. Трудностью управления процессом разработки;

3. Необходимостью обеспечить достаточную гибкость программы;

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

Первая причина обусловлена следующими факторами:

А) Трудность понимания проблемы (например, работа электронной системы самолета не сразу будет понята и изучена разработчиком ПС);

Б) Дополнительные требования (удобство, цена, надежность);

В) Несовместимость областей знания – разные взгляды на сущность проблемы у пользователей и разработчиков;

Г) Изменение требований к ПС в процессе разработки.

Вторая - сложность управления процессом разработки - обусловлена:

А) Ростом числа строк программного кода;

Б) Необходимостью в коллективной разработке;

В) Необходимостью в координации и согласовании работ отдельных исполнителей и при этом сохранения целостности основной идеи.

Третья причина - обеспечение гибкости программному продукту.

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

Четвертая - сложность описания поведения отдельных подсистем.

4) Сложность описания поведения отдельных подсистем.

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

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

5 признаков сложной системы:

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

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

3- Внутри компонентная связь обычно сильнее, чем связь между компонентами.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]