*120010*

к.э.н., доцент Г.З.Абдыбаева

 

Университет «Туран-Астана», Казахстан

 

СИСТЕМНЫЕ ОСНОВЫ СОВРЕМЕННЫХ ТЕХНОЛОГИЙ

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

 

Основная цель современных технологий программной инженерии состоит в обеспечении эффективности всего жизненного цикла (ЖЦ) комплексов программ для ЭВМ в различных проблемно-ориентированных областях. В понятие современной технологии включается совокупность методов и инструментальных средств автоматизации, а также технологические процессы, обеспечивающие жизненный цикл сложных программных систем (ПС) с заданными функциональными и конструктивными характеристиками качества. Для этого рекомендуется использовать наиболее эффективные и совершенные методы проектирования и проводить комплексную автоматизацию ЖЦ ПС. Целеустремленная деятельность разработчиков-поставщиков должна быть направлена на удовлетворение требований заказчиков и пользователей программных продуктов при их применении по прямому назначению. Эта деятельность регламентируется рядом методов и стандартов, которые являются компонентами технологического обеспечения сложных ПС в течение их жизненного цикла [1].

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

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

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

Значительные достижения в развитии и применении современных методов и технологии обеспечения крупномасштабных проектов ПС сосредоточены в методологии СММ (Capability Maturity Model – система и модель для оценки зрелости) комплекса технологических процессов жизненного цикла ПС. Она основана на формализации и использовании пяти уровней зрелости технологий поддержки ЖЦ ПС, которые также определяют потенциально возможное качество создаваемых на предприятии комплексов программ. Чем выше уровень зрелости, тем выше статус предприятия среди поставщиков, доверие к его продукции, его конкурентоспособность, а также возможное качество программных продуктов. Эти уровни зрелости характеризуются степенью формализации, адекватностью измерения и документирования процессов и продуктов в ЖЦ ПС, полнотой применения стандартов и инструментальных средств автоматизации работ, наличием и глубиной реализации функций системой качества технологических процессов и их результатов [1].

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

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

Эти принципы рекомендуется применять при:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Литература

1.     Липаев В.В. Программная инженерия. Методологические основы. М.: Теис. 2006

2.     Липаев В.В. Системное проектирование сложных программных средств для информационных систем. Изд. второе переработанное и дополненное.  – М.: Синтег. 2002

3.     Брауде Э. Технология разработки программного обеспечения. Пер. с англ. – Спб.: Питер. 2004

4.     Гецци К., Джазайери М., Мандриоли Д. Основы инженерии программного обеспечения. Пер. с англ. – СПб.: БХВ-Петербург. 2005