Программная инженерия
.pdfЛекция 8. Объектно-ориентированное проектирование программных средств
— генераторы программного кода автоматически генерируют про граммы на основе проектов компонентов, хранящихся в центральном репозитории.
В некоторых случаях возможно генерировать программы или фраг менты программ на основе информации, представленной в системной мо дели. Поскольку в моделях не предусмотрена детализация низкого уровня, генератор программного кода не в состоянии сгенерировать законченный комплекс программ. Обычно необходимы программисты для завершения автоматически сгенерированных программ.
Л Е К Ц И Я 9
УПРАВЛЕНИЕ РЕСУРСАМИ В ЖИЗНЕННОМ ЦИКЛЕ ПРОГРАММНЫХ СРЕДСТВ
9.1. Основные ресурсы для обеспечения жизненного цикла сложных программных средств
Общее понятие — доступныересурсы обеспечения жизненного цик ла ПС — вютючает реальные финансовые, временные, кадровые и аппара турные ограничения затрат, в условиях которых происходит создание и совершенствование комплексов программ. В зависимости от характерис тик объекта разработки на ее выполнение выделяются ресурсы различных видов и размеров. Эти факторы проявляются как дополнительные характе ристики процессов ЖЦ и программных продуктов, а также их рентабель ности, которые следует учитывать и оптимизировать. В результате дос тупные ресурсы становятся косвенными критериями или факторами, вли яющими на выбор методов разработки, на достигаемые качество и эффективность применения программных продуктов. Многие проекты си стем терпели и терпят неудачу из-за отсутствия у разработчиков и заказ чиков при подготовке контракта четкого представления о реальных фи нансовых, трудовых, временных и иных ресурсах, необходимых для их реализации. Поэтому одной из основных задач при проектировании ПС является экономический анализ и определение необходимых ресурсов для создания и обеспечения всего ЖЦ ПС в соответствии с требованиями контракта и технического задания.
Наиболее общим видом ресурсов, используемых в жизненном цикле ПС, являются допустимые финансово-экономические затраты или эк-
221
Лекция 9. Управление ресурсами в жизненном цикле программных средств
вивалентные им величины трудоемкости соответствующих работ (см. лек цию 5). При разработке, тестировании и анализе качества этот показатель может применяться или как вид ресурсных ограничений, или как оптими зируемый критерий, определяющий целесообразную функциональную при годность ПС. При этом необходимо также учитывать затраты на разработ ку, закупку и эксплуатацию системы качества, на технологию и комплекс автоматизации проектирования программ и баз данных, которые могут составлять существенную часть совокупной стоимости и трудоемкости разработки и всего ЖЦ ПС.
Затраты в лсизненном цикле ПС определяются не только этапа ми разработки, но и этапами эксплуатации и сопровождения. Затраты на этих этапах могут значительно превышать затраты при разработке и характеризуются своими особыми закономерностями. Однако эффектив ность процесса разработки ПС невозможно определять без учета эффек тивности последующей эксплуатации, а для долго модифицируемых про грамм — без оценки эффективности их сопровождения. Ряд факторов влияет на затраты при разработке сложных ПС не только непосредствен но, но и через возможное изменение затрат в дальнейшем при сопровож дении или эксплуатации. Каждый из этапов: разработка, сопровождение и эксплуатация — может быть достаточно длительным. В пределах этапов различные группы затрат могут быть неодновременными и разделяться интервалами времени, исчисляемыми годами. Однако разновременность затрат трудно учитывать в общем виде и при существующих методиках имеется некоторая условность при оценке влияния времени на совокуп ные затраты проекта.
В соответствии с этапами жизненного цикла ПС основные затраты Q, снижающие идеальную эффективность за цикл жизни /^, можно пред ставить следующими составляющими (рис. 9.1):
Ср— совокупные затраты на разработку программ и обеспечение решения заданных функциональных задач, в том числе на технологиче ское обеспечение и аппаратуру ЭВМ при разработке ПС, в течение време ни tp\
Сс— затраты на сопровождение ПС за время t^, включающие затра ты на хранение и контроль их состояния, проведение модернизаций и исправление ошибок, тиражирование версий;
222
9.1. Ресурсы для обеспечения жизненного цикла сложных программных средств
Сэ— затраты на эксплуатацию программ и аппаратные средства ЭВМ, реализующих ПС, а также совокупные потери эффективности за время 1э, вследствие ограниченных характеристик ЭВМ и неидеальности программ.
Затраты на разработку ПС
Z
Затраты на непосредственную
разработку компонентов и ПС
Z
Затраты на системный анализ
и разработку требований
Затраты наXразработку архитектуры и компонентов
Затраты на верификацию и тестирование компонентов
Затраты на квалификационное
тестирование и испытания ПС
Затраты на обеспечение безопасности
и надежности ПС
Затраты на технологическую,
эксплуатационную документацию и обучение
Затраты |
— • |
Затраты |
|
на сопровождение ПС |
на эксплуатацию ПС |
||
|
|||
Затраты на обнаружение |
|
|
|
и устранение дефектов |
|
|
|
Затраты |
|
Затраты на технологию |
|
|
и средства |
||
на совершенствование |
|
автоматизации ЖЦ ПС |
|
и модернизацию ПС |
|
|
|
ЗатратыI |
|
|
|
на конфигурационное |
|
|
|
управление ПС |
|
Затраты на аппаратуру |
|
|
|
||
|
|
для автоматизации ЖЦ |
|
Затраты на тиражирование |
|
ПС |
|
и архивирование ПС |
|
|
Затраты на средства имитации внешней среды
исистемы для тестирования
ииспытаний ПС
Рис. 9.1
В результате совокупные затраты ресурсов на программное средство за весь жизненный цикл длительностью /^ можно представить в виде
223
Лекция 9. Управление ресурсами в жизненном цикле программных средств
суммы: Ср + Сс-^ Сэ. В зависимости от назначения и области использова ния программ экономическую эффективность целесообразно анализиро вать интегрально за весь период жизни, либо дифференциально за едини цу времени (месяц, год). Для совместного анализа составляющих, опреде ляющих эффективность, необходимо унифицировать методы временного анализа и единицы измерения составляющих затрат. При последующем изложении затраты рассматриваются на длительности цикла жизни или на соответствующих интервалах времени: разработки, эксплуатации и сопро вождения.
Разработка сложного ПС требует во много раз больших затрат, чем производство каждого экземпляра при массовом тиражировании. Поэтому далее производство базового образца программ не выделяется в самосто ятельный этап, а рассматривается совместно с процессом разработки ПС. Производство серийных образцов программного продукта включается в этап эксплуатации. Экономическая эффективность разработки и распре деление ресурсов на ее выполнение могут значительно изменяться в зави симости от того, является ПС уникальным или будет изготовлен в сотнях экземпляров. Это обстоятельство привело к целесообразности оценки зат рат на разработку ПС не только в абсолютных значениях для опытного или базового образца, но и в относительных величинах доли затрат на программы в каждом экземпляре реализующей (целевой) ЭВМ при серий ном производстве систем.
При выделении составляющих затрат на разработку программ
целесообразно учитывать их относительный вес в суммарных затратах и возможность локализации групп специалистов, влияющих на величину этих затрат. Разработка программ является областью с малой материало- и энергоемкостью, и основные затраты связаны с непосредственным или овеществленным трудом специалистов различных категорий. Поэтому для измерения затрат наиболее универсальной единицей стала трудоемкость в человеко-месяцах или человеко-годах. При этом учитываются все катего рии специалистов, участвующих непосредственно или косвенно в созда нии данного ПС.
Время или допустимая длительность разработки определенных компонентов и версий ПС является невосполнимым ограниченным ресур сом реальных проектов. Этот ресурс все больше определяет достижимое
224
9.1. Основные ресурсы для обеспечения жизненного цикла...
качество сложных комплексов программ в процессе их разработки и со провождения. Высокие требования заказчиков к сжатым срокам реализа ции проектов, естественно, ограничивают разработчиков и испытателей в продолжительности и объеме возможного системного анализа и проекти рования, разработки и, особенно, тестирования программ. Увеличение числа привлекаемых для этого специалистов, при опытной эксплуатации или бета-тестировании, только в некоторых пределах позволяет ускорять раз работку и увеличивать совокупное число тестов при проверках для повы шения качества программ.
Доступные разработчикам ПС вычислительные ресурсы объект ных и технологических ЭВМ являются одним из важнейших факторов, определяющим достижимое качество сложных ПС. В процессе проектиро вания целесообразно выделять определенные ресурсы ЭВМ на оператив ное обеспечение качества, повышение защищенности, безопасности и на дежности функционирования. Допустимая величина и рациональное рас пределение ресурсов ЭВМ на отдельные методы улучшения определенных конструктивных характеристик качества ПС оказывают существенное вли яние на достигаемые ими значения.
Обобщенными ресурсами ЖЦ проекта ПС являются доступные сто-
имость или совокупные трудовые, временные и материальные затра ты, необходимые для приобретения, создания, модификации и эксплуата ции компонентов и всего комплекса программ. Эти характеристики непос редственно влияют практически на все показатели качества и определяют рентабельность покупки или создания заново конкретного программного продукта. Это означает, что качество является относительным поня тием, которое зависит от ресурсов и субъектов, осуществляющих его оценку с позиции эффективности использования, а также от состояния рынка соответствующей продукции, ее производителей и технологий. Ори ентация на потребителей подразумевает анализ их нужд и определение возможностей рынка удовлетворить эти потребности. При этом следует учитывать рыночную конкуренцию двух видов: между поставщиками го товых к применению программных средств с фиксированным качеством и между разработчиками, способными обеспечить жизненный цикл ПС или его существенную часть, с характеристиками качества, требующимися кон кретному заказчику. В последнем случае на требуемое качество могут
225
Лекция 9. Управление ресурсами в жизненном цикле программных средств
оказывать влияние не только заказчик и непосредственные пользователи, но и различные посредники, организационные и торговые структуры, а также исполнители проекта.
В начале проектирования ПС всегда возникает задача оценивания ресурсов, которые необходимы и доступны для создания и обеспечения всего ЖЦ ПС, а также возможной экономической эффективности последу ющего применения комплекса программ по назначению при условии реа лизации требуемых характеристик качества. Экономическая эффективность и затраты имеют самостоятельное значение и методологию при анализе ЖЦ ПС. При планировании проектов программных средств часто иници атором разработки является разработчик-поставщик, который самостоя тельно принимает все решения о проектировании за счет собственных ресурсов и предполагает возместить затраты при реализации программно го продукта на рынке. В других случаях имеется определенный заказчикпотребитель, который способен задать основные цели, характеристики ка чества и обеспечить ресурсы для реализации проекта. Таким образом, при
экономическом анализе ресурсов проектов ПС возмо:и€ны два сценария
(см. лекцию 5):
—создание и весь жизненный цикл комплекса программ и/или базы данных ориентируется разработчиком на массовое тиражирование и рас пространение на рынке, для заранее неизвестных покупателей-пользовате лей в различных сферах применения, при этом отсутствует приоритетный внешний потребитель-заказчик, который определяет и диктует основные требования, а также финансирует проект;
—разработка проекта ПС и/или БД предполагается поставщикомразработчиком для конкретного потребителя-заказчика, задающего требо вания, который его финансирует, с определенным, необходимым ему ти ражом и известной, ограниченной областью применения результатов раз работки.
Разработка ПС характеризуется высокой долей творческого труда, особенно на начальных и завершающих этапах. Поэтому трудоемкость и длительность отдельных операций, частных работ и качество результатов при проектировании существенно зависят от индивидуальных особенно стей относительно небольшого числа руководителей и исполнителей, а также от характеристик конкретного проекта. Отсюда принципиальной особенностью создания сложных комплексов программ является необхо-
226
9.2. Ресурсы специалистов для обеспечения жизненного цикла...
димость активного участия руководителей и заказчиков проекта в систем ном анализе, итерационном экономическом оценивании затрат ресурсов и уточнении планов на базе прототипов завершенных разработок ПС и их личного опыта.
На рис. 9.1 отражены затраты на технологию, инструментальные сред ства автоматизации разработки и ЖЦ ПС, а также затраты на аппаратуру вычислительных систем, необходимую при обеспечении жизненного цик ла комплексов программ. Эти затраты только обозначены в данной лек ции, а их описания и оценки отнесены к лекции 16.
9.2. Ресурсы специалистов для обеспечения жизненного цикла сложных программных средств
Валснейшим ресурсом при создании программных средств являются люди — специалисты, с их уровнем профессиональной квалификации, а также с многообразием знаний, опыта, стимулов и потребностей. Быстрый рост сложности и повышение ответственности за качество комплексов программ привели к появлению новых требований к специалистам про граммной инженерии, обеспечивающим все этапы жизненного цикла ПС. Эти требования отражены, в частности, в восьми современных принципах управления качеством продукции и технологии (см. лекцию 1). Теперь недостаточно навыков процедурного программирования небольших ком понентов, а необходимы глубокие знания системотехники, технологии про ектирования, методов обеспечения и контроля качества сложных комп лексов программ в определенной области применения. Эти специалисты должны владеть новой интеллектуальной профессией, обеспечивающей высокое качество ЖЦ программных средств, а также контроль, испытания и удостоверение реального достигнутого качества на каждом этапе разра ботки и совершенствования программ. Крупномасштабное проектирова ние ПС различных классов, разделение труда специалистов по квалифика ции при разработке программ и данных, организация коллективов и эко номика таких разработок стали важнейшей частью выбора, обучения и подготовки специалистов для обеспечения всего ЖЦ ПС.
При проектировании и создании высококачественных комплексов про грамм, прежде всего, необходимы организация и тесное взаимодействие
227
Лекция 9. Управление ресурсами в жизненном цикле программных средств
представителей заказчика и разработчиков проекта. Взгляды и требо вания заказчика в основном отражаются в функциональных и потреби тельских характеристиках ПС. Устремления разработчиков направлены на способы их реализации с требуемым качеством. Эти различия исходных точек зрения на проект приводят к тому, что некоторые неформализован ные представления тех и других имеют зоны неоднозначности и взаимно го непонимания, что может приводить к конфликтам. Организация четко го взаимодействия и сокращение этих зон требует проведения определен ных мероприятий и контактов по обмену знаниями, взаимному повышению квалификации и обучению.
Менеджер проекта комплекса программ Менеджер — системный архитектор программного средства
Разработчики программного |
Технологи и специалисты |
|
средства |
по качеству |
|
Проектировщики спецификаций |
Технологи и специалисты по |
|
на компоненты |
технологическому инструментарию |
|
Разработчики компонентов |
Управляющие и контролеры |
|
и программисты |
||
текущего применения системы |
||
|
||
|
обеспечения качества |
|
Системные интеграторы |
|
|
компонентов и программного |
Инспекторы по проверке |
|
средства |
||
|
состояния и степени применения |
|
Тестировщики компонентов |
системы качества |
|
|
||
и программного средства |
|
|
Управляющие сопровождением |
|
|
и конфигурацией программного |
|
|
средства |
|
|
Документаторы проекта |
|
|
программного средства |
|
Рис. 9.2
228
9.2. Ресурсы специалистов для обеспечения жизненного цикла...
Представители заказчика, участвующие в проектировании, должны обучаться формализации автоматизируемых технологических процессов, для которых предназначены соответствующие ПС, и иметь представление об эффективных путях их реализации. С другой стороны, разработчики должны иметь в своем составе квалифицированных менеджеров, проблем но-ориентированных системных архитекторов (рис. 9.2), способных переводить функциональные требования заказчика в конкретные специ фикации и технические требования к комплексу программ и его компо нентам. Специалисты по проектированию сложных ПС (системные архи текторы) должны иметь, прежде всего, хорошую подготовку по системно му анализу алгоритмов и пакетов прикладных программ, по методам оценки эффективности проектов, организации и планированию крупномасштаб ных разработок программ и баз данных. Им необходима высокая квалифи кация по архитектурному построению, комплексной отладке и испытани ям ПС определенных классов, умение организовать коллектив для реше ния общей целевой задачи системы. Это позволит на ранних этапах исключать или сокращать дефекты, обусловленные различием представ ления ими целей и задач проектов, а также их показателей качества.
Крупномасштабные ПС являются одними из наиболее сложных объек тов, создаваемых человеком, и в процессе их разработки — творчество как поиск новых методов, альтернативных решений и способов осуществ ления заданных требований, а также формирование и декомпозиция этих требований составляют значительную часть всех трудозатрат. Индустриа лизация разработки ПС позволяет автоматизировать нетворческие, техни ческие и рутинные операции и этапы, а также облегчает творческий про цесс за счет селекции, обработки и подготовки информации, необходимой для принятия творческих решений. Следствием этого является значитель ное сокращение доли затрат на творческий труд в непосредственных зат ратах на разработку комплексов программ.
Однако в программной ин^исенерии неуклонно повышается слож ность создаваемых ПС, что вызывает возрастание затрат творческого тру да на единицу размера программ. В перспективе, несмотря на автоматиза цию и повышение инструментальной оснащенности технологии разработ ки программ, доля творческого труда при создании полностью новых крупномасштабных ПС возрастает. Даже при сокращении суммарных
229