ANALIZA POPRAWNOŚCI OPROGRAMOWANIA WSPÓŁBIEŻNEGO Z WYKORZYSTANIEM FUNKCJI OBSERWACJI

Wielkość: px
Rozpocząć pokaz od strony:

Download "ANALIZA POPRAWNOŚCI OPROGRAMOWANIA WSPÓŁBIEŻNEGO Z WYKORZYSTANIEM FUNKCJI OBSERWACJI"

Transkrypt

1 AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I ELEKTRONIKI Piotr Szwed ANALIZA POPRAWNOŚCI OPROGRAMOWANIA WSPÓŁBIEŻNEGO Z WYKORZYSTANIEM FUNKCJI OBSERWACJI Rozprawa doktorska Promotor: prof. dr hab. inż. Tomasz Szmuc Kraków 1999

2 Panu prof. dr hab. inż. Tomaszowi Szmucowi, promotorowi pracy, składam serdeczne podziękowania za liczne i cenne dyskusje, słowa zachęty oraz cierpliwość

3 Spis treści iii Spis treści 1. Wstęp Ogólna charakterystyka dziedziny pracy Systemy współbieżne Rola weryfikacji i walidacji w cyklu życia oprogramowania Poprawność Poprawność procesu projektowania Motywacje Wybór akcji jako dziedziny analizy Model poprawności sformułowany bezpośrednio dla systemu procesów Instancje sterowania Symetryczna postać zagadnienia poprawności Zakres badań szczegółowych Cel pracy i teza Zawartość pracy Przegląd modeli oraz metod specyfikacji i weryfikacji poprawności systemów współbieżnych Sieci Petriego Definicja Własności sieci Reprezentacja macierzowa sieci Petriego Grafy znakowań osiągalnych i grafy pokrycia Komunikujące się maszyny skończenie-stanowe Synchroniczny model komunikacji Asynchroniczny model komunikacji Rozszerzenia modelu Model CRSM Algebry procesów CSP CCS Logika temporalna Opis ogólny Niezmienniczość dla powtórzeń Własności opisujące poprawność systemów współbieżnych... 27

4 Spis treści iv Weryfikacja własności opisywanych logiką temporalną Uściślanie specyfikacji Relacje symulacji i uściślania Uściślanie akcji Algebraiczne metody analizy poprawności względnej Oznaczenia Pojęcie procesu Pojęcia poprawności całkowitej i częściowej Narzędzia formalne weryfikacji poprawności Rozszerzenia w definicji procesu kryterialnego Weryfikacja oprogramowania współbieżnego Analiza procesów wchodzących w skład modelu poprawności Inne spojrzenie na zagadnienie poprawności względnej Problemy zastosowań metod automatycznej analizy Ogólna charakterystyka przyjętych rozwiązań Proces etykietowany Pojęcie obserwacji i jej rola w specyfikacji wymagań Ścieżkowa funkcja obserwacji Specyfikacja wymagań i poprawność Liniowa funkcja obserwacji Wprowadzenie Definicja wektorowej funkcji obserwacji π Lin Niehomomorficzna funkcja obserwacji Wprowadzenie Definicja wektorowej funkcji obserwacji π Min Definicja funkcji obserwacji π Zapis wektorowej funkcji obserwacji π Zastosowanie funkcji obserwacji do specyfikacji i badania poprawności Model specyfikacji Postać modelu Modelowanie węzłów Węzeł prosty Węzeł początkowy Węzeł końcowy... 66

5 Spis treści v Węzeł or-exor Węzeł or-or Węzeł and-or Węzeł and-exor Węzeł o ograniczonej pojemności Modelowanie oczek Model procesu sekwencyjnego Model procesu kryterialnego Różnice w interpretacji procesu kryterialnego Proces wieloinstancyjny Model systemu procesów Komunikacja Modelowanie funkcji Rozwiązania i stany Wykonanie modelu Algorytm wykonania modelu Procedura wyznaczania macierzy przejść elementarnych Procedura wyznaczania zbioru dopuszczalnych przejść elementarnych Rozróżnienie pomiędzy rozwiązaniem końcowym i blokowaniem Podobieństwo modelu do sieci Petriego Proces opisujący wykonanie modelu Własności ciągów rozwiązań Konstrukcja procesu opisującego wykonanie modelu Podsumowanie Model poprawności dla liniowej funkcji obserwacji Pojęcia związane z poprawnością Definicja częściowej poprawności Dywergencja Definicja całkowitej poprawności Definicja potencjalnej poprawności Spójność modelu wymagań Warunki poprawności Weryfikacja poprawności dla liniowej funkcji obserwacji Konstrukcja procesu sprzężonego Zastosowanie procesu sprzężonego w weryfikacji poprawności... 98

6 Spis treści vi Sprowadzalność do stanu końcowego Podsumowanie Model poprawności dla niehomomorficznej funkcji obserwacji Dyskusja poprawności dla niehomomorficznej funkcji obserwacji Rozszerzenie możliwości specyfikacji odwzorowania wymagań dla niehomomorficznej funkcji obserwacji Kolejność operacji Idea odwrotnej dopuszczalności Idea lokalnej osiągalności Porównanie z pojęciami występującymi w oryginalnym modelu poprawności Porównanie poprawności i pojęcia makrohomorfizmu Definicja poprawności dla niehomomorficznej funkcji obserwacji Operacje pseudo-algebraiczne na wektorach Definicje odwrotnej dopuszczalności i lokalnej osiągalności Poprawność względna dla niehomomorficznej funkcji obserwacji Weryfikacja poprawności dla niehomomorficznej funkcji obserwacji Macierz lokalnej osiągalności Badanie lokalnej osiągalności Pokrywanie dla macierzy lokalnej osiągalności Ekstrapolacja poprawności dla ciągów rozwiązań Konstrukcja procesu sprzężonego Zastosowanie procesu sprzężonego w weryfikacji poprawności Dyskusja rozstrzygalności Uporządkowanie dla macierzy lokalnej osiągalności Deterministyczna zgodność funkcji obserwacji Podsumowanie Przykłady Opis implementacji Problem pięciu filozofów Proces sekwencyjny systemu Weryfikacja poprawności systemu pięciu filozofów Protokół z bitem potwierdzenia Modele procesów składowych Wynik weryfikacji dla wersji I Wynik weryfikacji dla wersji II

7 Spis treści vii Wynik weryfikacji dla wersji III Wynik weryfikacji dla wersji IV Bankomat Pierwszy poziom specyfikacji systemu Drugi poziom specyfikacji systemu Trzeci poziom specyfikacji systemu Funkcja obserwacji Rezultaty weryfikacji Poprawiony system Otoczenie systemu Poprawność dla specyfikacji rozszerzonej o model danych Wprowadzenie Uproszczenie struktury systemu Dynamiczna zmiana struktury systemu Kanały asynchronicznej komunikacji Typy danych Zmienne i zapis operacji na zmiennych Zmienne wyliczeniowe Zmienne licznikowe nieograniczone Zmienne licznikowe ograniczone Kolejki o nieograniczonej pojemności Kolejki o ograniczonej pojemności Model danych Funkcja ewaluacji dla modelu danych Predykaty equal i covers dla modelu danych Model specyfikacji rozszerzony o MD Definicja modelu Wykonanie rozszerzonego modelu specyfikacji Proces sekwencyjny opisujący zachowanie MLD Warunkowa funkcja obserwacji Wprowadzenie Definicja warunkowej funkcji obserwacji Poprawność dla warunkowej funkcji obserwacji Proces sprzężony Implementacja

8 Spis treści viii 8.8 Podsumowanie Zakończenie Model specyfikacji Funkcje obserwacji Weryfikacja poprawności Oprogramowanie służące weryfikacji Przyszłe badania Literatura A. Algorytm badania spójności wymagań A.1 Reprezentacja aktualnie analizowanego rozwiązanie A.2 Stos A.3 Zbiór osiągniętych stanów modelu A.4 Zbiory wykonanych akcji (przejść) modelu A.5 Opis algorytmu B. Algorytm weryfikacji dla homomorficznej funkcji obserwacji B.1 Reprezentacja aktualnie analizowanego rozwiązania B.2 Stos B.3 Zbiór osiągniętych stanów procesu sprzężonego B.4 Zbiór stanów modelu weryfikowanego, z których osiągalne są stany końcowe B.5 Zbiory osiągalnych akcji B.6 Opis algorytmu C. Algorytm weryfikacji dla niehomomorficznej funkcji obserwacji C.1 Reprezentacja aktualnie analizowanego rozwiązania C.2 Stos C.3 Zbiór osiągniętych stanów procesu sprzężonego C.4 Zbiór stanów modelu weryfikowanego, z których osiągalne są stany końcowe C.5 Zbiory osiągalnych akcji C.6 Opis algorytmu

9 Wstęp 1 1. Wstęp Tematem pracy jest specyfikacja wymagań opisujących poprawność systemów współbieżnych oraz ich analiza z wykorzystaniem metod automatycznej weryfikacji. Zagadnienia te będą szczegółowo opisane w kolejnych rozdziałach, natomiast niniejszy rozdział stanowi wprowadzenie do problematyki będącej przedmiotem pracy. Rozważania wstępne rozpoczniemy od charakterystyki dziedziny oraz omówienia roli badań nad poprawnością systemów współbieżnych i tworzeniem zautomatyzowanych metod jej dowodzenia. Dalej podane będą motywacje, którymi kierował się autor przy wyborze opisanego w pracy kierunku badań szczegółowych. W kolejnym podrozdziale zostaną sformułowane cel i teza pracy. Na zakończenie omówiona będzie zawartość poszczególnych rozdziałów niniejszej rozprawy. 1.1 Ogólna charakterystyka dziedziny pracy Systemy współbieżne Systemy współbieżne to systemy, które przejawiają równoległe działanie w czasie. Zadaniem badań nad współbieżnością jest opis potencjalnej równoległości i rozwiązywanie zagadnień związanych z problemami synchronizacyjnymi i komunikacyjnymi [Ben- Ari 82]. Badania te zazwyczaj traktowane są jako dziedzina informatyki; ich przedmiotem jest wówczas działanie sprzętu komputerowego i oprogramowania. Jednakże rozwijane teorie stosują się także do innych systemów obejmujących systemy telekomunikacyjne, produkcyjne, mechaniczne, obiegu dokumentów, itp. W informatyce systemy współbieżne rozważane są w opozycji do programów sekwencyjnych. Te drugie [Lamport 94] mogą być traktowane jako funkcje odwzorowujące wejścia w wyjścia. W przypadku systemów współbieżnych (systemów reaktywnych [HD 85]) opis działania systemu musi obejmować zbiór możliwych jego zachowań Rola weryfikacji i walidacji w cyklu życia oprogramowania Typowy cykl życia oprogramowania (model kaskadowy) obejmuje następujące fazy [Calvez 93, HS 92]: analizy wymagań projektowania (wstępnego i szczegółowego) implementacji modułów i testowania integracji modułów i testowania testów jakościowych użytkowania i konserwacji W zależności od metody rozwoju oprogramowania fazy te mogą się częściowo przeplatać. Na przykład ostatnia wersja standardu przyjętego w armii amerykańskiej [US 94] wydziela etapy analizy wymagań systemu i projektu architektury. W ich wyniku zostaje przeprowadzony podział systemu na komponenty, dla których jest przeprowadzana dalsza analiza wymagań i projektowanie. Rezultatem wczesnych faz cyklu życia oprogramowania (analizy wymagań i projektowania) jest zazwyczaj zbiór dokumentów. Rezultatem fazy implementacji jest kod źródłowy oprogramowania. Standardy rozwoju oprogramowania zalecają zastosowanie metod analizy wymagań i projektowania oprogramowania wspartych automatycznymi technikami oferowanymi przez

10 Wstęp 2 systemy CASE. Za najbardziej rozpowszechnione należy uznać obecnie metody analizy strukturalnej i metody obiektowe. IEEE Standard Glossary of Software Terminology [IEEE 83] definiuje następująco pojęcia weryfikacji i walidacji. Weryfikacja to proces służący ocenie czy produkt danej fazy rozwoju spełnia warunki narzucone na początku tej fazy. Walidacja to proces służący ocenie, czy oprogramowanie powstałe w wyniku cyklu rozwoju oprogramowania jest zgodne z wymaganiami. Nieformalnie [Boehm 84] weryfikacja służy udzieleniu odpowiedzi na pytanie, czy produkt jest budowany w właściwy sposób natomiast walidacja czy budowany jest właściwy produkt. Podstawowym celem weryfikacji i walidacji jest możliwie wczesna identyfikacja potencjalnych problemów i błędów projektowych. Porównania kosztów odszukiwania i usuwania błędów dla różnych faz rozwoju wskazują, że dla dużych systemów koszty eliminacji błędów we wczesnych fazach mogą być nawet stukrotnie mniejsze niż w fazie konserwacji. W przypadku systemów małych i średnich różnice te są mniejsze (kilkukrotne). Dla niektórych typów oprogramowania wysoki poziom zaufania użytkownika do poprawnego działania jest niezbędnym warunkiem ich akceptacji. Dotyczy to zwłaszcza systemów, którym stawiane są ostre wymagania ze względu na bezpieczeństwo człowieka (medycznych, lotniczych, sterowania reaktorami atomowymi) lub bezpieczeństwo działania (systemy transakcji finansowych). W [Boehm 84] wymieniono szereg technik weryfikacji i walidacji stosujących się do wczesnych faz cyklu życia oprogramowania. Warto zwrócić uwagę, że zasadnicza część rzeczywistych specyfikacji ma nieformalny (często słowny) charakter lub używa metod graficznych zdefiniowanych formalnie jedynie pod względem składniowym. Stąd też wiele z praktycznie stosowanych technik weryfikacji i walidacji (w tym oferowanych przez narzędzia automatyczne) ukierunkowanych jest na analizę spójności tego typu specyfikacji. Weryfikacja aspektów dynamicznych, które odgrywają szczególnie istotną rolę w przypadku systemów współbieżnych, obejmuje następujące techniki: konstrukcję prostych modeli manualnych opisujących wybrane aspekty działania systemu z użyciem pewnego formalizmu matematycznego i badanie ich własności; tworzenie prostych modeli automatycznych wykorzystujących komputer do analizy formuł opisujących modelowany system; manualne dowody poprawności systemu w oparciu o metody formalne podtrzymywane często przez narzędzia automatycznego dowodzenia; szczegółowe modele automatyczne oparte na technikach symulacyjnych. Tradycyjnie weryfikacja oparta na metodach formalnych przeciwstawiana jest testowaniu, które nie daje gwarancji, że program zachowuje się poprawnie. (Odpowiedzią na ten zarzut są rozwijane techniki minimalizacji prawdopodobieństwa, że przy testowaniu błędy zostaną pominięte [MMNPNMV 92].) Z kolei metody formalne dowodzenia poprawności systemów mają ograniczone zastosowanie; ich jakość i wiarygodność, o ile nie są podtrzymywane technikami automatycznymi, uzależniona jest od ludzkich błędów. Prawdopodobieństwo tych

11 Wstęp 3 ostatnich rośnie na ogół wraz z długością dowodu. Zaletą właściwie użytych metod formalnych jest pewność ich rezultatów. Pewność ta może jednak być osłabiona, jeśli uwzględnimy fakt, że posługują się one abstrakcyjnym opisem rzeczywistego systemu. Model stworzony do celów weryfikacyjnych zawiera z reguły znaczne uproszczenia i może nie uwzględniać wielu istotnych aspektów systemu. Zarzutem często stawianym metodom formalnym jest niezrozumiałość specyfikacji dla inżynierów oprogramowania. Stąd naturalna jest tendencja widoczna w narzędziach CASE do specyfikacji oprogramowania za pomocą języków graficznych o ściśle zdefiniowanej składni. Na podstawie stworzonych specyfikacji budowany jest następnie model semantyczny (najczęściej w postaci modułu wykonywalnego), którego zachowanie może być obserwowane (podczas symulacji) lub weryfikowane. Proces generacji modelu pozwala dodatkowo wykryć potencjalne niespójności w specyfikacji Poprawność Definicje poprawności dla programów sekwencyjnych pochodzą od Floyda [Floyd 67]. Mówiąc nieformalnie, program jest uważany za poprawny jeśli zatrzymuje się i zwraca właściwą odpowiedź. Program S uważany jest za częściowo poprawny, jeśli uruchomiony dla danych wejściowych spełniających prewarunek P zatrzyma się i obliczone dane będą spełniały postwarunek Q lub też nie zatrzyma się. Warunkiem dodatkowym całkowitej poprawności jest zatrzymanie programu. Systemy współbieżne wymagają innych definicji poprawności, zwłaszcza, że większość z nich nigdy się nie powinna zatrzymać. W [Lamport 77] zaproponowano podział własności związanych z poprawnością systemów współbieżnych na dwie podstawowe klasy: bezpieczeństwa i żywotności. Własność bezpieczeństwa wyrażona jest nieformalnie jako nic złego nie może się zdarzyć. Niepożądaną sytuacją może być, np.: blokowanie lub naruszenie zasady wykluczania dla sekcji krytycznej. Własność żywotności opisuje żądanie, by po spełnieniu pewnego warunku w końcu nastąpiło pożądane zdarzenie, jak: zakończone sukcesem zatrzymanie programu, uzyskanie dostępu do zasobu lub aktywacja procesu składowego. Własność częściowej poprawności jest zaliczana do klasy bezpieczeństwa, poprawność całkowita wymagająca zakończonego właściwą odpowiedzią zatrzymania programu należy do klasy własności żywotności. Ich definicje przyjmują elegancką postać w logice temporalnej Poprawność procesu projektowania Przedmiotem zainteresowania wielu prac poświęconych systemom współbieżnym jest poprawność procesu ich tworzenia. Często stosowaną metodą tworzenia systemów, zgodną modelem kaskadowym, jest stopniowe uściślanie (ang. stepwise refinement) [Wirth 71]. Proces projektowania rozpoczyna się od wstępnej definicji systemu S 0 nazywanego jego specyfikacją. Jest ona opisem najbardziej abstrakcyjnym, pomijającym nieistotne szczegóły jego zachowania. Specyfikacja pozostawia do późniejszego rozstrzygnięcia wiele elementów, które są ustalane w wyniku decyzji projektowych. Poszczególne etapy projektowania systemu owocują kolejno powstającymi specyfikacjami. Składają się one na ciąg: S 0 S 1 S 2 S n

12 Wstęp 4 W każdym etapie realizowane jest przejście pomiędzy specyfikacjami S i-1 i S i. W jego wyniku dochodzi do uściślenia specyfikacji S i-1 poprzez dodanie kolejnych szczegółów i podjęcie decyzji projektowych o sposobie implementacji wybranych elementów specyfikacji wejściowej. Wynikiem ostatniego etapu jest stworzenie implementacji systemu S n. Ogólnie, można rozważyć dwa rodzaje decyzji, które są podejmowane podczas przejścia pomiędzy specyfikacjami. Część decyzji może dodawać informacje o tym co system powinien robić, uściślając w ten sposób cel działania systemu. (Zazwyczaj podejmowane są one w fazie analizy wymagań.) Innego typu decyzje ustalają jak system powinien implementować wymagane funkcje. Dla etapów projektowania, w których uściślenie następuje poprzez podjęcie decyzji jak system powinien realizować wymagania opisy wejściowe i wyjściowe nazywane są często specyfikacją i implementacją. Głównym celem formalnych teorii opisujących systemy współbieżne jest dowodzenia poprawności przejścia pomiędzy specyfikacją S i-1 i implementacją S i. Stąd często uściślanie traktowane jest jako dowolna transformacja specyfikacji, która zgodnie z przyjętymi kryteriami może zostać uznana za poprawną. Relacje poprawnościowe opisujące zależności pomiędzy specyfikacją i implementacją można najogólniej scharakteryzować jako relacje równoważności i częściowego uporządkowania [Glabbeek 90, GG 98]. Odpowiadają one dwóm sytuacjom: Mimo, że opis implementacji S i zawiera znacznie więcej dodatkowych szczegółów dotyczących jej zachowania (akcji, zmiennych, instrukcji) mogą być one traktowane jako wewnętrzne i nieobserwowalne. Po ich abstrakcji (ukryciu) specyfikacje S i-1 oraz S i mogą być uznane za równoważne (w ramach pewnego modelu nadającego semantykę specyfikacjom). Tworząc opis implementacji S i dokonano ustaleń, które były pozostawione jako alternatywy do rozstrzygnięcia w dalszych fazach rozwoju systemu. Z tego powodu specyfikacje S i-1 i S i nie mogą być traktowane jako równoważne. Stosowną relacją pomiędzy klasami systemów opisanymi przez specyfikacje jest relacja częściowego porządku określająca warunki, kiedy system S i może być uznany za poprawną implementacją specyfikacji S i-1. Relacje równoważności pomiędzy systemami budowane są najczęściej wokół zależności pomiędzy zbiorami obliczeń systemu (ścieżek) lub relacji bisymulacji [Milner 89]. Są one krótko scharakteryzowana w następnym rozdziale pracy. Relacje częściowego uporządkowania definiowane są różnie, w zależności od przyjętej metody formalnej. Obejmują one takie relacje jak symulacja i uściślanie [KMP 94], zgodność z wymaganiami wyrażonymi jako predykaty [Hoare 85], formuły logiki temporalnej [Pnueli 77; MP 80], poprawność względna [Szmuc 89b]. Jak można zauważyć, zaletą poprawności rozpatrywanej jako równoważność specyfikacji jest ten sam język użyty do opisu specyfikacji i implementacji. Cechy tej nie mają pozostałe formalizmy. Wyjątkiem są algebraiczne metody poprawności względnej. 1.2 Motywacje Inspiracją do podjęcia badań będących przedmiotem tej rozprawy były prace nad zastosowaniem algebraicznych metod poprawności względnej [Szmuc 88, 89a, 89b, 91, 92, 93, 97a, 97b] do weryfikacji systemów opisanych językiem LACATRE [Schwarz 92;

13 Wstęp 5 MSSS 94; SS 97c]. Systemy te zazwyczaj były modelowane w postaci zbioru komunikujących się maszyn skończenie stanowych [SS 94, 95a, 95b, 96; 97a, 97b; SSSS 94, 96]. W algebraicznych metodach poprawności względnej przedmiotem weryfikacji jest sekwencyjny opis systemu współbieżnego w postaci procesu Pawlaka [Pawlak 69]. Proces ten definiowany jest jako relacyjna struktura z wyodrębnionym zbiorem stanów początkowych i końcowych. Stany procesu w zależności od interpretacji mogą odpowiadać wektorom etykiet instrukcji i wartościom zmiennych. Wymagania stawiane badanemu systemowi definiowane są również w postaci procesu sekwencyjnego; nazywany jest on procesem kryterialnym. Proces kryterialny i weryfikowany mogą być traktowane jako specyfikacja S i-1 oraz implementacja S i etapu uściślania. Odwzorowanie pomiędzy tymi dwiema warstwami zdefiniowane jest w postaci relacji łączącej wybrane, tzw. charakterystyczne stany procesu weryfikowanego ze stanami procesu kryterialnego. W ujęciu nieformalnym, relacja poprawności pomiędzy dwoma specyfikacjami opiera się na wymaganiu, aby stany charakterystyczne w procesie weryfikowanym były osiągane w kolejności zgodnej ze strukturą przejść procesu kryterialnego Wybór akcji jako dziedziny analizy Algebraiczne metody badania poprawności (patrz podrozdział 2.6) definiują model poprawności oparty na asocjacji w dziedzinie stanów. Alternatywną podstawą do formułowania zagadnienia poprawności jest oparcie się na akcjach, które mogą być utożsamiane z przejściami w procesie. Pojęcie akcji występuje w wielu specyfikacjach, zwłaszcza opartych na dekompozycji funkcjonalnej. Mogą one przybierać nieco inne nazwy, np.: funkcja, proces transformujący dane, metoda. Przy opisie aspektów funkcjonalnych aplikacji w sposób naturalny przyjmuje się, że na daną akcję składają się inne akcje lub też mówi się o akcjach polegających na przesyłaniu komunikatów, których kolejność opisana jest pewnymi scenariuszami. Możliwy jest oczywiście opis procesu, w którym poszczególnym stanom przyporządkowane zostaną symbole akcji (czy etykiety instrukcji). Takie rozwiązanie widoczne było w wielu przykładach zamieszczonych w pracy [Szmuc 89b]. Z punktu widzenia modelowania zachowania programu istotne jest, czy tak utworzony stan należy interpretować jako fakt uzyskania gotowości do wykonania akcji, jej wykonywania czy też jej zakończenia. Oparcie się na jednym z powyższych założeń może prowadzić do różnych modeli semantycznych systemu współbieżnego. Wybór akcji jako dziedziny analizy podyktowany był przede wszystkim pragnieniem ułatwienia specyfikacji wymagań odzwierciedlających zależności występujące przy dekompozycji funkcjonalnej. W wielu przypadkach specyfikacja wymagań oraz zależność pomiędzy różnymi warstwami specyfikacji przybiera prostszą i bardziej ekspresywną postać, jeśli prowadzona jest dla akcji Model poprawności sformułowany bezpośrednio dla systemu procesów W ujęciu podstawowym weryfikacja systemu procesów współbieżnych poprzedzona jest fazą tworzenia procesu stanowiącego sekwencyjny opis działania systemu. Proces ten powstaje przez wykonanie z przeplotem wszystkich przejść w procesach składowych.

14 Wstęp 6 Doświadczenia zebrane w trakcie prac nad zastosowaniem algebraicznych metod poprawności względnej do weryfikacji oprogramowania współbieżnego zadanego w postaci zbioru komunikujących się maszyn skończenie stanowych skłaniają autora do wniosku, że wygodna z punktu widzenia formalnego modularność i podział na etapy weryfikacji (por. podrozdział 2.6) są w praktycznych zastosowaniach mało wygodne. Alternatywnym rozwiązaniem jest sformułowanie modelu poprawności bezpośrednio dla systemu procesów i prowadzenie weryfikacji równolegle z budowa procesu sekwencyjnego. Rezultaty prac opartych na takim podejściu zaprezentowano w [SS 94; SSSS 94; SS 95a, 95b]. Rozwiązanie to jest preferowane przez autora ze względu na fakt, że weryfikacja procesu sekwencyjnego skonstruowanego na podstawie zbioru procesów współbieżnych daje trudniejsze w interpretacji rezultaty dotyczące źródeł błędów. Struktura procesu opisującego zachowanie systemu na ogół bardzo jest odległa od struktur procesów składowych. Z punktu widzenia zastosowań oba podejścia są w praktyce równoważne. Jeśli generacja procesu sekwencyjnego jest możliwa do przeprowadzenia w akceptowalnym czasie i w ramach dostępnych zasobów, wówczas połączenie generacji z równoczesną weryfikacją jest również możliwe (na ogół w czasie zwiększonym w niewielkim stopniu). Największym problemem, który ogranicza w praktyce stosowalność narzędzi automatycznej weryfikacji dla systemu procesów współbieżnych jest złożoność obliczeniowa algorytmu generacji procesu sekwencyjnego opisującego system będący przedmiotem analizy. Z tego względu wszelkie (ewentualne) redukcje powinny zostać przeprowadzone wcześniej bezpośrednio w procesach składowych. Możliwość ich przeprowadzenia uzależniona jest oczywiście od znajomości asocjacji pomiędzy specyfikacją weryfikowaną a kryterialną i jej postaci Instancje sterowania Zastosowanie algebraicznych metod badania poprawności względnej dla procesów wchodzących w skład systemów reagujących na zdarzenia zewnętrzne lub przesyłających dane za pośrednictwem buforów prowadzi do problemów związanych właściwym doborem kryterium poprawności. Wynikają one z tego, że proces kryterialny interpretowany jest w sposób nie pozwalający na łatwy zapis wymagań dla systemów, w których w wyniku otrzymanych z zewnątrz zdarzeń pojawiają się nowe instancje sterowania, a ich obsługa przeplatana jest z przetwarzaniem instancji zmagazynowanych wewnątrz systemu w procesach modelujących bufory (kolejki komunikatów lub semafory). W konsekwencji prowadzi to na ogół do mało czytelnych specyfikacji procesu kryterialnego. Jego struktura staje się bardzo skomplikowana i mało związana z rzeczywistą ścieżką przetwarzania informacji. Jest to zjawisko bardzo niekorzystne z punktu widzenia zastosowania w cyklu życia oprogramowania, ponieważ uniemożliwia bezpośrednie przekształcenie wymagań w proces kryterialny, ale zmusza do tworzenia sztucznego procesu będącego pochodną wymagań i struktury przetwarzania zdefiniowanej w kolejnej warstwie specyfikacji.

15 Wstęp Symetryczna postać zagadnienia poprawności W obecności rozszerzeń w definicji procesu kryterialnego [Szmuc 93, 97a, 97b] oryginalne metody weryfikacji poprawności względnej definiują poprawność dla dwóch różnych obiektów. Utrudnia to prowadzenie wieloetapowej weryfikacji wymagań w ciągu stopniowego uściślania, gdzie zakłada się, że specyfikacja danej warstwy stanowi kryterium poprawności dla warstwy następnej. Celowym wydaje się dążenie do ujednolicenia postaci obiektów modelujących specyfikacje weryfikowaną i kryterialną. Założenie, że przedmiotem weryfikacji poprawności powinien być system procesów skłania do wniosku, że równie ogólny model powinien zostać przyjęty dla specyfikacji kryterialnej Zakres badań szczegółowych Rozważane w pracy rozwiązania są metodologicznie bliskie zasadom konstrukcji modeli oraz narzędzi weryfikacji zaproponowanych dla algebraicznych metod poprawności względnej. Najbardziej istotną różnicą jest wybór podstawowego elementu opisu. Jak już wspomniano, nie są nim stany lecz akcje. Problem postawiony jest podobnie, jak w metodach poprawności względnej. Badane są relacje poprawnościowe pomiędzy dwoma modelami specyfikacji: weryfikowanym oraz kryterialnym. Reprezentacją zachowania analizowanych specyfikacji jest ciąg wektorów wykonanych akcji. (Wektory te mogą być traktowane jako wielozbiory.) Wybór opisu zachowania wpływa na postać konstruowanych modeli. Są one definiowane jako zbiór nierówności i równań liniowych. Badanie istnienia relacji poprawnościowych pomiędzy dwoma specyfikacjami wymaga zdefiniowania odwzorowania przekształcającego reprezentacje zachowania modelu weryfikowanego w dziedzinę zachowań modelu kryterialnego. Odwzorowanie to nazywane jest w pracy funkcją obserwacji. Rozważane są trzy typy funkcji obserwacji: homomorficzna (liniowa) niehomomorficzna warunkowa Homomorficzna funkcja obserwacji przekształca akcje występujące w badanym systemie w zbiory równolegle wykonanych akcji. W ten sposób, podobnie jak w algebrach procesów, reprezentacja zachowania bardziej szczegółowego jest przekształcana w reprezentację bardziej abstrakcyjną, z której usuwane są nieistotne elementy (nieobserwowalne akcje) przy zachowaniu ogólnej struktury. Specyfikacja niehomomorficznej funkcji obserwacji pozwala na wyrażenie wymagań dotyczących uściślania akcji, czyli zastępowania akcji traktowanych atomowo na danym poziomie abstrakcji zbiorami akcji, które składają się na pewien proces. Dokonywane obserwacje nie polegają wyłącznie na zmianie etykiet i ukrywaniu pojedynczych akcji występujących w modelu weryfikowanym, ale są uzależnione od historii wykonania.

16 Wstęp 8 Warunkowa funkcja obserwacji stosuje się do rozszerzonej postaci modelu weryfikowanego uwzględniającej definicję danych. Postać takich modeli jest na ogół mniej obszerna i bliższa rzeczywistym językom specyfikacji. Prowadzone obserwacje pozwalają na rozróżnienie akcji dokonywanych dla różnych wartości zmiennych. 1.3 Cel pracy i teza Omówione w poprzednim podrozdziale motywacje, jak również doświadczenia autora skłaniają do sformułowania następującego celu pracy: 1. Określenie i zbadanie modelu poprawności względnej oprogramowania współbieżnego, w którym zapis odwzorowania pomiędzy rzeczywistym i wymaganym zachowaniem analizowanej specyfikacji wyrażony jest poprzez funkcje obserwacji. 2. Analiza zastosowań trzech typów funkcji obserwacji: homomorficznej, niehomomorficznej (funkcji z pamięcią historii wykonania) oraz funkcji obserwacji warunkowej dla algebraicznego modelu danych. 3. Opracowanie metod automatycznej analizy poprawności oprogramowania współbieżnego dla modelu opartego na funkcjach obserwacji, a następnie wykonanie prototypowej implementacji algorytmów oraz przeprowadzenie testów. W wyniku przeprowadzonych badań formułuje się następującą tezę: Zaproponowane modele poprawności względnej wykorzystujące różne typy funkcji obserwacji mogą znaleźć bezpośrednie zastosowanie w fazach analizy wymagań i projektowania oprogramowania współbieżnego. Opracowane metody analizy poprawności mogą zostać w efektywny sposób użyte do przeprowadzenia pełnej lub częściowej automatycznej weryfikacji. Powyższa teza jest następnie dowodzona w kolejnych rozdziałach niniejszej rozprawy. 1.4 Zawartość pracy Praca podzielona jest na dziewięć rozdziałów (wliczając w to bieżący rozdział wprowadzający oraz podsumowanie). W rozdziale 2 zamieszczono przegląd literatury związanej z modelowaniem systemów współbieżnych, różnymi metodami specyfikacji wymagań i ich dowodzenia lub automatycznej weryfikacji. Pierwszy z podrozdziałów poświęcony jest sieciom Petriego. Reprezentacja macierzowa sieci Petriego jest bliska modelom stosowanym w pracy. Różnicą jest poziom szczegółowości. Modele formułowane w pracy utożsamiają akcje z łukami sieci, a nie z tranzycjami. Bliższe są opisanym dalej specyfikacjom systemów w postaci zbioru synchronicznie komunikujących się maszyn skończenie stanowych. Kolejny fragment rozdziału 2 poświęcony jest opierającym się na akcjach algebrom procesów: CSP i CCS. Wiele z pojęć definiowanych dla tych algebr można odnaleźć w dalszych rozdziałach pracy. Ścieżkowy opis zachowania systemów, bliski modelom semantycznym CSP, jest często wykorzystywany przy analizie przykładów obrazujących omawiane zagadnienia.

17 Wstęp 9 Wymagania opisujące poprawność systemów współbieżnych formułowane są często z użyciem logiki temporalnej. Podejście to jest przedstawione nieco szerzej (a zwłaszcza metody automatycznej weryfikacji własności opisanych za pomocą liniowej logiki temporalnej). Najobszerniejszą część rozdziału stanowi przegląd prac dotyczących algebraicznych metod badania poprawności względnej. Obejmuje on: definicję procesu, postać zagadnienia poprawności w postaci pary procesów weryfikowanego i kryterialnego oraz relacji kryterialnej, definicje pojęć poprawności częściowej i całkowitej oraz metody dowodzenia poprawności wykorzystujące konstrukcję procesu sprzężonego. Lektura tego podrozdziału pozwoli przy przejściu do dalszych części pracy stwierdzić, jak poszczególne pojęcia i konstrukcje zostały przeformułowane dla zmienionych modeli specyfikacji i postaci zagadnienia poprawności. Na zakończenie omówiono typową postać algorytmów automatycznej weryfikacji (walidacji) opartych na przeszukiwaniu w głąb drzewa stanów procesu oraz metody przeszukiwania częściowego, w których dąży się do ograniczenia wpływu eksplozji stanów na jakość analizy. Metody te nie są bezpośrednio stosowane w implementowanych algorytmach; są cytowane dla wskazania możliwych kierunków przyszłego rozwoju. Dalsze rozdziały stanowią właściwy opis własnych prac autora. Rozdział 3 stanowi wprowadzenie do szczegółowych zagadnień omawianych w pracy. Pokazuje na wybranych przykładach ideę specyfikacji wymagań z użyciem funkcji obserwacji i postać zagadnienia poprawności. Definiuje homomorficzną (liniową) i niehomomorficzną funkcję obserwacji. Rozdział 4 omawia konstrukcję modelu liniowego dla procesu sekwencyjnego, sposób odzwierciedlenia w modelu specyficznych zależności występujących w interpretacji zachowania procesu kryterialnego dla algebraicznych metod poprawności względnej oraz konstrukcję modelu opisującego system synchronicznie komunikujących się procesów. Zwłaszcza ten ostatni model jest Uznany w pracy za najbardziej interesujący (jako stosowny do opisu zbioru komunikujących się maszyn skończenie stanowych). Opisane są zasady modelowania pozwalające na rozróżnienie pomiędzy blokowaniem i poprawnym zakończeniem działania (osiągnięciem stanu końcowego). Dalej wprowadzone są pojęcia rozwiązania odpowiadającego wektorowi (wielozbiorowi) wykonanych akcji oraz dualne pojęcie stanu modelu. Następnie omówione są zasady wykonania modelu przez wykonanie ciągu przejść elementarnych odpowiadających jednej lub dwu synchronizowanym akcjom. Wykonanie modelu opiera się na przeplocie; jako następne przejście wybierane jest w sposób niedeterministyczny jedno spośród kilku przejść dopuszczalnych w danym stanie. W rozdziale omówiono także zbieżność rozważanych modeli z sieciami Petriego. Rozdział 5 koncentruje się na liniowej (homomorficznej) funkcji obserwacji. Definiuje on poprawność względną ciągu rozwiązań (jako reprezentacji zachowania systemu), poprawność częściową (definiowaną jako poprawność wszystkich ciągów rozwiązań) oraz poprawność całkowitą. W przypadku poprawności całkowitej warunki zaostrzane są o konieczność dokonania obserwacji wszystkich akcji specyfikacji kryterialnej oraz o brak dywergencji. (Pojęcie dywergencji zapożyczone zostało z formalizmu CSP.) Pomocniczymi pojęciami, które mogą być stosowane przy badaniu własności systemów są pojęcia: poprawności potencjalnej i spójności wymagań.

18 Wstęp 10 Formalną konstrukcją służącą dowodzeniu poprawności jest, podobnie jak dla algebraicznych metod poprawności względnej, proces sprzężony. Jego definicja dostosowana jest do postaci rozważanych modeli. Podane twierdzenia uzasadniają zastosowanie procesu sprzężonego w weryfikacji poprawności. Rozdział 6 omawia zagadnienia związane z niehomomorficzną obserwacji. Przedstawia on zmodyfikowaną definicję poprawności względnej ciągu rozwiązań (która jest podstawową dla dalszych definicji poprawności częściowej i całkowitej). Niehomomorficzna funkcja obserwacji przekształca zbiory akcji występujące w modelu weryfikowanym w akcje modelu kryterialnego. Konstruując definicję poprawności względnej ciągu rozwiązań przyjęto założenie, że atomowość akcji modelu kryterialnego przenosi się na rozłączność czasową odpowiadających im zbiorów akcji modelu weryfikowanego. (Czyli, że aktywność podprocesów specyfikacji weryfikowanej, które odwzorowywane są w kolejne akcje kryterialne nie może się przeplatać w modelu semantycznym opartym na przeplocie.) Formalnie wymaganie to opisane jest przez dwa pojęcia: odwrotnej dopuszczalności i lokalnej osiągalności. Odwrotna dopuszczalność jest własnością łatwą do sprawdzenia. Konstrukcją służącą badaniu lokalnej osiągalności (która musi uwzględniać informację o historii wykonania) służy macierz lokalnej osiągalności. Macierz lokalnej osiągalności rozszerza stan procesu sprzężonego konstruowanego dla niehomomorficznej funkcji obserwacji. Podobnie jak dla funkcji liniowej podano twierdzenia uzasadniające taką właśnie konstrukcję. W rozdziale 7 przedstawiono trzy przykłady zastosowań: system pięciu filozofów, protokół z bitem potwierdzenia oraz mniej akademicki przykład specyfikacji bankomatu. Każdy z przedstawionych systemów analizowany był z użyciem prototypowego oprogramowania implementującego opisane w pracy algorytmy. Rozdział 8 zawiera opis zmodyfikowanego modelu specyfikacji weryfikowanej uwzględniającego definicję danych. Model ten odpowiada popularnym rozszerzeniom dla maszyn skończenie stanowych. Rozważane typy danych to: zmienne wyliczeniowe, licznikowe oraz kolejki komunikatów. Dla tak zdefiniowanego modelu definiowana jest warunkowa funkcja obserwacji. Istotnym jej elementem jest składowa nazywana funkcją ekspansji. Jej zadaniem jest rozróżnienie pomiędzy akcjami wykonywanymi dla różnych wartości zmiennych. Rozróżnienie to zapisywane jest w sposób ogólny w postaci predykatów, których argumentami są wartości zmiennych. Funkcja ekspansji rozszerza pierwotną przestrzeń rozwiązań specyfikacji weryfikowanej przekształcając ją w przestrzeń akcji, które są dalej poddane bezpośrednio obserwacji za pomocą liniowej lub niehomomorficznej funkcji obserwacji. W przedstawionej wersji postać zagadnienia jest niesymetryczna definicje danych nie mogą wystąpić w modelu kryterialnym. W dalszej części rozdziału przedstawiono konstrukcję zmodyfikowanego procesu sprzężonego stosującego się do rozważanego zagadnienia. Rozdział 9 zawiera krótkie podsumowanie. W dodatkach A, B i C podano algorytmy: badania spójności wymagań oraz weryfikacji dla liniowej i niehomomorficznej funkcji obserwacji.

19 Rozdział Przegląd modeli oraz metod specyfikacji i weryfikacji poprawności systemów współbieżnych 2.1 Sieci Petriego Sieci Petriego są bardzo rozpowszechnionym narzędziem opisu systemów. Umożliwiają one modelowanie takich własności jak: współbieżność, niedeterminizm, przepływy danych, reakcja na asynchroniczne pojawiające się zdarzenia, rozproszenie elementów. W ciągu trzydziestu kilku lat powstało wiele różnych definicji sieci Petriego, często ukierunkowanych na wygodne modelowanie różnych aspektów zachowania systemów. Charakterystyczną cechą wspólną wszystkich modeli jest to, że równorzędnymi elementami opisu są zarówno stany systemu, jak i akcje (nazywane tu tranzycjami). Literatura dotycząca sieci Petriego jest bardzo bogata. Przegląd różnych typów sieci można znaleźć w [Reisg 85; Murata 89]. Podstawowymi modelami sieci są: sieci warunków i zdarzeń (sieci C/E) sieci miejsc i tranzycji (sieci PT) sieci kolorowe [Jensen 91, 95-96; Sacha 95] sieci obiektowe [Lakos 94, 95] sieci czasowe [GMMP 91; Jensen 95-96; Sacha 95]. Modelem, który był przedmiotem największej liczby prac są sieci miejsc i tranzycji. Zostanie on krótko omówiony ze względu na to, że stosowany w pracy model specyfikacji jest mu dość bliski Definicja Sieć Petriego jest dwudzielnym grafem skierowanym, którego wierzchołki należą do dwóch zbiorów: miejsc i tranzycji. Łuki mogą łączyć wyłącznie miejsca z tranzycjami i tranzycje z miejscami. Stan systemu opisanego przez sieć nazywany jest znakowaniem. Jest to funkcja, która przydziela miejscom wartości nieujemne. Ze względu na symbolikę graficzną wartości te nazywane są żetonami. Żetony mogą być traktowane jak abstrakcyjne obiekty modelujące spełnienie warunków logicznych, obecność obliczonych danych określonego typu, stan sterowania procesów składowych, warunki synchronizacji. Znakowanie oznaczane jest przez M. Jest ono wektorem liczb całkowitych nieujemnych o wymiarze równym liczbie miejsc. Przez M(p) oznaczali będziemy liczbę żetonów w miejscu p. Łukom mogą być przypisane wagi. Dla modeli wielu systemów (zwłaszcza opisanych warunki logicznymi) wagi nie występują domyślnie przyjmujemy, że mają one wartość 1. Tranzycje mogą być utożsamiane ze wystąpieniem zdarzenia, wykonaniem instrukcji, transformacją danych, dokonaniem przekształcenia warunków logicznych, uruchomieniem mechanizmu synchronizacji.

20 Rozdział 2 12 Def. 2-1 Sieć Petriego Sieć Petriego zdefiniowana jest jako krotka PN = ( P, T, F, W, M 0 ), gdzie: P jest skończonym zbiorem miejsc, T jest skończonym zbiorem tranzycji, F ( P T ) ( T P ) jest skończonym zbiorem łuków, W : F N jest funkcją przydzielającą łukom wagi, M 0 : P N {0} jest znakowaniem początkowym. Przez N = ( P, T, F, W) oznaczana jest często sieć bez określonego znakowania początkowego. Przez (N, M 0 ) sieć z ustalonym znakowaniem początkowym. Często spotykany wariant definicji sieci pomija funkcję W (jej domyślne wartości wynoszą 1) lub nadaje ograniczenie na maksymalną liczbę żetonów dopuszczalnych w danym miejscu. Wykonanie (odpalenie) tranzycji jest zmianą stanu sieci (znakowania) polegającą na usunięciu żetonów z miejsc wejściowych i wprowadzenie nowych żetonów do miejsc wyjściowych. Liczba usuwanych i dodawanych żetonów określona jest przez wagi łuków. Dana tranzycja t usuwa W( p, t ) żetonów z miejsc wejściowych i dodaje W( t, p ) żetonów do miejsc wyjściowych. Odpalenie tranzycji nie może prowadzić do znakowań ujemnych. Stąd tranzycja t jest dopuszczalna, jeśli liczba żetonów w miejscu wejściowym p spełnia M(p) W( t, p ). Zbiór dopuszczalnych tranzycji dla danego znakowania może zawierać więcej niż jeden element. W ten sposób sieć Petriego może opisywać niedeterminizm modelowanego systemu Własności sieci Większość dynamicznych własności sieci definiuje się poprzez własności znakowań osiągalnych ze znakowania początkowego M 0 w wyniku wykonania ciągów tranzycji ρ = t 1, t 2,, t i,. Tutaj przytoczone zostaną własności najbardziej typowe: osiągalność znakowania, ograniczoność i bezpieczeństwo, żywotność. Szerszy przegląd i literaturę odnoszącą się do poszczególnych własności znaleźć można w [Murata 89]. Osiągalność Znakowanie M n jest osiągalne z M 0, jeżeli istnieje ciąg tranzycji ρ = t 1, t 2,, t n, który przeprowadza znakowanie M 0 w M n. Zbiór wszystkich znakowań osiągalnych z M 0 oznaczany jest jako R(N, M 0 ). Zbiór wszystkich ciągów tranzycji dopuszczalnych oznaczany jest jako L(N, M 0 ) Problem czy M n R(N, M 0 ) jest rozstrzygalny. Problem równości sieci, czyli czy L(N, M 0 ) = L(N, M 0 ) jest w ogólnym przypadku nierozstrzygalny.

21 Rozdział 2 13 Ograniczoność i bezpieczeństwo Sieć nazywana jest ograniczoną, jeżeli k N. M R(N, M 0 ). p. M(p) k. Sieć nazywana jest bezpieczną, jeżeli k = 1. Miejsca w sieci Petriego często opisują bufory składujące obliczane dane, pośrednie magazyny wyrobów dla procesu produkcyjnego, itp. W rzeczywistych systemach są one zawsze ograniczone. Własność ograniczoności lub bezpieczeństwa gwarantuje, że nie dojdzie do niekorzystnej sytuacji, jak przekroczenie rozmiarów bufora. Żywotność Żywotność opisuje brak blokowania w systemie. Sieć jest żywa, jeśli dla każdego znakowania ze zbioru R(N, M 0 ) istnieje dopuszczalna tranzycja. Dla systemów współbieżnych żywotność jest często rozważana jako własność tranzycji. Tranzycja t jest martwa, jeśli nie może nigdy zostać odpalona, tranzycja t jest potencjalnie wykonywalna, jeśli istnieje ciąg ρ L(N, M 0 ) zawierający tę tranzycję. Tranzycja jest żywa, jeśli jest potencjalnie wykonywalna dla każdego znakowania osiągalnego z M Reprezentacja macierzowa sieci Petriego Wiele własności sieci Petriego bada się z wykorzystaniem ich macierzowej reprezentacji [Murata 89]. Macierzowa reprezentacja pozwala na przejrzyste sformułowanie warunków osiągalności oraz na dowodzenie własności strukturalnych opisanych przez niezmienniki dotyczące miejsc i przejść [Reisg 85]. Jak każdy graf, sieć Petriego może zostać opisana za pomocą macierzy incydencji [Deo 74]. Ze względu na strukturę połączeń macierz incydencji A sieci nie jest macierzą kwadratową lecz macierzą o rozmiarach P T. Każdy z elementów macierzy A(p, t) opisuje zmianę liczby żetonów w miejscu p w wyniku wykonania tranzycji t. Stąd element A(p, t) może być obliczony na podstawie funkcji W wag łuków jako A(p, t) = A(p, t) + A(p, t), gdzie A(p, t) + W ( p, t) jeżeli ( p, t) F = 0 w.p.p A(p, t) W ( t, p) jeżeli ( t, p) F = 0 w.p.p Ciąg tranzycji ρ n prowadzący ze znakowania M 0 do M n zapisany jest w modelu liniowym jako wektor u n, którego i ta składowa odpowiada liczbie wykonanych tranzycji t i w ciągu ρ. Stąd otrzymujemy równanie stanu sieci Petriego postaci: M n = M 0 + A u n. Rozważane w dalszych częściach pracy modele specyfikacji są formułowane wyłączanie jako modele liniowoalgebraiczne. Jak będzie pokazane, są one sprowadzalne do postaci macierzowej sieci Petriego

22 Rozdział Grafy znakowań osiągalnych i grafy pokrycia Podstawowe własności dynamiczne sieci mogą być badane przez konstrukcję grafów znakowań osiągalnych lub grafów pokrycia. Graf znakowań osiągalnych Γ = (H, P) jest grafem skierowanym, którego wierzchołkom ze zbioru H przypisane są osiągalne znakowania, natomiast łukom ze zbioru P tranzycje. Każdy wierzchołek, któremu odpowiada znakowanie M połączony jest k łukami z następnymi znakowaniami osiągalnymi, gdzie k jest liczbą tranzycji dopuszczalnych dla znakowania M. W ogólnym przypadku grafy znakowań osiągalnych są nieskończone. Rozważmy znakowanie M i ciąg tranzycji ρ przeprowadzający M w znakowanie osiągalne M spełniające M M. Oznaczmy M = M - M. Wykonanie ciągu ρ dla znakowania M spowoduje osiągnięcie znakowania M = M + M. Jeżeli istnieje miejsce p, dla którego M(p) > 0, wówczas w wyniku wykonania kolejnych ciągów tranzycji ρ liczba żetonów w miejscu p będzie rosła nieograniczenie. Za każdym razem wszystkie tranzycje ciągu ρ będą dopuszczalne. Graf pokrycia jest skończonym grafem reprezentującym zbiór znakowań osiągalnych. Jego wierzchołkom przypisane są wektory znakowań, których elementy przyjmują wartości ze zbioru N {0} {ω}, gdzie ω jest symbolem nieograniczonej wartości. Rozszerzona algebra liczb całkowitych dla symbolu ω jest następująca: ω + n = ω, ω - n = ω, n < ω, gdzie n C. W [Murata 89] można znaleźć szczegółowy algorytm tworzenia grafu pokrycia. Dowód jego skończoności zamieszczony jest w [Reisg 85]. Dowolne znakowanie przypisane węzłom grafu pokrycia jest albo znakowaniem osiągalnym, jeśli nie zawiera symbolu ω, albo pokrywa znakowanie osiągalne, czyli na pozycjach oznaczonych symbolem ω mogą pojawiać się dowolnie duże wartości. Konstrukcja grafu pokrycia dla danej sieci może być niejednoznaczna. Dwóm różnym sieciom o różnej strukturze i różnym zachowaniu może być przypisany ten sam graf pokrycia [Reisg 85]. Konstrukcja grafu pokrycia pozwala na rozstrzyganie o skończoności zbioru znakowań osiągalnych, własnościach bezpieczeństwa (ograniczoności sieci) oraz częściowo o własnościach opisujących żywotność. 2.2 Komunikujące się maszyny skończenie-stanowe W podrozdziale zostanie omówiony model komunikujących się maszyn skończeniestanowych. Opisana w dalszych częściach pracy specyfikacja będąca przedmiotem weryfikacji poprawności jest najczęściej reprezentacją zbioru synchronicznie komunikujących się maszyn. Maszyny skończenie-stanowe stanowią jeden z najstarszych i najbardziej rozpowszechnionych modeli. W wielu metodach specyfikacji wymagań i projektowania oprogramowania są one używane jako jeden z elementów opisu dynamicznych własności systemów. Często są one uzupełnieniem dla metod skupiających się na opisach związków strukturalnych pomiędzy przetwarzanymi danymi i realizujących to przetwarzanie elementach specyfikacji. Typowym przykładem są metody analizy strukturalnej [WM 85; Yourdon 88; Perez 90], gdzie za pomocą maszyn skończenie stanowych opisywane są dynamiczne własności

23 Rozdział 2 15 procesów (tzw. procesy sterujące). Podobnie w metodach obiektowych [CY 1990, Booch 94] maszyny skończenie stanowe opisują diagramy stanów obiektów. Rozszerzona definicja maszyn skończenie stanowych w ujęciu Harela [Harel 88] jest elementem metody UML [FS 97]. Rozmaitość zastosowań pociąga za sobą różnorodność definicji. Ich wspólną cechą jest to, że system scharakteryzowany jest przez skończony zbiór stanów. Przejście pomiędzy stanami jest zazwyczaj możliwe w wyniku pojawienia się zdarzenia wejściowego (otrzymania bodźca). Równocześnie przy przejściu może być generowane zdarzenie wyjściowe. Typowa definicja maszyny skończenie stanowej [BH 93] jest następująca: FSM = (S, s 0, I, O, F S, F O ), gdzie: S jest skończonym zbiorem stanów; s 0 S jest stanem początkowym; I jest skończonym zbiorem zdarzeń wejściowych; O jest skończonym zbiorem zdarzeń wyjściowych; F S : S I S jest funkcją określającą następny stan na podstawie aktualnego stanu i oraz zdarzenia wejściowego; F O : S I O {ε} jest funkcją określającą generowane zdarzenie wyjściowe przy przejściu pomiędzy stanami; przez ε oznaczane jest zdarzenie puste. Zdefiniowana w powyższy sposób maszyna zawsze zmienia stan pod wpływem bodźca (zdarzenia wejściowego) przechodząc w jednoznacznie zdefiniowany stan następny. Z punktu widzenia wielu zastosowań tego typu definicja jest zbyt słaba, ponieważ nie pozwala na modelowanie systemów dokonujących przejść spontanicznych i nie pozwala na modelowanie niedeterminizmu. Alternatywną postacią jest definicja oparta na relacji przejścia: FSM = (S, s 0, I, O, T ), gdzie T S ( I {ε} ) S ( O {ε} ) Maszyna zdefiniowana relacyjnie może wykonywać przejścia spontaniczne, jeśli do dziedziny relacji T należy para (s i, ε) oraz może modelować niedeterminizm, jeżeli T((s i, in j )) > 1. Element relacji nazywany jest często regułą przejścia. Zdarzenia wejściowe i wyjściowe są zdefiniowane abstrakcyjnie. W zależności od modelu, zdarzenie wejściowe może być interpretowane jako spełnienie pewnego warunku logicznego, natomiast zdarzenie wyjściowe jako wykonanie pewnej operacji (rozkazu). Stąd element relacji przejścia może być traktowany jako rozkaz dozorowany, a wykonanie maszyny podobne jest działania niedetrministycznej konstrukcji do-od [Dijkstra 76]. Specyfikacje systemów najczęściej nie są formułowane w postaci izolowanej maszyny skończenie stanowej, lecz jako zbiór maszyn sprzężonych wejściami i wyjściami. Stanowią one zbiór komunikujących się maszyn. Zazwyczaj rozważane są dwa zasadniczo odmienne modele komunikacji pomiędzy maszynami: sprzężenie synchroniczne,

miejsca przejścia, łuki i żetony

miejsca przejścia, łuki i żetony Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń)

Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń) Carl Adam Petri (1926-2010) Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń) Problemy statyczne Kommunikation mit Automaten praca doktorska (1962) opis procesów współbieżnych

Bardziej szczegółowo

Sieci Petriego. Sieć Petriego

Sieci Petriego. Sieć Petriego Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

Definicja sieci. Sieć Petriego jest czwórką C = ( P, T, I, O ), gdzie: P = { p 1, p 2,, p n } T = { t 1, t 2,, t m }

Definicja sieci. Sieć Petriego jest czwórką C = ( P, T, I, O ), gdzie: P = { p 1, p 2,, p n } T = { t 1, t 2,, t m } Sieci Petriego Źródła wykładu: 1. http://www.ia.pw.edu.pl/~sacha/petri.html 2.M. Szpyrka: Sieci Petriego w modelowaniu i analizie systemów współbieżnych, WNT 2008 Definicja sieci Sieć Petriego jest czwórką

Bardziej szczegółowo

Praktyczne metody weryfikacji

Praktyczne metody weryfikacji Praktyczne metody weryfikacji Sławomir Lasota Uniwersytet Warszawski semestr zimowy 06/07. p.1/?? I. Motywacja czyli po co?. p.2/?? czerwiec 1996. p.3/?? nieobsłużony wyjatek szacunkowy koszt: 600 mln

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI Analiza i modelowanie Systemów Teleinformatycznych Sprawozdanie z ćwiczenia laboratoryjnego nr 6 Temat ćwiczenia: Modelowanie systemów równoległych z zastosowaniem

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Etapy życia oprogramowania

Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano

Bardziej szczegółowo

Rozszerzenia sieci Petriego

Rozszerzenia sieci Petriego Rozszerzenia sieci Petriego Ograniczenia klasycznej sieci Petriego Trudność w modelowaniu specyficznych przepływów: testowania braku żetonów w danym miejscu, blokowania odpalania, itp. Brak determinizmu

Bardziej szczegółowo

Rozszerzenia sieci Petriego

Rozszerzenia sieci Petriego Rozszerzenia sieci Petriego Ograniczenia klasycznej sieci Petriego Trudność w modelowaniu specyficznych przepływów: testowania braku żetonów w danym miejscu, blokowania odpalania, itp. Brak determinizmu

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA I WSPOMAGANIA DECYZJI Rozproszone programowanie produkcji z wykorzystaniem

Bardziej szczegółowo

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 Określenie wymagań Testowanie Pielęgnacja Faza strategiczna

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Systemy Czasu Rzeczywistego. dr inż. Piotr Szwed C3, pok

Systemy Czasu Rzeczywistego. dr inż. Piotr Szwed C3, pok Systemy Czasu Rzeczywistego dr inż. Piotr Szwed C3, pok. 212 e-mail: pszwed@ia.agh.edu.pl http://pszwed.ia.agh.edu.pl Cele przedmiotu Podczas laboratorium zrealizowany zostanie projekt symulujący działanie

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. doc. dr Beata Pułska-Turyna Zakład Badań Operacyjnych Zarządzanie B506 mail: turynab@wz.uw.edu.pl mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. Tel.: (22)55 34 144 Mail: student@pgadecki.pl

Bardziej szczegółowo

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne: Klasa 1 technikum Przedmiotowy system oceniania wraz z wymaganiami edukacyjnymi Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

Praktyczne metody weryfikacji

Praktyczne metody weryfikacji Praktyczne metody weryfikacji Sławomir Lasota Uniwersytet Warszawski semestr letni 08/09. p.1/50 I. Motywacja czyli po co?. p.2/50 Arianne 5, czerwiec 1996. p.3/50 nieobsłużony wyjatek szacunkowy koszt:

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka projektowania komputerowych systemów sterowania Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 4 Diagramy aktywności I Diagram aktywności (czynności) (ang. activity

Bardziej szczegółowo

Podsumowanie wyników ankiety

Podsumowanie wyników ankiety SPRAWOZDANIE Kierunkowego Zespołu ds. Programów Kształcenia dla kierunku Informatyka dotyczące ankiet samooceny osiągnięcia przez absolwentów kierunkowych efektów kształcenia po ukończeniu studiów w roku

Bardziej szczegółowo

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Grupy pytań na egzamin inżynierski na kierunku Informatyka Grupy pytań na egzamin inżynierski na kierunku Informatyka Dla studentów studiów dziennych Należy wybrać dwie grupy pytań. Na egzaminie zadane zostaną 3 pytania, każde z innego przedmiotu, pochodzącego

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:

Bardziej szczegółowo

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Modelowanie biznesowe jest stykiem między

Bardziej szczegółowo

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15. Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop. 2017 Spis treści Wstęp 15 Podziękowania 23 Listy kontrolne 25 Tabele 27 Rysunki 29 Część I Proces budowy oprogramowania

Bardziej szczegółowo

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18 Spis treści Przedmowa... 11 Wykaz oznaczeń... 13 1. Wstęp... 15 1.1. Układycyfrowe... 15 1.2. Krótki esej o projektowaniu.... 15 2. Układy kombinacyjne... 18 2.1. Podstawyprojektowaniaukładówkombinacyjnych...

Bardziej szczegółowo

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204 Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów

Bardziej szczegółowo

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017 Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język

Bardziej szczegółowo

1. Sieci Petriego. Rys. 1-1 Przykład sieci Petriego

1. Sieci Petriego. Rys. 1-1 Przykład sieci Petriego 1 1. Sieci Petriego Narzędzie wprowadzone przez Carla A. Petriego w 1962 roku do pierwotnie modelowania komunikacji z automatami. Obecnie narzędzie stosowane jest w modelowaniu systemów współbieżnych,

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU OPIS PRZEDMIOTU Nazwa przedmiotu Systemy rozproszone Kod przedmiotu Wydział Wydział Matematyki, Fizyki i Techniki Instytut/Katedra Instytut Mechaniki i Informatyki Stosowanej Kierunek Informatyka Specjalizacja/specjalność

Bardziej szczegółowo

LOGIKA I TEORIA ZBIORÓW

LOGIKA I TEORIA ZBIORÓW LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja

Bardziej szczegółowo

Zajęcia nr. 3 notatki

Zajęcia nr. 3 notatki Zajęcia nr. 3 notatki 22 kwietnia 2005 1 Funkcje liczbowe wprowadzenie Istnieje nieskończenie wiele funkcji w matematyce. W dodaktu nie wszystkie są liczbowe. Rozpatruje się funkcje które pobierają argumenty

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

Spis treúci. 1. Wprowadzenie... 13

Spis treúci. 1. Wprowadzenie... 13 Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Uniwersytet Śląski w Katowicach str. 1 Wydział Informatyki i Nauki o Materiałach

Uniwersytet Śląski w Katowicach str. 1 Wydział Informatyki i Nauki o Materiałach Uniwersytet Śląski w Katowicach str. 1 Efekty dla: nazwa kierunku poziom profil Informatyka inżynierska pierwszy ogólnoakademicki Kod efektu (kierunek) K_1_A_I_W01 K_1_A_I_W02 K_1_A_I_W03 K_1_A_I_W04 K_1_A_I_W05

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu Wymagania edukacyjne niezbędne do uzyskania poszczególnych śródrocznych i rocznych ocen klasyfikacyjnych z obowiązkowych

Bardziej szczegółowo

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza MATeMAtyka 1 Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych Zakres podstawowy i rozszerzony Klasa pierwsza Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

Analiza sieci Petriego

Analiza sieci Petriego Analiza sieci Petriego Przydatność formalnej analizy modelu procesów Szpital obsługa 272 pacjentów 29258 zdarzeń 264 różnych czynności Czy powyższy model jest poprawny? Własności behawioralne sieci Petriego

Bardziej szczegółowo

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Diagramy czynności. Widok logiczny. Widok fizyczny

Diagramy czynności. Widok logiczny. Widok fizyczny Diagramy czynności System widoków 4+1 Kruchtena Widok logiczny Widok fizyczny Widok procesu Widok przypadków użycia Widok konstrukcji Diagramy czynności są jedynym diagramem w widoku procesu modelowanego

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

Bardziej szczegółowo

Analiza sieci Petriego

Analiza sieci Petriego Analiza sieci Petriego Przydatność formalnej analizy modelu procesów Szpital obsługa 272 pacjentów 29258 zdarzeń 264 różnych czynności Czy powyższy model jest poprawny? Tomasz Koszlajda Instytut Informatyki

Bardziej szczegółowo

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (4) Modelowa weryfikacja systemu Paweł Głuchowski, Politechnika Wrocławska wersja 2.1 Treść wykładu Własności współbieżnych

Bardziej szczegółowo

166 Wstęp do statystyki matematycznej

166 Wstęp do statystyki matematycznej 166 Wstęp do statystyki matematycznej Etap trzeci realizacji procesu analizy danych statystycznych w zasadzie powinien rozwiązać nasz zasadniczy problem związany z identyfikacją cechy populacji generalnej

Bardziej szczegółowo

WPROWADZENIE DO UML-a

WPROWADZENIE DO UML-a WPROWADZENIE DO UML-a Maciej Patan Instytut Sterowania i Systemów Informatycznych Dlaczego modelujemy... tworzenie metodologii rozwiązywania problemów, eksploracja różnorakich rozwiązań na drodze eksperymentalnej,

Bardziej szczegółowo

Proces badawczy schemat i zasady realizacji

Proces badawczy schemat i zasady realizacji Proces badawczy schemat i zasady realizacji Agata Górny Zaoczne Studia Doktoranckie z Ekonomii Warszawa, 23 października 2016 Metodologia i metoda naukowa 1 Metodologia Metodologia nauka o metodach nauki

Bardziej szczegółowo

Kształcenie w zakresie podstawowym. Klasa 2

Kształcenie w zakresie podstawowym. Klasa 2 Kształcenie w zakresie podstawowym. Klasa 2 Poniżej podajemy umiejętności, jakie powinien zdobyć uczeń z każdego działu, aby uzyskać poszczególne stopnie. Na ocenę dopuszczającą uczeń powinien opanować

Bardziej szczegółowo

Schemat programowania dynamicznego (ang. dynamic programming)

Schemat programowania dynamicznego (ang. dynamic programming) Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Praktyka testowania dla początkujących testerów

Praktyka testowania dla początkujących testerów Praktyka testowania dla początkujących testerów Warsztaty stanowią 100% praktykę testowania i skupiają się zwłaszcza na tych aspektach, które przydatne są w codziennej pracy testera. Przeznaczone są dla

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program

Bardziej szczegółowo

Opinia o pracy doktorskiej pt. Damage Identification in Electrical Network for Structural Health Monitoring autorstwa mgr inż.

Opinia o pracy doktorskiej pt. Damage Identification in Electrical Network for Structural Health Monitoring autorstwa mgr inż. Prof. dr hab. inż. Tadeusz Uhl Katedra Robotyki i Mechatroniki Akademia Górniczo Hutnicza Al. Mickiewicza 30 30-059 Kraków Kraków 26.05.2011 Opinia o pracy doktorskiej pt. Damage Identification in Electrical

Bardziej szczegółowo

STRESZCZENIE. rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne.

STRESZCZENIE. rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne. STRESZCZENIE rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne. Zasadniczym czynnikiem stanowiącym motywację dla podjętych w pracy rozważań

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

Podstawy programowania III WYKŁAD 4 Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.

Bardziej szczegółowo

Zbiory, relacje i funkcje

Zbiory, relacje i funkcje Zbiory, relacje i funkcje Zbiory będziemy zazwyczaj oznaczać dużymi literami A, B, C, X, Y, Z, natomiast elementy zbiorów zazwyczaj małymi. Podstawą zależność między elementem zbioru a zbiorem, czyli relację

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k. Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy

Bardziej szczegółowo

Efekty kształcenia dla: nazwa kierunku

Efekty kształcenia dla: nazwa kierunku Uniwersytet Śląski w Katowicach str. 1 Efekty dla: nazwa kierunku Informatyka poziom pierwszy (licencjat) profil ogólnoakademicki Załącznik nr 46 do uchwały nr. Senatu Uniwersytetu Śląskiego w Katowicach

Bardziej szczegółowo

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 13 - Układy bramkowe Instytut Automatyki i Robotyki Warszawa, 2015 Układy z elementów logicznych Bramki logiczne Elementami logicznymi (bramkami logicznymi) są urządzenia o dwustanowym sygnale wyjściowym

Bardziej szczegółowo

Elementy logiki matematycznej

Elementy logiki matematycznej Elementy logiki matematycznej Przedmiotem logiki matematycznej jest badanie tzw. wyrażeń logicznych oraz metod rozumowania i sposobów dowodzenia używanych w matematyce, a także w innych dziedzinach, w

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram

Bardziej szczegółowo

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

Bardziej szczegółowo