Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 1. Вопросы и ответы (01_04_19).rtf
Скачиваний:
89
Добавлен:
10.09.2019
Размер:
3.53 Mб
Скачать

7 Вопрос. Модели жизненного цикла по. Экстремальное программирование (xp).

——————————————————————————

Концепция xp

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

Ключевые концепции XP:

1. Постановка задачи только по определенным в настоящее время требованиям.

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

2. Проектирование максимально простой архитектуры продукта.

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

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

3. Максимально быстрое получение первой работающей версии программы.

[Такую версию называют «Рыба»]

4. Разработка на основе тестов.

[Заказчик даёт тесты]

5. Коррекция ТЗ и архитектуры программы.

6. Систематические сборки с тестированием и отладкой.

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

7. Частая подготовка промежуточных версий продукта.

8. Рефакторинг (регулярная переработка кода).

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

9. Программирование в паре.

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

10. Соблюдение единого стандарта кодирования.

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

Наличие общего стиля программирования:

— облегчает понимание и поддержание исходного кода, написанного более чем одним программистом;

— упрощает взаимодействие нескольких человек при разработке программного обеспечения.

Примеры:

— стандарт кодирования на языке Си, получивший сокращённое наименование K&R, Кернигана и Ритчи.

— стандарт кодирования на C# от Microsoft.

— стандарт кодирования на Java от Sun Microsystems.

11. Взаимодействие с заказчиком.

Получение ответов на вопросы.

Экстремальное программирование.

Достоинства:

— большая гибкость, динамичность.

— высокое качество многократной отладки кода.

— минимальный объем сопроводительной документации.

Недостатки:

— трудоемкость подхода (частое тестирование, отладка, рефакторинг).

— плохо поддается планированию (с точки зрения определенного конечного срока сдачи проекта).

Пример.

C3. Chrysler Comprehensive Compensation System.

(Система, построенная с использованием языка программирования SmallTalk и объектно-ориентированной системой управления базами данных GemStone; проект стартовал в 1993 г., закрыт в 1999/2000 году; создатель — Том Хэдвилд (Tom Hadfield).)