Что определяет функциональность программного обеспечения
Функциональность программного обеспечения
Смотреть что такое «Функциональность программного обеспечения» в других словарях:
Спецификация программного обеспечения — Спецификация требований программного обеспечения (англ. Software Requirements Specification, SRS) законченное описание поведения программы, которую требуется разработать. Включает ряд пользовательских сценариев (англ. use… … Википедия
Тестирование программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
Локализация программного обеспечения — Программное обеспечение, локализованное на итальянский язык Локализация программного обеспечения процесс адаптации программного обеспечения к культуре какой либо страны. Как частность перевод … Википедия
Раздувание программного обеспечения — (англ. software bloat, bloatware) тенденция новых программ быть больше по объёму и требовать больше системных ресурсов по сравнению со старыми[источник не указан 267 дней]. Никлаус Вирт в 1996 году написал статью… … Википедия
Аспектно-ориентированная разработка программного обеспечения — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Цикл разработки программного обеспечения — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/30 июля 2012. Пока процесс обсуждения … Википедия
Жизненный цикл программного обеспечения — (ПО) период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации[1]. Этот цикл процесс построения и развития ПО. Содержание 1 Стандарты… … Википедия
Бережливая разработка программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
Функциональность — У этого термина существуют и другие значения, см. Функция. Функциональность (обычно в технике и программном обеспечении) набор возможностей (функций), которые предоставляет данная система или устройство. Техника Приборы и аппараты обычно… … Википедия
ГОСТ Р МЭК 60987-2011: Атомные станции. Системы контроля и управления, важные для безопасности. Требования к разработке аппаратного обеспечения компьютеризованных систем — Терминология ГОСТ Р МЭК 60987 2011: Атомные станции. Системы контроля и управления, важные для безопасности. Требования к разработке аппаратного обеспечения компьютеризованных систем оригинал документа: 3.1 автоматизированная тестовая аппаратура… … Словарь-справочник терминов нормативно-технической документации
Функциональность
Модель внешнего и внутреннего качества программных средств
Как уже отмечалось, стандарт ISО/1ЕС 9126-1:2001 регламентирует иерархические модели оценки внутреннего и внешнего качества программных средств. Данные модели различаются в зависимости от представления качества в жизненном цикле программных средств.
На верхнем уровне модели находится шесть основных характеристик качества. Это функциональность, надежность, практичность, эффективность, сопровождаемость и мобильность.
Подхарактеристики, находящиеся на втором уровне, также стандартизированы. Они могут измеряться внутренними или внешними метриками. Кроме того, имеются и чисто внешние метрики и метрики в использовании.
Рис.7. Модель внешнего и внутреннего качества.
Все метрики, исходя из возможностей их измерения, можно разделить на три категории:
С учетом этого все характеристики качества также разделяются на три группы:
Функциональность
Функциональность (Functionality) — способность программных средств обеспечивать функции, удовлетворяющие установленные потребности заказчиков и пользователей при применении комплекса программ в заданных условиях. Функциональность определяется набором функций и задач, выполняемых программных средств. Для ее подхарактеристик трудно определить меры и шкалы. Поэтому ее метрики отнесены в группу категорийных (описательных) метрик. Подхарактеристики Функциональности приведены на рис.7. Таблица 2 представляет связь подхарактеристик Функциональности и атрибутов программных средств.
Пригодность (Suitability) — способность программного средства обеспечивать набор функций, соответствующий специфическим задачам и целям пользователей..
Правильность/корректность (Accuracy) — способность программного средства обеспечивать правильные или приемлемые результаты и эффекты с необходимой степенью точности расчетных значений. Частными конструктивными критериями корректности являются корректность структуры программ, обработки данных и межмодульных интерфейсов. Корректность программных модулей включает функциональную и конструктивную корректность. Конструктивная корректность модулей заключается в соответствии их структуры общим правилам структурного программирования и конкретным правилам оформления и внутреннего строения программных модулей в данном проекте. Функциональная корректность модулей определяется корректностью обработки данных и получения результатов. Корректность обработки данных также имеет функциональную и конструктивную составляющие. Конструктивная корректность обработки данных определяется правилами их структурирования и упорядочения. Функциональная корректность обработки данных связана с правильностью их преобразования в процессе выполнения программ.
Таблица 2. Функциональность. Подхарактеристики и атрибуты качества
Подхарактеристики (регламентирова нные) | Атрибуты качества (рекомендуемые) |
Пригодность | — соответствие назначения целям применения программных средств;- соответствие требований к функциям назначению программного средства;- соответствие исходной информации требованиям к функциям программного средства;- соответствие состава и содержания выходной информации для потребителей назначению и функциям программного средства;- соответствие структурных характеристик комплекса программ назначению и функциям программного средства. |
Правильность | — соответствие требований к функциям программного средства требованиям к информационной системе;- соответствие требований к функциональным компонентам требованиям к функциям программного средства;- соответствие текстов программ требованиям к функциональным компонентам программного средства;- соответствие объектного кода исходному тексту программ функциональных компонентов программных средств;- степень покрытия тестами возможных маршрутов исполнения программ. |
Способность к взаимодействию | — с операционной системой;- с аппаратной средой;- с внешней средой информационной системы и с пользователями;- между программными компонентами;- между компонентами распределенных информационных систем. |
Защищенность | — соответствие критериям и требованиям защиты от предумышленных угроз безопасности программных средств;- соответствие методам и средствам защиты от проявления случайных ошибок программ и данных;- обеспечение эффективности оперативных методов защиты и восстановления при проявлениях и реализации угроз;- соответствие стандартам и нормативным документам на защиту от различных типов угроз;- обеспечение равнопрочной защиты в соответствии с опасностью угроз и доступностью ресурсов для защиты. |
Корректность структуры комплексов программ определяется корректностью структуры модулей и корректностью объединения модулей в структуру программ.
Способность к взаимодействию (Interoperability) — свойство программных средств и их компонентов взаимодействовать с одной или большим числом указанных систем или компонентов. Данная подхарактеристика зависит от корректности и унифицированности межмодульных интерфейсов. Межмодульные интерфейсы определяются двумя видами связей: по управлению и по информации.
Связи по управлению составляют вызовы программных модулей и возвраты в вызывавшие модули. Связи по информации определяются способом передачи информации между модулями (например, через глобальные переменные, простые параметры, параметры-структуры и т.п.).
Защищенность (Security) — свойство программных средств защищать свои программы и данные. Защищенность включает защиту от злоумышленных разрушений, искажений и хищений программных средств и информации БД.
Защищенность может характеризоваться:
1) величиной предотвращенного ущерба, возможного при проявлении дестабилизирующих факторов и реализации конкретных угроз безопасности;
2) средним временем между возможными проявлениями угроз, нарушающих безопасность, или наработкой на отказы, отражающиеся на безопасности;
3) длительностью восстановления нормальной работоспособности программных средств и информационных систем.
Согласованность функциональности (Functionality compliance) — свойство программных средств соответствовать стандартам, нормативным документам, соглашениям или нормам законов, связанным с функциями, областью применения и защитой программных средств.
Надежность (Reliability) — свойства комплексов программ обеспечивать достаточно низкую вероятность отказа в процессе функционирования программных средств в реальном времени. Надежность программных средств доступна количественным измерениям. Подхарактеристики надежности представлены на рис.7. Таблица 3 содержит примеры возможных мер и шкал измерения основных количественных метрик подхарактеристик Надежности.
Таблица 3. Подхарактеристики Надежности. Возможные меры и шкалы измерения количественных метрик
Отличия программных средств от технических систем с точки зрения оценки их надежности:
Основным принципом классификации сбоев и отказов в программах при отсутствии их физического разрушения является разделение по временному показателю длительности восстановления после любого искажения программ, данных или вычислительного процесса, регистрируемого как нарушение работоспособности. При длительности восстановления, меньшей заданного порога, ошибки и аномалии при функционировании программ относятся к сбоям. При восстановлении, превышающем по длительности пороговое значение, происходящее искажение соответствует отказу.
Высокую надежность программ определяет быстрое реагирование на искажения программ, данных или вычислительного процесса и восстановление работоспособности за время меньшее, чем порог между сбоем и отказом.
Завершенность (Maturity) — свойство программных средств не попадать в состояние отказов вследствие ошибок в программах и данных. Завершенность характеризуется наработкой на отказ при отсутствии автоматического восстановления (таблица 3). При этом учитываются только отказы вследствие проявившихся ошибок в ПС.
Отказоустойчивость (Fault tolerance) — свойство программных средств поддерживать заданный уровень качества функционирования в случаях проявления ошибок или нарушения установленного интерфейса. Для реализации данного свойства в программные средства должна вводиться временная, программная и информационная избыточность, реализующая оперативное обнаружение ошибок функционирования, их идентификацию и автоматическое восстановление (рестарт) нормального функционирования программного средства. Отказоустойчивость определяется наработкой на отказ при наличии автоматического рестарта и долей ресурсов, используемых для рестарта (таблица 3).
Восстанавливаемость (Recoverability) — свойство программного средства в случае отказа восстанавливать заданный уровень качества функционирования, поврежденные программы и данные. Основные показатели процесса восстановления:
Согласованность надежности (Reliability compliance) — свойство программного средства соответствовать стандартам и нормативным документам, связанным с надежностью.
Дата добавления: 2015-04-11 ; просмотров: 30 | Нарушение авторских прав
ОБЕСПЕЧЕНИЕ ФУНКЦИОНАЛЬНОСТИ И
Функциональность и надежность как обязательные критерии качества программного средства. Обеспечение завершенности программного средства. Защитное программирование и обеспечение устойчивости программного модуля. Виды защиты и обеспечение защищенности программного средства.
11.1. Функциональность и надежность как обязательные критерии качества программного средства
На предыдущих лекциях мы рассмотрели все этапы разработки ПС, кроме его аттестации. При этом мы не касались вопросов обеспечения качества ПС в соответствии с его спецификацией качества (см. лекцию 4). Правда, занимаясь реализацией функциональной спецификации ПС, мы тем самым обсудили основные вопросы обеспечения критерия функциональности. Объявив надежность ПС основным его атрибутом (см. лекцию 1), мы выбрали предупреждение ошибок в качестве основного подхода для обеспечения надежности ПС (см. лекцию 3) и обсудили его воплощение на разных этапах разработки ПС. Таким образом, проявлялся тезис об обязательности функциональности и надежности ПС как критериев его качества.
Тем не менее, в спецификации качества ПС могут быть дополнительные характеристики этих критериев, обеспечение которых требуют специального обсуждения. Этим вопросам и посвящена настоящая лекция. Обеспечение других критериев качества будет обсуждаться в следующей лекции.
Ниже обсуждаются обеспечение примитивов качества ПС, выражающих критерии функциональности и надежности ПС.
11.2. Обеспечение завешенности программного средства
Завершенность ПС является общим примитивом качества ПС для выражения и функциональности и надежности ПС, причем для функциональности она является единственным примитивом (см. лекцию 4).
Функциональность ПС определяется его функциональной спецификацией. Завершенность ПС как примитив его качества является мерой того, в какой степени эта спецификация реализована в разрабатываемом ПС. Обеспечение этого примитива в полном объеме означает реализацию каждой из функций, определенной в функциональной спецификации, со всеми указанными там деталями и особенностями. Все рассмотренные ранее технологические процессы показывают, как это может быть сделано.
Достигнутый при обеспечении функциональности ПС уровень его завершенности на самом деле может быть не таким, как ожидалось, из-за ошибок, оставшихся в этом ПС. Можно лишь говорить, что требуемая завершенность достигнута с некоторой вероятностью, определяемой объемом и качеством проведенного тестирования. Для того чтобы повысить эту вероятность, необходимо продолжить тестирование и отладку ПС. Однако, оценивание такой вероятности является весьма специфической задачей, которая пока еще ждет соответствующих теоретических исследований.
11.3. Обеспечение точности программного средства
11.4. Обеспечение автономности программного средства
Вопрос об автономности программного средства решается путем принятия решения о возможности использования в разрабатываемом ПС какого-либо подходящего базового программного обеспечения. Надежность имеющегося в распоряжении разработчиков базового программного обеспечения для целевого компьютера может не отвечать требованиям к надежности разрабатываемого ПС. Поэтому от использования такого программного обеспечения приходиться отказываться, а его функции в требуемом объеме приходится реализовывать в рамках разрабатываемого ПС. Аналогичное решение приходится принимать при жестких ограничениях на используемые ресурсы (по критерию эффективности ПС). Такое решение может быть принято уже в процессе разработки спецификации качества ПС, иногда – на этапе конструирования ПС.
11.5. Обеспечение устойчивости программного средства
11.6. Обеспечение защищенности программных средств
Различают следующие виды защиты ПС от искажения информации:
11.6.1 Защита от сбоев аппаратуры. В настоящее время этот вид защиты является не очень злободневной задачей (с учетом уровня достигнутой надежности компьютеров). Но все же полезно знать ее решение. Это обеспечивается организацией т.н. “двойных или тройных просчетов”. Для этого весь процесс обработки данных, определяемый ПС, разбивается по времени на интервалы так называемыми “опорными точками”. Длина этого интервала не должна превосходить половины среднего времени безотказной работы компьютера. В начале каждого такого интервала во вторичную память записывается с некоторой контрольной суммой копия состояния изменяемой в этом процессе памяти (“опорная точка”). Для того, чтобы убедиться, что обработка данных от одной опорной точки до следующей (т.е. один “просчет”) произведена правильно (без сбоев компьютера), производится два таких “просчета”. После первого “просчета” вычисляется и запоминается указанная контрольная сумма, а затем восстанавливается состояние памяти по опорной точке и делается второй “просчет”. После второго “просчета” вычисляется снова указанная контрольная сумма, которая затем сравнивается с контрольной суммой первого “просчета”. Если эти две контрольные суммы совпадают, второй просчет считается правильным, в противном случае контрольная сумма второго “просчета” также запоминается и производится третий “просчет” (с предварительным восстановлением состояния памяти по опорной точке). Если контрольная сумма третьего “просчета” совпадет с контрольной суммой одного из первых двух “просчетов”, то третий просчет считается правильным, в противном случае требуется инженерная проверка компьютера.
11.6.2. Защита от влияния “чужой” программы. При появлении мультипрограммного режима работы компьютера в его памяти может одновременно находиться в стадии выполнения несколько программ, попеременно получающих управление в результате возникающих прерываний (т.н. квазипараллельное выполнение программ). Одна из таких программ (обычно: операционная система) занимается обработкой прерываний и управлением мультипрограммным режимом. Здесь под “чужой” программой понимается программа (или какой-либо программный фрагмент), выполняемая параллельно (или квазипараллельно) по отношению к защищаемой программе (или ее фрагменту). Этот вид защиты должна обеспечить, чтобы эффект выполнения защищаемой программы не зависел от того, какие программы выполняются параллельно с ней, и относится, прежде всего, к функциям операционных систем.
Различают две разновидности этой защиты:
Защита от отказов “чужой” программы означает, что на выполнение функций защищаемой программой не будут влиять отказы (проявления ошибок), возникающие в параллельно выполняемых программах. Для того чтобы управляющая программа (операционная система) могла обеспечить защиту себя и других программ от такого влияния, аппаратура компьютера должна реализовывать следующие возможности:
Тогда никто не помешает ей выполнять любые реализованные в ней функции защиты других программ (в том числе и доступа к внешней информационной среде). Для облегчения решения этой задачи часть такой программы помещается в постоянную память. Наличие временнуго прерывания позволяет управляющей программе защититься от зацикливания в других программах (без такого прерывания она могла бы просто лишиться возможности управлять).
Защита от злонамеренного влияния “чужих” программ означает, что изменение внешней информационной среды, предоставленной защищаемой программе, со стороны другой, параллельно выполняемой программы будет невозможно или сильно затруднено без ведома защищаемой программы. Для этого операционная система должна обеспечить подходящий контроль доступа к внешней информационной среде. Необходимым условием обеспечение такого контроля является обеспечения защиты от злонамеренного влияния “чужих” программ хотя бы самой операционной системы. В противном случае такой контроль можно было бы обойти путем изменения операционной системы со стороны “злонамеренной” программы.
Этот вид защиты включает, в частности, и защиту от т.н. “компьютерных вирусов”, под которыми понимают фрагменты программ, способные в процессе своего выполнения внедряться (копироваться) в другие программы (или в отдельные программные фрагменты). “Компьютерные вирусы”, обладая способностью к размножению (к внедрению в другие программы), при определенных условиях вызывают изменение эффекта выполнения “зараженной” программы, что может привести к серьезным деструктивным изменениям ее внешней информационной среды. Операционная система, будучи защищенной от влияния “чужих” программ, может ограничить доступ к программным фрагментам, хранящимся во внешней информационной среде. Так, например, может быть запрещено изменение таких фрагментов любыми программами, кроме некоторых, которые знает операционная система, или, другой вариант, может быть разрешено только после специальных подтверждений программы (или пользователя).
Различают две разновидности такой защиты:
Простая защита от несанкционированного доступа обеспечивает защиту от использования ресурсов ПС пользователем, которому не предоставлены соответствующие права доступа или который указал неправильный пароль. При этом предполагается, что пользователь, получив отказ в доступе к интересующим ему ресурсам, не будет предпринимать попыток каким-либо несанкционированным образом обойти или преодолеть эту защиту. Поэтому этот вид защиты может применяться и в ПС, которая базируется на операционной системе, не обеспечивающей полную защиту от влияния “чужих” программ.
Защититься от этого можно следующим образом. Пароль (секретное слово или просто секретное целое число) X должен быть известен только владельцу защищаемых прав доступа и он не должен храниться во внешней информационной среде ПС. Для проверки прав доступа во внешней информационной среде ПС хранится другое число Y=F(X), однозначно вычисляемое ПС по предъявленному паролю X. При этом функция F может быть хорошо известной всем пользователям ПС, однако она должна обладать таким свойством, что восстановление слова X по Y практически невозможно: при достаточно большой длине слова X (например, в несколько сотен знаков) для этого может потребоваться астрономическое время. Такое число Y будем называть электронной ( компьютерной ) подписью владельца пароля X (а значит, и защищаемых прав доступа).
Эта позволяет получателю сообщения однозначно установить, что текст сообщения R принадлежит владельцу пароля X.
Упражнения к лекции 11
1 1.1. Что такое защитное программирование?
11.2. Какие виды защиты программного средства от искажения информации Вы знаете?
11.3. Какие требования предъявляются к компьютеру, чтобы можно было обеспечить защиту программы от отказов другой программы в мультипрограммном режиме?
11.4. Что такое компьютерная подпись?
11.5. Что такое компьютерная печать?