Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

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 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
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:

  1. Wykładowe materiały prezentacyjne.
  2. Materiały pomocnicze (artykuły, opracowania, standardy teleinformatyczne), zamieszczane na internetowej stronie przedmiotu.
  3. Książki i opracowania (jako lektura uzupełniająca, porównawcza, referencyjna):
    • Guide to the Software Engineering Body of Knowledge (SWEBOKv3), IEEE, 2013.
    • K. Schwaber, M. Beedle, Agile Software Development with Scrum, Pearson, 2001.
    • M. Hutterman, DevOps for Developers, Apress, 2012.
    • G. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall, 1991.
    • H. Koenig, Protocol Engineering, Springer, 2012.
    • M. Utting, B. Legeard, Practical Model-Based Testing: A Tools Approach, Morgan Kaufmann, 2007.
    • K. Naik, P. Tripathy, Software Testing and Quality Assurance: Theory and Practice, Wiley, 2008 (rozdział 10).
    • (opcjonalnie) A. Roman, Testowanie i jakość oprogramowania: Modele, techniki, narzędzia, PWN, 2015.

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. zimowy" (zakończony)

Okres: 2019-10-01 - 2020-02-21
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin więcej informacji
Projekt, 15 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin więcej informacji
Projekt, 15 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.2.0-2 (2024-03-29)