Определение среды разработки

Обеспечиваем всестороннее рассмотрение всех элементов

Непротиворечивое и всестороннее определение среды разработки гарантирует полный учет всех аспектов при планировании, определении, развертывании и поддержке этой среды.

Питер Илес, исполнительный ИТ-архитектор и главный ИТ-архитектор, Rational Services, IBM

Питер Илес (Peter Eeles) – фотографияПитер Илес (Peter Eeles) – исполнительный ИТ-архитектор и главный ИТ-архитектор международной организации IBM Rational Software, помогающий различным компаниям улучшить их возможности по разработке программного обеспечения. Имеет глубокие познания и специализируется на сервис-ориентированной архитектуре и повторном использовании стратегических активов. Питер является соавтором книг "Процесс проектирования программного обеспечения" (2009 год), "Создание J2EE-приложений с использованием Rational Unified Process" (2002 год) и "Создание бизнес-объектов" (1998 год). Связаться с ним можно по адресу peter.eeles@uk.ibm.com.



20.03.2012

Зачем нужно определение требований

Среда разработки должна содержать все необходимое для создания и развертывания программоемких систем (т.е. систем, в которых программное обеспечение является важнейшим и обязательным элементом). Почему важно иметь непротиворечивое определение требований к среде разработки? Коротко говоря, многие организации стремятся снизить время выхода на рынок, уменьшить затраты и повысить качество, а все эти бизнес-цели напрямую зависят от качества среды, используемой при создании таких систем. Наличие под рукой непротиворечивого и всестороннего определения среды разработки гарантирует, что ничто не будет упущено при планировании действий по улучшению имеющейся среды, определении требований к среде, определении архитектуры среды, оценке среды, обеспечении соответствующего уровня возврата инвестиций при изменении среды и т.д. Определение среды разработки является критически важной исходной информацией для всех этих задач.

Место среды разработки в контексте

Перед рассмотрением конкретных элементов, составляющих среду разработки, очень полезно сначала понять, какое место эта среда занимает в общей картине.

На рисунке 1 изображен центр обеспечения качества (Center of Excellence), отвечающий за создание и обслуживание среды разработки. Эта среда используется в проектах разработки, которые, в свою очередь, создают и обслуживают программоемкие системы (либо какие-то другие программные активы, например, компоненты или сервисы). Такая простая визуализация позволяет уточнить различия между ролью центра обеспечения качества (включая роли членов коллектива, процессы и ключевой узел – среду разработки) и проектами, которые используют эту среду разработки (а также их роли, процессы и узлы).

Рисунок 1. Отличие центра обеспечения качества от проекта разработки
Рисунок 1. Отличие центра обеспечения качества от проекта разработки

Элементы среды разработки

Согласно мнению экспертов по программному обеспечению IBM Rational, среда разработки состоит из следующих шести элементов, каждый из которых показан на рисунке 2 и подробно описан ниже:

  • Методика (Method)
  • Средства (Tools)
  • Подготовка (Enablement)
  • Организация (Organization)
  • Инфраструктура (Infrastructure)
  • Внедрение (Adoption)
Рисунок 2. Элементы среды разработки
Рисунок 2. Элементы среды разработки

Возможно, вы знакомы с компонентами модели персонал-процесс-технология, являющимися ключевыми составными частями успешного проекта разработки. Однако эта модель является чрезмерно упрощенной для целей данной статьи. Тем не менее, эта модель построена на элементах, показанных на рисунке 2:

  • Персонал – это организация и подготовка.
  • Процесс – это методика.
  • Технология – это средства и инфраструктура.

Внедрение – это новый (и очень важный) элемент, который концентрируется на распространении среды разработки в организации, бизнес-подразделении или проекте.

Методика (Method)

Ключевым элементом любой среды разработки является методика, которой придерживаются, формально или неформально, специалисты-практики. Вот ключевые составляющие, относящиеся к методике:

  • Основные элементы методики, такие как роли, рабочие продукты, задачи и процессы.
  • Дополнительные элементы методики, такие как стандарты, рекомендации, инструкции, шаблоны и примеры.
  • Топология развертывания методики, которая может учитываться, например, при развертывании методики в виде Web-сайта в интрасети компании. В нашем примере для размещения контента необходим Web-сервер, а на рабочих станциях должен быть установлен подходящий Web-браузер, и они должны быть подключены к Web-серверу.

Средства (Tools)

Средства разработки автоматизируют аспекты выбранной методики. Например, можно использовать инструментальные средства для хранения и управления требованиями к разрабатываемому проекту, для визуального моделирования архитектуры и дизайна, для тестирования программного обеспечения и т.д.

Ключевые элементы, относящиеся к инструментальным средствам:

  • Средства разработки и средства для их интеграции.
  • Сценарии установки и настройки средств разработки.
  • Топология развертывания средств разработки, которая учитывает необходимое программное и аппаратное обеспечение, как на стороне клиентов, так и на стороне сервера, вместе со всеми целевыми платформами и эмуляторами (например, при разработке устройств реального времени или встроенных устройств).

Подготовка (Enablement)

Подготовка специалистов к использованию среды разработки (обучение и наставничество) является важным условием ее успешного внедрения. Поэтому в число аспектов среды разработки входят определение и создание обучающих и инструктивных материалов. Также передовые компании уделяют особое внимание повышению уровня профессионализма своего персонала и ориентации на внешние профессиональные организации.

Ключевые элементы, относящиеся к подготовке:

  • Учебные программы и курсы. Они охватывают разнообразные потребности – от обучения опытных специалистов деталям среды разработки до всеобъемлющей программы переподготовки специалистов.
  • Инструктивные материалы. Применяются специалистами при консультировании менее опытных коллег.
  • Топология развертывания подготовки. Топологию развертывания необходимо принимать во внимание, например, когда подготовка специалистов организуется посредством Web-обучения. Опять же для размещения материалов необходим Web-сервер, а рабочие станции должны быть оснащены Web-браузерами. Топология развертывания может также указывать помещения и классы, необходимые для проведения аудиторного обучения.

Организация (Organization)

Еще одним аспектом среды разработки является гарантирование наличия соответствующих организационных ресурсов для ее определения, развертывания и управления. Это могут быть специалисты по конкретным аспектам среды разработки (например, методисты, узкие специалисты, инструкторы и наставники), персонал для администрирования и обслуживания среды, персонал с подходящей квалификацией в службе поддержки пользователей (help desk) компании и соответствующие сообщества практиков.

Ключевые элементы, относящиеся к организации:

  • Определение организационных ролей и подразделений, являющихся частью среды разработки.
  • Топология развертывания организационных ресурсов, указывающая местоположение этих организационных подразделений.

Инфраструктура (Infrastructure)

С точки зрения среды разработки инфраструктура рассматривается в понятиях аппаратного и программного обеспечения. Об этом уже говорилось ранее при рассмотрении методики, инструментальных средств, подготовки и организации. Однако есть три причины отдельно рассмотреть инфраструктуру как ключевой элемент:

  1. Во-первых, консолидация. Например, при рассмотрении потребностей инфраструктуры среды разработки в целом можно определить, что необходим лишь один Web-сервер для поддержки как Web-содержимого методики, так и web-обучения.
  2. Во-вторых, гарантирование должного учета всего дополнительного аппаратного и программного обеспечения, поддерживающего среду разработки (например, операционные системы, системы управления базами данных, аппаратные системы управления, инструментарий для тестирования при разработке устройств реального времени и встроенных устройств).
  3. В-третьих, центр обеспечения качества может потребовать развертывания инфраструктуры для поддержки работ по созданию и тестированию среды разработки до ее внедрения в какую-либо производственную инфраструктуру поддержки бизнес-проектов.

Ключевые элементы, относящиеся к инфраструктуре:

  • Местоположение, узлы и возможность подключения.
  • Программное обеспечение (например, операционные системы, системы управления базами данных, аппаратные системы управления, инструментарий для тестирования).

Внедрение (Adoption)

В дополнение к уже перечисленным элементам важно рассмотреть вопрос внедрения среды в организации, бизнес-подразделении или в проекте разработки.

Ключевые элементы, относящиеся к внедрению:

  • План внедрения. Этот план определяет задачи, обычно выполняемые при внедрении среды, например, приобретение аппаратного и программного обеспечения.
  • Методики проведения организационных изменений. Они понадобятся для внедрения и встраивания среды разработки в повседневную деятельность соответствующих организационных структур.
  • Определение показателей среды. Показатели используются для измерения эффективности среды.

Контекст решения

Также важен контекст решения (где рассматриваемым решением является среда разработки). Контекст представляет требования к среде разработки и может рассматриваться с точки зрения функциональности, свойств и ограничений.

  • Функциональность представляет схему или порядок разработки программного обеспечения, обеспечиваемые средой разработки. Реализация этих требований вынуждает учитывать все упомянутые ранее элементы. Например, порядок управления требованиями (см. рисунок 3) поддерживается следующими аспектами:
    • Методика управления требованиями.
    • Инструментальные средства управления требованиями.
    • Обучение и наставничество по вопросам управления требованиями.
    • Группа поддержки, умеющая решать вопросы управления требованиями.
    • Аппаратное и программное обеспечение для поддержки элементов, связанных с управлением требованиями.
    • Соответствующее внедрение в проектах порядка управления требованиями.
Рисунок 3. Необходимая функциональность, включающая все элементы среды разработки
Рисунок 3. Необходимая функциональность, включающая все элементы среды разработки

Таким же образом можно рассматривать и другие составляющие среды разработки, например, архитектуру или управление качеством. Также эту методику можно применить и к специфической деятельности, например, к итеративной разработке (являющейся основой динамичного (agile) подхода к разработке и поставке программного обеспечения), которая тоже требует рассмотрения всех элементов.

  • Свойства – это параметры, которыми должна обладать среда разработки. Они также требуют учета всех элементов среды разработки. Например, для реализации свойства масштабируемости (например, способность поддерживать различное количество одновременно работающих пользователей) используются следующие подходы:
    • Метод, который может быть настроен под размер проекта.
    • Инструментальные средства, которые могут быть настроены на поддержку конфигурируемого метода.
    • Соответствующие механизмы и уровни обучения для проектов различного размера.
    • Организационные ресурсы, обеспечивающие наличие персонала с соответствующим уровнем квалификации для поддержки ожидаемого количества проектов разработки.
    • Инфраструктура, которая может масштабироваться для поддержки ожидаемого количества одновременно работающих пользователей.
    • Соответствующие механизмы внедрения среды.
  • Ограничения, которым должна соответствовать среда разработки, тоже требуют рассмотрения всех элементов среды разработки. Например, при необходимости миграции из существующей среды может потребовать выполнения следующих действий:
    • Взять правила из существующей методики и включить их в новую.
    • Перенести рабочие продукты из устаревшего набора инструментальных средств в новый набор (либо выполнить интеграцию с имеющимися инструментальными средствами).
    • Обеспечить подготовку, адекватную текущему положению дел и должным образом организованную.
    • Предоставить персонал для обеспечения плавного перехода из исходного состояния в планируемое.
    • Определить инфраструктуру, максимально использующую существующую (например, повторно использовать, по возможности, имеющиеся аппаратуру и лицензии на программное обеспечение).
    • Предусмотреть механизмы внедрения, подтверждающие выполнение миграции.

Еще одним важным ограничением при рассмотрении возможности изменения существующей среды разработки является, конечно, окупаемость инвестиций (Return On Investment – ROI). Чтобы такая инициатива была успешной, она, несомненно, должна обеспечить положительные результаты, соответствующие бизнес-плану. Каждый аспект среды разработки влияет на ROI как с точки зрения затрат, так и с точки зрения прибыли.

Хотя это не показано на рисунке 2, функциональность, свойства и ограничения обычно соответствуют определенному бизнес-контексту (например, поставленным бизнес-целям). В этом смысле контекст решения также включает в себя бизнес-аспекты. Это может быть особенно важно при демонстрации прямого или косвенного участия среды разработки в достижении бизнес-целей.


Определение, развертывание, управление

При определении различных элементов среды разработки полезно учитывать следующие элементы жизненного цикла среды (см. рисунок 4), поскольку в дополнение к контексту решения каждый из них имеет свои аспекты, влияющие на определение:

  • Определение среды.
  • Развертывание среды.
  • Управление средой.
Рисунок 4. Цикл жизни среды разработки
Рисунок 4. Цикл жизни среды разработки

Перед рассмотрением областей на рисунке 4 следует объяснить, почему они связаны в цикл. Этот рисунок подтверждает, что эффективное изменение (в данном случае улучшение среды разработки) обычно достигается посредством ряда инкрементных изменений, а не методом большого взрыва (эволюция, а не революция), и каждое инкрементное изменение представляет собой один проход по циклу. Однако изменение, реализованное в одном цикле, по определению изменяет контекст следующего (например, специалисты теперь имеют нужную квалификацию, появилась новая аппаратура, приобретены новые инструментальные средства и т.д.), т. е. демонстрируется циклическая природа изменений.

В следующих разделах рассматривается каждый элемент среды разработки вместе с определением решения, развертыванием решения и управлением решением.

Определение

Применительно к определению среды разработки вспомним предыдущее обсуждение ключевых элементов. Это обсуждение здесь не повторяется, хотя для полноты изложения в таблице 1 приводятся различные элементы, определенные ранее.

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

Таблица 1. Аспекты определения
ЭлементОписание
Методика (Method)Роли, рабочие продукты, задачи, процессы
Стандарты, рекомендации, инструкции и т.д.
Топология развертывания методики
Средства (Tools)Средства разработки и интеграции
Сценарии установки и настройки средств разработки
Топология развертывания средств разработки
Подготовка (Enablement)Учебные программы и курсы
Инструктивные материалы
Топология развертывания подготовки
Организация (Organization)Организационные роли и подразделения
Топология развертывания организационных ресурсов
Инфраструктура (Infrastructure)Местоположение, узлы и возможность подключения
Поддерживающее программное обеспечение (например, операционные системы)
Внедрение (Adoption)План внедрения
Методики проведения организационных изменений
Показатели среды

Развертывание

Развертывание среды разработки поднимает специфические вопросы относительно каждого элемента (см. таблицу 2).

Таблица 2. Аспекты развертывания
ЭлементОписание
Методика (Method)Определение локальной конфигурации
Методика развертывания
Средства (Tools)Выполнение локальной конфигурации
Установка инструментальных средств
Миграция локальных данных
Подготовка (Enablement)Конфигурирование на местах
Развертывание инструктивных материалов
Обучение исполнителей
Организация (Organization)Определение локальной конфигурации
Реорганизация
Инфраструктура (Infrastructure)Определение локальной инфраструктуры
Предоставление местоположений, узлов и возможностей подключения
Предоставление поддерживающего программного обеспечения
Внедрение (Adoption)Формулирование локального плана внедрения
Проверка среды

Ключевые элементы методики:

  • Определение локальной конфигурации. При развертывании методики в бизнес-подразделении или проекте разработки может потребоваться определенная локальная конфигурация, отражающая специфичные характеристики бизнес-подразделения, проекта разработки или системы (например, путем обеспечения соответствующего уровня формальности).
  • Развертывание методики. Оно гарантирует доступность методики для специалистов.

Ключевые элементы инструментальных средств:

  • Выполнение локальной настройки. Любая локальная настройка инструментальных средств применяется для автоматизации настройки локальной методики.
  • Установка инструментальных средств. Делает установленные средства (и интеграцию их) доступными для специалистов.
  • Миграция локальных данных. Например, может возникнуть необходимость переноса данных из существующего набора инструментальных средств в новый.

Ключевые элементы подготовки:

  • Выполнение локальной настройки. локальной настройки. При необходимости - адаптация, уточнение или обновление учебных материалов. Можно, например, пересмотреть материалы подготовки для приведения их в соответствие с процессом, определенным для данного бизнес-подразделения или проекта разработки.
  • Развертывание материалов подготовки. Гарантирует доступ к ним исполнителей, включая доступ ко всем Web-материалам.
  • Обучение исполнителей. При обучении собираются отзывы исполнителей.

Ключевые элементы организации:

  • Определение локальной конфигурации. Возможно, для поддержки специфичных потребностей конкретного бизнес-подразделения или проекта разработки понадобятся эксперты.
  • Реорганизация. Организация персонала и ресурсов для поддержки среды разработки.

Ключевые элементы инфраструктуры:

  • Определение локальной конфигурации. Определить инфраструктуру, необходимую для конкретного бизнес-подразделения или проекта разработки.
  • Предоставление местоположения, узлов и возможности подключения. Сделать доступным все необходимое аппаратное обеспечение (в том числе все целевые платформы и эмуляторы для устройств реального времени и встроенных устройств).
  • Предоставление поддерживающего программного обеспечения. Установить все необходимое программное обеспечение, поддерживающее среду разработки (например, системы управления базами данных или средства тестирования).

Ключевые элементы внедрения:

  • Определение плана локального внедрения. Уточнить план внедрения с учетом специфичных потребностей бизнес-подразделения или проекта разработки.
  • Проверка корректности среды. Протестировать развернутую среду и проверить ее соответствие определенным требованиям с точки зрения заданных функциональности, свойств и ограничений.

Управление

Как показано в таблице 3, управление средой разработки после ее развертывания также имеет специфичные аспекты для каждого элемента.

Таблица 3. Аспекты управления
ЭлементОписание
Методика (Method)Сбор отзывов по методике
Средства (Tools)Резервное копирование, архивирование, восстановление данных
Сбор отзывов по инструментальным средствам
Подготовка (Enablement)Обучение специалистов
Сбор отзывов по подготовке
Организация (Organization)Сбор отзывов по
Инфраструктура (Infrastructure)Предоставление или изъятие инфраструктуры по необходимости
Сбор отзывов по инфраструктуре
Внедрение (Adoption)Измерение эффективности среды
Сбор отзывов по внедрению

Ключевые элементы методики:

  • Сбор отзывов по методике. Ключевым аспектом управления средой разработки является ее постоянное совершенствование. Поэтому сбор отзывов касается всех элементов. Отзывы обычно собираются субъективно при помощи, например, опросных листов.

Ключевые элементы инструментальных средств:

  • Резервное копирование, архивирование, восстановление данных. Проверить, что созданные специалистами рабочие продукты управляются должным образом, и применяются приемы "хорошего администрирования".
  • Сбор отзывов по инструментальным средствам. Собрать отзывы (положительные и отрицательные) о доступности и производительности инструментальных средств.

Ключевые элементы подготовки:

  • Обучение исполнителей. Назначить кураторов проектов, чтобы исполнители знали, как использовать среду.
  • Сбор отзывов по подготовке, т.е. по обучению или наставничеству.

Ключевые элементы организации:

  • Сбор отзывов по организации. Исполнители выдают свои замечания о предоставляемой поддержке использования среды разработки (например, по качеству работы службы поддержки).

Ключевые элементы инфраструктуры:

  • Предоставление или изъятие элементов инфраструктуры по необходимости. С начала и до завершения проектов необходимо соответствующим образом менять размеры среды разработки для оптимальной поддержки того количества исполнителей, которые пользуются средой в определенный момент времени.
  • Сбор отзывов по инфраструктуре, включая как аппаратное, так и поддерживающее программное обеспечение.

Ключевые элементы внедрения:

  • Измерение эффективности среды. Это ключевой аспект успешного внедрения. Например, можно предоставить исполнителям опросный лист и попросить их оценить эффективность внедрения новых приемов работы.
  • Сбор отзывов по внедрению. Собираются отзывы по подходам к внедрению.

Взаимозависимости

Наконец, имейте в виду, что различные элементы среды разработки не являются независимыми. Альтернативное представление рисунка 2 приведено на рисунке 5, который показывает, что каждый элемент имеет взаимосвязи со всеми другими элементами.

Рисунок 5. Взаимозависимости между элементами
Рисунок 5. Взаимозависимости между элементами

Вот несколько примеров зависимостей между элементами:

  • Методика (методика) ссылается на доступные обучающие курсы (подготовка).
  • Инструментальные средства (средства) автоматизируют задачи (методика).
  • Административные роли (организация) определены для поддержки инструментальных средств (средства).
  • Серверы (инфраструктура) предоставлены для размещения набора инструментальных средств (средства).
  • Внедрение приемов работы (внедрение) оценивается с использованием определенного подхода (методика).

Заключение

Данная статья дополняет статью Усиление роли архитектора среды разработки (EN), опубликованную этим же автором в The Rational Edge в 2008 году. В ней детально рассматриваются ключевые элементы среды разработки, а также выделяются различные аспекты определения, развертывания и управления этой средой. Она предоставляет простую инфраструктуру, гарантирующую учет всех этих аспектов при планировании действий по улучшению имеющейся среды, определении требований к среде, определении архитектуры, оценке среды и т.д.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational
ArticleID=806307
ArticleTitle=Определение среды разработки
publish-date=03202012