II. Основные подходы к проектированию ИС

I. Понятие технологии и ее назначения

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

 

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

 

Современная технология проектирования должна обеспечивать:

· поддержку всех процессов жизненного цикла;

· гарантированное достижение целей разработки ИС в рамках установленного бюджета, с заданным качеством и в установленное время;

· возможность декомпозиции проекта на составные части, разрабатываемые группами исполнителей ограниченной численности (3-7 человек), - с последующей интеграцией составных частей;

· минимальное время получения работоспособной ИС. Речь идет не о сроках готовности всей ИС, а о сроках реализации отдельных подсистем.

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

· независимость получаемых проектных решений от средств реализации ИС (СУБД, операционных систем, языков и систем программирования);

· поддержка комплексом согласованных CASE-средств, обеспечивающих автоматизацию процессов, выполняемых на всех стадиях ЖЦ.

Технология проектирования может быть представлена в виде трех составляющих:

1. Заданной последовательностью выполнения технологических операций проектирования (тех.план);

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

3. Графических и текстовых средств (нотаций, инструкций), используемых для описания проектирования системы.

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

· количество связей между отдельными подсистемами должно быть минимальным;

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

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

· каждая подсистема должна инкапсулировать свое содержимое (скрывать его от других подсистем);

· каждая подсистема должна иметь четко определенный интерфейс с другими подсистемами.

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

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

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

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