CASE. Структурный системный анализ.
ВВЕДЕНИЕ
За последнее десятилетие сформировалось новое направление в
программотехнике - CASE (Computer-Aided Software/System Engineering). В
настоящее время не существует общепринятого определения CASE. Содержание
этого понятия обычно определяется перечнем задач, решаемых с помощью CASE,
а также совокупностью применяемых методов и средств. Грубо говоря,
CASE-технология представляет собой совокупность методологий анализа,
проектирования, разработки и сопровождения сложных систем программного
обеспечения (ПО), поддержанную комплексом взаимосвязанных средств
автоматизации. CASE - это инструментарий для системных аналитиков,
разработчиков и программистов, позволяющий автоматизировать процесс
проектирования и разработки ПО.
К настоящему моменту дисциплина CASE оформилась в самостоятельное
наукоемкое направление в программотехнике, повлекшее за собой образование
мощной CASE-индустрии, объединившей согни фирм и компаний различной
ориентации. Среди них выделяются компании-разработчики средств анализа и
проектирования ПО с широкой сетью дистрибьютерских и дилерских фирм;
фирмы-разработчики специальных средств с ориентацией на узкие предметные
области или на отдельные этапы жизненного цикла ПО; обучающие фирмы,
которые организуют семинары и курсы подготовки специалистов;
консалтинговые фирмы, оказывающие практическую помощь при использовании
CASE-пакетов для разработки конкретных приложений; фирмы,
специализирующиеся на выпуске периодических журналов и бюллетеней по CASE.
Основными покупателями CASE-пакетов за рубежом являются военные
организации, центры обработки данных и коммерческие фирмы по разработке
ПО.
Существует мнение, что CASE является наиболее перспективным
направлением в программотехнике. С этим можно спорить, но то, что CASE -
наиболее бурно и интенсивно развиваемое направление, является в настоящее
время фактом. Практически ни один серьезный зарубежный программный проект
не осуществляется без использования CASE-средств. Известная методология
структурного системного анализа SADT (точнее ее подмножество IDEF0)
принята в качестве стандарта на разработку ПО Министерством обороны США.
Более того, среди менеджеров и руководителей компьютерных фирм считается
чуть ли не правилом хорошего тона знать основы SADT и при обсуждении
каких-либо вопросов нарисовать простейшую диаграмму, поясняющую суть дела.
CASE позволяет не только создавать "правильные" продукты, но и
обеспечить "правильный" процесс их создания. Основная цель CASE состоит в
том, чтобы отделить проектирование ПО от его кодирования и последующих
этапов разработки, а также скрыть от разработчиков все детали среды
разработки и функционирования ПО. Чем больше деятельности будет вынесено в
проектирование из кодирования, тем лучше.
При использовании CASE-технологий изменяются все этапы жизненного
цикла программной системы, при этом наибольшие изменения касаются этапов
анализа и проектирования. В большинстве современных CASE-систем
применяются методологии структурного анализа и проектирования, основанные
на наглядных диаграммных техниках, при этом для описания модели
проектируемой системы используются графы, диаграммы, таблицы и схемы.
Такие методологии обеспечивают строгое и наглядное описание проектируемой
системы, которое начинается с ее общего обзора и затем детализируется,
приобретая иерархическую структуру со все большим числом уровней.
CASE-технологий успешно применяются для построения практически всех
типов систем ПО, однако устойчивое положение они занимают в следующих
областях :
1. Обеспечение разработки делового и коммерческого ПО. Широкое
применение CASEтехнологий обусловлено массовостью этой прикладной
области, в которой CASE применяется не только для разработки ПО,
но и для создания моделей систем, помогающих коммерческим
структурам решать задачи стратегического планирования, управления
финансами, определения политики фирм, обучения персонала и др.
(это направление получило свое собственное название -
бизнес-анализ);
2. Разработка системного и управляющего ПО. Активное применение
CASE-технологий связано с большой сложностью данной проблематики и
со стремлением повысить эффективность работ.
CASE - не революция в программотехнике, а результат естественного
эволюционного развития всей отрасли средств, называемых ранее
инструментальными или технологическими. Однако это и не Confuse Array of
Software that does Everything, существует ряд признаков и свойств, наличие
которых позволяет классифицировать некоторый продукт как CASE-средство.
Одним из ключевых признаков является поддержка методологий структурного
системного анализа и проектирования.
С самого начала CASE-технологий развивались с целью преодоления
ограничений при использовании структурных методологий проектирования
60-70-х годов (сложности понимания, большой трудоемкости и стоимости
использования, трудности внесения изменений в проектные спецификации и
т.д.) за счет их автоматизации и интеграции поддерживающих средств. Таким
образом, CASE-технологий не могут считаться самостоятельными
методологиями, они только развивают структурные методологии и делают более
эффективным их применение за счет автоматизации.
Помимо автоматизации структурных методологий и, как следствие,
возможности применения современных методов системной и программной
инженерии, CASE обладают следующими основными достоинствами:
¦ улучшают качество создаваемого ПО за счет средств автоматического
контроля (прежде всего, контроля проекта);
¦ позволяют за короткое время создавать прототип будущей системы, что
позволяет на ранних этапах оценить ожидаемый результат;
¦ ускоряют процесс проектирования и разработки;
¦ освобождают разработчика от рутинной работы, позволяя ему целиком
сосредоточиться на творческой части разработки;
¦ поддерживают развитие и сопровождение разработки:
¦ поддерживают технологии повторного использования компонент
разработки.
Большинство CASE-средств основано на парадигме методология/метод/
нотация/средство. Методология определяет руководящие указания для оценки и
выбора проекта разрабатываемого ПО, шаги работы и их последовательность, а
также правила распределения и назначения методов. Метод - это
систематическая процедура или техника генерации описаний компонентов ПО
(например, проектирование потоков и структур данных). Нотации
предназначены для описания структуры системы, элементов данных, этапов
обработки и включают графы, диаграммы, таблицы, блок-схемы, формальные и
естественные языки. Средства - инструментарий для поддержки и усиления
методов. Эти инструменты поддерживают работу пользователей при создании и
редактировании графического проекта в интерактивном режиме, они
способствуют организации проекта в виде иерархии уровней абстракции,
выполняют проверки соответствия компонентов.
Детальному рассмотрению базовых методов и нотаций, используемых в
современных CASE-системах, посвящена первая часть настоящей книги.
Глава 1 является введением в структурный системный анализ. В ней
рассматриваются основные задачи этапов анализа требований и проектирования
спецификаций системы, принципы структурного анализа, выделяются базовые
средства структурного анализа, их взаимосвязи и взаимовлияния.
Глава 2 посвящена наиболее известным и часто используемым средствам
функционального моделирования - диаграммам потоков данных. Приводятся
основные и вспомогательные объекты диаграмм, рассматривается понятие
контекстной диаграммы и детализации процесса, а также декомпозиции потока
данных, даются рекомендации для построения функциональной модели в виде
иерархии диаграмм потоков данных.
В главе 3 приводится описание текстовых средств моделирования -
словарей данных, предназначенных для описания структуры потоков и хранилищ
данных. Вводится понятие словарной статьи, дается нотация, позволяющая
формально описать расщепление и объединение (группирование) потоков.
В главе 4 вводится понятие спецификации процесса (миниспецификации) и
описываются наиболее часто применяемые методы ее задания:
структурированные естественные языки, таблицы и деревья решений,
визуальные языки проектирования. Дается аналитическое сравнение методов.
В главе 5 описываются базовые средства информационного моделирования
- диаграммы "сущность-связь" (при этом рассматриваются две наиболее
популярные нотации - Чена и Баркера), приводятся основные этапы построения
информационной модели, включая нормализацию.
В главе 6 рассматривается метод задания спецификаций управления с
использованием диаграмм переходов состояний. Вводятся основные объекты
диаграмм, предлагаются правила и способы их построения.
Глава 7 посвящена средствам структурного проектирования.
Рассматриваются две базовые техники структурного проектирования
(Константайна и Джексона), вводятся основные символы соответствующих
диаграмм, рассматриваются их достоинства и недостатки.
В главе 8 рассматривается, как исследованные в главах 2-7 методы и
средства структурного системного анализа могут использоваться на ранних
этапах разработки.
Во второй части книги дается обзор методологий структурного
системного анализа и проектирования, а также кратко рассматриваются
основные особенности наиболее часто используемых методологий.
В главе 9 приводится классификация структурных методологий по
отношению к школам, по порядку построения модели и по типу целевых систем.
В главе 10 приведены основные принципы, возможности и особенности
наиболее часто используемых методологий структурного системного анализа и
проектирования (Йодан/Де Марко, Гейн-Сарсон, SADT, Джексон, Варнье-Орр,
Мартин).
Третья часть книги посвящена описанию CASE-средств автоматизации
методологий структурного системного анализа и проектирования.
В главе 11 рассматриваются концептуальные основы CASE-технологий,
прослеживается эволюция CASE как самостоятельной дисциплины в
программотехнике, приводится CASE-модель жизненного цикла программного
продукта и рассматриваются ее отличия от традиционной модели.
Анализируются состав, структура и функциональные особенности современных
CASE-средств.
В главе 12 приводится классификация CASE-средств по типам, категориям
и уровням.
В главе 13 рассматривается отечественное CASE-средство первого
поколения - пакет CASE.Аналитик. Приведено описание основных функций
пакета, а также основные особенности используемых средств структурного
системного анализа.
Приложения содержат фрагменты моделей различных предметных областей,
построенных при помощи пакета CASE.Аналитик.
|