КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Затраты 9 страница
Любой клиент Amazon.com может рассчитывать на индивидуальное обслуживание — - в частности, на предложения книг, сходных с теми, которые он купил или просто просмотрел. Такие возможности Amazon предоставляет исключительно за счет мощнейшей информационно-технологической инфраструктуры и возможностей анализа данных. Amazon — это не просто книготорговая фирма. Скорее, это посредник и информационный брокер. Вдобавок к ассортименту книжной продукции предприятию удалось завербовать обширную и постоянно расширяющуюся сеть продавцов и покупателей. Это своеобразный «торговый центр», получающий процент с каждой совершенной сделки и комиссию за ссылки на сторонние ееб-сайты. По большому счету, информационно-технологическая инфраструктура Amazon имеет весьма отдаленное отношение к книжной продукции. Менеджмент Amazon пришел к этому заключению вполне своевременно и поэтому постепенно взял на себя функции розничной продажи игрушек, сотовых телефонов, лекарств, фотоаппаратов, программного обеспечения, автозапчастей, корма для домашних животных — то есть практически всех видов продуктов, которые можно продавать и доставлять в любые уголки земного шара. Всех этих задач никогда нельзя было бы добиться вне инфраструктуры Сети. На сегодняшний день Amazon.com, обслуживающий клиентов более чем в 220 странах, претендует на статус крупнейшего сетевого магазина в мире. В его активе — пять международных веб-сайтов и примерно 20 миллионов зарегистрированных покупателей (немногим меньше, чем население Канады!). Процент повторных сделок достигает 70 % — традиционные предприятия розничной торговли могут лишь мечтать о таком показателе. На момент написания этих строк Amazon не удалось закрыть год с положительным балансом, но руководство магазина рассчитывает получать прибыль начиная с 2003 года. Amazon — это лишь один из примеров воздействия Всемирной паутины на жизнь людей (по крайней мере, в сфере розничной торговли); впрочем, вероятно, он один из самых впечатляющих. -RК 13.8. Дополнительная литература Читателям, желающим поподробнее узнать о концепции гипертекста, мы рекомендуем ознакомиться с работой [Bush 45] и специализированным выпуском САСМ [САСМ 88]. Информации об истории и развитии Всемирной паутины больше всего в самой Всемирной паутине. Среди наших источников — [Berners-Lee 96а], [Gray (http://www.mit.edu/people/mkgray/net)] и [Zakon (http://www.zakon.com/robert/internet/timeline)]. Обширная информация о lib WWW содержится в справочной библиотеке W3C, расположенной по адресу http://www.w3.org/pub/WWW/Library. Добротное исследование по проблемам сетевой безопасности и криптографии, включая все аспекты защиты во Всемирной паутине, содержится в работе [Stallings 99]. Вопросы производительности в системах электронной коммерции хорошо освещены в издании [Menasce 00]. Архитектурному стилю, характерному для веб-приложений, посвящена работа [Fielding 96]. Сравнение образцов современных веб-серверов приводится в [Hassan 00]; именно оттуда мы заимствовали (и переработали) схему клиент- серверной архитектуры, показанную на рис. 13.5. Результаты исследования по употреблению веб-серверов, проведенного в мае 2001 года компанией Netcraft, опубликованы по адресу http://www.netcraft.com/survey /.
13.9. Дискуссионные вопросы 1. Мы обозначили ряд атрибутов качества, реализация которых в WWW сделала возможным ее ошеломляющий успех: способность к взаимодействию, переносимость, удаленный доступ, расширяемость и масштабируемость. Какое из них, по вашему мнению, оказало на развитие Паутины решающее влияние? Если бы одним из этих качеств пришлось пожертвовать, смогла бы она стать настолько же успешной? Какие компромиссные решения в архитектуре приложений на основе libWWW приходится принимать вследствие сочетания названных задач по качеству? 2. Производительности не оказалось в списке первоначальных задач по качеству, которые следовало реализовать во Всемирной паутине. Для успешной системы это довольно необычно. Как вы считаете, почему успех ее все-таки настиг? Можно ли из этого сделать какие-то выводы относительно будущего развития вычислительной техники? 3. Какие образцы и тактики прослеживаются в элементах архитектуры, показанных на рис. 13.4, 13.5 и 13.7? Часть 4 ОТ ОДНОЙ СИСТЕМЫ К МНОЖЕСТВУ В четвертой части мы продолжаем разговор об архитектурно-экономическом цикле. На протяжении первой, второй и третьей частей мы плавно перемещались от характеристики архитектора к проверке архитектуры. Четвертая часть, посвященная вопросам конструирования на основе архитектуры множества систем, содержит также примеры линеек системных продуктов. Проблема подвергается анализу с позиций: 1) базовой технологии линейки продуктов; 2) отдельной компании-производителя систем управления огнем для военных кораблей; 3) общеотраслевой архитектуры; 4) компании, разрабатывающей продукты на основе общеотраслевой архитектуры, и 5) организации, которая при проектировании своих систем прибегает к использованию коммерческих компонентов. Линейки программных продуктов подразумевают возможность повторного использования самых различных активов — от требований и планов тестирования до персонала. Такую способность им придает архитектура. В главе 14 речь пойдет об определении и разработке архитектуры линеек продуктов. В этом контексте мы будем часто обращаться к организационным вопросам, поскольку, как вы уже знаете, между архитектурой и компанией-разработчиком существует неразрывная связь. В главе 15 приводится первый в этой части конкретный пример. Объектом нашего внимания станет шведская компания CelsiusTech, создавшая линейку систем управления огнем для военных судов. Помимо собственно архитектуры мы обсудим то, каким образом в результате ориентации на линейку продуктов претерпела изменения организационная структура и культура компании. Впрочем, CelsiusTech практикует создание архитектуры в расчете на производство нескольких продуктов. Существуют также архитектуры, ориентированные на целые отрасли промышленности. К примеру, корпоративная архитектура Java 2/система корпоративных JavaBeans (Java 2 Enterprise Edition/Enterprise JavaBeans, J2EE/EJB) — архитектурная спецификация для информационных веб-систем — исполняет роль базовой архитектуры продуктов, разрабатываемых разными компаниями. Архитектурные решения, характерные для J2EE/EJB, и возможные в ее контексте компромиссы рассматриваются в главе 16. Inmedius — одна из компаний, обращающихся к архитектуре J2LE/EJB, — специализируется на решениях для квалифицированных рабочих (в частности, для техников по обслуживанию), которые, не имея возможности пользоваться настольными компьютерами и лишь изредка добираясь до ноутбуков, плотно работают с разнообразными мобильными платформами. О том, как Inmedius удалось разработать решение, основанное на беспроводной технологии, переносимых и ручных (handheld) компьютерах, рассказывается в главе 17, В главе 18 анализируется ситуация конструирования единичной системы на основе архитектуры и ряда коммерческих компонентов. Мы поговорим о том, что в этом случае следует доработать. Наконец, мы отдадим дань своему любимому занятию — прогнозированию будущего развития программной архитектуры. Свои догадки (не более того, поверьте!) о том, что нас ждет через несколько лет, мы излагаем в главе 19.
Глава 14 Линейки программных продуктов. Повторное использование архитектурных средств (в соавторстве с Линдой Нортроп) Первым на необходимость повсеместного введения практики многократного использования программных компонентов указал Макилрой. Было это в 1969 году. С тех пор сообщество разработчиков ПО беспрерывно бьется над осуществлением этой задачи. Отсюда закономерный вопрос: если преимущества повторно используемых программных компонентов настолько ошеломляющи, почему они еще не шествуют по компьютерным наукам победным маршем? Грэди Буч [Booch 94] 14.1. Обзор На разработку программной архитектуры, занимаются которой далеко не последние специалисты, уходит много времени и усилий. Поэтому желание увеличить выгоду путем повторного использования архитектуры в нескольких системах представляется вполне естественным. Компании, обладающие серьезным опытом производства вариантов архитектуры, рассматривают их как ценную интеллектуальную собственность и постоянно ищут возможности получения от нее дополнительного дохода и снижения издержек. Повторное использование архитектуры позволяет достичь обеих этих целей. Речь в настоящей главе пойдет о явном, планируемом повторном использовании программной архитектуры (равно как и других активов) в рамках семейства родственных систем. Разработка нескольких сходных систем на основе одной архитектуры (а также элементов, связанных с этой архитектурой) создает для компании значительные преимущества — конкретнее, снижает стоимость конструирования и сокращает время выхода на рынок. Именно этим объясняется привлекательность линейки программных продуктов (software product line), определяемой как: Набор преимущественно программных систем с общим контролируемым множеством характеристик, которые удовлетворяют конкретные потребности определенного сегмента рынка или выполняют определенную задачу и разрабатываются п установленном порядке на основе общего набора базовых средств. [Clements 02b, 5] Итак, мы имеем дело с набором повторно используемых средств, в состав которого входят базовая архитектура и наполняющие ее общие (а иногда приспосабливаемые) элементы. Кроме того, здесь не обойтись без проектных решений и их документации, руководств пользователя, а также артефактов руководства проектом: бюджетов, графиков, планов тестирования программ и контрольных примеров. Вскоре мы покажем, что значительную роль в деле осуществления этой схемы играет правильное определение области действия линейки продуктов. После успешного запуска линейки продуктов все повторно используемые средства — те, которые можно применить в нескольких системах и которые дешевле сохранить, чем разработать заново, — заносятся в фонд базовых средств (core asset base). В идеале, в базовых средствах следует предусматривать изменяемые параметры — точки, в которых возможно быстрое запланированное приспособление. Конструирование систем в рамках успешной линейки продуктов сводится к обращению к нужным средствам, их приспособлению согласно потребностям текущей системы и, наконец, ее сборке. Если даже для отдельных продуктов линейки и потребуется разработка дополнительного программного обеспечения, его удельный вес вряд ли превысит 20 %. Интеграция и тестирование в таком случае становятся основными операциями, вытесняя с этой позиции проектирование и кодирование. Линейки продуктов в промышленном производстве не есть нововведение. Многие историки утверждают, что концепция эта появилась в самом начале XIX века, когда Эли Уитни (Eli Whitney) начал собирать винтовки из взаимозаменяемых частей; впрочем, есть и более ранние примеры. Сегодня линейки продуктов есть в компаниях Boeing, Ford, Dell и даже McDonald’s. Каждый из этих производителей извлекает из общности свои выгоды. К примеру, модели Boeing 757 и 767 разрабатывались одновременно, и, несмотря на то, что эти два воздушных судна сильно отличаются друг от друга, их узлы совпадают примерно на 60 %. Линейки программных продуктов, основанные на общности их участников, являют собой инновационную тенденцию в программной инженерии, которая к тому же неуклонно набирает популярность. Каждый заказчик выставляет к продукту собственные требования, для выполнения которых производитель должен проявлять гибкость. Так вот, линейки программных продуктов упрощают создание систем, ориентированных на удовлетворение потребностей конкретных заказчиков или групп. Возможности повышения эффективности в категориях издержек, сроков выхода на рынок и продуктивности (при удачном построении линейки продуктов) захватывают дух. Примеров тому множество. ♦ Благодаря методике линеек продуктов Nokia производит от 25 до 30 моделей сотовых телефонов в год (хотя раньше за аналогичный период удавалось создать всего 4 модели). ♦ Компании Cummins, Inc. удалось сократить сроки производства программного обеспечения для дизельных двигателей с года до недели. ♦ Со своим семейством пейджеров Motorola добилась 400-ироцентного прироста продуктивности. ♦ По сведениям компании Hewlett-Packard, сроки выхода на рынок в рамках ее семейства печатных систем сократились в семь раз, а продуктивность увеличилась в шесть раз. ♦ На разработку первого продукта в рамках заказанного Национальным уи- раапением воздушно-космической разведки США семейства наземных станций системы спутниковой связи потребовалось всего 10 % от запланированного числа разработчиков, а количество дефектов снизилось на 90 %. Залогом успеха линейки продуктов является наличие согласованной стратегии, распространяющейся на программную инженерию, техническое руководство и управленческую структуру компании. Следуя основному предмету нашей книги, мы поговорим о тех аспектах программной инженерии, которые касаются программной архитектуры. Тем не менее, не стоит забывать, что удачную линейку продуктов невозможно создать вне взаимодействия всех ее аспектов. 14.2. За счет чего работают линейки программных продуктов? Смысл линейки программных продуктов заключается в стратегическом повторном использовании средств многократного применения для производства семейств продуктов. Почему линейки продуктов так привлекательны в глазах производителей и разработчиков? Все дело в том, что за счет общности продуктов — при условии грамотного к ней подхода и применения концепции повторного использования — можно добиться значительной производственной экономии. Потенциал повторного использования широк и обширен. В частности, он распространяется на следующие аспекты. ♦ Требования. Требования по большей части достаются в наследство от предыдущих систем, а потому допускают повторное использование. И тем не менее необходимость в проведении анализа требований остается. ♦ Архитектурное проектирование. На разработку архитектуры программной системы компании вынуждены направлять своих лучших сотрудников, которые прикладывают к достижению этой цели серьезные усилия. Как вы уже знаете, сформулированные для системы задачи по атрибутам качества — производительности, надежности, модифицируемости и т. д. – к моменту завершения работы над архитектурой и основном решаются или, напротив, отклоняются. Ошибки в архитектуре приводят к печальным для системы последствиям. Если же речь идет о новом продукте в рамках линейки, этот важнейший этап проектирования можно пропустить за счет введения готового решения. ♦ Элементы. Программные элементы допускают применение в разных продуктах. В отличие от банального повторного использования кода повторное использование элементов позволяет избежать операции первоначального проектирования, проведение которой зачастую связано со значительными трудностями. Удачные проектные решения, если они зафиксированы, подлежат многократному применению; ошибок при проектировании удается избежать. В частности, это касается проектирования интерфейса элемента, его документации, планов и процедур тестирования, а также любых моделей (например, моделей производительности), направленных па прогнозирование или измерение его поведения. Одним из повторно используемых наборов элементов является пользовательский интерфейс системы, воплощающий обширный и необходимых набор проектных решений. ♦ Моделирование и анализ. Модели производительности, анализ возможности планирования, проблемы распределенных систем (например, испытания на предмет взаимоблокировок), распределение процессов между процессорами, схемы отказоустойчивости, политики сетевой нагрузки — все эти элементы переходят от одного продукта к другому. По сведениям комИИ CelsiusTech (см. главу 15), ей почти полностью удалось устранить одну из основных проблем, характерных для распределенных систем реального времени, разработкой которых она занимается. Создавая в рамках линейки очередной продукт, ее сотрудники уверены, что все проблемы с соблюдением временных требований уже решены, а ошибки, связанные с распределенной обработкой данных — синхронизацией, загрузкой сети и взаимоблокировкой, — устранены. ♦ Тестирование. Необходимость в повторной разработке планов и процессов тестирования, контрольных примеров и данных, тестирующих программ и каналов связи, требуемых для оповещения о проблемах и их устранения, отпадает. ♦ Планирование проекта. Поскольку опыт есть самый лучший показатель будущей производительности, операции составления бюджета и планирования приобретают более предсказуемый характер. Декомпозицию обязанностей по разработке системы не приходится проводить для каждого продукта. Определить состав и размер групп разработчиков становится значительно проще. ♦ Процессы, методы и инструменты. Процедуры и средства управления конфигурациями, планы документирования и процессы утверждения, инструментальная среда, процедуры генерации и распределения системы, стандарты кодирования и множество других повседневных инженерных операций ♦ вспомогательного характера — все они переносятся из одного продукта и другой. В наличии имеется и процесс программной разработки и целом. ♦ Специалисты. Общность практической деятельности позволяет без труда перебрасывать сотрудников из одного проекта в другой, согласно текущей ситуации. Знания, которыми обладают специалисты, применимы в масштабах всей линейки. ♦ Примеры систем. Размещенные продукты исполняют роль высококачественных демонстрационных прототипов, инженерных моделей производительности, безопасности, защиты и надежности. ♦ Устранение дефектов. Линейки продуктов способствуют повышению качества — в каждой последующей системе учитывается опыт устранения дефектов у ее предшественников. С каждой новой реализацией разработчик и клиенты обретают дополнительную степень уверенности в успехе. Чем сложнее система, тем выгоднее решать вечно досаждающие проблемы производительности, распределения и надежности в масштабе целого семейства. Линейки программных продуктов основываются на повторном использовании. В то же время, как видно из эпиграфа к настоящей главе, попытки внедрить повторное использование в программной инженерии предпринимаются уже много лет, и успех этого предприятия пока что под вопросом — ожидания почти всегда оказываются радужнее реальных результатов. Причина неудач отчасти кроется в том, что до последнего времени технология повторного использования распространялась под лозунгом «сконструируй, и все будет!». Любая библиотека многократного применения состоит из элементов предыдущих проектов; от разработчиков, прежде чем переходить к кодированию новых элементов, требуется ознакомиться с ее содержанием. У этой схемы действий слишком много недостатков. Если библиотека невелика, разработчик, однажды не обнаружив нужного элемента, потеряет всякое желание продолжать поиски. Если же она слишком обширна, провести поиск будет труднее. Если искомые элементы невелики, их проще переписать, чем найти в библиотеке и модифицировать. Если они крупные, подробно разобраться в их назначении очень сложно, а вероятность того, что они в точности подойдут для нового приложения, крайне невелика. Происхождение элементов, хранящихся в библиотеках повторного использования, как правило, в лучшем случае, неочевидна. Разработчик, таким образом, не может быть полностью уверен в назначении и надежности элемента, а кроме того, он не знает условий, в которых проводилось его тестирование. В то же время точное соответствие между атрибутами качества, требуемыми в новом приложении, с одной стороны, и реализуемыми элементами библиотеки — с другой, практически никогда не встречается. В большинстве случаев оказывается, что элементы библиотеки написаны для архитектурной модели, которой разработчик новой системы не пользуется. Даже если вам удастся найти нужный элемент, реализующий нужные атрибуты качества, совершенно не факт, что вам подойдет тип этого архитектурного элемента (например, искали объект, а нашли процесс) и его протокол взаимодействия, что он не будет противоречить принятым для нового приложения политикам обработки ошибок или восстановления после отказа, и т. д. Линейки программных продуктов устанавливают жесткий контекст повторного использования: архитектура определена, функциональность задана, атрибуты качества известны. В библиотеку повторного использования (согласно термиИИогии линеек продуктов, она называется фондом базовых средств) попадают только те элементы, которые сконструированы в расчете на многократное применение в рамках даннойлинейки. Таким образом, повторное использование становится стратегическим, запланированным, утрачивает случайный характер.
14.3. Определение области действия Область действия линейки продуктов регламентирует участие и ней систем. Иначе говоря, это перечень систем, которые компания (1) готова и (2) не готова конструировать в рамках линейки. В ходе разграничения области действия в пространстве всех возможных систем вычерчивается баранкообразная фигура (рис. 14.1). В центре этой фигуры изображаются системы, согласованные с линейкой продуктов, которые данная компания может и собирается сконструировать. Системы, оказавшиеся вне фигуры, находятся за пределами области действия — таким образом, они признаются неприспособленными для рассматриваемой линейки продуктов. Вхождение в линейку систем, перекрывающих границы фигуры, находится под вопросом; для этого требуются некоторые усилия и дифференцированное рассмотрение. Если, к примеру, взять линейку продуктов систем автоматизации конторских работ, то программа-планировщик мероприятий в конференц-зале в нее войдет, а система моделирования условий полета — нет. Специализированная система поиска в локальной сети имеет шансы попасть в линейку при соблюдении двух условий: во-первых, разумных сроков производства и, во-вторых, наличия серьезных стратегических мотивов для ее создания (например, вероятность спроса на аналогичный продукт со стороны будущих заказчиков). Рис. 14.1. Пространство всех возможных систем подразделяется на несколько участков: внутри области действия (белая), вне области действия (в крапинку) и предполагающие дифференцированное рассмотрение (черная) (Приводится по изданию [Clements 02b] (адаптированная версия).
Область действия выражает наилучший прогноз компании относительно запросов на конструирование продуктов в обозримом будущем. Исходные данные в процессе определения области действия поставляют специалисты по стратегическому планированию, сотрудники отдела маркетинга компании, аналитики предметной области, способные систематизировать сходные системы (как существующие, так и проектируемые), а также эксперты по технологии. Наличие разграниченной области действия во многом определяет дальнейшую судьбу линейки продуктов. Слишком узкая область (предполагающая изменчивость лишь в нескольких характеристиках) может не оправдать вложенных средств, поскольку вывести из нее достаточное количество продуктов не удастся. Не в меру широкое определение области (когда продукты различаются не только по характеристикам, но и по видам), вероятнее всего, приведет к высоким затратам на разработку отдельных продуктов на основе базовых средств, а потому достичь серьезной прибыли будет сложно. Уточнить область действия можно на этапе первоначального учреждения линейки продуктов, а также, исходя из стратегии принятия линейки продуктов (см. раздел «Стратегии принятия»), в любой последующий момент. Задача обнаружения общности на этапе определении области действия не является основной — творчески мыслящий архитектор способен найти точки общности между любыми двумя системами. Значительно важнее найти такую общность, за счет которой можно будет существенно снизить затраты на конструирование последующих систем. В контексте определения области действия следует учитывать не только конструируемые системы. Существенную помощь в этом процессе оказывают сведения о сегментации рынка и стиль взаимодействия с клиентами. К примеру, компания Philips — голландский производитель бытовой электроники — ведет отдельные линейки продуктов по домашней видеоаппаратуре и системам передачи цифровых видеосигналов. С одной стороны, обе линейки связаны с обработкой видеосигналов. С другой — первая ориентирована на рынок товаров массового потребления, в рамках которого покупатели обладают очень низким уровнем знаний, а вторая — на узкий (по количеству покупателей) сегмент рынка, состоящий из специалистов в соответствующей области. При разработке продуктов учитывается как опыт покупателей, так и сложность обслуживания продукта покупателем. Выявленных различий оказалось вполне достаточно для того, чтобы компания Philips отказалась от попыток создания единой для обоих рынков линейки продуктов. Линейки продуктов с узкой областью действия позволяют конструировать специализированные инструменты для специфицирования новых продуктов. ♦ FAST — процесс, поддерживающий построение линеек продуктов путем разработки предметно-ориентированных языков и соответствующих компиляторов. Компилятор при этом входит в фонд базовых средств. При фиксации параметров изменчивости продукта (средствами предметно-ориентированного языка) в этот фонд также вносится оперативная библиотека кода, сгенерированная посредством компилятора. ♦ GM Powertrain, собирая продукты из базовых средств линейки, основывается на контрактах, хранящихся в базе данных. Каждый элемент снабжается четко определенными интерфейсами и возможными изменяемыми параметрами. Проводя в базе данных поиск желаемых характеристик, этот инструмент производит сборку продукта. Линейки продуктов с широкой областью действия, как правило, разрабатываются по подобию каркасов или коллекций служб. Нижеследующие примеры — тому подтверждение. ♦ Линейка автомобильных навигационных систем зависит от требований производителей автомобилей, каждый из которых продвигает свои пользовательские интерфейсы и наборы характеристик. Исходя из этого поставщик навигационных систем спроектировал архитектуру как коллекцию каркасов. Соответственно, в ходе разработки любого продукта для пего конструируется пользовательский интерфейс, а для заданных характеристик конкретизируются каркасы. ♦ Система Luther (см. главу 17) представляет собой линейку продуктов, сконструированную поверх J2EE (каркас). В ходе разработки каждого продукта конструируется пользовательский интерфейс и реализуются вспомогательные прикладные модули. НЕ ВСЕ ТАК ПРОСТО Парадигма линеек программных продуктов позволяет распределить средства, вложенные в разработку архитектуры (равно как и других базовых средств), на семейство родственных систем и тем самым на порядок сократить время выхода на рынок, повысить качество и продуктивность. Реальность достижения таких результатов убедительно доказана крупными и мелкими компаниями, работающими в самых разных предметных областях. Результаты действительно стоят усилий. Более того, многочисленные источники (в том числе и в самих компаниях) сходятся в том, что для окупаемости затрат на учреждение линейки продуктов в ней достаточно выпустить около трех продуктов. По нашему мнению, это минимальное число продуктов в любой линейке. Стоит, впрочем, отметить, что возможны и другие результаты. При определенных условиях попытки внедрить рассматриваемую методику не приводят ни к чему хорошему. Как и любая новая технология, методика построения линеек продуктов при внедрении требует тщательного планирования, учета истории компании, текущей ситуации и культурных стандартов. К неудаче при попытке внедрения линейки продуктов способны привести следующие факторы: ♦ отсутствие явно выраженного лидера с достаточными управленческими и контрольными полномочиями; ♦ неспособность ответственных лиц постоянно и последовательно оказывать разработчикам поддержку; ♦ нежелание менеджеров среднего звена отказаться от единоличного контроля над проектами; ♦ нечеткое формулирование коммерческих задач, обусловливающих внедрение методики линеек продуктов; ♦ отказ от реализации методики при появлении первых же трудностей; ♦ недостаточно глубокое ознакомление персонала с методикой, неспособность должным образом объяснить или оправдать вносимые изменения. К счастью, для борьбы с большинством перечисленных проблем существуют специальные стратегии. В частности, полезно проработать небольшой, но характерный пилотный проект, призванный показать количественные преимущества линеек программных продуктов. К работе над проектом следует привлечь тех специалистов, которые выразили готовность апробировать новую методику; скептиков лучше оставить в покое — пусть себе занимаются своим делом. Таким способом можно разобраться в процессе, уяснить роли и обязанности, устранить недоработки и уже после этого расширять масштаб применения методики. Джо Гэймер (Joe Gahimer) из компании Cummins, Inc. (производителя крайне успешной линейки программных продуктов, рассматриваемой в работе [Clements 02b]) рассказывает о двух задействованных в продуктах компании элементах, владельцы которых были уверены в их неповторимости. По их мнению, схожесть регулятора скорости и регулятора гребного вала сводилась лишь к тому, что оба контролируют скорость. Tщательно зафиксировав детали обоих приложений, участники группы базовых средств в конце концов выяснили, что элементы эти не только схожи, но и функционально идентичны — разница лишь в значениях констант.
Дата добавления: 2015-04-25; Просмотров: 465; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |