Oprogramowanie systemów teleinformatycznych
Informacje ogólne
Kod przedmiotu: | 103A-TLTIC-MSP-OPSYT |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Oprogramowanie systemów teleinformatycznych |
Jednostka: | Wydział Elektroniki i Technik Informacyjnych |
Grupy: |
( Przedmioty techniczne )---EITI ( Przedmioty zaawansowane techniczne )--mgr.-EITI |
Punkty ECTS i inne: |
5.00
|
Język prowadzenia: | polski |
Jednostka decyzyjna: | 103000 - Wydział Elektroniki i Technik Informacyjnych |
Kod wydziałowy: | OPSYT |
Numer wersji: | 1 |
Skrócony opis: |
Przedmiot ma na celu zapoznanie słuchaczy ze specyficznymi dla teleinformatyki zagadnieniami projektowania, budowania, eksploatowania i rozwoju oprogramowania oraz wykształcenie umiejętności skutecznego działania na tym oprogramowaniu we wszystkich fazach jego cyklu życia, z uwzględnieniem formalizacji i automatyzacji. |
Pełny opis: |
Treść wykładu Kurs obejmuje trzy zasadnicze bloki tematyczne: Inżynieria oprogramowania teleinformatycznego (12h) <br/>Inżynieria oprogramowania sieci programowalnych. Obszary zastosowań i architektura oprogramowania w takich sieciach. Model biznesowy oprogramowania sieci. Cykl życia oprogramowania: język, aktorzy, modele. Uwarunkowania i związane z nimi wymagania (czas, efektywność); ciężkie i zwinne (agile: Scrum, DevOps) procesy dostarczania oprogramowania. Możliwości i pragmatyczny zakres formalizacji i automatyzacji. Koncepcje "dojrzałości" (maturity) procesów rozwojowych oprogramowania. Pojęcia Design Thinking w aspekcie empirycznego odkrywania wpływu produktu / prototypu na użytkownika. Funkcje oprogramowania a własności ponad- i poza-funkcjonalne. Wielkość i złożoność oprogramowania a metodyki wytwarzania oprogramowania: plan-driven, incremental, test-driven. Wytwarzanie oprogramowania a wytwarzanie produktów - pojęcie wzorów projektowych (design patterns); wzorce implementacji i integracji bloków oprogramowania. "Wielopokoleniowość" oprogramowania: podejście komponentowe COTS (component-based). Standaryzacja modeli informacyjnych, funkcji i procesów. Rozproszenie oprogramowania - modele komunikacji bloków oprogramowania. Orkiestracja usług i funkcji sieciowych a otwartość oprogramowania; standardowe protokoły komunikacyjne, otwarte API. Krytyczna rola oprogramowania (dla zdrowia, życia, dobrostanu, ekonomii, polityki) i czynnik ludzki (human-in-the-loop) a wiarygodność i bezpieczeństwo oprogramowania. Potrzeby, praktyki i narzędzia weryfikacji i walidacji; pojęcia poprawności i niepoprawności; metody aprioryczne (analityczne) i empiryczne (testowanie). Wydajność, w tym aspekty czasu rzeczywistego (soft / hard); efektywność (w tym - efektywność energetyczna); skalowalność. Wielość dostawców oprogramowania, problem vendor lock-in; wykorzystanie oprogramowania open source. Przetwarzanie w chmurze a systemy wbudowane - specjalizowane a ogólne platformy wykonawcze oprogramowania. Ekosystemy rozwojowe. Języki / środki wyrazu używane w procesie rozwojowym (języki wymagań / modelu / produktu) - oczekiwania, własności, przykłady. Algorytmy i technologie automatycznej analizy oprogramowania (9h) <br/>Protokół jako kategoria oprogramowania teleinformatycznego. Oprogramowanie jako byt abstrakcyjny, matematyczny a oprogramowanie "zrealizowane", wcielone w urządzeniu. Techniki FDT (Formal Description Techniques); podejścia: logiczne, automatowe, algebraiczne. Specyfikowanie zachowania systemu metodą property-oriented, z użyciem logik temporalnych (LTL, BTL): klasy własności zachowania, model, relacje spełnienia, model-checking. Specyfikowanie zachowania systemu konstruktywną metodą automatową: automaty FSM, C(E)FSM; przeplot zdarzeń; stany globalne osiągalne i nieosiągalne; defekty jako predykaty na stanach osiągalnych. Metody eksploracji przestrzeni stanów (reachability analysis). Struktury Kripkego, połączenie metod property-oriented i automatowych. Liniowe i częściowe porządki zdarzeń, język MSC. Narzędzia: PragmaDev Studio, Spin, Erigone, język Promela. Informacja o systemach przejść (LTS) i algebrach procesów. Algorytmy i technologie automatycznego testowania (9h) <br/>Przypomnienie podstawowych pojęć testowania. Specyfika testowania systemów teleinformatycznych. Automatyzacja działań testowych: potrzeby, formalizacja, wsparcie narzędziowe. Testowanie jako metoda formalna. Pojęcie model-based testing (MBT). Aspekty automatyzacji: generowanie testów, wykonywanie testów, projektowanie i integracja systemu testowego. Relacje między zachowaniami. Formalne testowanie w standardach ITU-T Z.500 i ETSI TR102840; dla porównania - elementy przemysłowej metodyki ISO 9646. Wzorzec poprawności (specyfikacja). Postać testu, test jako program (w języku testów), kanoniczna postać testu. Wymagania, cele testów. Podejścia do generowania testów: automatyczne, półautomatyczne, heurystyczne, eksperckie. Zakres laboratorium Laboratorium 1: <br/>Celem ćwiczenia jest praktyczne zapoznanie studenta z wprowadzonymi na wykładzie mechanizmami i jedynie wspomnianymi narzędziami do analizy (formalnej weryfikacji / walidacji) oprogramowania, w szczególności - oprogramowania mającego specyficzny dla teleinformatyki charakter protokołu. Używa się np. następujących narzędzi: Spin, EUI/Erigone, niektóre moduły środowiska PragmaDev. Pierwsza część ćwiczenia (3h) ma charakter interaktywny i polega na zademonstrowaniu użycia narzędzi na wybranych przypadkach (wspólna praca studentów i prowadzącego). Następnie studenci w grupach przystępują do samodzielnego zaaplikowania narzędzi do zadanych problemów. (4h) Laboratorium 2: <br/>Celem ćwiczenia jest praktyczne zapoznanie studenta z wprowadzonymi na wykładzie mechanizmami i jedynie wspomnianymi narzędziami do zautomatyzowanego, sformalizowanego testowania oprogramowania, w szczególności - oprogramowania mającego specyficzny dla teleinformatyki charakter protokołu. Używa się np. następujących narzędzi: TTWorkbench, LoongTesting, TITAN, niektóre moduły środowiska PragmaDev (technologia TTCN-3). Pierwsza część ćwiczenia (3h) ma charakter interaktywny i polega na zademonstrowaniu użycia narzędzi na wybranych przypadkach (wspólna praca studentów i prowadzącego). Następnie studenci w grupach przystępują do samodzielnego zaaplikowania narzędzi do zadanych im problemów. (4h) Zakres projektu Studenci, podzieleni na niewielkie grupy, otrzymują do krytycznego opracowania wskazane zagadnienie z dziedziny inżynierii oprogramowania teleinformatycznego (z merytorycznego zakresu pierwszego bloku wykładów). Oczekuje się wyszukania odpowiednich materiałów i pogłębionej, krytycznej analizy tego zagadnienia. Następnie, na pozostałej części zajęć projektowych grupy prezentują swoje opracowania w obecności wszystkich uczestników, po czym następuje dyskusja, moderowana przez prowadzącego. Oceniany jest zakres, celność i wnikliwość opracowania. W ten sposób wszyscy uczestnicy przedmiotu uzyskują dodatkowy wgląd w wybrane zagadnienia, z perspektywy percepcji studenta. |
Literatura: |
|
Zajęcia w cyklu "rok akademicki 2019/2020 - sem. zimowy" (zakończony)
Okres: | 2019-10-01 - 2020-02-21 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 15 godzin
Projekt, 15 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Krzysztof Brzeziński | |
Prowadzący grup: | (brak danych) | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Ocena łączna | |
Jednostka realizująca: | 103600 - Instytut Telekomunikacji |
Zajęcia w cyklu "rok akademicki 2018/2019 - sem. zimowy" (zakończony)
Okres: | 2018-10-01 - 2019-02-17 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 15 godzin
Projekt, 15 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Krzysztof Brzeziński | |
Prowadzący grup: | (brak danych) | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Ocena łączna | |
Jednostka realizująca: | 103600 - Instytut Telekomunikacji |
Właścicielem praw autorskich jest Politechnika Warszawska.