При поддержке процесса проектирования и разработки основную роль играют следующие возможности CASE-пакетов: поддержка всех этапов ЖЦ, поддержка прототипирования, поддержка структурных методологий, автоматическая кодогенерация.
При поддержке ЖЦ наибольшее внимание уделяется его критическим этапам — анализу требований и проектированию спецификаций. Последние являются основой всего проекта, поэтому их полнота и корректность влияют на успех разработки в целом.
Важную роль при автоматизации ранних этапов ЖЦ играют возможности поддержки прототипирования. Соответствующие средства используются для определения системных требований и ответа на вопросы об ожидаемом поведении системы.
Такие средства, как генераторы меню, экранов и отчетов, позволяют быстро построить прототипы пользовательских интерфейсов и получить модель функционирования системы с позиций конечного пользователя.
Использование языков четвертого поколения (4GL) позволяет строить более сложные модели, при этом прототип позволяет промоделировать основные функции системы, но не способен контролировать ее ожидаемое поведение.
Прототипы представляют заказчикам уже на ранних этапах разработки, те вносят свои замечания и в то же время видят реальные результаты.
Поддержка структурных методологий осуществляется за счет средств их автоматизации, обеспечивающих:
- графическую поддержку построения структурных диаграмм различных типов;
- производство спецификаций для детализации функциональных блоков в диаграммах и структур данных на нижних уровнях;
- подготовку документации.
Кодогенерация осуществляется на основе репозитария и позволяет автоматически построить до 80 – 90 % объектных кодов или текстов программ на языках высокого уровня. При этом различными CASE-пакетами поддерживаются практически все известные языки программирования, однако, наиболее часто в качестве целевых языков выступают С, COBOL и ADA.
Средства кодогенерации по отношению к полноте целевого продукта разделяются на средства генерации каркаса ПО и средства генерации полного продукта.
В первом случае автоматически строится откомментированная логика (потоки управления) ПО, а также коды для БД, файлов, экранов, отчетов и т.п., остальные фрагменты ПО кодируются вручную.
Во втором случае из проектных спецификаций генерируется полная документированная программа, включая выполняемый код, пользовательскую и программную документацию, наборы тестов и т.д. Все эти компоненты полной программы связываются в единый объект, хранящийся в репозитарии для облегчения доступа и сопровождения.
Идея автоматической кодогенерации на основе модели заключается в следующем (рис. 15.2).
Рис. 15.2. Иллюстрация идеи автоматической кодогенерации
Любая программа схематически может быть представлена в виде тройки: обрабатываемые данные, логический каркас обработки, линейные участки обработки.
Схема базы данных может быть легко сгенерирована на основании модели "сущность-связь", и современные средства информационного моделирования (например, ERwin, Designer/2000 и др.) обеспечивают такую генерацию.
Логика обработки генерируется на основе диаграмм потоков данных: известны алгоритмы автоматического преобразования иерархии DFD в структурные карты и есть CASE-средства, это выполняющие, а с задачей получения из структурных карт соответствующих кодов легко справляется теория компиляции.
Наконец, линейным участкам соответствуют миниспецификации модели. И именно здесь лежит ключ к высокому проценту автоматически сгенерированного кода, существенно зависящему от метода задания миниспецификаций.
Структурированный естественный язык для этого не подходит, а на основе таблиц решений или миниспецификаций на визуальном языке проектирования, на языке программирования можно получить код автоматически.