+7(8722) 51 52 53
+7(8722) 93 55 39
Технологический опыт
Технический профиль
Руководство компании уделяет большое внимание хорошо организованному процессу разработки. Несмотря на сравнительно молодой возраст, Bevulex использует комплексные продукты и инструменты корпорации Rational Software, в частности Rational Unified Process (RUP) в комбинации с CASE-средствами. Кроме того, в настоящий момент мы прилагаем существенные усилия к реализации целей ключевых технологий II и III уровней модели SEI CMM.
Технический персонал компании владеет следующими навыками:
Methodologies:
Operating Systems:
Programming Languages & Technologies:
|
Components:
Web-Servers:
Application Servers:
Databases:
Protocols:
|
Software Tools and Applications:
|
Процесс разработки
Рис. 1. Обзор процессов и стадий проекта
Начальная стадия
Главной задачей на данной стадии является достижение согласованности по целям проекта между всеми заинтересованными сторонами. Данная стадия, в основном, важна для новых проектов, когда главные риски должны быть рассмотрены до того, как начнется работа над проектом. Для проектов, сфокусированных на улучшении существующей системы, данная стадия является более короткой и фокусируется на выявлении полезности проекта и возможности его осуществления.
Основные цели:
- Установить области применения и границы проекта, включая рабочее представление, критерий приемки;
- Определение критических вариантов использования, основных сценариев работы;
- Представление и демонстрация, по крайней мере, одного варианта архитектуры, основанного на сценариях;
- Общая оценка стоимости и расписания для всего проекта (и более детальная оценка для предстоящей фазы уточнения);
- Оценка возможных рисков;
- Подготовка поддерживающей среды для проекта.
Основные операции:
- Сформулировать контекст для проекта (включая наиболее важные требования и ограничения, необходимые для выведения критерия приемки);
- Спланировать и подготовить бизнес-факты;
- Синтезировать вариант архитектуры, учитывающий компромиссы в дизайне таким образом, чтобы стоимость, расписание и ресурсы могли быть оценены. Главная цель — доказать осуществимость проекта. Доказательством может послужить построенная модель, воспроизводящая необходимые функции, или первоначальный прототип, по которому можно рассчитать области высокого риска. Усилия на создание прототипа ограничиваются целью доказать возможность решения задач проекта, непосредственное решение задач осуществляется на стадиях уточнения и конструирования;
- Подготовить среду для проекта (оценив проект и саму организацию, выбрав инструменты, решая какую часть процесса улучшить).
Стадия уточнения
Основной задачей фазы является установление рабочей (baseline) архитектуры системы, чтобы предоставить стабильную основу для большей части работ по дизайну и реализации на фазе конструирования. Архитектура развивается из анализа наиболее существенных требований и из оценок рисков. Прочность архитектуры оценивается через построение одного или нескольких архитектурных прототипов.
Основные цели:
- Убедиться, что архитектура, требования и планы достаточно устойчивы и что риски достаточно смягчены, чтобы можно было предсказать стоимость и график работ, необходимые для завершения разработки. Для большинства проектов прохождение этой стадии связано с переходом от простых операций с низким риском к высокозатратным операциям с высоким риском, что неминуемо влечет за собой организационные трудности;
- Разрешить все риски проекта, связанные с архитектурой;
- Установить рабочую архитектуру, выведенную из рассмотрения наиболее существенных для архитектуры сценариев (которые обычно выявляют наивысшие технические риски проекта);
- Создать эволюционный прототип компонентов, возможно даже один или несколько исследовательских черновых прототипов, чтобы уменьшить такие специфические риски, как:
-
- уступки в дизайне/требованиях;
- переиспользование кода;
- осуществимость проекта или демонстрация инвесторам, заказчикам или конечным потребителям.
- Продемонстрировать, что рабочая архитектура будет поддерживать требования к системе, оставаясь в рамках разумной стоимости и времени.
Основные операции:
- Определение, обоснование и утверждение (base lining) архитектуры;
- Уточнение представление (vision), основанное на новых данных, полученных на данной фазе, установление цельности понимания наиболее критичных вариантов использования, которые вызывают принятие решений, связанных с планированием и архитектурой;
- Создание и установление дательных планов итераций для фазы конструирования;
- Уточнение процесса разработки и установление среды разработки, включая процесс, инструменты и поддержку автоматизации, необходимые проектной команде;
- Уточнение архитектуры и выбранных компонентов. Потенциальные компоненты оцениваются, и принимается решение по их написанию/покупке/переиспользованию, чтобы достоверно определить стоимость и график работ на фазе конструирования. Выбранные компоненты интегрируются и оцениваются в соответствии с основными сценариями. Новые сведения, полученные во время этих операций, могут привести к перепроектированию архитектуры, рассмотрению альтернативных моделей и пересмотру требований.
Стадия конструирования
Основная задача — выяснение оставшихся требований и завершение разработки, основанной на рабочей архитектуре. Эта фаза является промышленной, где упор делается на управление ресурсами и проверку действий, чтобы оптимизировать стоимость, расписание и качество.
Основные цели:
- Минимизация стоимости разработки посредством оптимизации использования ресурсов и избежания недоработок;
- Достижение соответствующего качества;
- Получение версий, пригодных к использованию (Alfa, beta, etc.);
- Завершение анализа, дизайна, разработки и тестирования всех требуемых характеристик;
- Итеративно с нарастанием возможностей разработать законченный продукт, готовый к использованию пользователями. Это включает описание оставшихся вариантов использования и других требований, конкретизацию дизайна, завершение реализации и тестирования продукта;
- Решить, готовы ли к размещению: продукт, места его размещения и пользователи;
- Достичь некоторой степени параллельности в работе команд разработчиков. Даже в маленьких проектах есть типовые компоненты, которые могут быть разработаны независимо друг от друга, допускаю, таким образом, естественную параллельность работы между командами. Такая параллельность работы может значительно ускорить прогресс разработки проекта, однако она зачастую приводит к усложнению управления ресурсами и затруднению согласованности действий. Создание прочной, стабильной архитектуры обязательно, если предполагается использование параллельной работы.
Основные операции:
- Управление ресурсами, проверка и оптимизация процессов;
- Завершить разработку компонентов и их тестирование в соответствии с определенным критерием оценки;
- Оценить готовый продукт в соответствии с критерием приемки для данного представления.
Стадия перехода
Данная фаза фокусируется на проверке, что продукт доступен для конечного пользователя. Фаза может состоять из нескольких итераций и включает тестирование продукта в процессе подготовки к выпуску, а также внесения небольших изменений, основанных на отзывах пользователей.
На этой стадии отзывы должны, в основном, концентрироваться на вопросах настройки, конфигурации, установки и удобства использования, все крупные структурные вопросы должны быть решены ранее.
В конце данной фазы проект должен считаться закрытым, хотя в некоторых случаях данная фаза может совпадать с началом следующего цикла жизни того же проекта, создающего новую версию продукта.
Сложность данной фазы может варьироваться от предельно простой и прямолинейной до крайне сложной, в зависимости от вида продукта. Новый релиз существующего приложения домашнего использования может быть очень простым, тогда как замена национальной системы воздушной диспетчеризации окажется чрезвычайно сложным процессом.
Началом фазы считается момент, когда рабочие продукты достаточно развились, чтобы их можно было предоставить конечному пользователю. Обычно это подразумевает, что некоторое полезное подмножество системы было завершено в соответствии с уровнем качества и пользовательской документацией, так чтобы перенос системы к пользователю предоставил положительные результаты для обеих сторон.
Основные цели:
- Осуществление бета-тестирования, чтобы убедиться в соответствии системы ожиданиям пользователя;
- Бета-тестирование и параллельная работа, чтобы убедиться в совместимости новой системы с заменяемой;
- Преобразование рабочих баз данных;
- Обучение пользователей и сопровождающего персонала;
- Адаптация продукта под схему маркетинга, распространения и продажи;
- Деятельность по развертыванию продукта — коммерческое производство, упаковка, обучение торгового персонала;
- Работы по регулировке (исправление ошибок, улучшение производительности и удобства);
- Оценка распространяемых рабочих продуктов в сравнении с полным представлением о системе и критерием приемки продукта;
- Обеспечение возможности само-поддержки клиента, без обращения в службу технической поддержки;
- Достижение согласованности заинтересованных сторон в том, что распространяемый продукт завершен;
- Достижение согласованности заинтересованных сторон в том, что распространяемый продукт не противоречит критерию оценки представление (vision).
Основные действия:
- Выполнение планов по размещению продукта;
- Завершение материалов для поддержки конечного пользователя;
- Тестирование поставляемого продукта;
- Создание релиза продукта;
- Получение отзывов пользователя;
- Корректировка продукта на основе отзывов;
- Поставка продукта пользователям.
Процесс: деловое моделирование
Цели бизнес-моделирования:
- Понять структуру и динамику организации, в которой система будет установлена (целевая организация);
- Понять существующие проблемы в целевой организации и выявить области возможного улучшения;
- Убедиться, что заказчики, конечные пользователи и разработчики имеют одинаковое понимание целевой организации;
- Вывести требования к системе, необходимые для поддержки целевой организации.
Чтобы достичь этих целей, процесс бизнес-моделирования описывает, как разработать представление (vision) о целевой организации, и, основываясь на этом представлении, определить процессы, роли и ответственности в этой организации в виде вариантов бизнес-использования и объектной бизнес-модели. Кроме этих моделей разрабатываются следующие артефакты: дополнительные бизнес-спецификации, глоссарий.
Процесс: управление требованиями
Цели:
- Установить и поддерживать соглашение с заказчиками и другими заинтересованными лицами относительно того, что будет выполнять система;
- Дать разработчикам лучшее понимание системных требований;
- Определить границы применения системы;
- Предоставить основу для планирования технического содержания итераций;
- Предоставить базис для оценки стоимости и времени разработки системы;
- Определить пользовательский интерфейс системы, фокусируясь на нуждах и задачах пользователей.
Чтобы достичь этих целей важно, прежде всего, понять определение и рамки проблемы, которую будет решать система. Для этого используются:
- Бизнес-правила,
- Бизнес-варианты использования,
- Объектная бизнес-модель,
разработанные в процессе бизнес-моделирования. Чтобы полнее описать систему, разрабатываются:
- Представление о системе;
- Модель вариантов использования;
- Варианты использования;
- Дополнительные спецификации (дополнение к use-case model, вместе они охватывают все требования, как функциональные, так и нефункциональные — Software Requirements Specification).
Кроме того, разрабатываются артефакты:
- Глоссарий;
- Use-case storyboard (связь интерфейса с вариантами использования);
- Прототип пользовательского интерфейса.
Процесс: анализ и проектирование
Цели:
- Преобразовать требования к системе в дизайн системы;
- Вывести устойчивую архитектуру системы;
- Адаптировать дизайн к среде реализации, делая упор на производительности.
Процесс: выполнение
Цели:
- Определить организацию кода в терминах реализации подсистем, организованных в уровнях;
- Реализовать классы и объекты в терминах компонентов (исходные файлы, объектные файлы, exe и др.);
- Протестировать разработанные компоненты и модули;
- Объединить результаты работы разработчиков и команд в исполняемую систему.
Процесс: испытание
Цели:
- Проверить взаимодействие между объектами;
- Проверить корректность интеграции всех компонентов;
- Проверить, что все требования были корректно реализованы;
- Выявить и исправить дефекты перед поставкой продукта заказчику.
Процесс: развертывание
Данный процесс описывает действия, связанные с гарантией того, что продукт доступен для конечных пользователей. Этот процесс описывает несколько моделей поставки, в каждом случае делается упор на внутреннем тестировании продукта, за которым следует бета-тестирование перед тем, как готовый продукт передается заказчику.
Процесс: управление конфигурацией и изменением
Данный процесс включает:
- Выявление элементов конфигурации;
- Ограничение изменений в этих элементах;
- Аудит изменений, сделанных в этих элементах;
- Определение и управление конфигурацией этих элементов.
Цели:
Данный процесс необходим для контроля многочисленных артефактов, произведенных множеством людей, совместно работающих над проектом. Контроль позволяет избежать путаницы, вызванной следующими причинами:
- Одновременное исправление;
- Ограниченное уведомление (когда ошибка в артефакте была исправлена, но не всем разработчикам, использующим его, было сообщено об исправлении);
- Множественные версии.
Процесс: управление проектом
Project management — это искусство балансирования конкурирующих целей, управления рисками и преодоления ограничений, чтобы успешно выполнить поставку продукта, и отвечающего нуждам заказчиков и пользователей.
Цели:
- Предоставить каркас (framework) для управления проектами;
- Предоставить практические руководства для планирования, набора кадров, исполнения и наблюдения проектов;
- Предоставить каркас для управления рисками.
Данный процесс фокусируется на важных аспектах процесса итеративной разработки:
- Управление рисками;
- Планирование итеративного проекта как на протяжении всей его жизни, так и для конкретной итерации;
- Наблюдение за ходом выполнения итеративного проекта, выполнение измерений.
Процесс: среда
Данный процесс фокусирует внимание на действиях, необходимых, чтобы сконфигурировать процесс для проекта. Он описывает действия, необходимые для разработки руководств по поддержке проекта. Цель данного процесса — предоставить среду для разработки — инструменты и процессы.Основные концепции:
- Конфигурация процесса (как сконфигурировать RUP);
- Реализация процессов в организации (пошаговые процедуры по реализации процесса в организации; однако, эти процедуры не используют термины «работник», «действие» и «артефакт»);
- Реализация процессов в проекте (объясняет, как реализовать процесс, используя инструменты в программном проекте).