Липаев В.В. Программная инженерия
.pdfЛ Е К Ц И Я 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