Лекция 10. Определение необходмого уровня надёжности и построение функционального среза (Лекции), страница 2
Описание файла
Файл "Лекция 10. Определение необходмого уровня надёжности и построение функционального среза" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Стратегии уменьшениячисла отказов программ4 основных стратегии:35НедопущениеУстранениеНевосприимчивостьПрогнозирование35Недопущение отказовИзбежание отказов по построению.Действия:Эффективность применения:36Перепроверка требованийПересмотр архитектуры и очистка кодаИспользование стандартов (ISO 9000-3, etc.)Использование CASE-средств со встроеннымимеханизмами контроляПропорция отказов после выполненияуказанных действий не меняется.36Устранение отказовОшибки в коде устраняются с помощьюверификации и валидации.Действия:Эффективность применения:37Семантическая проверка кодаТестированиеУменьшение числа ошибок в коде.Уменьшение числа отказов ПО.37Тестирование vs.ИнспектированиеИнспеция – детальное изучениеспецификаций, архитектуры проекта, егокода, … Инспектирование эффективнеетестирования более чем в 20 раз Пересмотр кода позволяет найти в 2 разабольше ошибок, чем его тестирование 80% ошибок находятся во времяинспектирования Инспектирование уменьшает стоимость3838 разработки в 10 разМожно ли заменить тестированиеинспектированием?НЕТ.
Иногда инспектирование непозволяет получить информацию,доступную с помощью тестирования:39Реальное поведения системыПоказатели производительности,удобства использования, …Показатель надёжности системы39Невосприимчивость котказамОбеспечение сервиса несмотря наотказы ПО с помощью избыточностиДействия:Эффективность применения:40Проектирование и обеспечениеизбыточностиУменьшение числа отказовсистемы из-за её избыточности40Прогнозирование отказовПостроение оценки вероятностивозникновения отказовДействия:Эффективность применения:41Построение модели надёжностиСбор информации об отказахАнализ результатовУменьшение интенсивностивозникновения ошибок за счётуправления надёжностью41SRE: процесс• 5 шагов в SREпроцессе:– Определить необходимыйуровень надежности– Построитьфункциональный срез– Подготовиться ктестированию– Выполнить тестирование– Проанализировать данныеоб ошибках ииспользовать их дляпринятия решенийDefine NecessaryReliabilityDevelopOperational ProfilePrepare for TestExecute TestApply Failure Datato Guide Decisions42ПрофильПрофиль - набор альтернативных сценариеввместе с вероятностями их выполненияПример:Если сценарий A выполняется в 30% случаев,сценарий B – в 20%, а С – в 50%, то профиль имеетследующий вид:A0.3B0.2C0.543Функциональный срезФункциональный срез – полный набор сценариев выполнениявместе с их вероятностями (во время работы заданного ПО)Функциональный срез описывает распределение событий,которые происходят во время работы программыФункциональный срез программы отражает то, как она будетиспользоваться на практикеВероятностьФункциональный среззависит от пользователя,времени, используемойфункциональности т.д.Работа44Функциональный срезФункциональныйсрез – полныйнабор операций(имя и частота)и вероятностей ихиспользованияПример:45Почему это полезно?Профиль функционирования программы даётинформацию о том, как её будут использовать, ипозволяет разработчикам сфокусироваться на решениидействительно актуальных задачС помощью профиля разработчики могут:Увеличить эффективность разработки и тестирования.Сделать тесты более реалистичными.С точки зрения эффективного управления разработкувсегда нужно начинать с изучения приложенийпрограммы и составления соответствующего профиляфункционирования46Операция (1)Неформальное определение:Операция представляет собой задачу,выполняемую программой в заданномокружении.
Причём результат выполнениязадания должен быть обозримым дляпользователяБолее формальное определение:Операция – крупное логическоекраткосрочное задание, выполнение которогозначительно отличается от других заданий47Операция (2)Крупное означает, что операция должнаотноситься к функциональным требованиям,предъявляемым к разрабатываемой программе, ане к подзадаче, решаемой в её реализацииОперация – логическая концепция в том смысле,что она может включать набор программных,аппаратных и пользовательских действий48Операция (3)Кратковременность означает, что принормальном функционировании программы, онаможет выполнять тысячи операций в часЗначительно отличающееся выполнениеозначает, что с высокой долей вероятности отказвнутри операции не произойдёт при выполнениидругих операций49Прогон и его типы (1)Прогон - наименьшая часть работы,которая может быть вызвана внешнимвоздействиемПримеры:Звонок в телекоммуникационной системеКоманда в интерактивном приложенииТранзакция в интернет-магазинеetc.50Прогон и его типы (2)Прогоны связаны со входным состоянием,включающим полный набор входныхпеременных (любых данных, полученных извне)Входные переменные могут быть:Частично неизвестными на стадии проектированияпрограммыСкорее логическими, чем физическими[например адрес в памяти]Прогоны с одинаковым входным состояниемпринадлежат к прогона одного типа51Операции vs.
Функции (1)Функция, заданная требованиями к программе,потенциально может стать операцией илинабором операций на стадии её разработкиФункция – группа типов прогона, заданныхтребованием к программе и наблюдаемыхпользователемОперация – группа типов прогона заданных вовремя разработки программы ирассматриваемых с точки зрения еёпроектирования52Операции vs. Функции (2)АнализКонцентрацияна пониманиипроблемыИдеальныйслучайПоведениеПример:ПроектированиеПеремещениеКонцентрация наобъекта в памятипонимании(функция) на стадиирешенияопределенияБлизко к реальномутребований можеткодупревратиться вОперации иоперации создания,атрибутыкопирования иЖизненный циклудаления на стадииобъектовразработки53Как искать операции?Реализация случаевиспользованияДополнительныеспецификации ГлоссарийОперацииСпецификацияархитектурыМодельиспользованияРазработкаархитектурыКлассыПодсистемыИнтерфейсыСигналыСобытияРеализация случаевиспользования(разработка)УправлениеСущностьГраницыАналитическиеКлассы54ПредставлениеОписывает функциональныйпрофиль:Табличное представление Графическое представление55Representation: TabularТабличное представление включает списокимён операций и вероятностям ихвозникновенияТаблица из Reliability Engineering Handbook56Графическое представлениеГрафическоепредставлениесостоит из:Узлов – атрибутовоперацийВетвей – значенияатрибутовГрафическое представлениеВероятностьможет быть получено изиспользования:табличного и наоборот.ассоциируется с ветвями57Режим функционированияРежим функционирования – шаблониспользования системы и/или условийокружения которые нужно различать во времятестирования, так как они могут приводить котказамПример: пиковые и свободные режимы работытелекоммуникационной системыОдна и та же операция может использоваться вразных режимах функционирования с разнымивероятностямиПрофиль функционирования системы долженвключать все важные режимыфункционирования58Сколько это стоит?Средняя стоимость построения профиляфункционирования для проекта среднегоразмера (10 разработчиков, 100 тыс.
сток кода,интервал разработки в 18 месяцев) составляетоколо 1 человеко-месяцаОдин и тот же профиль функционированияможет быть использован (с минимальнымиизменениями) разными версиями однойпрограммы без увеличения стоимости59Построение профиляфункционирования1.2.3.4.5.6.Выявить режимы функционированияВыявить инициатора операцииВыбрать представлениеПостроить списокфункций и операцийОпределить частоты использованиякаждой операцииЗадать вероятности использованиякаждой операции, разделив частоты наобщее число вызовов601. Режим функционирования (1)Определить все возможные режимыфункционирования и выбрать только наиболееважные на основании таких критериев как:Время (время года, день недели, время дня)Тип пользователя (покупатель или пользователь)Опыт пользователя (новичок или эксперт)Условия работы (режим перегрузки, обычный)Ограничения функциональностиКритичность (режим остановки атомных станций)611.
Режим функционирования (2)Примеры:Время (часы пика и простоя телефонной станции)Различные типы пользователей (пользователь,системный администратор, …)Опыт пользователя (использование различных наборовкоманд новичками и экспертами в системередактирования видео)Ограничения функциональности (такие операции каквызов справки в банкомате или защита соединения втранзакционной системе должны быть доступнывсегда)622. Инициаторы операцийВозможные инициаторы(субъекты из схем случаев использования):Пользователи систем (любой, кто инициируетсобытие, включая системного администратора ипользователей)Внешние системы (другие системы,взаимодействующие с разрабатываемой системой)Собственные подсистемы (задачи поддержки иадминистрирования: аудит, резервное копированиеданных, …)633.