Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TPPOIS_1-35_voprosy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.98 Mб
Скачать
  1. Алгоритмическая и объектно-ориентированная декомпозиция

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

Процесс разделения систем на более мелкие подсистемы называется декомпозицией. Основными способами декомпозиции являются:

Алгоритмическая декомпозиция – это процесс разбиения системы по алгоритмам. Каждый модуль системы выполняет один из этапов (функций) общего процесса. Результат разбиения отражается в формуле:

Программа = Данные + Алгоритмы

Объектно-ориентированная декомпозиция – процесс разбиения системы на части, соответствующие классам и объектам предметной области.

Объекты взаимодействуют друг с другом, обмениваясь сообщениями и выступая друг к другу в отношении «клиент/сервер». Сообщения, которые может принимать объект определены в его интерфейсе. В этом смысле посылка сообщения «объекту-серверу» эквивалентна вызову соответствующего метода объекта.

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

  1. Сложность программных систем. Основные причины, признаки сложной системы.

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

Сопровождение (maintenance) -- исправление выявленных ошибок; сохранение (preservation) – попытка продления функционирования устаревших и распадающихся частей ПО всеми возможными способами; эволюция (evolution) -- реакция на изменение технических требований.

Пять признаков сложной системы (из работ Саймона и Куртуа):

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

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

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

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

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

Основные причины, приводящие к сложным программным системам

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

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

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

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

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