1 / 18

„…hogy ne robbanjon fel…”

x <-- findmax(s, n) = PRE n : 1..MAXINT-1 & s : seq(MININT..MAXINT) & size(s) >= n THEN ANY y WHERE y : 1..n & !z.(z : 1..n => s(y) >= s(z)) THEN x := y END END. #include <iostream> #include <stdlib.h> using namespace std; int main() { int k, m ;

gizela
Download Presentation

„…hogy ne robbanjon fel…”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. x <-- findmax(s, n) = PRE n : 1..MAXINT-1 & s : seq(MININT..MAXINT) & size(s) >= n THEN ANY y WHERE y : 1..n & !z.(z : 1..n => s(y) >= s(z)) THEN x := y END END • #include <iostream> • #include <stdlib.h> • using namespace std; • int main() • { • int k, m ; • cout << "A 2*x+3 fuggveny ertekeinek az osszege m-tol, k-darab\n" ; • cout << "az m erteke: "; cin >> m; cout << "a k erteke: "; cin >> k; • int sum = 0; • for (int i=m; i<=m+k; i++){ • sum += 2*i+3; • } • cout << "\nA 2*x+3 fuggveny ertekek osszege " << m << "-tol " << k << "-darab: " << sum << "\n"; • return 0; • } „…hogy ne robbanjon fel…” Neumann Nap 2005 ELTE-IK-PSZT Dr. Istenes Zoltán ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1 => u(i) <= u(i + 1)) THEN t := u END

  2. Csak egy kis C++ program…(1) #include <iostream> #include <stdlib.h> using namespace std; int main() { int k, m, sum ; cout << "A 2*x+3 fv. értékeinek az összege m-tól, k-darab"; cout << "m erteke: "; cin >> m; cout << "k erteke: "; cin >> k; for (int i=m; i<=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << m+k << "-ig: " << sum return 0;} első teszteléskor kiderül, „csak elfelejtettük”… sum = 0; szemantikai hiba, „mindenki tudja”… ; fordító jelzi, szintaktikai hiba

  3. Csak egy kis C++ program…(2) #include <iostream> #include <stdlib.h> using namespace std; int main() { int k, m , sum=0 ; cout << "A 2*x+3 fv. értékeinek az összege m-tól, k-darab"; cout << "m erteke: "; cin >> m; cout << "k erteke: "; cin >> k; for (int i=m; i!=m+k; i++){ sum += 2*i+3;} cout << "A 2*x+3 fv. értékek összege " << m << "-tól " << k << " darab: " << sum; return 0;}

  4. „Ha egy változó túlcsordul…” e) At 36.7 seconds after H0 (approx. 30 seconds after lift-off) the computer within the back-up inertial reference system, which was working on stand-by for guidance and attitude control, became inoperative. This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer. ARIANE 5 - Flight 501 Failure - Report by the Inquiry Board for (int i=m; i!=m+k; i++){ sum += 2*i+3;}

  5. B módszer (the B method) komplett fejlesztőeszközök, B specifikációkat szerkeszteni, ellenőrizni, bizonyítandó tételeket készíteni és azokat bizonyítani lehet velük. B-Toolkit / Atelier-B van formális szintaktikája és formális szemantikája kifejezhetőek a különféle tulajdonságok és feltételek, bemutathatóak azok bizonyítása illetve működése formális "A B egy módszer szoftverrendszerek tervezésére és megvalósítására" J.R. Abrial

  6. Bizonyítások „láncolata”… Absztrakt gép specifikáció Egy szinten belüli „koherencia” Finomítás 1. Finomítás ... Finomítás n. „megfelelés” az előző szintnek Megvalósítás C/Java forráskód

  7. implementáció specifikáció

  8. „Halmaz, típus, helyettesítés” INVARIANT beir  TAN INITIALISATION beir:=  OPERATIONS kiirat(diak)= PRE diakbeir THEN beir:=beir-{diak} END; Az invariánst „megőrzi” az inicializálás… [beir:= ]beir  TAN  TAN A művelet „formális” definiciója: [PRE P THEN G END] Q P  [G] Q Az invariánst „megőrzi” a művelet… beir  TAN  diak  beir  [PRE diak  beir THEN beir:=beir-{diak} END]beir  TAN beir  TAN  diak  beir  diak  beir  [beir:=beir-{diak}]beir  TAN beir  TAN  diak  beir  [beir:=beir-{diak}]beir  TAN beir  TAN  diak  beir  beir-{diak}  TAN

  9. B módszer alkalmazása Párizsi metro 14-es vonal program által irányított… félformális és formális módszerek rendszer modellezés UML tervminták „Formális módszerek a szoftvertechnológiában” 100.000 sor B specifikáció 87.000 sor ADA kód 28.000 bizonyított tétel

  10. Összefoglalás igény a „nagy” és „biztonságos” informatikai rendszerek iránt formális eszközök/módszerek szükségesek a biztonságkritikus és a bizonyíthatóan helyes rendszerek tervezésekor B módszer formális módszerek alkalmazása The B method : http://vl.fmnet.info/b/ A tárgy weboldala : http://quasar.inf.elte.hu/oktatas/formalis Az előadás : http://quasar.inf.elte.hu/egyeb/rendezvenyek/neumann_nap_2005

More Related