Управление проектами - статьи

         

Анализ и проектирование


На следующем этапе проектирования разработчики отвечают на вопрос «Как должна быть построена система, чтобы реализовать определенные на предыдущем этапе требования». Признанным стандартом моделирования архитектуры объектно-ориентированных приложений сегодня стал язык UML. В системах проектирования на базе UML создаются диаграммы, которые в совокупности представляют единую концепцию программного продукта. Затем набор диаграмм переводится в конкретный язык программирования. Помимо разработки архитектуры новых приложений, средства проектирования позволяют создавать визуальные представления существующих систем и анализировать их внутреннюю структуру для повышения эффективности внесения изменений в такие программы. Безусловно, наиболее известным решением в области UML-проектирования остается система Rational Rose.

В результате приобретения компании TogetherSoft, Borland стала обладательницей собственной серии продуктов Together для анализа и проектирования. Центральной в этом семействе является интегрированная многоязыковая среда проектирования и разработки ControlCenter, поддерживающая визуальное моделирование на UML приложений как для платформы J2EE с последующим написанием кода на Java, так и для платформы .Net на языках С#, C++ и Visual Basic .Net. Кроме базовой версии доступен экономичный вариант системы для индивидуальных разработчиков и небольших групп (Together Solo), а также редакции для платформы IBM WebSphere, для интегрированной среды разработки Jbuilder и для открытой среды Eclipse.

Together ControlCenter реализует генерацию исходных кодов по последовательности UML-диаграмм. В системе реализована технология LiveSource, которая обеспечивает синхронизацию между проектом приложения и изменениями — при внесении изменений в исходные тексты меняется модель программы, а при изменении модели надлежащим образом изменится текст на языке программирования. Все это происходит в реальном времени и исключает необходимость вручную модифицировать модель или переписывать коды.
Наличие подобных возможностей наряду с соответствием стандарту UML в Aberdeen Group [4] считают ключевыми критериями выбора эффективной системы моделирования. Контроль версий осуществляется благодаря функциональной интеграции решений Together и системы StarTeam. Также поддерживается интеграция с системой конфигурационного управления Rational ClearCase. Помимо проектирования и разработки компонентных приложений для платформ J2EE и .Net, ControlCenter поддерживает визуальное XML-моделирование, моделирование бизнес-процессов, разработку Web-сервисов и баз данных.

Важной особенностью систем семейства Together является то, что они предоставляют средства автоматизированного инспектирования исходных кодов для повышения качества архитектуры и реализации программ. Сюда относятся средства аудита и оценки программ на базе метрик, дополняющие традиционные способы проверки кода вручную. Как отмечается в [5], проверка кода (code review) как важнейший инструмент повышения качества разрабатываемого продукта не теряет своей актуальности и в «быстрых» методиках. Скажем, в ХР проверка кода является непрерывным процессом, поскольку экстремальное программирование обязывает работать над исходными текстами в парах. Обычно результатом проверки кода становится рефакторинг (refactoring), т.е. изменение внутренней структуры программы с целью упрощения ее понимания и снижения затрат на модификацию.

Проверка кода является частью процесса инспектирования программных средств — оценка программного продукта, в ходе которой группа специалистов, среди которых не должно быть автора программы, проверяет требования, архитектуру или код программы с целью выявить ошибки, нарушения корпоративных стандартов и другие проблемы [2]. Что касается проверки кода, то она не только способствует тому, что программа становится более понятной и простой в сопровождении, но и позволяет повышать квалификацию новых специалистов в команде разработчиков. Определенная часть этой работы, например, оценка уровня реализации бизнес-логики программы, остается за человеком.


Но для целого ряда функций автоматизация способна значительно повысить эффективность и продуктивность процесса проверки. Например, в компании TogetherSoft четырем специалистам было поручено провести в течение 15 минут аудит небольшого фрагмента программы на Java. За это время ими было выявлено 21 нарушение, в то время как средствами ControlCenter в том же фрагменте исходного кода всего за 2 секунды было обнаружено 150 несоответствий принятым стандартам программирования на Java [5].

Аудит — статическая проверка исходного кода программы с целью нахождения несоответствий принятым в организации стандартам использования языка программирования. В ControlCenter для языков Java и С++ реализованы такие категории аудита исходного кода, как стиль кодирования, критические ошибки моделирования, документирование, именование, производительность, общие ошибки использования языка, чрезмерный объем кода, ошибки в использовании EJB и др.

Более «тонкой материей» в процессе проверки кода является оценка на базе метрик. Если аудит сосредоточен главным образом на синтаксическом анализе текста программы, то метрики позволяют оценить уровень ее объектной архитектуры. Метрики — это точные количественные данные, на основе которых оцениваются размер, сложность и зависимости в тексте программы, а реализация метрик — попытка подвести математическую основу под такую расплывчатую категорию, как качество программы. Оценка на базе метрик позволяет устранить нарушения базовых принципов объектно-ориентированной разработки и провести эффективный рефакторинг программы. Сбор и анализ метрик — крайне трудоемкая задача, поэтому оценка на базе метрик только выигрывает от автоматизации. Together обеспечивает анализ на базе метрик для таких категорий, как базовые эвристики, зависимости, связи, инкапсуляция, размер программы, наследование, соотношение комментариев и т.д., для языков программирования Java, C++, C#, Visual Basic 6 и VB.Net.


Содержание раздела