Целью настоящих лекций является введение в особенности современных
методов и средств проектирования информационных систем, основанных
на использовании CASE-технологии. Читатель должен получить
возможность принятия обоснованного, а не волевого решения относительно
использования этих технологий. Приводимые в обзоре рекомендации
могут способствовать успешному внедрению CASE-средств и уменьшить
риск неправильных инвестиций.
Несмотря на высокие потенциальные возможности CASE-технологии (увеличение
производительности труда, улучшение качества программных
продуктов, поддержка
унифицированного и согласованного
стиля работы) далеко не все
разработчики информационных
систем, использующие CASE-средства,
достигают ожидаемых результатов.
Существуют различные причины
возможных неудач, но, видимо,
основной причиной является
неадекватное понимание сути
программирования информационных
систем и применения CASE-средств.
Необходимо понимать, что процесс
проектирования и разработки
информационной системы на основе
CASE-технологии не может быть подобен
процессу приготовления пищи по
поваренной книге. Всегда следует
быть готовым к новым трудностям,
связанным с освоением новой
технологии, последовательно
преодолевать эти трудности и
последовательно добиваться нужных
результатов.
Лекции предназначены для студентов специальности "Информационные системы",
начинающих и опытных разработчиков информационных систем, а также для
руководителей проектов и системных аналитиков.
Понятие о CASE-средствах
Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.
В разряд CASE-средств попадают как относительно дешевые системы для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие системы для неоднородных вычислительных платформ и операционных сред. Так, современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых так или иначе используются практически всеми ведущими западными фирмами.
Обычно к CASE-средствам относят любое программное средство, автоматизирующее один или несколько процессов жизненного цикла ПО и обладающее следующими основными характерными особенностями:
мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;
интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки ИС;
использование специальным образом организованного хранилища проектных метаданных (репозитория).
Интегрированное CASE-средство (или комплекс средств, поддерживающих полный ЖЦ ПО) содержит следующие компоненты;
репозиторий, являющийся основой CASE-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость;
графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели ИС;
средства разработки приложений, включая языки 4GL и генераторы кодов;
средства конфигурационного управления;
средства документирования;
средства тестирования;
средства управления проектом;
средства реинжиниринга.
Все современные CASE-средства могут быть классифицированы в основном по типам и категориям. Классификация по типам отражает функциональную ориентацию CASE-средств на те или иные процессы ЖЦ. Классификация по категориям определяет степень интегрированности по выполняемым функциям:
локальные средства, решающие небольшие автономные задачи (tools),
набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла ИС (toolkit)
полностью интегрированные средства, поддерживающие весь ЖЦ ИС и связанные общим репозиторием.
Помимо этого, CASE-средства можно классифицировать по следующим признакам:
применяемым методологиям и моделям систем и БД;
степени интегрированностию с СУБД;
доступным платформам.
Классификация по типам в основном совпадает с компонентным составом CASE-средств и включает следующие основные типы:
средства анализа (Upper CASE), предназначенные для построения и анализа моделей предметной области (Design/IDEF (Meta Software), BPwin (Logic Works));
средства анализа и проектирования (Middle CASE), поддерживающие наиболее распространенные методологии проектирования и использующиеся для создания проектных спецификаций (Vantage Team Builder (Cayenne), Designer/2000 (ORACLE), Silverrun (CSA), PRO-IV (McDonnell Douglas), CASE.Аналитик (МакроПроджект)). Выходом таких средств являются спецификации компонентов и интерфейсов системы, архитектуры системы, алгоритмов и структур данных;
средства проектирования баз данных, обеспечивающие моделирование данных и генерацию схем баз данных (как правило, на языке SQL) для наиболее распространенных СУБД. К ним относятся ERwin (Logic Works), S-Designor (SDP) и DataBase Designer (ORACLE). Средства проектирования баз данных имеются также в составе CASE-средств Vantage Team Builder, Designer/2000, Silverrun и PRO-IV;
средства разработки приложений. К ним относятся средства 4GL (Uniface (Compuware), JAM (JYACC), PowerBuilder (Sybase), Developer/2000 (ORACLE), New Era (Informix), SQL Windows (Gupta), Delphi (Borland) и др.) и генераторы кодов, входящие в состав Vantage Team Builder, PRO-IV и частично - в Silverrun;
средства реинжиниринга, обеспечивающие анализ программных кодов и схем баз данных и формирование на их основе различных моделей и проектных спецификаций. Средства анализа схем БД и формирования ERD входят в состав Vantage Team Builder, PRO-IV, Silverrun, Designer/2000, ERwin и S-Designor. В области анализа программных кодов наибольшее распространение получают объектно-ориентированные CASE-средства, обеспечивающие реинжиниринг программ на языке С++ (Rational Rose (Rational Software), Object Team (Cayenne)).
Вспомогательные типы включают:
средства планирования и управления проектом (SE Companion, Microsoft Project и др.);
средства конфигурационного управления (PVCS (Intersolv));
средства тестирования (Quality Works (Segue Software));
средства документирования (SoDA (Rational Software)).
На сегодняшний день рынок программного обеспечения СНГ располагает следующими наиболее развитыми CASE-средствами:
Vantage Team Builder (Westmount I-CASE);
Designer/2000;
Silverrun;
ERwin+BPwin;
S-Designor;
CASE.Аналитик.
Существуют два основных способа проектирования структурное и объектное - ориентированное проектирование. Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы "снизу-вверх" от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Объектное - ориентированное проектирование предполагает объектную декомпозицию системы. Объект - это реально существующая сущность, имеющая важное функциональное назначение в данной предметной области. Объект характеризуется структурой, состоянием, четко определяемым поведением. Состояние объекта определяется перечнем всех возможных (обычно статических) свойств и текущими значениями (обычно динамическими) каждого из этих свойств. Свойства объекта характеризуются значениями его параметров.
Нельзя сложную систему конструировать одновременно двумя способами. Можно начинать декомпозицию либо по функциям, либо по объектам, а затем попытаться рассмотреть проблему с другой точки зрения.
Объектно-ориентированный подход в проектировании имеет ряд преимуществ перед структурным:
объектно - ориентированные системы более гибкие и проще эволюционируют во времени.
объектная декомпозиция уменьшает размер программ за счет повторного использования общих механизмов.