Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ProgBasics_lec04_systems_complexity

.pdf
Скачиваний:
9
Добавлен:
14.04.2015
Размер:
467.08 Кб
Скачать

Сложность программных систем

Неприятная особенность:

Обычно программные системы очень сложны.

Исключая системы, созданные одним человеком:

новичком или профессионалом высокого класса

сопровождаются и используются им же

область применения сильно ограничена

Сложность реального мира

Представьте, как устроены:

самолёт

двигатель самолёта

компьютер

GPU

атомная электростанция

ядерный реактор

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

Следование ряду необходимостей:

создание «иллюзии простоты»

соответствие новым требованиям

организация коллективной разработки

Гибкость программного обеспечения

свобода, позволяющая творить всё

может привести к созданию «велосипеда»

Сложность описания поведения больших

дискретных систем

части системы минимально влияют друг на друга

наличие множества состояний – главная необходимость тестирования

чем сложнее система – тем проще её разрушить

Пример сложной системы: CPU

 

 

 

 

 

 

диоды

 

 

 

 

 

 

 

 

регистры

 

 

 

 

 

 

 

 

CPU

 

 

 

 

 

транзисторы

 

 

 

 

 

 

 

 

 

 

 

 

схемы

 

 

 

 

 

 

 

 

управления

 

 

 

 

 

конденсаторы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сложная система: растение

Корни Листья Стебли

Корневые

Эпидермис

отростки

 

 

Верхушка Сосудистая

корня ткань

1.Сложные системы обычно иерархические

состоят из взаимосвязанных подсистем

которые тоже состоят из подсистем, и т.д.

2.Выбор элементарного компонента – на усмотрение исследователя

зависит от уровня абстракции

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

4.Сложные системы содержат одинаковые структурные части

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

Декомпозиция сложных систем

Алгоритмическая

•разделение алгоритмов

Объектно-ориентированная

•разделение системы на объекты

Алгоритмическая декомпозиция

Работа с банкоматом

Обработка

Работа со

Выдача

Выдача чека

карточки

счётом

наличных

 

Открытие

Снятие

счёта

денег

Проверка

Вычет

наличия

суммы со

суммы

счёта

Объектно-ориентированная декомпозиция

Устройство

чтения

карточки

Принтер

Экран ATM

для чеков

 

ATM

Кассовый

Счёт

аппарат

клиента

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