40585

Проблема сложности больших систем

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-10-17

21.96 KB

1 чел.

Занятие №22

Проблема сложности больших систем.

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

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

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

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

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

Итак, сущность структурного подхода к разработке ПО ЭИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, те - на задачи и так далее до конкретных процедур. При этом система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы «снизу-вверх», от отдельных задач ко всей системе, целостность теряется, возникают проблемы при описании информационного взаимодействия отдельных компонентов.

Все наиболее распространенные методы структурного подхода базируются на ряде общих принципов:

  1.  Принцип «разделяй и властвуй»;
  2.  Принцип иерархического упорядочения - принцип организации составных частей системы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.

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

  1.  Принцип абстрагирования - выделение существенных аспектов системы и отвлечение от несущественных.
  2.  Принцип непротиворечивости обоснованность и согласованность элементов системы.
  3.  Принцип структурирования данных - данные должны быть структурированы и иерархически организованы.

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

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

  1.  сложностью реальной предметной области, из которой исходит заказ на разработку;
  2.  трудностью управления процессом разработки;
  3.  необходимостью обеспечить достаточную гибкость программы;
  4.  неудовлетворительными способами описания поведения больших дискретных систем.

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

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

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

Проблема описания поведения больших дискретных систем. Аналоговые системы, такие, как движение брошенного мяча, напротив, являются непрерывными. Небольшие изменения входных параметров всегда вызовут небольшие изменения выходных. С другой стороны, дискретные системы по самой своей природе имеют конечное число возможных состояний. Мы стараемся проектировать системы, разделяя их на части так, чтобы одна часть минимально воздействовало на другую. Каждое событие, внешнее по отношению к программной системе, может перевести ее в новое состояние, и, более того, переход из одного состояния в другое не всегда детерминирован. Всеобъемлющее тестирование таких программ провести невозможно. При неблагоприятных условиях небольшое внешнее событие может привести к критической ошибке системы.

Чем сложнее система, тем легче ее полностью развалить.


 

А также другие работы, которые могут Вас заинтересовать

80819. МЕХАНИЗМ УПРАВЛЕНИЯ И МЕТОДЫ УПРАВЛЕНЧЕСКОГО ВОЗДЕЙСТВИЯ 44.01 KB
  Механизм управления – это совокупность средств и методов воздействия на деятельность людей коллективов. Особенность механизма управления состоит в возможности усиливать или ослаблять влияние средств управления выбирать средства воздействия. Механизм управления: средства управления то с помощью чего можно управлять; методы управления способы приведения рычагов в действие.
80820. СУЩНОСТЬ, ФУНКЦИИ И ПРОЦЕСС УПРАВЛЕНИЯ 45.39 KB
  Успех управления определяется искусством выбора вида воздействия. Рассмотрим подробнее структурносодержательный аспект управления. Сюда относятся: предвидение планирование либо прогнозирование грядущего состояния объекта управления; организация распределение меж работниками функций и задач предоставление им всего нужного для выполнения рабочих заданий; активизация побуждение людей к работе; координирование согласование усилий работников в процессе выполнения работы; регулирование устранение нежелательных отклонений в...
80821. УПРАВЛЕНИЕ ЧЕЛОВЕЧЕСКИМИ РЕСУРСАМИ: СУЩНОСТЬ И СОВРЕМЕННЫЕ ПРОБЛЕМЫ 44.2 KB
  Анализ рынка труда и управление занятостью. Обеспечение рациональных условий труда в том числе благоприятной для каждого человека социальнопсихологической атмосферы. Управление производительностью труда. Объем работ по каждому из перечисленных видов деятельности зависит от следующих факторов: размеры предприятия; характеристики производимой продукции; ситуация на рынке труда; квалификация персонала; степень автоматизации производства; социальнопсихологическая обстановка на предприятии и за его пределами.
80822. МЕТОДЫ И ТЕХНОЛОГИИ ОЦЕНКИ ПЕРСОНАЛА 45.33 KB
  Оценка персонала имеет своей целью изучить степень подготовленности работника к выполнению именно того вида деятельности которым он занимается а также выявить уровень его потенциальных возможностей с целью оценки перспектив роста а также разработки кадровых мероприятий необходимых для достижения целей кадровой политики. Основным требованием при проведении аттестации являются: отделение критики от самой процедуры оценки. Методы оценки по их направленности: 1.
80823. ОСНОВЫ ПЛАНИРОВАНИЯ ЧЕЛОВЕЧЕСКИХ РЕСУРСОВ 46.28 KB
  Кадровое планирование планирование персонала это целенаправленная деятельность по подготовке кадров обеспечению пропорционального и динамичного развития персонала расчету его профессионально-квалификационной структуры определению общей и дополнительной потребности контролю за его использованием. Сущность кадрового планирования заключается в создании условий для предоставления людям рабочих мест в нужный момент времени и в необходимом количестве в соответствии с их способностями склонностями и требованиями бизнеса Основные задачи...
80824. ОРГАНИЗАЦИЯ КАК СИСТЕМА: ОПРЕДЕЛЕНИЕ, ПРИЗНАКИ, СВОЙСТВА, ФУНКЦИИ 46.73 KB
  Организация – это функция управления целью которой является достижение миссии задачей – формирование структур организации из множества элементов обеспечение всем необходимым для ее нормальной работыматериалами оборудованием денежными средствами знаниями персоналом и т. В любой организации реализуются три ключевых процесса: получение ресурсов из внешней среды производство продукта и передача его во внешнюю среду. Основные потоки организации: на входе – поступление материалов рабочей силы капитала; на выходе – готовый продукт товары...
80825. МАТРИЧНЫЕ ОРГАНИЗАЦИИ: ОПРЕДЕЛЕНИЕ, ПРИЗНАКИ, СВОЙСТВА, СФЕРЫ ПРИМЕНЕНИЯ 45.14 KB
  Выбор конкретного варианта определяется тем какие права делегирует ему высшее руководство организации. Руководители проектов в матричной организации отвечают в целом за интеграцию всех видов деятельности и ресурсов относящихся к данному проекту. Помимо руководителя организации назначается руководитель программы ранг которого выше ранга руководителя организации.
80826. РЕОРГАНИЗАЦИЯ ОРГАНИЗАЦИЙ: ЭТАПЫ, СОДЕРЖАНИЕ ЭТАПОВ, ЗАДАЧИ, РЕШАЕМЫЕ НА ОТДЕЛЬНЫХ ЭТАПАХ 46.03 KB
  Подготовка проекта реорганизации. Цели проекта: задачи и ожидаемые результаты; создание группы реорганизации с определенным удовлетворением квалификации и профессионализма; преодоление сопротивления реорганизации. Задача высшего руководства: обучить управленческую группу методологии проведения реорганизации. Задачи: выявление интересов потребителей; планирование необходимых мероприятий; выбор субъектов и объектов реорганизации; разработка модели текущего состояния организации; выявление видов деятельности организации;...
80827. ОБЩЕСТВЕННОЕ МНЕНИЕ: ОПРЕДЕЛЕНИЕ, ФУНКЦИИ, ПОРЯДОК ФОРМИРВОАНИЯ 45.23 KB
  Субъект общественного мнения – общественность или группа характеризующиеся некой ценностью. Объект общественного мнения те факты общественной жизни которые затрагивают интересы группы общности и представляются актуальными социально значимыми. В основе общественного мнения лежат потребности и интересы людей. Признаки общественного мнения: нормативнооценочный характер т.