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

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

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

Лекция 1. Программная инженерия в жизненном цикле программных средств

Методология обеспечения качества ПС в программной инжене­ рии поддержана рядом методических документов и инструментальных средств, а также формализована комплексом международных стандартов (см. Приложение 1). Внедрение комплекса требует больших усилий и зат­ рат, что ограничило его массовое использование для относительно про­ стых и средней сложности проектов. Концептуальные и организационные основы административного управления жизненным циклом и качеством ПС в системе СММ, а также СММ1:2003, определены в восьми базовых принципах, которые декларированы в стандартах ISO 9000:2000 и ISO

15504:1-9.

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

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

Принцип 3 Вовлечение персонала. «Люди составляют сущность предприятия на всех уровнях, и их полноценное участие в деятельности способствует применению их способностей на благо целей предприятия».

Принцип 4 Процессный подход. «Желаемый результат достигает­ ся более эффективно, когда требуемые ресурсы и деятельность специалис­ тов предприятия управляются как единый связанный процесс».

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

Принцип 6 Постоянное усовершенствование. «Непрерывное усо­ вершенствование процессов и повышение качества продукции должно быть постоянной стратегической целью предприятия и его специалистов».

Принцип 7 Подход к принятию решений, основанный на фак­ тах. «Эффективные решения должны базироваться на анализе только ре­ альных данных и достоверной информации».

30

1.3. Системные основы современных технологий программной инженерии

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

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

при:

формулировке политики и стратегии обеспечения всего ЖЦ ПС;

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

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

управлении людскими ресурсами предприятия для обеспечения ЖЦ ПС и его качества.

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

31

Лекция 1. Программная инженерия в жизненном цикле программных средств

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

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

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

высокого, гарантированного качества;

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

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

исистематического тестирования на всех этапах жизненного цикла ПС;

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

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

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

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

на эксплуатацию и непосредственное применение технологии в процессе обеспечения ЖЦ ПС;

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

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

Улучшение технико-экономических показателей создания ПС, а также предотвращение ошибок и дефектов обеспечивается примене-

32

1.3. Системные основы современных технологий программной инженерии

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

Для обнаружения, устранения ошибок и дефектов все этапы разра­ ботки и сопровождения ПС должны быть поддержаны методами и сред-

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

При применении импортных компонентов в системном проекти­ ровании и обеспечении качества программных продуктов следует учи-

33

Лекция 1. Программная инженерия в жизненном цикле программных средств

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

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

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

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

34

1.3. Системные основы современных технологий программной инженерии

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

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

Основой сертификации должны быть детальные и эффективные Про­ граммы и методики испытаний комплексов программ на соответствие тре­ бованиям заказчиков, специально разработанные тестовые задачи и гене­ раторы для их формирования, а также высокая квалификация и авторитет испытателей. Применение на предприятиях-разработчиках программных продуктов, сертифицированных систем качества и профилей междуна­ родных стандартов на базе требований ISO 9001:2000 и/или СММ1:2003 гарантирует высокое, устойчивое управление качеством процессов и про­ дуктов их жизненного цикла, а также позволяет во многих случаях облег­ чать сертификацию конечного программного продукта. Поэтому заказчи­ ки сложных программных проектов должны выбирать подрядчиков-ис­

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

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

35

Лекция 1. Программная инженерия в жизненном цикле программных средств

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

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

ние и воспитание специалистов в области программной инженерии,

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

Л Е К Ц И Я 2

ПРОФИЛИ СТАНДАРТОВ ЖИЗНЕННОГО ЦИКЛА СИСТЕМ

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

ВПРОГРАММНОЙ ИНЖЕНЕРИИ

2.1.Назначение профилей стандартов жизненного цикла

впрограммной инженерии

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

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

37

Лекция 2. Профили стандартов жизненного цикла систем в программной инженерии

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

Основными целями применения профилей стандартов при созда­ нии и применении ПС являются:

снижение трудоемкости, длительности, стоимости и улучшение других технико-экономических показателей проектов систем и комплек­ сов программ;

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

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

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

обеспечение переносимости программ и данных между разными аппаратно-программными платформами.

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

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

большая длительность разработки, согласования и утверждения международных и национальных стандартов (3—5 лет) приводит к их консерватизму, а также к хроническому отставанию требований и реко-

38

2.1. Назначение профилей стандартов жизненного цикла в программной инженерии

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

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

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

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

вопределенном проекте;

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

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

39