Эволюция методологий разработки программного обеспечения, поддерживаемых зарубежными CASE-системами

________________________

Штрик А.А.


Классификация методологий. К числу основных элементов, позволяющих всесторонне охарактеризовать любое прикладное программное обеспечение (ПО), следует отнести, наряду с его функциональными, техническими, экономическими и другими показателями, структуру или, точнее, модель жизненного цикла ПО. Такая модель отражает последовательно во времени все реально существующие состояния, которые присущи прикладному ПО, и все переходы между этими состояниями. Изменение состояний и динамика переходов в модели регламентируются стадиями жизненного цикла. Эти стадии распространяются как на время разработки прикладного ПО, так и на время его использования. В зарубежных публикациях этот период называют периодом жизни ПО. Поэтому стадии жизненного цикла, являясь стержневыми элементами этой модели, часто используются как признак для разработки различных классификаций, в том числе и классификации методологий разработки ПО.
Методология разработки и последующей поддержки ПО согласно [1 ] объединяет в себе группу правил, методов и процедур, которые определяют и регламентируют порядок использования полной совокупности операций, выполняемых на всех стадиях жизненного цикла прикладного ПО, и которые используются различными категориями специалистов, имеющих отношение к этому ПО, — руководителями, системными аналитиками, проектировщиками, программистами и др.
Методологии, поддерживающие большинство стадий или весь жизненный цикл прикладного ПО, называются общими методологиями. В первую очередь к таким методологиям относятся Software Engineering (SE) и Information Engineering (IE). Они охватывают весь спектр действий, осуществляемых в процессе создания и применения прикладного ПО, а в качестве базовых объектов разработки и последующей поддержки рассматривают процедуры обработки данных и собственно обрабатываемую информацию.
Наряду с этими традиционными методологиями разработки ПО (иногда их называют методологиями прямой разработки — forward engineering), в последние годы активно развивается методология, которая в качестве базового объекта рассматривает различные компоненты уже разработанных, существующих программных систем, называемых базовыми системами. В силу этого она может быть охарактеризована как методология повторной разработки или ре-разработки (redevelopment). Эта методология отражает самостоятельное направление в области создания ПО и, по оценкам специалистов, имеет большие перспективы; В ее основе лежит принцип итерационного подхода к получению готового программного продукта, который опирается на многократное использование или модернизацию некоторого исходного решения, проекта, программы, группы программ и др. Такая методология хорошо согласуется со спиральной моделью жизненного цикла ПО предложенной Б. Боэмом.
Методологии, лоддерживающие отдельные стадии жизненного цикла разработки ПО, могут быть названы частными методологиями. При этом методологии, распространяющиеся на стадии анализа и проектирования ПО (а это наиболее часто встречающаяся сфера приложения частных методологий), называются структурными методологиями. Как правило, эти методологии называются по именам их авторов, например Ward/Mellor, Yordon/DeMarco, Gane and Sarson, Warnier/Orr, Hatley, Constantine. Иногда это бывают сложные аббревиатуры, такие как DSSD — Date Structured System Design, Orr; ERA — Entity Relationship Analysis, Chen; BSP — Business Systems Planning и ряд других. Графическое представление, соединенное с различными частными методологиями, дополняет их и в то же время ориентирует на определенные типы используемых ЭВМ. Другим примером может служить целый ряд частных методологий, входящих в методологию ре-разработки. Среди них к настоящему времени большое развитие получили "ре-инженерия", "реверсная инженерия", "реструктуризация", "редокументация", повторное использование программных компонент (reusing) и ряд других.
Эволюция методологий разработки ПО. В эволюции методологий разработки ПО (рис. 1) можно выделить несколько периодов. На заре программирования каждая программа разрабатывалась вручную одним разработчиком, который и был полным ее хозяином. Возникшие по мере усложнения программ трудности в их программировании и отладке стимулировали развитие систем автоматизации программирования. Эти системы включали средства компиляции, а также ограниченный набор средств отладки и документирования. На этом этапе все средства были ориентированы на работу с текстами программ.
Второй период начался с момента, когда в связи с увеличением размеров программ стало резко возрастать число людей, разрабатывающих программу. Это потребовало организации коллективной работы на основе применения структурных методов и структурных методологий. Упорядочивая структуру и дисциплинируя разработку, они помогали стандартизации и систематизации разработки ПО и его сопровождения. Все это позволяло представить процесс создания программ как инженерную дисциплину, которая опиралась на формализованное понятие "жизненный цикл ПО". При этом в жизненном цикле центр тяжести начал перемещаться с процессов программирования и отладки программ на процесс проектирования общей структуры ПО и структуры его компонент, наряду с чем продолжалось активное развитие средств автоматизации программирования и отладки. Этот период может считаться временем, когда были сформулированы основные принципы методологии SE, понимаемые в смысле технологии разработки ПО или техники ПО [2 ], и начата реализация этих принципов.
Третий период в эволюции методологии характеризуется автоматизацией структурных методологий, т. е. созданием инструментальной поддержки трудоемких работ по проектированию ПО в целях максимального высвобождения времени разработчиков. Именно с этим периодом связывается появление первой генерации CASE-средств. Последние принесли новую жизнь структурным методологиям созданием автоматизированных графических средств для выпуска различных схем, диаграмм, экранных и бумажных изображений, наличием словарей данных и хранилищ, появлением средств анализа и контроля структуры и текстов, генераторов документов, генераторов программных кодов и др.




Следующий период связан с объединением средств автоматизации структурных методологий со средствами автоматизации программирования и отладки программ. По существу, речь идет о начале создания интегрированных систем поддержки полного жизненного цикла разработки ПО, который реализуется во второй генерации CASE-средств. В течение этого периода в рамках второй генерации CASE-средств активно развиваются и используются методы повторной разработки ПО. Имеющиеся достижения и результаты, по мнению специалистов, свидетельствуют о достаточно полной реализации принципов методологий SE. В то же время проблемы, возникающие при создании современных программных систем, требуют перехода к более развитой методологии создания ПО.
С учетом сказанного последний период можно охарактеризовать как переход от методологии SE к методологии IE. На практике такой переход происходит достаточно плавно и постепенно путем ориентации методологии SE на централизованно-информационный подход к разработке ПО.
Методология SE техника ПО. Согласно [3 ] под методологией SE понимается вся область деятельности по проектированию и разработке ПО в соответствии с представлениями относительно жизненного цикла ПО. Современная модель жизненного цикла охватывает стадии, начиная с анализа требований и формулирования требований к ПО и кончая его сопровождением. Наряду с поддержкой операций по непосредственному созданию ПО, методология SE охватывает также обеспечение качества, управление проектированием, документирование, анализ качества и характеристик ПО, а также разработку и использование средств поддержки проектирования ПО. Таким образом, в целом методология SE охватывает все аспекты разработки надежных и эффективных программ и их эксплуатационной поддержки для самых различных прикладных областей применения ЭВМ (рис. 2).

Рис. 2. Методология SB техника ПО

Существует ряд определений методологии SE, которые, не противореча друг другу в своей принципиальной основе, акцентируют внимание на ее различных деталях. Так, в работе [3 ] методология SE рассматривается как техническая дисциплина, изучающая методы программирования и производства программного продукта. В [4] вводится понятие методологии SE как программотехники, представляющей собой технологию разработки (конструирования) программных средств.
Наиболее полное и развернутое определение методологии SE, приведенное в [2], определяет ее как "применение соответствующей группы техники и средств для осуществления всего процесса производства ПО от разработки проекта до его конечной цели. В соответствии с этим целевым назначением методологии SE сегод-ня является формирование самых разнообразных средств и методов проектирования, для того чтобы эффективным образом обеспечить решение всех проблем и задач разработки и сопровождения прикладного ПО. Категории применяемых инструментальных средств для поддержки методологии весьма разнообразны и широки. На достаточно высоком уровне интеграции они могут включать в себя следующие группы средств: управление качеством; управление конфигурацией; анализ и проектирование; разработка и отладка программ; верификация и валида-ция; графический интерфейс и средства; управление проектом; искусственный интеллект и базы знаний; системы 4GL; средства оценки и управления проектом.
Методология SE направлена на решение практических задач создания ПО различных классов, включая решение проблем, возникающих в больших и сложных системах разнообразного назначения и разных предметных областей. Поэтому в зависимости от специфики, классов или особенностей проектируемого ПО может существовать ориентация на применение различных формальных методов и частных методологий. При этом используются различные инструментальные средства и практические приемы разработки.
Методология IE — информационная технология. Основные принципы информационной технологии. Усложнение деловых связей и рост объемов информации, которыми сопровождается деятельность современных больших и малых организаций, а также необходимость проведения оперативных и стратегических прогнозов и оценок в различных направлениях их функционирования привели к широкому распространению информационных систем и информационных технологий. Новое качество прикладного ПО способствовало появлению новой категории специалистов-разработчиков. Наряду с системными инженерами и архитекторами проекта, в создании таких систем участвуют инженеры по информации. В идеальном варианте ими должны являться квалифицированные специалисты в области моделирования и обеспечения информационных нужд организации. Такие специалисты должны иметь автоматизированную поддержку в получении необходимых сведений относительно предметной области, верификации этих сведений, а также уточнении необходимых деталей.
По мере готовности соответствующей модели предметной области можно создавать требуемую информационную программную систему. При этом деятельность по ее созданию практически полностью укладывается в рамки требований методологии SE. В результате основные принципы методологии SE в современных прикладных применениях получают свое развитие, однако уже в соответствии с постулатом о главенствующей роли понятия информации [5 ]. Фактически это находит свое отражение в дальнейшем переносе центра тяжести работ в жизненном цикле создания ПО. В свое время методология SE перенесла его на стадию анализа и проектирования ПО. В методологии же IE центр тяжести переносится на еще более раннюю стадию — стадию стратегического информационного планирования и изучения предметной области (рис. 3). Методология IE основана на предпосылке, что информационная программная система должна быть спроектирована таким образом, чтобы показать динамику и механизм использования информации в организации, разрабатывающей эту систему. Поэтому в методологии IE разработка программной системы начинается с построения логической модели этой организации и порядка использования в ней данных. В жизненный цикл разработки ПО включаются системно-стратегическое исследование и планирование, появляется понятие "модель предметной области" (enterprise model), особое развитие получают методы моделирования, контроля и анализа иерархической информации относительно всех аспектов проектируемой системы. При этом так же, как и в методологиях SE, ориентированных на данные, проектирование процедур является производным от проектирования данных.



Рис. 3. Стадия стратегического информационного планирования и изучения
предметной области



Таким образом, предметная область рассматривается как центральное звено информационной технологии, которая на основе использования модели предметной области должна обеспечивать высокоинтегрированный подход к разработке информационных систем. Модель предметной области начинает использоваться на очень ранних стадиях жизненного цикла ПО [6]. Она объединяет стратегическую программу организации с ее структурой и в процессе разработки информационной системы позволяет руководителям изучать возможные варианты информационного обслуживания, а также осуществлять управление стратегическим планом организации.
Следующее по уровню иерархии определяющее понятие методологии IE — это "информационная модель" или "модель принятия решений" [7 ]. Она представляет собой программные средства для поддержки руководителей среднего звена и других работников, занимающихся управлением и планированием. Информационная модель обеспечивает описание параметров управляемого или исследуемого объекта и связей между ними, а также позволяет анализировать взаимозависимость параметров и экспериментировать с различными их значениями. Примером простых информационных моделей являются интегрированные пакеты, обеспечивающие различные информационные и вычислительные потребности пользователей и поддерживающие единый способ представления данных. Более развитые модели могут включать возможности экспертных систем.
Наконец, последний уровень иерархии понятий занимают метаданные. Метаданные [7 ] — это данные, являющиеся описанием других данных. Например, схема базы данных является метаданными по отношению к содержимому этой базы данных. Метаданные составляют основную категорию информации, размещаемой в словаре данных, и представляют собой информацию, описывающую ключи, порядок атрибутов, форматы, правила использования индивидуальных записей и атрибутов в базе данных. Кроме того, в хранилище запоминаются дополнительные метаданные, содержащие много различных аспектов по всей информационной системе, частью которой и является эта база данных. Хранилище метаданных может также включать различную информацию по проекту, такую как требования, проектная документация, архитектурные диаграммы, диаграммы потоков данных, структурные диаграммы. Другие метаданные в хранилище более прямо относятся к разработке прикладных программ, включая и контроль версий: исходные коды, тестовые сценарии, сообщения о характеристиках качества.
Стадии информационной технологии. Методология IE, как правило, представляется в виде семистадийной иерархии [7 ] (рис. 4).

Рис. 4. Стадии информационной технологии


Первая стадия — это планирование информационной стратегии. На этой стадии строятся группа матриц стратегического планирования, диаграмма организационной иерархии, информационная модель предметной области, диаграммы иерархии функций и диаграммы зависимости этих функций..
Вторая — анализ предметной области или сферы бизнеса. Системный аналитик на основе информационной модели и полученных диаграмм определяет модели данных и процессов всей предметной области, используя различные средства изображения диаграмм: отношение сущность — связь, HIPO — диаграммы, диаграммы действия, структурные диаграммы, диаграммы потоков и др.
Третья — системное проектирование, при котором проектировщик и аналитик начинают в деталях прорабатывать сферу бизнеса, используя диаграммы потоков, экранное проектирование, прототипирование, структурные диаграммы и другие полученные на предыдущих стадиях документы.
Четвертая — техническое проектирование, в ходе которого проектируются структуры данных в соответствии с разработанными концептуальными моделями.
Пятая — конструирование или разработка, заключающаяся в автоматическом генерировании исходных текстов программ, операторов языка управления данными и экранных описаний. Затем создаются, при наличии соответствующих автоматизированных средств, выполнимые модули для проектируемой информационной системы.
Шестая — реализация программной системы, состоящая в сборке программной системы, ее отладке и тестировании.
Седьмая стадия — производство системы и передача на использование, а также корректировка обнаруживаемых ошибок и сопровождение.
Требования к инструментальным средствам поддержки методологии IE. В отличие от процедурно-ориентированного подхода к разработке прикладного ПО методология IE предполагает концентрацию сил в первую очередь на вопросе "что должно быть сделано", а не на том "как они должны быть построены". В соответствии с этим при реализации инструментальных средств поддержки методологии IE должны выполняться три основных принципа [7]:
создание метамодели этой методологии как центрального контролирующего и управляющего фактора в инструментальных средствах;
интегрированная поддержка всего жизненного цикла, включая все уровни последующего развития прикладного ПО;
концентрация внимания на автоматизации интегрального процесса создания программных систем, а не просто на "механизации" отдельных работ или этапов жизненного цикла.
Первый принцип, связанный с метамоделью, характеризует концептуальную особенность, присущую методологии IE. Метамодель должна отражать все аспекты разработки информационной системы — как инструментально-технологические, так и функционально-целевые. Чтобы разработка была эффективной, необходим высокий уровень автоматизированной поддержки всех стадий жизненного цикла, причем эта поддержка не должна быть узко специализирована. Наряду с методами, используемыми для собственно разработки прикладного ПО,, нужно применять методы управления процессом разработки и технической инфраструктурой. Чтобы знать, что должны поддерживать эти методы и какие средства необходимо использовать, метамодель должна учитывать соответствующие данные. Наряду с этим в метамодели необходимо представить предметную область и структуру соответствующей ей информационной модели. Основой метамодели является энциклопедия, которая является хранилищем всей этой информации, а также всех тех знаний и данных, которые необходимы для создания информационной системы.
В отношении второго и третьего принципов достаточно отметить, что они являются вполне очевидными и характерны не только для методологии IE, но и для методологии SE.
Основные различия методологий SE и IE. Методология SE является группой дисциплин, используемых для специфицирования, проектирования и программирования компьютерных программ и их последующей поддержки. Эта методология (см. рис. 2) начинает проект с общего обозрения программной системы и затем проводит декомпозицию каждой функции до тех пор, пока структура полученных подфункций не позволит реализовать их в виде программного кода. При этом логическое проектирование в методологии SE отделено от проектирования физического. Методология SE поддерживается различными частными методологиями структурного анализа и структурного проектирования: De-Marco, Gane/Sarson, Yordon и другими, различными методами представления объектов: потоками данных, древовидными структурами, процедурными логическими диаграммами, разными экранными и бумажными форматами и др.
Методология IE [8 ] соответствует централизованно-информационному подходу к разработке прикладного ПО и имеет дело с созданием широкопроблемных информационных систем, включающих большие номенклатуры входных данных — персонал, процедуры, данные, оборудование, ПО, которые во взаимодействии друг с другом и соответствующим окружением обеспечивают достижение заданных целей организации. Эта методология реализуется группой взаимосвязанных, интегрированных дисциплин, которые строят компьютерную модель предметной области с последующим созданием на ее основе требуемой информационной системы. Методология IE начинает получать широкое распространение, поскольку позволяет проектировать и создавать эффективные информационные системы. Последнее достигается за счет использования результатов начального моделирования, которые показывают функциональные зависимости и связи данных, а также за счет стратегического планирования, которое на базе создаваемой иерархической модели организации определяет всю необходимую информацию для достижения целей этой организации.
Методология IE в отличие от методологии SE (см. рис. 3) начинается со стратегического планирования, т. е. с более высокого уровня, однако фазы последующего проектирования программ у них подобны. Поскольку методология IE ориентирована на создание информационных программных систем, она в первую очередь фокусируется на логическом анализе того, как используются те или иные данные при функционировании организации и в информационной системе, причем требования бизнеса являются первичными при формировании требований к прикладному ПО. Методология IE используется для проектирования и развития системы баз данных и работы с иерархическими структурами данных, поэтому она требует развитых методов и средств моделирования логических данных и их нормализации. В соответствии с такой ориентацией методология IE в меньшей степени, чем методология SE, рассчитана на разработку систем реального времени.
Понятие "методология разработки ПО" определяет основу, на которой строится соответствующий технологический процесс и формируется совокупность инструментальных средств, автоматизирующих эту технологию. Иными словами, инструментальные средства автоматизируют процесс разработки ПО, в то время как методология определяет вид этого процесса. Поскольку в настоящее время в роли таких технологий и инструментальных средств в подавляющем большинстве случаев выступают CASE-технология и CASE-средства, между методологией разработки ПО и идеологией, лежащей в основе всей CASE-индустрии, образуется тесная взаимосвязь. Соответственно методология разработки ПО становится важным элементом при выборе и формировании такой совокупности CASE-средств, которая отвечала бы конкретным условиям их использования. Поэтому выбор CASE-средств всегда следует за выбором методологии и определяется моделью процесса разработки ПО. И в этом смысле необходимо отметить, что именно методология является основным путем превращения процесса создания ПО из искусства и науки в инженерную практику, а это и является решением одной из главных задач, стоящих перед CASE.
Анализ современных тенденций показывает, что в своем дальнейшем развитии методологии разработки ПО двигаются от моделей, отражающих ограниченный жизненный цикл, т. е. от таких, которые содержат фиксированное число стадий, к эволюционным, в частности к спиральным моделям, предполагающим непрерывное развитие прикладного ПО или его адаптацию к текущим условиям. В свете этой тенденции большие перспективы открываются перед методологией повторной разработки, а также перед объектно-ориентированными методами программирования.


1. Watterson K. CASE — what is it? // Data based advisor, August 1988, p. 133,134.
2. Simоns G. Introducing Software Engineering // Prentice Hall, New York, 1987, p. 111—121.
3. Толковый словарь no вычислительным системам. M.: Русский язык, 1990, с. 446.
4. Н u г г a h A. Everything is In the names for coming "capture" tools // Software magazine, October 1989, p. 40—49.
5. McClure C, Ambrosio J. Methodology in path from art to science // Software magazine, June 1989, p. 33,34, 39—42.
6. F i s h e r J. T. A CASE glossary // DBMS, January 1990, p. 42—49.
7. M а с d о n a l d I. G. Automating information engineering // Information and Software Technology,
1988, v. 30, № 5, p. 393—397.

8. M с С l u г e C. The CASE for structured development // PC tech journal, August 1988, p. 51—67.

Статья поступила в редакцию в апреле 1993 г. Российский НИИ информационных технологий и автоматизации проектирования


______________________________

А. А. Штрик - д-р техн. наук


© Информационное общество, 1993, вып. 1-2, с. 63-71.