Проектирование. Принципиальная цель проектирования –определить, как система должна работать

Принципиальная цель проектирования – определить, как система должна работать.

Основные требования к проекту ПО:

· проектные описания не должны содержать деталей реализации;

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

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

· проектные определения должны обеспечить возможность распараллеливания работ по реализации ПО;

· проектные определения должны быть наглядны и однозначны (программисты-кодировщики не должны заниматься проектными решениями);

· проектные решения должны быть полными, они должны быть проанализированы на предмет соответствия требованиям и "внешним" спецификациям.

Смысл проектирования как целенаправленной деятельности состоит в:

· идентификации и структуризации всех данных;

· точном определении преобразований данных;

· организации передачи данных между обрабатывающими компонентами;

· оптимизации распределения функций по компонентам ПО (маршрутов прохождения данных через систему);

· выборе алгоритмов реализации функций, представлении их в терминах подходящей формализованной вычислительной модели и декомпозиции алгоритмов на процедуры;

· идентификации системных компонент ПО и определении (формализации, минимизации) интерфейса с ними.

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

Существует несколько видов сложности ПО:

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

· " многоотраслевая " – предметная область АС является объединением слабо пересекающихся предметных областей отдельных пользователей; следствием такой ситуации является отсутствие согласованных представлений о функциях и критериях у пользователей АС;

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

Каждый вид сложности предопределяет "свои" методы проектирования.

Главная трудность проектирования ПО обусловлена объективной необходимостью в обмене (и документировании) сложными идеями и концепциями.

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

Существует четыре типа проектных описаний:

· архитектурное (взаимоотношения между компонентами ПО и его окружающей среды);

· структурное (взаимосвязи между компонентами ПО в статике);

· поведенческое (динамика связей компонентов ПО);

· информационное (концептуальная организация данных).

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

· декомпозицией, анализом и выбором решения;

· структуризацией решения (абстракцией для внесения в решение точности и краткости, удалением повторов, неоднозначностей и тривиальностей, формулировкой принципов);

· разработкой представления (документированием) решения.

Основная методика проектирования ПО – "разделение" и "связывание".

Чем "чище" и "яснее" связи, тем проще будет разработка компонентов ПО. Для "замкнутости" компонент и создания (поддержки) границ между компонентами проекта необходимо использовать программно-управляемые средства.

Большинство систем проектирования ПО представляют собой композицию методов и средств для нисходящего итеративно повторяемого анализа и декомпозиции – последовательного уточнения описания проекта до уровня адекватной реализации.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: