
- •Глава 1
- •1.1. Теоретические основы метрологии
- •1.2. Погрешности измерений
- •1.3. Методы и средства электрических измерений
- •1.4. Нормирование метрологических характеристик средств измерений
- •1.5. Организация метрологического контроля
- •1.6. Средства измерений и контроля
- •Глава 2
- •2.1.1. Правовые основы
- •2.1.2. Цели и задачи стандартизации
- •2.1.3. Основные принципы стандартизации
- •2.1.5. Методы стандартизации
- •2.2.2. Региональные организации стандартизации информационных технологий (ит)
- •2.2.3. Национальные организации стандартизации
- •Iso является организацией федеративного типа. В ее состав входят организации, которые подразделяются на три группы:
- •Iso включает в свой состав 135 организаций по разработке национальных стандартов, из них 90 — первого типа (member bodies), 36 — второго (correspondent member) и 9 — третьего (subscriber member).
- •2.4. Государственная система стандартизации Российской Федерации
- •2.4.1. Единая десятичная система классификации и кодирования технико-экономической информации
- •2.4.2. Единая система конструкторской документации (ескд)
- •2.4.3. Единая система технологической подготовки производства (естпп)
- •2.4.4. Единая система технологической документации (естд)
- •2.4.6. Государственная системе обеспечения единства измерений (гси)
- •2.6. Основные определения стандартизации области информационных технологий поддержки жизненного цикла продукции
- •2.7. Жизненный цикл программных средств
- •2.7.1. Основные процессы жизненного цикла программного средства
- •2.7.2. Вспомогательные процессы жизненного цикла программных средств (жц пс)
- •2.7.3. Организационные процессы жц пс
- •2.8. Модели жизненного цикла программных средств
- •2.8.1. Каскадные модели
- •2.8.2. Генетические технологические модели
- •2.8.3. Адаптивные технологические подходы
- •2.8.4. Подходы исследовательского программирования
- •Глава 3
- •3.1. Основы надежности программных средств
2.8.3. Адаптивные технологические подходы
Адаптивные технологические подходы были задуманы как подходы, поддерживающие изменения. Они только выигрывают от изменений, даже когда изменения происходят в них самих. Данные подходы ориентированы на человека, а не на процесс. В них необходимо учитывать в работе природные качества человеческой натуры, а не действовать им наперекор.
Экстремальное программирование
Наиболее концентрированно идеи быстрой разработки программ оказались выражены в подходе экстремального программирования (extreme programming). Две основные черты, присущие быстрым разработкам, являются базовыми и в этом подходе. Методы, объединенные в данном подходе, не являются принципиально новыми. Однако именно их рациональное объединение и совокупное использование дают существенные результаты и успешно выполненные проекты. Наибольшую пользу подход экстремального программирования может принести в разработке небольших систем, требования к которым четко не определены и вполне могут измениться.
Подход начинается с того, что проводится анализ назначения системы и определения первоочередной функциональности. В результате составляется список историй — возможных применений системы. Каждая история должна быть ориентирована на определенные задачи бизнеса, которые можно оценить с помощью количественных показателей. Наконец, ценность истории определяется материальными и временными затратами на ее разработку командой разработчиков.
Заказчик выбирает истории для очередной итерации, основываясь на их значимости для проекта и ценности. Для первой версии системы заказчик определяет небольшое количество логически связанных наиболее важных историй. Для каждой следующей версии выбираются наиболее важные истории из числа оставшихся (рис. 2.24).
Рис. 2.24. Работа над проектом на основе экстремального
программирования
Одним из существенных методов данного подхода является функциональное тестирование. Существуют две особенности процесса тестирования:
1) программисты сами пишут тесты для тестирования программы;
2) эти тесты пишутся до начала кодирования.
Уверенность в нормальной работе каждого отдельного теста постепенно формирует у разработчиков уверенность в нормальной работе системы в целом.
Цель каждой итерации (рис. 2.25) — включить в версию несколько новых историй. На собрании по планированию итерации определяется, какие именно истории будут реализованы и каким образом это будет сделано командой разработчиков
Рис. 2.25. Схема итерации
Коллективное владение кодом в процессе разработки (рис. 2.26) означает возможность для каждого программиста в любое время усовершенствовать любую часть кода в системе, если он сочтет это необходимым. Программист берет на себя ответственность за реализацию определенных задач. В случае возникновения вопросов о разрабатываемой задаче может быть проведено короткое (15-минутное) собрание с присутствием заказчика.
Рис. 2.26. Схема разработки
Для того чтобы выполнить задачу, ответственный за нее программист должен найти себе партнера (рис. 2.27). Окончательный код всегда пишется двумя программистами на одной рабочей станции.
Рис. 2.27. Коллективное владение кодом
Добавим еще, что экстремальное программирование уделяет значительное внимание организации офисного пространства, отмечая существенное влияние окружающих условий на работу программистов.
Адаптивная разработка
В основу подхода адаптивной разработки (Adaptive Software Development - ASD) положены три нелинейные перекрывающие друг друга фазы — обдумывание, сотрудничество и обучение. Автор данного подхода Джим Хайсмит (Jim Highsmith) обращает особое внимание на использование идей из области сложных адаптивных систем.
Результаты планирования (которое само здесь является парадоксальным) в адаптивной разработке всегда будут непредсказуемыми. При обычном планировании отклонение от плана является ошибкой, которую исправляют. При данном подходе отклонения ведут к правильным решениям.
Программисты должны активно сотрудничать между собой для преодоления неопределенности в подходе адаптивной разработки. Руководители проектов должны обеспечить хорошие коммуникации между программистами. Благодаря этому программисты сами находят объяснения на возникающие вопросы, а не ждут их от руководителей.
Обучение является постоянной и важной характеристикой подхода. И программисты, и заказчики в процессе работы должны пересматривать собственные обязательства и планы. Итоги каждого цикла разработки используются при подготовке следующего.