Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по ООАиП.docx
Скачиваний:
1
Добавлен:
13.07.2019
Размер:
33.13 Кб
Скачать

СИСТЕМА. СЛОЖНОСТЬ СИСТЕМЫ. СЛОЖНАЯ СИСТЕМА

СИСТЕМА – это набор взаимосвязанных элементов (других систем) предназначенная для достижения заданной цели с заданной эффективностью.

ЭМЕРДЖЕНТНЫЕ СВОЙСТВА – это свойства, характерные для системы в целом, но не характерные для ее элементов.

СЛОЖНОСТЬ СИСТЕМЫ – определяется как мера объема или длины формального описания, достаточного для полного воспроизведения системы.

СЛОЖНАЯ СИСТЕМА – это такая система, сложность которой не может быть эффективно обработана одним человеком.

ИСТОЧНИКИ СЛОЖНОСТИ ПРОГРАММНЫХ СИСТЕМ

- Сложность самих систем + сложность к требованиям ПО;

- Процесс управления разработкой ПО;

- Гибкость, которая достигается в последующем использовании ПО;

5 АТРИБУТОВ СЛОЖНОЙ СИСТЕМЫ

1. ИЕРАРХИЧЕСКАЯ СТРУКТУРА. Сложные системы часто являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы, и т.д. вплоть до самого низкого уровня.

2. ПРИМИТИВНЫЕ СИСТЕМЫ. Выбор, какие компоненты в данной системе считаются элементарными, относительно произволен и в большой степени оставляется на усмотрение исследователя.

3. РАЗДЕЛЕНИЕ ОТВЕТСТВЕННОСТИ. Внутрикомпонентная связь обычно сильнее, чем связь между компонентами. Это обстоятельство позволяет отделять «высокочастотные» взаимодействия внутри компонентов от «низкочастотной» динамики взаимодействия между компонентами.

4. СТАНДАРТНЫЕ ШАБЛОНЫ. Иерархические системы обычно состоят из немногих типов подсистем, по-разному скомбинированных и организованных.

5. СВОЙСТВО «СТАБИЛЬНЫЕ ПРОМЕЖУТОЧНЫЕ ФОРМЫ». Любая работающая сложная система является результатом развития работавшей более простой системы… Сложная система, спроектированная «с нуля», никогда не заработает. Следует начинать с работающей простой системы.

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

Обнаружение общих абстракций и механизмов значительно облегчает понимание сложных систем. Система рассматривается с двух точек зрения, как иерархия «part-of» и «is-a». Эти иерархии также называются структурой классов и структурой объектов. Каждая иерархия является многоуровневой, причем в ней классы и объекты более высокого уровня построены из более простых уровней. Какой класс или объект выбран в качестве элементарного, зависит от рассматриваемой задачи. Объекты одного уровня имеют четко выраженные связи, особенно это касается компонентов структуры объектов. Внутри любого рассматриваемого уровня находится следующий уровень сложности. Структуры классов и объектов не являются независимыми: каждый элемент структуры объектов представляет специфический экземпляр определенного класса. Таким образом, объектов в сложной системе обычно гораздо больше, чем классов. Структуры классов и объектов системы вместе мы называются архитектурой системы.

Возможные подходы к декомпозиции сложной системы

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

АЛГОРИТМИЧЕСКАЯ ДЕКОМПОЗИЦИЯ

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

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ

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

Проектирование сложной системы

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

Для успешного проекта необходимы:

1. Подходящие нотации (язык);

2. Процесс последовательных шагов, который приводит к необходимому результату;

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

ЦЕЛЬ ПРОЕКТИРОВАНИЯ – создать систему, которая:

1. Удовлетворяет существующим спецификациям и требованиям;

2. Соответствует ограничениям целевой аудитории;

3. Соответствует явным или неявным требованиям производительности и использования ресурсов;

4. Удовлетворяет явным или неявным критериям проектирования к форме артефактов.

5. Удовлетворяет ограничениям на сам процесс проектирования, такие как, длительность или стоимость, доступность средств проектирования и т.д.

Объектно-ориентированный анализ, проектирования и программирование

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ – это метод программирования, основанный на представлении программы в виде совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, а классы являются членами определенной иерархии наследования.

Условия для языка ООП:

1. Он поддерживает объекты, представляющие собой абстракции данных с интерфейсом в виде именованных операций и сокрытым локальным состоянием;

2. Объекты имеют ассоциированный с ними тип (класс);

3. Типы (классы) могут наследовать атрибуты супертипов (суперклассов).

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ – это метод проектирования, сочетающий процесс объектно-ориентированной декомпозиции и систему обозначения для представления логической и физической, а также статической и динамической моделей проектируемой системы.

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ – это метод анализа, исследующий требования к системе с точки зрения классов и объектов, относящихся к словарю предметной области.