SpecVer - metodyka tworzenia oprogramowania integrująca
Transkrypt
SpecVer - metodyka tworzenia oprogramowania integrująca
Zakład Zaawansowanych Technik Informacyjnych (Z-6) SpecVer - metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów Praca nr 06300067 Warszawa, grudzień 2007 SpecVer – metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów Praca nr 06300067 Słowa kluczowe: inżynieria oprogramowania, środowiska wspomagające tworzenie oprogramowania, programowanie wysoce zintegrowane, specyfikacja, weryfikacja, logika algorytmiczna. Kierownik pracy: prof. dr hab. Andrzej Salwicki Wykonawca pracy: prof. dr hab. Andrzej Salwicki Kierownik Zakładu: dr inż. Janusz Granat © Copyright by Instytut Łączności, Warszawa 2007 Spis Treści 1. Wstęp 2. Prace opublikowane a. G. Mirkowska, A. Salwicki, O. Świda, SpecVer – the methodology integrating specification, programming and verification, invited talk in Proceedings of the CS&P'2007 Łagów 27-29 październik 2007 (L.Czaja ed.) Wydawnictwa Uniwersytetu Warszawskiego, pp 9-20, ISBN 978-83-88734-28-9, b. H. Langmaack, A. Salwicki, M. Warpechowski, A deterministic algorithm elaborating direct superclassesin Java-like languages, in Proceedings of the CS&P'2007 Łagów 27-29 październik 2007 (L.Czaja ed.) Wydawnictwa Uniwersytetu Warszawskiego, pp.388-399, ISBN 978-8388734-28-9, c. A. Salwicki, Andrzej Grzegorczyk's contribution to Computer Science, Fundamenta Informaticae 81(2007) pp. 253-261, d. H. Langmaack, A. Salwicki, M. Warpechowski, Ueber das Vererben und dessen implicite Definition in der Sprachspezifikation des neuen Java mit inneren Klassen, invited talk during 14th Colloquium „Programiersprachen und Grundlagen der Programierung”, Timmendorfer Strand, 10-12 Oktober 2007 3. Prace przyjęte do druku a. On an algorithm determining direct superclasses In Java-like languages with inner classes – its correctness, completeness and uniqueness of solutions, wspólnie z H. Langmaackiem I M. Warpechowskim ok. 45 str. artykuł złożony do Information and Computation i zaakceptowany b. H. Langmaack, A. Salwicki, M. Warpechowski, On the correctness and completeness of a deterministic algorithm elaborating direct super classes in Java-like languages, złożone do druku w Fundamenta Informaticae, c. G. Mirkowska, A. Salwicki, O. Świda, Algorithmic Logic + SpecVer = the methodology for high integrity programming, przyjete do druku w Fundamenta Informaticae 4. Oprogramowanie Wstęp Tworzymy coraz większe programy, o coraz bardziej złożonej strukturze. Ryzyko już nie błędu, a katastrofy jakie jest z tym związane rośnie co najmniej wykładniczo wraz z długością kodu. Niektórzy inwestorzy dostrzegli problem i zamawiają oprogramowanie wraz dowodem jego poprawności. Uważamy, że stosowane dotąd metody nie są adekwatnie dobrane do trudnego celu udowodnienia poprawności oprogramowania. Powstają rozmaite produkty, ale to dopiero początek. Nowe technologie dopiero powstaną. Nasza propozycja to nowa oryginalna metodologia tworzenia oprogramowania integrująca: specyfikację modułów, implementację – czyli tworzenie oprogramowania i weryfikację otrzymanego oprogramowania względem wcześniej powstałej specyfikacji. Co udało się uzyskać skromnymi środkami jakie stały do naszej dyspozycji? 1. Wtyczkę o nazwie SpecVer do środowiska Eclipse. 2. Opracowania wykazujące walory logiki algorytmicznej jako narzędzia specyfikacji i weryfikacji oprogramowania. Eclipse jest otwartym, popularnym środowiskiem edycji, kompilacji i uruchamiania programów. Nasza wtyczka umożliwia tworzenie projektów SpecVer . Na taki projekt składają się nie tylko pliki z programami, ale i pliki specyfikacji oraz pliki weryfikacji. W obecnej wersji działa edycja plików specyfikacji. Logika algorytmiczna zaproponowana w naszych opracowaniach okazuje się narzędziem bardziej przydatnym w specyfikowaniu klas (w programowaniu obiektowym) od innych narzędzi np. specyfikacje algebraiczne są znacznie słabsze i mniej przydatne. Logika algorytmiczna nie też sobie równych w weryfikowaniu klas i metod (algorytmów). O metodologii donosimy w opracowaniach 2a i 3c. Przykłady specyfikacji i dowodów zawarto w opracowaniach 2b, 2c, 3a, 3b. Oprogramowanie Oprogramowanie jest w tej chwili dostępne dla każdego pod adresem URL http://aragorn.pb.bialystok.pl/~swida/svp Jego głównym twórcą jest dr Oskar Świda z Politechniki Białostockiej.. Ja pełniłem rolę konsultanta i pomysłodawcy. Uważam, że warto by było stworzyć stronę projektu SpecVer pomiędzy stronami Instytutu Łączności, m. In. Po to by z niej dystrybuować to oprogramowanie. Jestem gotów tę stronę opracować i nią zarządzać. Nie mam jak dotąd na to zgody.