СИСТЕМЫ АВТОМАТИЗАЦИИ РАСПРЕДЕЛЁННОГО ПРОЕКТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
А.А. Ларистов
Санкт-Петербургский государственный электротехнический университет “ЛЭТИ” им. В.И.Ульянова (Ленина)
Abstract – This article deals with using CASE-technology in internet-environment. The first part of article says about all stages of development process. Second part tells as this process can be realized by CASE- technology. In whole this article demonstrate the advisability of using CASE-technology for automation of a development process including case of development in internet-environment.
Большинство сложных технических проектов ведутся большими коллективами разработчиков с использованием специализированных средств разработки. Для координирования процесса проектирования необходимо использовать специальные программные системы сопровождения, позволяющие эффективно выполнять параллельное проектирование. Такие системы в области разработки программного обеспечения (ПО) получили название CASE-систем (
Computer-Aided Software/System Engineering). CASE-технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем и поддерживается комплексом взаимоувязанных средств автоматизации. Помимо обеспечения эффективного взаимодействия разработчиков и интеграции средств разработки, CASE-системы значительно автоматизируют процесс проектирования ПО в целом.В современных условиях взаимодействие между участниками проекта, как правило, осуществляется через локальную сеть. Однако, в настоящий момент различные экономические причины делают реальной ситуацию, когда разработчики могут находиться в разных странах. В этом случае в роли средства взаимодействия выступает глобальная сеть
Internet. И в этих условиях актуальным становится создание систем автоматизации распределённого проектирования, ориентированных на работу с Internet. Классические CASE-системы предназначены для локальной сети и не учитывают особенностей работы в глобальной сети. Чтобы определить основные функции CASE-систем и особенности их реализации в Internet-среде, рассмотрим подробнее этапы проектирования программного комплекса.Разработка современного программного комплекса представляет собой сложный и длительный процесс, который состоит из следующих этапов
:Во время предпроектного исследования собирается информация о предметной области, подбираются исходные данные и определяются функциональные требования к системе. Изучаются необходимые потребительские характеристики разрабатываемого программного обеспечения.
На этапе проектирования широко используется литература, стандарты и нормативные документы. Рассматриваются различные варианты реализации тех или иных функций и выбираются оптимальные. Здесь же разрабатывается архитектура, программный комплекс разбивается на подсистемы, определяются способы их взаимодействия. Результатом этого этапа является документация, с которой можно приступать к программированию, а именно: блок-схемы, SDL-диаграммы, функциональные схемы, описания алгоритмов.
На стадии программирования, или кодирования, происходит воплощение всех наработок, сделанных на предыдущем этапе в работающую систему. Все действия фиксируются как на уровне комментариев в исходных кодах программ, так и в проектной документации. Необходимо организовать процесс таким образом, чтобы в любой момент времени был возможен откат на несколько шагов назад.
Отладка тесно связана с программированием, эти этапы разделяются весьма условно. Отладка может производиться либо непосредственно на оборудовании, для которого предназначено разрабатываемое программное обеспечение, либо на различных эмуляторах. После программирования и отладки должна быть получена законченная рабочая система.
Наконец, тестирование представляет собой проверку всех функциональных возможностей разработанного программного обеспечения на том оборудовании, для которого оно разрабатывалось и в условиях, максимально приближенных к реальным. Важным моментом, обеспечивающим объективность, является необходимость проведения тестирования людьми, не участвовавшими в программировании.
На каждом этапе применяются специализированные средства разработки: во время разработки алгоритмов и архитектуры в основном используются различные редакторы; при программировании применяются компиляторы и линковщики, при отладке – отладчики, при тестировании может использоваться специальное тестовое оборудование. В самом простом случае, без какой-либо автоматизации, все перечисленные средства являются автономными и никак не связанны между собой.
Кроме чисто технических задач процесс разработки ПО, включает также функции планирования и управления, а в условиях распределённого проектирования эти функции становятся особенно актуальными. В рамках планирования производится определение временных параметров проектирования, распределение подсистем между коллективами разработчиков. Кроме того, в течение всего процесса разработки необходимо отслеживать текущее состояние проекта для осуществления контроля и оперативного управления, а также для обеспечения синхронизации проектных процедур.
Исходя из вышесказанного, схема процесса создания программного комплекса будет выглядеть, как представлено на рисунке 1.
Рис. 1
Теперь посмотрим, как
CASE-система позволяет автоматизировать процесс разработки ПО и какими характеристиками она должна обладать для функционирования в среде Internet. Основными атрибутами любой системы автоматизации разработки ПО являются:Единая база данных обеспечивает наличие одинаковой, всегда актуальной информации у всех участников проекта, в соответствии с их правами доступа. Под информацией понимаются любые данные в самой разной форме, от таблиц и схем, до исходных текстов программ и пользовательской документации. В случае ориентации на работу в Internet любые изменения в проекте должны документироваться особенно тщательно, т. к. в таких условиях отсутствует прямое общение между разработчиками.
Интеграция средств разработки может быть реализована на разных уровнях: от передачи данных между автономными средствами до единой системы с общим пользовательским интерфейсом. При функционировании в среде Internet идеальным вариантом является доступ ко всем функциям системы или, по крайней мере, к общим данным с помощью браузера.
Основными особенностями коллективной разработки являются:
В случае работы в Internet сюда следует отнести также географическую удалённость разработчиков друг от друга
В связи с перечисленными особенностями необходима развитая система обеспечения синхронизации задач и координации разработки. В наиболее сильной степени это относится к средствам управления проектом. Кроме того, к функциям управления можно отнести ограничения и привилегии доступа, контроль версий и изменений и др.
Вся документация по проекту должна генерироваться автоматически на базе репозитория (как правило, в соответствии с требованиями действующих стандартов).
Что касается верификации, то CASE-технология обеспечивает автоматическую верификацию и контроль проекта на полноту и состоятельность на ранних этапах разработки, что существенно экономит время на этапе тестирования.
Все эти требования достаточно хорошо переносятся из локальной сети в Internet. Архитектура систем автоматизации проектирования разработки ПО остаётся прежней, изменяются только способы реализации. При этом схема распределения задач между коллективами разработчиков может быть произвольной и не зависящей от их географического местонахождения (см. рисунок 2). Единственным условием, возникающем при низком уровне интеграции средств разработки, является наличие специализированного ПО на разных рабочих местах. Однако, даже в этом случае, разработчики всегда будут иметь доступ к любой проектной документации с сервера документации и получать необходимые распоряжения от технического руководителя проекта, работающего на компьютере обеспечивающем функции планирования и управления. Организованная таким образом схема распределения рабочих мест, приведена на рисунке 2.
Рис. 2
В заключение можно сказать, что системы автоматизации распределённого проектирования ПО на основе
CASE-технологий позволяют внести значительные усовершенствования в процесс разработки. Как показывают практические исследования, применение таких систем существенно изменяют распределение трудозатрат по фазам разработки ПО (см. таблицу 1), сокращая общее время проектирования. Кроме того, дальнейшая поддержка программного обеспечения, разработанного с использованием CASE-технологий гораздо проще, что сказывается на своевременности появления новых версий продукта и их качестве.Табл. 1
Анализ |
Проектирование |
Программирование |
Тестирование |
|
Традиционные технологии |
20% |
15% |
20% |
45% |
CASE-технологии |
40% |
40% |
5% |
15% |
Требования, предъявляемые к
CASE-системам, позволяют их реализацию в среде Internet. Таким образом, наиболее перспективными системами автоматизации проектирования ПО на сегодняшний день, являются системы на основе CASE-технологий.Литература
Site of Information
Technologies Designed by inftech@webservis.ru. |
|