Надёжность ПО (All in one) (2014), страница 5
Описание файла
PDF-файл из архива "Надёжность ПО (All in one) (2014)", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 5 страницы из PDF
Используется для описанияпоследовательностей явлений и их взаимосвязи и зависимости во времениПрименения TLФИЛОСОФИЯ: формализм для прояснения философских вопросов о времени;ЕСТЕСТВЕННЫЙ ЯЗЫК: формализм для определения семантики утверждений вестественных языках, включающих время;ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ: язык для представления знаний, связанных современем (Д. А.
Поспелов (ред) "Представление знаний о времени и пространстве винтеллектуальных системах«, 1987);ТЕХНИКА: для формализации утверждений о свойствах будущего поведениятехнических систем (программ, оборудования, систем управления, …), для описания свойствих поведения во времени после того, как они будут запущеныМы будем рассматривать TL с точки зрения верификации ПО итехнических систем8Примеры темпоральных свойств• p всегда истинно;• p рано или поздно станет всегда ложным;• p всегда рано или поздно станет ложнымхотя бы ещё один раз;• p всегда ведёт к ¬q;• p всегда ведёт к тому, что рано илипоздно станет истинным q.Темпоральные свойства наестественном языке?• нет строгой семантики => возможно множествотрактовок• в части области проверки: «индикатор не горит» ‐ в начальномсостоянии? или это инвариант?• в темпоральной части:• попробуйте объяснить разницу: «от события А до события Б» и «междусобытиями А и Б»• «деньги выплачиваются, как только работа будет выполнена» ‐‐ требуется ливыполнение работы?• значение зависит от контекста:• если нажата кнопка, рано или поздно будет выпущено шасси• от взлёта и до посадки, если нажата кнопка, то рано или поздно будетвыпущено шасси (область проверки вложенного свойства изменилась)• после взлёта, если была нажата кнопка, то до посадки будет выпущеношасси (более строгая формулировка)• зависит от знания и понимания естественного языка,который сложнее LTL.Темпоральная логика LTL• Ясный, лаконичный и непротиворечивый способописания требований к программам;• В явном виде время не присутствует, однакорассуждения ведутся в терминах «никогда»,«всегда», «рано или поздно», которыепредставлены в виде темпоральных операторов.• Мы рассматриваем темпоральную логикулинейного времени – LTL.
С её помощью можноописывать свойства, которым должныудовлетворять линейные последовательностинаблюдаемых состояний – трассы.• LTL предложена Амиром Пнуэли (Amir Pnueli) вконце 70‐х.Формулы LTL• Могут использоваться для описания каксвойств живучести, так и безопасности• LTL = пропозициональная логика+ темпоральные операторы• Формула LTL f ::=• p, q, … ‐ свойства состояний, включая true иfalse,• ( f ) – группировка при помощи скобок,• α f – унарные операторы,• f1 β f2 – бинарные операторы.• Унарные:Операторы LTL• ☐([]) всегда (в будущем),• ◊(<>) рано или поздно,– (Х) в следующем состоянии,– ¬ (!) логическое отрицание;• Бинарные:≡(¬pq)• U (U) пока,• (&&) логическое И,≡(p→q)(q→p)• (||) логическое ИЛИ,• →(->) логическая импликация,– ↔(<->) логическая эквивалентность.•ВыполнимостьформулПоследовательность состояний прохода σs0 , s1, s2 , s3,...• Набор пропозициональных формул p, q:i,i 0, и p, определено sip• Семантика LTL:s0σfs0sisi[] ffsiXfj, j i : s jj, j i : s jsi1 fsisi+1fffСлабый и сильный un†lслабый: sieWfсильный: sieUfsif (sij, j i : s j(Spin)fиk,i k j : skesiee si1 (eWf ))sjeeefПрактически важные следствияe W false true U feWf[]e f[]eeUfppps0pppsisi+Примерыppp1qqppsn‐sn1 | []p | ◊ p | []◊ p | []q | ◊ q | []◊ q | pUq | [](pUq) | [](pWq) | qUp | [](qUp) | qWp | []qWpppps0pppsisi+Примерыppp1qqppsn‐sn1 | []p | ◊ p | []◊ p | []q | ◊ q | []◊ q | pUq | [](pUq) | [](pWq) | qUp | [](qUp) | qWp | []qWpЦикличность истабильность• Свойством цикличности называется любаятемпоральная формула, котораяпредставима в виде ☐◊p, где p – формулана состоянии;• Свойством стабильности называетсялюбая темпоральная формула, котораяпредставима в виде ◊☐p, где p – формулана состоянии.Распространённые LTL‐формулыФормулаОписаниеТип[]pвсегда pинвариант> pрано или поздно pгарантияp <> qесли p, то рано или поздно qоткликp qUrесли p, то q, затем rприоритет[]<> pвсегда рано или поздно будет p>[]pрано или поздно всегда будет pцикличность(прогресс)стабильность(бездействие)корреляция> p <> q если рано или поздноp, то рано или поздно qЭквивалентные преобразованияПримеры темпоральных свойств[]p<>[]!p• p всегда истинно;• p рано или поздно станет всегда ложным;• p всегда рано или поздно станет ложным хотябы ещё один раз;• p всегда ведёт к ¬q;[](p->!q)[]<>!p• p всегда ведёт к тому, что рано или поздностанет истинным q.[](p-> <>q)Правильная интерпретацияформул LTLLTL: >b1 !b2Ub2 []!a31.Пусть b1 всегда ложно,p→q означает, что !pq;формула выполняется.!b1время2.Пусть b1 стало истинно,b1!b2b2формула выполняется.3.4.Пусть b1 стало истинно,затем – b2, однако a3всегда ложно; формулавыполняется.Пусть b1 стало истинно,затем – b2, затем –a3; формула невыполняется.b1время!b2!a3b2b1времяa3!b2!a3времяПравильная интерпретацияформул LTLLTL:1.2.3.>b1 >b2 Пусть b1 и b2 всегдаложно; формулавыполняется.Пусть и b1, и b2становятсяистинными; формулавыполняется.Пусть b1 становитсяистинным, но b2всегда ложно;формула невыполняется.!b1времяb2b1!b2время!b1b1!b1!b2времяПравильная интерпретацияформул LTLLTL: [] >b1 >b2 1.2.3.Пусть b1 и b2 всегдаложно; формулавыполняется.Пусть и b1, и b2бесконечночередуются; формулавыполняется.Пусть b2 становитсяистинным толькоодин раз; формулане выполняется.!b1время!b2b1b2!b1b1!b2!b1!b2b2!b1!b1время!b2b1b2!b1b1!b2!b1!b2времяОписание требований припомощи LTL“p приведёт к q”• p ‐> q• нет темпоральных операторов, т.е.
применяетсятолько к первому состоянию;• выполняется только если !pq в первомсостоянии, остальная трасса не рассматривается;• не подходит;• нужно использовать темпоральные операторы.Описание требований припомощи LTL“p приведёт к q”• [] p ‐> q–правила приоритета! [] применяется только к p;–означает ([]p) ‐> q;–не подходит;–нужно расставить скобки.Описание требований припомощи LTL“p приведёт к q”• [] (p ‐> q)–проверяем условие во всех состояниях, нопричинно‐следственная связь между p и q отсутствует;–выполняется, только если! pq во всехсостояниях;–не подходит;–нужно описать, что p является причиной q.Описание требований припомощи LTL“p приведёт к q”• [] (p ‐> <>q)–уже лучше;–тем не менее, формула выполнима, если q становитсяистинным в том же состоянии, что и p –причинно‐следственная связь отсутствует;–не подходит;–нужно описать, что q не может произойти раньшеследующего шага после p.Описание требований припомощи LTL“p приведёт к q”• [] (p ‐> X(<>q))–практически то, что нужно;–формула выполнима, если p всегда ложно;–возможно, не подходит;–нужно описать, что p обязательно произойдёт иприведёт к q.Описание требований припомощи LTL“p приведёт к q”• [] (p ‐> X(<>q)) && (<>p)–скорее всего, мы имели ввиду именно это;–несколько отличается от первоначального p‐>q;–LTL позволяет выразить множество различныхоттенков свойства;–подойдёт ли такое свойство для моделипараллельной программы?Оператор neXt• Оператор X нужно использовать аккуратно:• с его помощью делается утверждение овыполнимости формулы на непосредственныхпотомках текущего состояния;• в распределённых системах значение оператора Хнеочевидно;• поскольку алгоритм планирования процессовнеизвестен, не стоит формулироватьспецификацию в предположении о том, какоесостояние будет следующим;• стоит ограничиться предположением осправедливости планирования.Свойства, инвариантные кпрореживанию• Пусть φ – трасса некоторого вычислениянад пропозициональными формулами P,– по трассе можно определить, выполняется ли наней темпоральная формула,n1 n 2 n 3– трассу можно записать в виде 1 2 3 ...
,где значения пропозициональных формул накаждом интервале совпадают.•Обозначим E(φ) набор всех трасс,отличающихся лишь значениями n1, n2,n3 (т.е. длиной интервалов)– E(φ) называется расширением прореживанияφ.Расширениепрореживанияx = 1 (y==0) mutex++ printf mutex‐‐ x = 0x==0y==0mutex==0трасса φтрасса φ1E(φ)x==1y==0mutex==0x==1x==1x==1x==1x==0y==0y==0y==0y==0y==0mutex==0 mutex==1 mutex==1 mutex==0 mutex==0p!q!pq!pqpqpqp!pp!pp!qqqq!q!pqp!qСвойства, инвариантныек прореживанию• Свойство φ, инвариантное к прореживанию, либоистинно для всех трасс из E(φ), либо ни дляодной из них:f v E( ), vf• истинность такого свойства зависит от порядка, вкотором пропозициональные формулы меняютсвои значения, и не зависит от длины трассы;• Теорема: все формулы LTL без оператора Xинвариантны к прореживанию.• Более того, в рамках LTL без X можно описать всесвойства, инвариантные к прореживанию.Практические приёмыописания свойств на LTLПрактические приёмы описаниясвойств на LTL• Выполнимость формулы LTL проверяетсятолько для первого состояния в трассе• Темпоральные операторы управляютпроверкой выполнимости своих аргументов• Сложное свойство можно (и нужно!)строить как суперпозицию простых• Суперпозиция темпоральных операторовне ограничивает диапазон действия«вложенного» оператора.Выполнимость формул LTL• Выполнимость формулы LTL определена ипроверяется для одного (первого)состояния трассы• Распространение свойств на другиесостояния управляется темпоральнымиоператорами• Единственный оператор, который можетограничить сверху проверкувыполнимости формулы – Un†lСуперпозиция формул LTL• Составлять сложные формулы LTL нужно методомсуперпозиции простых формул• Внешняя формула задаёт, на каких участкахвычислений будет проверятся подформула• Подформула задаёт свойства, проверяемые дляучастков вычислений• Суперпозиция темпоральных операторов неограничивает диапазон действия «вложенного»оператора.База шаблонов темпоральной логикиhttp://patterns.
projects.cis.ksu.eduЛогические паттерны (LTL/CTL/GIL)встречаемость(occurence)отсутствие(absense)порядок(order, sequence)универсальность(universality)существование(existence)boundedexistenceприоритет(precedence)chainprecedenceотклик(response)База шаблонов темпоральной логикиhttp://patterns. projects.cis.ksu.edu• Для каждого шаблона – пять вариантов формул:имяпример для “absense” и LTLвсегда[](!p)В чём разница?перед r<>r -> (!p U r)после q[](q -> [](!p))между r и q[]((r && !q && <>q) -> (!p U q))после r до q[]((r && !q) -> ((!p U q) || []!p))•База шаблонов темпоральнойлогики http://patterns.Для каждого шаблона– пять вариантов формул:projects.cis.ksu.eduимяпример для “absense” и LTLвсегдаrrqqqперед rпосле qмежду r иqпосле r доqrrqrrrqrrПример свойства, не выразимого наLTL• (p) может быть истинным после выполнениясистемой чётного числа шагов, но никогда не истиннопосле нечётного.• []X(p) не подходитtruep• p && [](p -> X!p) && [](!p -> Xp) – такжене подходит (здесь p всегда истинно послечётных шаговpСпасибо за вниманиеНАДЁЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯЛекция 6:Логика TCTLСредство верификации UPPAALВМиК МГУ им.