Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 324 325 326 327 328 329 < 330 > 331 332 333 334 335 336 .. 426 >> Следующая

ошибками, которые трудно диагностировать, так как они
взаимодействуют. Поэтому поэтапную интеграцию называют еще
"интеграцией большого взрыва" (рис. 29-2).
Глобальные
переменные

Рис. 29-2. Поэтапную интеграцию также называют интеграцией
"большого взрыва" - и заслуженно!
676 ЧАСТЬ VI Системные вопросы
Поэтапную интеграцию нельзя начинать до начала последних
стадий проекта, когда будут разработаны и протестированы все
классы. Когда классы наконец будут объединены и проявится
большое число ошибок, программисты тут же ударятся в
паническую отладку вместо методического определения и
исправления ошибок. Для небольших программ - нет, а для
крошечных - поэтапная интеграция может быть наилучшим
подходом. Если программа состоит из двух-трех классов, по-
этапная интеграция может сэкономить ваше время, если вам
повезет. Но в большинстве случаев другой подход будет лучше.
Инкрементная интеграция
Перекрестная ссылка 0 метафорах" подходящих для инкрементной
интеграции, см. подразделы "Метафора жемчужины: медленное
приращение системы" и "Строительная метафора: построение ПО"
раздела 2.3.
Тщательно тестируете и отлаживаете ее. Она послужит скелетом,
на котором будут наращиваться мускулы, нервы и кожа,
составляющие остальные части системы.
2. Проектируете, кодируете, тестируете и отлаживаете класс.
3. Прикрепляете новый класс к скелету. Тестируете и отлаживаете
соединение скелета и нового класса. Убеждаетесь, что эта
комбинация работает, прежде чем переходить к добавлению
нового класса. Если дело сделано, повторяете процесс,
начиная с п. 2.
У вас может возникнуть желание интегрировать большие модули,
чем отдельный класс. Например, если компонент был тщательно
протестирован и каждый из его классов прошел мини-интеграцию,
вы можете интегрировать весь компонент, и это все еще будет
инкрементная интеграция. По мере того, как вы добавляете новые
куски, система разрастается и ускоряется, как разрастается и
ускоряется снежный ком, катящийся с горы (рис. 29-3).
Инкрементная интеграция
\ ¦ ¦
Ч
Рис. 29-3- Инкрементная интеграция дает проекту движущую силу
и напоминает снежный ком, катящийся с горы

При инкрементной интеграции вы пишете и тестируете маленькие
участки программы, а затем комбинируете эти кусочки друг с
другом по одному. При таком подходе - по одному элементу за
раз - вы выполняете перечисленные далее действия.
1. Разрабатываете небольшую, функциональную часть системы. Это
может быть наименьшая функциональная часть, самая сложная
часть, основная часть или их комбинация.
ГЛАВА 29 Интеграция 677
Преимущества инкрементной интеграции
Инкрементный подход имеет массу преимуществ перед традиционным
поэтапным подходом независимо от того, какую инкрементную
стратегию вы используете:
Ошибки можно легко обнаружить Когда во время инкрементной
интеграции возникает новая проблема, то очевидно, что к этому
прича
стен новый класс. Либо его интерфейс с остальной частью
программы неправилен, либо его взаимодействие с ранее
интегрированными классами приводит к ошибке. В любом случае вы
точно знаете, где искать проблему (рис. 29-4). Более того,
поскольку вы сталкиваетесь с меньшим числом проблем
одновременно, вы уменьшаете риск того, что несколько ошибок
будут взаимодействовать или маскировать друг друга. Чем больше
интерфейсных ошибок может возникнуть, тем больше преимуществ
от инкрементной интеграции получат ваши проекты. Учет ошибок в
одном проекте показал, что 39% составляли ошибки межмодульных
интерфейсов (Basili и Perricone, 1984). Поскольку разработчики
многих проектов проводят до 50% времени за отладкой,
максимизация эффективности отладки путем упрощения поиска
ошибок дает выигрыш в качестве и производительности.
Рис. 29-4. При поэтапной интеграции вы объединяете так много
компонентов одновременно, что тяжело понять, где находится
ошибка. Она может быть в любом компоненте или их соединениях.
При инкрементной интеграции ошибка обычно таится либо в новом
компоненте, либо в месте соединения нового компонента и
остальной системы
В таком проекте система раньше становится работоспособной
Когда код интегрирован и способен выполняться, даже если
система еще не пригодна к использованию, это выглядит так,
будто это скоро произойдет. При инкрементной интеграции
программисты раньше видят результаты своей работы, поэтому их
моральное состояние лучше, чем в том случае, когда они
подозревают, что их проект может никогда не сделать первый
вдох.
Вы получаете улучшенный мониторинг состояния При частой
интеграции реализованная и нереализованная функциональность
видна с первого взгляда. Менеджеры будут иметь лучшее
представление о состоянии проекта, видя, что 50% системы уже
работает, а не слыша, что кодирование "завершено на 99%".



Поэтапная
интеграция
Инкрементная
интеграция
678 ЧАСТЬ VI Системные вопросы
Вы улучшите отношения с заказчиком Если частая интеграция
влияет на моральное состояние разработчиков, то она также
Предыдущая << 1 .. 324 325 326 327 328 329 < 330 > 331 332 333 334 335 336 .. 426 >> Следующая