Разработка, внедрение и адаптация программного обеспечения отраслевой направленности Часть 2. Разработка, внедрение и адаптация программного обеспечения отрас. Тема введение в обеспечение качества программных средств
Скачать 418.37 Kb.
|
2.4. Методы обеспечения качества программных средствСовременные технологии поддержки жизненного цикла программных средств в обязательном порядке включают методы и средства обеспечения качества программных средств. По способам обеспечения заданного качества данные методы и средства можно подразделить на следующие группы: 1) методы и средства создания программного средства высокого, гарантированного качества; 2) методы и средства предотвращения ошибок проектирования за счет систем обеспечения качества, эффективных технологий и средств автоматизации всего жизненного цикла комплексов программ и баз данных; 3) методы и средства обнаружения и устранения различных ошибок проектирования, разработки и сопровождения программных средств путем верификации и систематического автоматизированного тестирования на всех этапах жизненного цикла программных средств; 4) методы и средства удостоверения достигнутых значений качества программных средств в процессе их испытаний и сертификации перед передачей в эксплуатацию; 5) методы и средства оперативного выявления последствий ошибок программ и данных и автоматизированного восстановления качества и нормального функционирования программных средств. Методы первой и второй групп базируются на применении современных CASE-технологий и систем автоматизированного проектирования. Их применение является одним из самых эффективных современных путей повышения качества программных средств. CASE-средства поддерживают коллективную разработку сложных проектов, используются на этапе системного анализа, разработки технического задания и спецификаций, проектирования концептуальной и логической структур программных средств и баз данных, поддерживают автоматическую кодогенерацию и позволяют значительно снижать уровень системных, алгоритмических и программных ошибок при разработке программного обеспечения. Тестирование является основным методом измерения качества, определения корректности, реальной надежности и безопасности функционирования программ на всех этапах жизненного цикла программного средства. Однако процесс тестирования программ имеет свои особенности по сравнению с тестированием аппаратуры: 1. Отсутствие эталонной программы, которой должны точно соответствовать все результаты тестирования; 2. Принципиальная невозможность использования полных тестовых наборов для исчерпывающей проверки функционирования сложных программных средств; 3. Относительно невысокая степень формализации критериев качества результатов тестирования, и достигаемых при этом корректности и надежности функционирования испытуемых программных средств. Модели внешней среды и наборы тестов по сложности соизмеримы с тестируемыми объектами и не гарантированы от ошибок. В результате в программах и данных всегда остаются ошибки. Часть из них выявляется в процессе эксплуатации программных средств в реальной среде. Целью сертификации программных средств является удостоверение их качества, надежности и безопасности применения. Сертификация проводится специальными аттестованными проблемно-ориентированными испытательными лабораториями в наиболее жестких условиях тестирования с возможностью создания критических и стрессовых ситуаций в пределах, заданных эксплуатационной и нормативной документацией. При успешном завершении испытаний на программные средства выдается документ - сертификат соответствия. Он официально подтверждает соответствие функций и характеристик программных средств стандартам, эксплуатационным и нормативным документам, допустимость его применения в определенной области. 2.5. Ресурсы, влияющие на качество программных средствНа выбор методов разработки программных средств влияют доступные ресурсы . Следовательно, они являются косвенными факторами, влияющими на качество программных средств. Виды ресурсов, используемых в жизненном цикле программных средств: 1. Допустимые финансово-экономические затраты (с учетом затрат на разработку, закупку и эксплуатацию системы качества, закупку и эксплуатацию систем автоматизации проектирования программных средств); 2. Допустимая длительность разработки (ограничивает возможности тестирования); 3. Кадры специалистов (оцениваются численностью, тематической и технологической квалификацией); 4. Доступные разработчикам вычислительные ресурсы (аппаратурная оснащенность технологического процесса). 2.6. Системное проектирование программных средствСистемное проектирование является основой высокого качества жизненного цикла программного средства. В середине 80-х годов произошел перелом в технологиях проектирования сложных программных средств, трудоемкость разработки которых составляет десятки и сотни человеко-лет. Основная цель современных технологий создания программных средств - повышение экономической эффективности всего жизненный цикла программного средства. Для этого используются наиболее эффективные методы проектирования, и проводится комплексная автоматизация технологий обеспечения всего жизненного цикла программного средства. Понятие современной технологии включает совокупность методов и инструментальных средств автоматизации технологического процесса разработки и всего жизненного цикла программного средства. Технологический процесс регламентирует порядок организации и проведения работ неавтоматизированного и автоматизированного выполнения технологических операций, направленных на получение в имеющихся организационно-технических условиях готового программного средства с заданными функциями и качеством. Методологической основой любой технологии является типовой технологический процесс . Он отражается набором этапов, операций и используемых методических средств, обеспечивающих ведение разработки на всех стадиях от инициирования проекта и подготовки технического задания до завершения испытаний программного средства. В современных технологиях объединены методы непосредственной разработки программ и данных с методами обеспечения качества и организации управления их созданием с учетом технологических и человеческих факторов. Индустриализация технологий создания программных средств базируется на стандартизации работ процесса разработки программ, их структурного построения и интерфейсов с операционной и внешней средой. Для этого должны быть определены необходимые для достижения конечной цели состав и этапы работ, а также требуемые для их выполнения ресурсы. Требуемое качество программных средств должно анализироваться и формулироваться в начале их жизненного цикла и обеспечить эффективность всех последующих процессов. Системное проектирование сложных программ охватывает период их жизненного цикла, начиная от формулирования первичного замысла на создание или модернизацию программного средства и до начала детального проектирования и разработки программного средства. На рис.2 представлены основные компоненты системного проектирования. Для системного анализа и проектирования требуются специалисты особенно высокой квалификации - системные аналитики , так как их возможные ошибки наиболее сильно отражаются на эффективности и качестве всего жизненного цикла программного средства. Поэтому в современных технологиях особое внимание уделяется анализу и развитию методов и средств автоматизации начальных этапов проектирования. Основная цель системного проектирования - обоснование необходимости, направлений и концепций создания или модернизации программных средств или изменений его качества. В настоящее время на этапе системного проектирования широко используются CASE-средства (Computer Aided Software (System) Engineering). Современные CASE-средства обеспечивают широкие возможности выбора процессов моделирования предметной области, автоматизированного анализа системных требований и выработки первичных требований к проекту программного средства. Для этого разработаны специальные методы и средства описания систем на различных уровнях детализации функций, качества и архитектуры программных средств (диаграммы потоков данных, потоков управления, сущность-связь и др.). Рис. 2 Основные компоненты процесса разработки системного проекта программного средства (ПС) и элементы жизненного цикла (ЖЦ) CASE-средства позволяют также выполнять стратегическое планирование проекта программных средств, обеспечивают наглядное представление каждого плана, оценку возможной трудоемкости и длительности разработки, необходимого числа специалистов и других ресурсов для их реализации. Проведенные оценки проекта позволяют осуществить предварительный выбор основных CASE-методов и инструментальных средств для проведения последующего рабочего проектирования и поддержки всего жизненного цикла. Результатами системного проектирования является системный проект ,техническое задание (ТЗ) и договор на продолжение проектирования или решение о его нецелесообразности и прекращении. 2.7. Статистические характеристики проявления ошибок в программах Особенность выявления ошибок в программах и данных программных средствах - отсутствие полностью определенного эталона. Поэтому при тестировании сначала обнаруживаются вторичные ошибки - результаты проявления некоторых исходных дефектов, называемых первичными ошибками. Вторичные ошибки делятся на три категории: сбои, не отражающиеся существенно на работоспособности программного средства, и приносящие ущерб, которым можно пренебречь; ординарные отказы, ущерб от которых находится в некоторых допустимых пределах, отражающиеся на показателях качества программного средства; катастрофические отказы, ущерб от которых влияет на безопасность применения программного средства. В общем случае по типу первичных ошибок невозможно предсказать категорию вторичной ошибки. Поэтому невозможно ранжировать типы первичных ошибок по степени их влияния на качество программного средства. Наиболее существенными факторами, влияющими на статистические характеристики первичных ошибок, являются: методология, технология и уровень автоматизации обеспечения жизненного цикла программного средства и программирования его компонентов; длительность с начала процесса тестирования и текущий этап разработки программы; объемы и типы тестируемых программных компонентов; методы, виды, уровень автоматизации и адекватность тестирования; виды и достоверность эталонов. Первичные ошибки , в порядке усложнения их обнаружения и увеличения ресурсов, необходимых для их устранения, разделяются на следующие виды: технологические ошибки подготовки машинных носителей и документации, ввода программ в память компьютера и их вывода на отображающие средства; программные ошибки, вследствие неправильной записи исходного текста программ на языке программирования и ошибок трансляции программ в объектный код; алгоритмические ошибки, связанные с неполным формированием необходимых условий решения, некорректной постановкой и спецификацией задач; системные ошибки, обусловленные отклонением функционирования программных средств в реальной системе и характеристик внешних объектов от предполагавшихся при проектировании. В настоящее время существуют математические модели , описывающие основные закономерности изменения суммарного числа обнаруживаемых вторичных ошибок в программах. Модели имеют вероятностный характер и дают удовлетворительные результаты при высоких уровнях интенсивности проявления ошибок. Данные модели предназначены для приближенной оценки: потенциально возможной надежности функционирования комплексов программ в процессе испытаний и эксплуатации; числа случайных ошибок, оставшихся невыявленными в анализируемых программах; времени тестирования, требующегося для обнаружения следующей ошибки в функционирующей программе; времени, необходимого для выявления всех имеющихся ошибок в программных средствах с заданной вероятностью. |