Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программная инженерия

.pdf
Скачиваний:
1310
Добавлен:
01.05.2014
Размер:
10.14 Mб
Скачать

Лекция 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