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

Липаев В.В. Программная инженерия

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

Л Е К Ц И Я 4

СИСТЕМНОЕ ПРОЕКТИРОВАНИЕ ПРОГРАММНЫХ СРЕДСТВ

4.1. Цели и принципы системного проектирования сложных программных средств

Комплекс формально организованных мероприятий по достижению единой цели создания сложной системы с требуемыми характеристиками качества при ограниченных ресурсах получил название — проект. Цель управления проектом — рациональное использование и предупреждение потери ресурсов путем сбалансированного распределения их по частным работам на протяжении всего жизненного цикла объекта с заданным каче­ ством. Управление проектом — это особый вид деятельности, включаю­ щий постановку задач, подготовку решений, планирование, организацию и стимулирование специалистов, контроль хода работ и использования ресурсов при создании сложных систем.

Целевое управление проектами возникло из необходимости разра­ батывать и реализовывать сложные системы с заданными функциями в максимально короткие сроки при ограниченных ресурсах. Критическим параметром планирования и управления проектами обычно является вре­ мя. Поэтому в лекциях по программной инженерии большое внимание сосредоточено на конкретном планировании сложных проектов, длитель­ ность разработки которых могут составлять несколько месяцев или даже годы. Задачи целевого управления такими работами — сводить воедино усилия исполнителей — специалистов разной квалификации, подрядчи­ ков и субподрядчиков, добиваясь, чтобы они выступали как команда при создании компонентов систем, а не как разрозненная группа функцио­ нальных специалистов. В результате должны обеспечиваться концепту-

100

4.1. Цели и принципы системного проектирования сложных программных средств

альная целостность системы и высокое качество решения главных задач при сбалансированном использовании ресурсов на все функциональные задачи.

Для интеграции усилий специалистов и эффективного использования ресурсов проекта дол:исен выделяться лидер менедлсер, управляю­ щий проектом. Он должен активно участвовать в планировании, органи­ зации и контроле основных внутренних и внешних организационных ме­ роприятий, необходимых для достижения основной цели проекта. Все ресурсы и исходные данные, необходимые для эффективного выполнения проекта, управляющий получает от функциональных подразделений и спе­ циалистов. Задача менеджера проекта наряду с прямыми воздействиями на подчиненных и координацией их работ — стимулировать и контроли­ ровать активность прямых горизонтальных связей между исполнителями частных работ. Для того чтобы процесс достижения целей был рациональ­ ным, лицо, принимаюпдее решение (управляющий), должно иметь выбор среди альтернативных действий, ведущих к цели. Наличие альтернатив и сомнения по поводу того, какая из них лучше, определяют возможность эффективного решения проблем и оптимизации путей их достижения.

Методологической базой целевого планирования и управления про­ ектами ПС является системный анализ, который предполагает:

обследование объектов и среды проектирования для предвари­ тельной формализации целей, назначения и задач проекта ПС;

исследование и сопоставление альтернативных действий, которые должны приводить к достижению поставленных целей проектирования;

сравнение альтернатив по величине достигаемого эффекта проекта

взависимости от затрат на его достижение (желательно, по показателю «эффективность/стоимость»);

учет и анализ влияния неопределенностей характеристик альтер­ натив, определяющих их выбор, на эффект проекта.

Чтобы найти и проанализировать все разумные альтернативы, обыч­ но недостаточно одного специалиста и необходимо участие в системном анализе специалистов разной квалификации. Не во всех системах и за­ дачах оказывается доступным точный количественный анализ. Во многих, чаще всего особенно сложных, случаях приходится ограничиваться каче­ ственным анализом свойств, факторов и их влияния на конечный резуль-

101

Лекция 4. Системное проектирование программных средств

тат и возможный эффект проекта. Поэтому оптимизация решений и выбо­ ра альтернатив может ограничиваться оценкой логических суждений экс­ пертов. Базой эффективного управления проектом является план, в кото­ ром задачи исполнителей частных работ должны быть согласованы с вы­ деляемыми для них ресурсами, а также между собой по результатам и срокам их достижения.

Основная цель системного проектирования в программной uHjfceнерии — подготовить, обосновать и согласовать замыслы и решения за­ казчика (потребителя) и разработчика (поставщика) о необходимости, на­ правлениях и концепции создания или модернизации существующего ПС и изменениях его качества. Методы и средства системного проектирова­ ния должны подготавливать эффективную технологическую базу для обес­ печения всего жизненного цикла ПС требуемого качества. Характеристи­ ки комплексов программ должны анализироваться и формулироваться в начале их жизненного цикла и определять эффективность всех последую­ щих процессов. Результатом этих работ должны быть системный про­ ект, техническое задание и контракт на продолжение разработки ПС или решение о ее нецелесообразности и прекращении.

Системное проектирование сложных комплексов программ является

фундаментом для обеспечения функциональной адекватности требо­ ваниям всего жизненного цикла ПС. От полноты и тщательности систем­ ного проектирования зависят эффективность реализации функций систе­ мы и степень удовлетворения ожиданий и требований заказчика и пользо­ вателей. В последовательности выработки и подготовки к реализации этих требований далее рассматриваются в основном три крупных этапа:

обследование, системный анализ существующей системы и выяв­ ление ее недостатков;

обобщение результатов системного анализа и создание предвари­ тельной концепции новой или модернизированной системы и ее программ­ ных средств;

разработка системного проекта комплекса программ и базы дан­ ных, определяющего и конкретизирующего цель, назначение и методы дальнейшего детального проектирования и всего жизненного цикла ПС.

На этих этапах при относительно небольших затратах должна опре­ деляться экономическая эффективность и рентабельность всех последую­ щих больших затрат ресурсов в жизненном цикле системы и могут быть

102

4.1. Цели и принципы системного проектирования сложных программных средств

Предотвращены значительные потери ресурсов вследствие плохого плани­ рования и неопределенностей при реализации проекта. Системное проек­

тирование способно остановить нерентабельное развитие проектов

систем и избежать заказчикам и разработчикам на них крупных затрат. В то же время на базе рекомендуемых при проектировании методов, инстру­ ментальных средств и стандартов может и должен быть подготовлен и обеспечен длительный, эффективный жизненный цикл и совершенствова­ ние множества версий высококачественных ПС и их компонентов при реализации на различных аппаратных и операционных платформах. Ко­ нечный результат системного проектирования должен также положитель­ но отражаться на системах обеспечения качества, безопасности и защиты, на рационально организованных коллективах квалифицированных специ­ алистов, способных обеспечить весь жизненный цикл ПС.

Тщательное и полноценное системное проектирование выгодно с

позиции ускорения разработок, предотвращения ошибок, обеспечения эф­ фективности всего жизненного цикла и высокого качества сложных про­ ектов комплексов программ в условиях ограниченных ресурсов. Инициа­ лизация системного проектирования может осуществляться заказчиками, потенциальными пользователями или разработчиками проектов ПС, кото­ рые желают получить достаточно четкое представление о возможных фун­ кциях и будущем жизненном цикле определенного проблемно-ориентиро­ ванного комплекса программ и базы данных.

Системное проектирование далее структурировано, и методоло­ гия его реализации отражает следующие проблемы, процессы и методы:

цели и принципы системного проектирования сложных программ­ ных средств для обеспечения их последующего жизненного цикла в ин­ формационных системах;

подготовку к непосредственному детальному проектированию, раз­ работке и всему жизненному циклу комплекса программ и базы данных для информационной системы;

основы предварительного структурного проектирования и совре­ менных технологий системного анализа и проектирования сложных комп­ лексов программ;

методы разработки требований к характеристикам качества и рас­ пределения ресурсов, необходимых для реализации проектов сложных ПС

ибаз данных;

103

Лекция 4. Системное проектирование программных средств

задачи и принципы системного проектирования обеспечения безо­ пасности и защиты комплексов программ от различных угроз;

планирование жизненного цикла и управление качеством ПС, а также выбор инструментальных средств для поддержки всего их ЖЦ;

методики системного проектирования сложных ПС и требований к их качеству, а также структура и содержание документов, отражающих результаты выполненных работ;

организацию и подготовку специалистов, способных обеспечить создание детального проекта и всего жизненного цикла ПС с требуемым качеством.

Непрерывное повышение уровня автоматизации в ряде систем при подготовке и принятии ответственных решений возлагает все большие функции на программные средства с соответствующими базами данных. В результате проблема обеспечения качества и безопасности их функциони­ рования сдвигается к лицам, разрабатывающим системные проекты,

методы и программные средства для автоматизации, подготовки и реали­ зации ответственных решений. Одновременно повышаются требования к уровню ответственности и системной квалификации лиц, реализующих комплексы программ, от которых зачастую зависят ошибки стратегически важных решений, так как некоторые простейшие системные и техничес­ кие ошибки этих лиц при создании программ могут приводить к большо­ му ущербу или даже катастрофам.

Не предусмотренные при системном проектировании ситуации и

возможные дефекты программ являются потенциальными источниками отказов и аварий при применении ряда систем. Массовая практика, когда

заказчик не может сформулировать четкие требования к функциям и безопасности ПС, а разработчик не понимает, что нужно заказчику, приводит к длительному процессу разработки проектов с множеством де­ фектов и ошибок, на устранение которых расходуются большие ресурсы. В результате многие системы не соответствовали исходному назначению и первоначальным спецификациям, не укладывались в графики и бюджет разработки. Поэтому значительно возросла необходимость освоения всех современных методов и методик предупре:исдения системных дефектов,

обеспечения высокого качества программ с самого начала их разработки. Многие ошибки, обусловленные неопределенностью или некорректнос­ тью технических заданий и спецификаций, могут и должны быть выявле-

104

4.1. Цели и принципы системного проектирования сложных программных средств

ны на ранних стадиях системного проектирования, что способствует его ускорению и повышению качества. Обширной практикой доказано, что обнаружение и устранение ошибок и дефектов в комплексах программ на начальных этапах системного проектирования в десятки и сотни раз

быстрее и дешевле^ чем в процессе завершения разработки и испыта­ ний,

В последние десятилетия быстро возрастает сложность объектов и систем, создаваемых в различных областях индустрии. Для их разработки привлекаются специалисты разной квалификации и большие финансовые

иматериальные ресурсы. Использование этих ресурсов должно координи­ роваться и объединяться комплексом мероприятий для достижения общей цели — создания соответствующего сложного объекта или системы с за­ данным качеством в условиях ограниченных ресурсов. Современные слож­ ные системы и соответственно проекты, обеспечивающие их создание, имеют/;лд валсных особенностей:

единую цель разработки и последующего функционирования всей системы для определенных пользователей;

наличие совокупности нескольких, тесно взаимодействующих, ком­ понентов — подсистем, имеющих свои локальные задачи и цели функцио­ нирования;

иерархическую структуру связей и взаимодействия компонентов, обеспечивающую концептуальное единство и устойчивость функциони­ рования всей системы;

иерархическую совокупность критериев качества функционирова­ ния компонентов и системы в целом, обеспечивающих достижение глав­ ных целей создания и последующего применение! системы пользователями.

Одной из особенностей сложных систем является трудность выбора

иформализации единого критерия качества и оценки эффективности функционирования, адекватно отражающего главные цели системы. Обыч­ но выделяется несколько более или менее равнозначных характеристик, каждая из которых может стать доминирующей для оценки эффективнос­ ти системы в зависимости от этапа ее проектирования, состояния или некоторых внешних условий. Это обусловлено тем, что каждая сложная система зачастую является частью системы большего масштаба и высшего уровня и подчинена ей.

105

Лекция 4. Системное проектирование программных средств

Для управления проектом системы, прежде всего, должны быть адек­ ватно описаны цели и объект проектирования. Для сложных систем формализация и детализация характеристик объекта разработки происхо­ дит одновременно с процессом его проектирования. Последовательно уточ­ няются архитектура объекта, основные функции и их характеристики, тре­ бующиеся показатели качества функционирования и методы решения за­ дач. Все эти данные отражаются в концепции, техническом задании, спецификации требований и описании проекта, которые детализируются и конкретизируются по мере развития проекта. Это определяет принципи­ альную особенность планирования проектов сложных систем, состоящую в наличии влияния на план изменяющихся значений и достоверности зна­ ний разработчиков о требуемых характеристиках объекта разработки. С этим связана необходимость итерационного уточнения планов на всех этапах проектирования, разработки и совершенствования систем.

План проекта должен отражать рациональное сочетание целей, стра­ тегий действий, конкретных процедур и доступных ресурсов, необходи­ мых для достижения поставленной основной цели проекта с заданным качеством. Планирование проектов должно обеспечивать компромисс

между требующимися характеристиками создаваемой системы и ограни­ ченными ресурсами, необходимыми на ее разработку и применение. По мере уточнения исходных данных об объекте разработки, внешней среде применения и ресурсах в процессе системного анализа и проектирования возрастает достоверность планирования.

Первичное прогнозирование характеристик проекта и подготовка пла­ на при системном проектировании происходит при некоторых фиксиро­ ванных исходных данных, не полностью учитывающих динамику возмож­ ного исполнения плана. На этой стадии отсутствует оперативная обратная связь процесса реального выполнения плана с его первичным вариантом. Важнейшая задача при разработке такого плана — минимизировать число связей и сложность взаимодействия между компонентами проекта, а так­ же между исполнителями отдельных компонентов. Уже при первичном прогнозировании развития системного проекта оцениваются альтернатив­ ные характеристики объекта и среды разработки и выбираются наиболее подходящие в соответствии с поставленными целями и имеющимися ре­ сурсами.

106

4.1. Цели и принципы системного проектирования сложных программных средств

После создания системного проекта появляется и действует дина­ мическая обратная связь на план со стороны процесса его исполнения. Реализация проекта зависит от результатов выполнения частных работ и может требовать оперативной корректировки плана. При реализации пла­ на определяющими являются координация, стимулирование и контроль развития проекта. Для этого необходимо следить за ходом исполнения проекта на всем протяжении его жизненного цикла и сравнивать заплани­ рованные и фактические результаты работ. Контроль является органичес­ кой функцией управления и должен иметь средства регулирования пове­ дения отдельных личностей и коллектива проектировщиков в целом. Од­ новременно обеспечивается наблюдение за состоянием системы и ее характеристиками качества, что позволяет устанавливать частные компро­ миссы с используемыми ресурсами. Объектами контроля при этом яв­

ляются:

технические характеристики реализованных компонентов проекта, показатели качества процессов и результатов выполнения отдельных работ;

затраты ресурсов на выполнение частных работ и реализацию компонентов проекта (трудоемкость, стоимость, время, материальные ре­ сурсы);

графики работ, степень их выполнения, наличие и причины откло­ нений реализации частных работ от планов, угроза нарушения сроков контракта.

Для получения, накопления и применения достоверных данных об объектах управления и альтернативах необходима информационная сиетема обеспечения проекта. Такая система представляет собой комплекс формальных и неформальных каналов обмена информацией между участ­ никами проекта, ее накопления и обработки. Следует учитывать, что лю­ бая групповая деятельность связана со сложным комплексом неформаль­ ных отношений между исполнителями. Степень формализации может ва­ рьироваться от утверждаемых руководителями планов и подробных технических заданий до личных бесед между разработчиками. Регуляр­

ный обмен информацией позволяет осуществлять:

сбор исходных данных о состоянии, достигнутом качестве компо­ нентов проекта и использованных ресурсах;

диспетчерское управление ресурсами и частными исполнителями

работ;

107

Лекция 4. Системное проектирование программных средств

сравнение текущих результатов частных работ с техническими заданиями, спецификациями и планом;

корректировку технических результатов работ, сроков и использу­ емых ресурсов в соответствии с изменением требований в процессе разви­ тия проекта.

Таким образом, целевое системное управление проектами позволя­ ет планировать, контролировать и анализировать информацию о состоя­ нии и тенденциях изменения объекта разработки, его качестве и затрачен­ ных ресурсах. При этом непрерывно должны сохраняться основные цели проекта и главные пути ее достижения. Это позволяет рассматривать альтернативы технических решений и предотвращает от сосредоточения внимания на частных задачах или вариантах решений, которые кажутся полезными и интересными, но мало отражаются на достижении главной цели проекта ПС.

4.2. Процессы системного проектирования программных средств

Системное проектирование в программной ин^исенерии охватыва­ ет период жизненного цикла сложных комплексов программ, начиная от формулирования первичного замысла на создание или модернизацию сис­ темы и до начала детального проектирования и разработки ПС. Результа­ том этого периода работ должно быть согласованное и формализованное разработчиком и заказчиком представление о целях, назначении, функци­ ональных задачах и качестве будущего программного продукта, способно­ го удовлетворить надежды и запросы пользователей. В системном проекте должны быть обобщены и отражены следующие основные результаты выполненных системных исследований и разработок (рис. 4.1):

обобщенный анализ проведенного обследования объекта инфор­ матизации, функций существующей информационной системы, качества

ееосновных программных компонентов и базы данных;

совокупность предварительных исходных требований к функциям

ихарактеристикам комплекса программ;

оценки имеющихся и потенциально доступных ресурсов (финан­ совых, вычислительных средств, специалистов) для обеспечения всего жиз­ ненного цикла и требуемого качества проекта комплекса программ;

108

4.2. Процессы системного проектирования программных средств

Результаты обследования и анализа объекта информатизации

X

Исходные требования к функциям и характеристикам качества программного средства

Оценки доступных ресурсов для обеспечения жизненного цикла и требуемого качества программного средства

Результаты предварительного анализа и моделирования архитектуры и всего жизненного цикла программного средства

Концепция проекта программного средства — формализованные функции, задачи и жизненный цикл

Планы проекта обеспечения жизненного цикла, качества, безопасности и защиты программного средства

Технико-экономическое обоснование жизненного цикла проекта программного средства

Результаты анализа возможной инструментальной среды и системы обеспечения качества программного средства

Организация и требования к коллективу специалистов для обеспечения жизненного цикла программного средства

Проект технического задания и спецификаций требований на весь жизненный цикл программного средства

Системный проект и предложение контракта на дальнейшее проектирование и разработку программного средства

Рис. 4.1

— результаты предварительного анализа возможной архитектуры ком­ плекса программ на основе моделей и прототипов аналогичных систем, позволяющие наметить планы разработки и всего жизненного цикла про­ екта ПС;

109