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

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

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

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

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

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

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

функциональность к той опции, которую интегрировали первой
(рис. 29-11).

Функция 2 Функция 3 Функция 4 Функция 5 Функция 6
Рис. 29-//. При функционально-ориентированной интеграции вы
работаете с группами классов, представляющими собой отдельные
функции, поддающиеся определению, которые часто, но не всегда
состоят из нескольких классов
Компоненты добавляются в "дерево функциональности" -
иерархический набор классов, реализующих отдельную функцию.
Интеграцию выполнять легче, если функции относительно
независимы. Например, классы, относящиеся к разной
функциональности, могут вызывать один и тот же код
низкоуровневых библиотек, но не использовать общий код
среднего уровня. (Общие низкоуровневые классы не показаны на
рис. 29-11.)
Функционально-ориентированная интеграция имеет три основных
преимущества. Во-первых, она позволяет обойтись без лесов
практически везде, кроме низкоуровневых библиотечных классов,
Какие-то заглушки могут понадобиться скелету, или же некоторые
его части просто могут быть неработоспособными, пока не будут
ГЛАВА 29 Интеграция 685
добавлена конкретная функциональность. Однако когда каждая
функция будет добавлена к скелету, дополнительных лесов не
потребуется. Поскольку вся функции изолированы друг от друга,
в них содержится весь необходимый ей код.
Второе главное преимущество состоит в том, что каждая новая
функция расширяет функциональность. Это наглядно показывает,
что проект постоянно продвигается вперед. Кроме того,
создается работоспособное ПО, которое можно представить
заказчикам для оценки или сдать в эксплуатацию раньше
намеченного срока, реализовав меньшую функциональность, чем
планировалось изначально.
Третье преимущество в том, что функционально-ориентированная
интеграция хорошо сочетается с объектно-ориентированным
проектированием. Как правило, можно легко провести
соответствие между объектами и функциями, что делает
функционально-ориентированную интеграцию естественным выбором
для объектно-ориентированных систем.
Придерживаться чистой функционально-ориентированной интеграции
так же сложно, как и нисходящей и восходящей интеграций в
чистом виде. Обычно часть низкоуровневого кода должна быть
реализована прежде, чем можно будет добавлять какую-либо
функциональность.
Т-образная интеграция
Последний подход, который часто упоминается в связи с
проблемами нисходящей и восходящей методик, называется "Т-
образной интеграцией". При таком подходе выбирается некоторый
вертикальный слой, который разрабатывается и интегрируется
раньше других. Этот слой должен проходить сквозь всю систему
от начала до конца и позволять выявлять основные проблемы в
допущениях, сделанных при проектировании системы. Реализовав
этот вертикальный участок (и устранив все связанные с этим
проблемы), можно разрабатывать основную канву системы
(например, системное меню для настольного приложения). Этот
подход часто комбинируют с риск-ориентированной и
функционально-ориентированной интеграциями (рис. 29-12).
Начало

??? гтаяви
Рис. 29-/2. При Т-образной интеграции вы создаете и
интегрируете вертикальный срез системы, чтобы проверить
архитектурные допущения. После этого вы создаете и
интегрируете основную горизонталь системы, чтобы предоставить
каркас для разработки остальной функциональности
686 ЧАСТЬ VI Системные вопросы
Краткий итог методик интеграции
Восходящая, нисходящая, сэндвич, риск-ориентированная,
функционально-ориентированная, Т-образная - не кажется ли вам,
что эти названия придумываются на ходу? Так и есть. Ни один из
этих подходов не является жесткой процедурой, которой вы
должны методично следовать, начиная с шага 1 и заканчивая
шагом 47, а затем объявить задание выполненным. Как и другие
подходы к проектированию ПО, они скорее эвристические, чем
алгоритмические. Поэтому вместо того, чтобы безусловно
следовать какой-то процедуре, вам придется разработать свою
уникальную стратегию, подходящую именно вашему проекту.
29.4. Ежедневная сборка и дымовые тесты
ЛшшшшттншЪо*, КакУю бы стратегию интеграции вы и выбрали, хорошим
шая часть этого материала по- подходом к разработке ПО
является "ежедневная сборка и
заимствована из главы 18 кии- дымовые тесты" (daily build and
smoke test). Ежедневно каж-
ги "Rapid Development" (McCon- дый файл компилируется,
компонуется и собирается в вы-
пеН, 1996). Если вы ее читали, полняемую программу. После чего
прогоняется "дымовой можете переходить к разделу
"Непрерывная интеграции тест>> " °(tm)осительно простая проверка,
определяющая,
"дымится" ли продукт во время выполнения1.
Этот простой процесс дает несколько преимуществ. Он уменьшает
риск низкого качества, который связан с риском неуспешной или
неправильной интеграции. Проверяя "на дым" весь код ежедневно,
вы не позволяете проблемам с качеством получить контроль над
проектом. Вы приводите систему в понятное, правильное
состояние и сохраняете ее в таком виде. Вы просто не
Предыдущая << 1 .. 328 329 330 331 332 333 < 334 > 335 336 337 338 339 340 .. 426 >> Следующая