*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