Проблема повышения надежности сложных технических систем | Статья в журнале «Молодой ученый»

Авторы: ,

Рубрика: Философия

Опубликовано в Молодой учёный №10 (69) июль-1 2014 г.

Дата публикации: 18.06.2014

Статья просмотрена: 225 раз

Библиографическое описание:

Тачеев А. Н., Фомина Н. В. Проблема повышения надежности сложных технических систем // Молодой ученый. — 2014. — №10. — С. 563-565. — URL https://moluch.ru/archive/69/11735/ (дата обращения: 21.08.2018).

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

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

Шалыгин В. Ф. пишет: «Уязвимость компьютерной системы — это присущее системе неудачное свойство, которое может привести к реализации угрозы». [5] А также, как таковая уязвимость хорошо описана в работах Грибунина В. Г. и Чудовского В. В.: «Уязвимость — это некая слабость, которая дает возможность выявить характерные особенности и недостатки объекта защиты, облегчающие проникновение злоумышленника к охраняемым сведениям». [3, с.10] Поэтому данное свойство уязвимого программное обеспечение, вызванное разными факторами, в том числе и ошибками в программном коде, негативно влияет на надежность системы в целом. В данном аспекте необходимо повышать надежность системы различными методами как аппаратно, так и программно. К охраняемым сведениям может относится любая информация: персональная, коммерческая, конфиденциальная и т. д.

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

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

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

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

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

Литература:

1.      Бахтизин, В. В. Учебное пособие по дисциплине Надежность программного обеспечения, Минск, 2007.

2.      ГОСТ 27.301–95 Надежность в технике. Расчет надежности. Основные положения.

3.      Грибунин В. Г., Чудовский В. В. Комплексная система защиты информации на предприятии. Учебное пособие. — М.: Издательский центр «Академия», 2009.

4.      Черкесов, Г. Н. Надежность аппаратно-программных комплексов.– СПб.: Питер, 2005.

5.      Шальгин В. Ф. информационная безопасность компьютерных систем и сетей. Москва ИД «Форум» Инфра-М, 2008г.

6.      Шеенок, Д. А. Инструментальное средство проектирования оптимальной архитектуры отказоустойчивых программных систем // Программная инженерия. № 6. — 2013. — С. 20–26.

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


Похожие статьи

Анализ существующего программного обеспечения для...

Характеристика существующего программного обеспечения системы банковских расчетов. Сопровождение систем автоматизации программного обеспечения.

Сравнительный анализ программного обеспечения систем...

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

Дефекты программного обеспечения системы управления...

Рассмотрены дефекты программного обеспечения и их последствия на примере системы управления движением судов. Ключевые слова: дефект, программное обеспечение, отказ, система управления движением судов.

К вопросу об использовании программных продуктов с открытым...

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

Так же открытое программное обеспечение способствует снижению расходов на приобретение программных продуктов.

Экспериментальное исследование взаимосвязи значений метрик...

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

Достоинства и недостатки современных видов тестирования...

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

Программное обеспечение системы менеджмента качества

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

Анализ использования «облачных технологий» для компаний...

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

Исследование стратегий тестирования программного обеспечения

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

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Анализ существующего программного обеспечения для...

Характеристика существующего программного обеспечения системы банковских расчетов. Сопровождение систем автоматизации программного обеспечения.

Сравнительный анализ программного обеспечения систем...

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

Дефекты программного обеспечения системы управления...

Рассмотрены дефекты программного обеспечения и их последствия на примере системы управления движением судов. Ключевые слова: дефект, программное обеспечение, отказ, система управления движением судов.

К вопросу об использовании программных продуктов с открытым...

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

Так же открытое программное обеспечение способствует снижению расходов на приобретение программных продуктов.

Экспериментальное исследование взаимосвязи значений метрик...

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

Достоинства и недостатки современных видов тестирования...

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

Программное обеспечение системы менеджмента качества

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

Анализ использования «облачных технологий» для компаний...

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

Исследование стратегий тестирования программного обеспечения

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

Задать вопрос