Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
На самом деле CASE-средства поддерживают весь жизненный цикл и все процессы, сопровождающие ЖЦ, которые приводят к построению надежного, устойчивого, масштабируемого, сопровождаемого, эргономичного ПО. Ведь CASE-средства поддерживают и тестирование, и пользовательский интерфейс, а это достаточно сложная задача, если решать ее вручную. В качестве примера можно привести проект создания системы учета, планирования, управления людскими ресурсами. В проекте достаточно гибкая цепочка ввода данных – порядка 20 форм, которые можно настраивать в зависимости от типа пользователя. То есть когда человек устраивается на работу, он должен заполнить анкету, состоящую на самом деле из последовательного ввода данных в формы. При этом в каждой форме существуют обязательные и необязательные поля, а также поля, которые подразумевают только выбор из уже существующих вариантов, т. е. самостоятельно заполнять эти поля нельзя, и т. д. Настраиваются эти поля достаточно гибко. Понятно, что при создании такого количества форм проверить вручную нажатие всех кнопок и выбор всех вариантов не представляется возможным, поскольку сценарий ввода данных гибко настраивается в зависимости от типа пользователя. Такого рода сложные интерфейсы и позволяют тестировать специализированные CASE-средства.
Какие компоненты входят в состав современных CASE-средств? Это прежде всего репозиторий (единое хранилище метаданных), здесь поддерживается средство хранения версий. Как уже упоминалось, существуют основные или базовые версии, к которым пристраиваются «ветви», или определенные направления, ветвления попыток совершенствования системы. В определенный момент их замораживают или закрывают на замок (lock), делают операцию замыкания и некий стабильный релиз, который полностью обособлен и может быть использован, скажем, на этапе приемки работ или этапе завершения какой-то определенной фазы жизненного цикла ПО. Очень важно при этом поддерживать синхронизацию. Например, если кто-то из разработчиков откомпилировал и сохранил новую версию файла, то нужно добиться, чтобы эта локальная версия файла переходила в глобальный билд как компонент, когда он уже готов и протестирован вместе с соседними модулями. Контроль целостности – тоже важный аспект в случае баз данных. Скажем, если удалить последнего сотрудника из отдела, что должно происходить с отделом? Кроме того, ведется контроль целостности не только на уровне структур данных, но и на уровне проектных спецификаций. Нужно убедиться в том, что они полны, непротиворечивы и те диаграммы, которые разрабатываются, в том числе с помощью CASE-средств, действительно являются адекватным отображением ранних шагов моделирования жизненного цикла ПО.
CASE-средства включают также графические средства как для анализа и проектирования, так и для последующих шагов жизненного цикла. Это возможность создания и редактирования целого ряда диаграмм, например Microsoft Visual Studio, которая поддерживает большое количество диаграмм на основе интеграции со средством Visio. Линейка Rational поддерживает практически все виды UML-диаграмм, поскольку изначально ориентирована на этот язык и стандарт моделирования. Другой стандарт – это IDEF, диаграмма потоков данных, ER-диаграммы и ряд других диаграмм относятся к этому стандарту.
Другими компонентами CASE-средств являются средства, поддерживающие разработку прикладного ПО, т. е. создание программного кода. Здесь сразу следует отметить такие интересные возможности, как IntelliSense с цветовой подсветкой синтаксиса, выделением метаинформации, например, членов данных классов при вводе имени класса и т. д., которые существуют в Microsoft Visual Studio.NET.
Средства управления конфигурацией – это средства документирования, тестирования, управления проектами и реинжиниринга, т. е. средства, которые позволяют вести повторное проектирование, перепроектирование отдельных компонентов программного продукта.
Какого рода критерии классификации можно выделить, если вести речь о CASE-средствах? Их достаточно много. Первые CASE-средства появились в 1990-х гг. В журнале «Byte» от марта 1993 г., который был полностью посвящен CASE-средствам, были описаны методологии проектирования и поддерживающие их CASE-средства. Существовала методология Буч известного автора Гради Буча, сотрудничество которого с Якобсоном и Рамбо привело к созданию языка UML с целым рядом диаграмм. Ивар Якобсон тоже работал в те времена, когда происходило становление CASE-средств. Первые CASE-средства были основаны в том числе на диаграммах потоков данных, так как объектных моделей в полной мере тогда, наверное, не было или они были в начальном состоянии. Также широко использовались ER-диаграммы.
Итак, к основным критериям можно отнести степень интегрируемости, т. е. то, какую долю этапов жизненного цикла поддерживает это CASE-средство, предназначено ли оно только для анализа и проектирования или только для тестирования или для реализации и интеграции, или для документирования, или это CASE-средство или комплекс CASE-средств, которые поддерживают целый ряд этапов жизненного цикла (например комплекс CASE-средств от Rational поддерживает практически весь жизненный цикл). Существуют локальные, частично или полностью интегрированные CASE-средства, т. е. некоторые CASE-средства предназначены исключительно для работы в настольном режиме, однопользовательском, другие – преимущественно для командной работы, разработки больших корпоративных систем. Существуют полностью интегрированные средства, имеющие общий репозиторий, в котором все метаданные проекта хранятся вместе: это и общение по проекту, и конфигурация продукта, и документация. Фактически все эти артефакты хранятся вместе в общей базе метаданных и позволяют получить общий доступ с учетом ролей к тем или иным компонентам проекта.
Естественно, хорошим критерием классификации может явиться стандарт. Скажем, поддерживают ли CASE-средства UML-диаграммирование, или IDEF-диаграммы, или XML как формат хранения и т. д. Методологии проектирования тоже очень важны. Поддерживает ли это средство MSF или Rational Unified Process и в каком объеме, в каких аспектах? Какие модели корпоративных информационных систем, в частности баз данных, поддерживаются? Поддерживаются ли ER-модели и вообще реляционные модели данных или, может быть, поддерживается сетевая иерархическая модель данных, объектная модель определенного рода?
С какого рода СУБД эти CASE-средства интегрированы – еще один критерий. Может быть, эти средства рассчитаны только на кодогенерации, ведь структуры данных могут быть снабжены также ограничением целостности и триггерами и хранимыми процедурами на определенных языках. Скажем, существует язык PL/SQL, который предназначен специально для СУБД Oracle, и какие-то CASE-средства поддерживают только базы данных Oracle или ориентированы преимущественно на Oracle, другие ориентированы преимущественно на Microsoft SQL Server. Эти базы данных и SQL-серверы более подробно будут рассмотрены в дальнейшем.