Niezawodne Systemy Informatyczne

Podobne dokumenty
Niezawodne Systemy Informatyczne

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Wstęp do Informatyki i Programowania

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Niezawodne Systemy Informatyczne. Systemy krytyczne. Pewność. Pewność (1g) Specyfikowanie systemów krytycznych (1g)

Jerzy Nawrocki, Wprowadzenie do informatyki

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 2. Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Helena Boguta, klasa 8W, rok szkolny 2018/2019

Metodyki projektowania i modelowania systemów Cyganek & Kasperek & Rajda 2013 Katedra Elektroniki AGH

PRZEWODNIK PO PRZEDMIOCIE

PLANY I PROGRAMY STUDIÓW

Modelowanie procesów współbieżnych

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Egzamin / zaliczenie na ocenę*

Dynamika maszyn - opis przedmiotu

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

KARTA MODUŁU KSZTAŁCENIA

kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) angielski semestr 6 semestr letni (semestr zimowy / letni)

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

SYLABUS/KARTA PRZEDMIOTU

PRZEWODNIK PO PRZEDMIOCIE

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Financial results of Apator Capital Group in 1Q2014

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Aplikacje WWW i PHP - opis przedmiotu

Inżynieria oprogramowania - opis przedmiotu

PRZEWODNIK PO PRZEDMIOCIE. Bezpieczeństwo i higiena pracy

archivist: Managing Data Analysis Results

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

KARTA PRZEDMIOTU. 1. Nazwa przedmiotu: ZARZĄDZANIE SYSTEMAMI INFORMATYCZNYMI. 2. Kod przedmiotu: ZSI

Program kształcenia i plan studiów podyplomowych: Zarządzanie projektami

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Podstawy modelowania programów Kod przedmiotu

Karta przedmiotu studiów podyplomowych

OpenPoland.net API Documentation

Wprowadzenie do programowania i programowanie obiektowe

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Opis efektów kształcenia dla modułu zajęć

Systemy Operacyjne. Ćwiczenia

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Wytwórstwo oprogramowania. michał możdżonek

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

KARTA MODUŁU / KARTA PRZEDMIOTU A. USYTUOWANIE MODUŁU W SYSTEMIE STUDIÓW B. OGÓLNA CHARAKTERYSTYKA PRZEDMIOTU. Kod modułu

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

Informatyczne podstawy projektowania Kod przedmiotu

Opis programu studiów

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Systemy zdarzeniowe - opis przedmiotu

Procesy i systemy dynamiczne Nazwa przedmiotu SYLABUS A. Informacje ogólne

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Karta Opisu Przedmiotu

PLANY I PROGRAMY STUDIÓW

Projektowanie układów biomechatronicznych Kod przedmiotu

PRZEWODNIK PO PRZEDMIOCIE MATEMATYKA II E. Logistyka (inżynierskie) niestacjonarne. I stopnia. dr inż. Władysław Pękała. ogólnoakademicki.

Program kształcenia i plan studiów podyplomowych: Zarządzanie projektami


E-1IZ s2. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

KARTA PRZEDMIOTU. 2. Kod przedmiotu: ZSI. 1. Nazwa przedmiotu: ZARZĄDZANIE SYSTEMAMI INFORMATYCZNYMI

Podstawy informatyki i algorytmizacji. Wykład 1 organizacja zajęć

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence

Projektowanie aplikacji na platformie Android Kod przedmiotu

E-I2SG-2010-s1. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

MS Visual Studio 2005 Team Suite - Performance Tool

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2017/2018

Akademia Morska w Szczecinie. Wydział Mechaniczny

Zajęcia P2AM. Analizator składniowy (Flex + Bison, Linux)

PRZEWODNIK PO PRZEDMIOCIE

Pomiary i analiza biosygnałów

ZAPOTRZEBOWANIE NA PROGRAMY KOMPUTEROWE W ROLNICTWIE NA PRZYKŁADZIE GOSPODARSTW WOJEWÓDZTWA MAŁOPOLSKIEGO

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Data wydruku: Dla rocznika: 2015/2016. Opis przedmiotu

Wykłady z fizyki FIZYKA III

Przedmiot: Mechanika z Wytrzymałością materiałów

PRZEWODNIK PO PRZEDMIOCIE. Projektowanie procesów. Logistyka (inżynierska) niestacjonarne. I stopnia. dr Aleksandra Grabińska.

WYKAZ PRÓB / SUMMARY OF TESTS

Opis efektów kształcenia dla modułu zajęć

KARTA PRZEDMIOTU. Zaliczenie na ocenę

Metody optymalizacji Optimization methods Forma studiów: stacjonarne Poziom studiów II stopnia. Liczba godzin/tydzień: 1W, 1Ć

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Karta Opisu Przedmiotu

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

PRZEWODNIK PO PRZEDMIOCIE

SYLABUS/KARTA PRZEDMIOTU

INP002018W, INP002018L

Program studiów podyplomowych OCHRONA PRZECIWPORAŻENIOWA I PRZECIWPOŻAROWA W INSTALACJACH ELEKTRYCZNYCH

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016

Stacjonarne Wszystkie Katedra Informatyki Stosowanej Dr inż. Marcin Detka. Podstawowy Obowiązkowy Polski Semestr pierwszy. Semestr letni Brak Nie

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Niezawodne Systemy Informatyczne Przemysław Kobylański Katedra Informatyki (W11/K2) Politechnika Wrocławska Na podstawie J.W. McCormick, P.C. Chapin. Building High Integrity Applications SPARK K.R. Apt, F.S. de Boer, E-R Olderog Verification of Sequential and Concurrent Programs I. Sommerville Inżynieria oprogramowania Plan wykładu Wstęp (2g) SPARK (14g) Metody formalne (6g) Wstęp MForm Kolokwium SPARK SysKryt Przegląd 13% Systemy krytyczne (4g) 4 20% Kolokwium (2g) Przegląd innych narzędzi (2g) Literatura podstawowa J.W. McCormick, P.C. Chapin. Building High Integrity Applications SPARK. Cambridge University Press, 2015. K.R. Apt, F.S. de Boer, E-R Olderog. Verification of Sequential and Concurrent Programs. Springer, 2009. I. Sommerville. Inżynieria oprogramowania. WNT, Warszawa, 2003.

Narzędzia SPARK 2014 GNATprove Why3 Altergo CVC4 Z3 Zasady zaliczenia Ocena zależy od jest średniej ważonej uzyskanych punktów z laboratorium (0-100 z wagą 40%) i kolokwium (0-100 z wagą 60%). Aby zaliczyć grupę kursów należy z laboratorium otrzymać co najmniej 50 punktów i z kolokwium co najmniej 50 punktów. Listy zadań na laboratorium należy rozwiązywać samodzielnie. Kolokwium, które odbędzie się na przedostatnim wykładzie, obejmuje materiał omówiony na wykładach. Więcej na stronie WWW kursu. Wyliczanie oceny końcowej Pre => LAB >= 0.0 and LAB <= 100.0 and KOL >= 0.0 and KOL <= 100.0, Contract_Cases => ( 0.4*LAB + 0.6*KOL < 50.0 => ZAL = 2.0, 0.4*LAB + 0.6*KOL < 60.0 => ZAL = 3.0, 0.4*LAB + 0.6*KOL < 70.0 => ZAL = 3.5, 0.4*LAB + 0.6*KOL < 80.0 => ZAL = 4.0, 0.4*LAB + 0.6*KOL < 90.0 => ZAL = 4.5, others => ZAL = 5.0)

Przykład Poszukiwanie największej wartości w tablicy. -- wersja 1 find.ads specyfikacja Post => (for all I in V'Range => V(I) <= Max Result); package body Find SPARK_Mode is is find.adb treść -- wersja 2 Post => (for all I in V'Range => V(I) <= Max Result) and package body Find SPARK_Mode is is gnatprove: postcondition might fail (e.g. V First = 1 and V Last = 0) -- wersja 3 Pre => V Length > 0, package body Find SPARK_Mode is is gnatprove: postcondition might fail (e.g. Max Result = 2147483647 and V = (others => 0) and V First = 0 and V Last = 0)

-- wersja 4 Pre => V Length > 0, package body Find SPARK_Mode is is gnatprove: overflow check might fail (e.g. V First = 2147483647) -- wersja 5 Pre => V Length > 0 and V First < Integer Last, package body Find SPARK_Mode is is gnatprove: postcondition might fail cannot prove V(I) <= Max Result -- wersja 6 Pre => V Length > 0 and V First < Integer Last, package body Find SPARK_Mode is is pragma Loop_Invariant (for all J in V First.. I - 1 => V(J) <= M); pragma Loop_Invariant (for some J in V First.. I - 1 => V(J) = M);

Prosty test: Ada.Integer_Text_IO; Find; main.adb procedure Main is Ada.Integer_Text_IO.Put (Find.Max ((3, 1, 5, 2, 7, 4, 3, 1))); end Main; Opis projektu: project Find is for Source_Dirs use ("src"); for Object_Dir use "obj"; for Main use ("main.adb"); find.gpr all: gprbuild -p kompilacja prove: gnatprove -P find.gpr -j0 weryfikacja Makefile clean: gprclean gnatprove -P find.gpr --clean sprzątanie $ make prove gnatprove -P find.gpr -j0 Phase 1 of 2: generation of Global contracts... Phase 2 of 2: flow analysis and proof... Summary logged in obj/gnatprove/gnatprove.out $ cat obj/gnatprove/gnatprove.out Summary of SPARK analysis ========================= SPARK Analysis results Total Flow Interval CodePeer Provers Justified Unproved Data Dependencies....... Flow Dependencies....... Initialization 4 4..... Non-Aliasing....... Run-time Checks 10... 10 (CVC4).. Assertions 4... 4 (CVC4).. Functional Contracts 1... 1 (CVC4).. LSP Verification....... Total 19 4 (21%).. 15 (79%).. Analyzed 2 units in unit main, 0 subprograms and packages out of 1 analyzed Main at main.adb:4 skipped in unit find, 2 subprograms and packages out of 2 analyzed Find at find.ads:1 flow analyzed (0 errors, 0 checks and 0 warnings) and proved (0 checks) Find.Max at find.ads:5 flow analyzed (0 errors, 0 checks and 0 warnings) and proved (15 checks)