| 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.Аналитик.
 
 
 
 |