Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Zaawansowane metody wytwarzania oprogramowania

Informacje ogólne

Kod przedmiotu: 103A-INxxx-MSP-ZMWO
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Zaawansowane metody wytwarzania oprogramowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty techniczne )---EITI
( Przedmioty zaawansowane )-Inżynieria systemów informatycznych-mgr.-EITI
( Przedmioty zaawansowane obieralne )-Systemy informacyjno-decyzyjne-mgr.-EITI
( Przedmioty zaawansowane techniczne )--mgr.-EITI
( Wytwarzanie systemów multimedialnych )-Informatyka w multimediach-mgr.-EITI
Punkty ECTS i inne: 4.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:

ZMWO

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie studentów z zaawansowanymi metodami stosowanymi w produkcji oprogramowania wysokiej jakości oraz jego ewolucji. Omawiane są różne formalne metody specyfikacji oprogramowania pozwalające na uzyskanie wysokiej niezawodności. Prezentowane są nowoczesne podejścia do projektowania np. MDA, design by contract, metodyki lekkie. Omawiane są różne metody ponownego użycia np. projektowanie aspektowe, komponentowa inżynieria oprogramowania, wzorce projektowe i architektoniczne. Studenci poznają także zaawansowane techniki testowania oprogramowania obiektowego. Uczą się stosowania metryk oprogramowania w projektowaniu i testowaniu. Przedstawiane są techniki ponownej inżynierii kodu poprawiające jego jakość. Wykład jest skorelowany z zajęciami laboratoryjnymi. W ramach zajęć laboratoryjnych studenci stosują poznane metody do rozwiązania konkretnych problemów. Poznają także narzędzia do specyfikacji formalnych i automatyzacji testowania.

Pełny opis:

Celem przedmiotu jest zapoznanie studentów z zaawansowanymi metodami stosowanymi w produkcji oprogramowania wysokiej jakości oraz jego ewolucji. Omawiane są różne formalne metody specyfikacji oprogramowania pozwalające na uzyskanie wysokiej niezawodności. Prezentowane są nowoczesne podejścia do projektowania np. MDA, design by contract, metodyki lekkie. Omawiane są różne metody ponownego użycia np. projektowanie aspektowe, komponentowa inżynieria oprogramowania, wzorce projektowe i architektoniczne. Studenci poznają także zaawansowane techniki testowania oprogramowania obiektowego. Uczą się stosowania metryk oprogramowania w projektowaniu i testowaniu. Przedstawiane są techniki ponownej inżynierii kodu poprawiające jego jakość. Wykład jest skorelowany z zajęciami laboratoryjnymi. W ramach zajęć laboratoryjnych studenci stosują poznane metody do rozwiązania konkretnych problemów. Poznają także narzędzia do specyfikacji formalnych i automatyzacji testowania.

Treść wykładu
Wprowadzenie (2)

Przedstawienie celu i zakresu przedmiotu oraz sprawy organizacji zajęć (zaliczenie, laboratorium). Cechy oprogramowania wysokiej jakości.
Formalne metody specyfikacji i weryfikacji oprogramowania (4)

Język Z - podstawowe mechanizmy, operatory, przykłady specyfikacji, zastosowania. Modele zachowania (np. statecharts) i ich zastosowanie w weryfikacji własności czasowych i niezawodnościowych. Narzędzia do specyfikacji i weryfikacji. Transformacje specyfikacji formalnych do kodu.
Nowe podejścia do projektowania oprogramowania (6)

MDE (Model Driven Engineering) - wytwarzanie oparte na modelach. Meta-modelowanie, hierarchia OMG. Profile UML. MDA (Model Driven Architecture) - model niezależny od platformy (PIM) i model zależny platformowo (PSM). Transformacje modeli (standard QVT - Query View Transformation), łączenie modeli. CBSE - komponentowa inżynieria oprogramowania, modele komponentowe.
Testowanie(3)

Testowanie a specyfikacje formalne. Test Driven Development. Automatyzacja testowania. Testowanie za pomoca narzędzi typu "zarejestruj - odtwórz", skrypty testujące, punkty weryfikacyjne. Testy jednostkowe. Testy z użyciem obiektów zastępczych (mock objects).
Nowoczesne metody wytwarzania i ewolucji oprpgramowania (10).

Wytwarzanie zorientowane aspektowo (AOD). Identyfikacja aspektów i ich przeplatanie (ang. weaving). Języki programowania aspektowego (C++ i Java) i ich kompilatory. Wzorce architektoniczne - przykłady zastosowań. Slicing kodu - odmiany slicingu, zastosowania. Refaktoryzacja kodu - usuwanie "brzydkich zapachów" np. duplokaty kodu, długie metody, duże klasy, złożone instrukcje warunkowe. Przekształcenia refaktoryzacyjne. Weryfikacja poprawności refaktoryzacji - projektowanie zgodne z umową (ang. design by contract) warunki wstępne i końcowe, niezmienniki, testowanie jednostkowe, regresyjne. Refaktoryzacja do wzorców projektowych.
Metryki oprogramowania (2)

Metryki obiektowe wpływające na jakość i złożoność projektu oraz procesu testowania. Metryki Chindamber-Kemerer, MOOD, Bashir-Goehl.

Przewidziane są dwa jednogodzinne kolokwia sprawdzające.



Zakres laboratorium
Celem laboratorium jest pogłębienie zdobytej wiedzy i jej praktyczne zastosowanie. Laboratorium obejmuje zadania z zakresu formalnych specyfikacji, testowania, programowania aspektowego, refaktoryzacji kodu. Studenci będą wykorzystywać specjalizowane narzędzia. Szczegółowa treść ćwiczeń laboratoryjnych jest określana przez prowadzących i może być różna dla różnych zespołów laboratoryjnych.




Poprzedniki

Typ poprzednikaNr poprzednikaKod poprzednikaNazwa poprzednika
Wymagany1103C-INIIT-ISP-IOPInżynieria oprogramowania
Zalecany2103A-INIIT-ISP-IOP2Inżynieria oprogramowania 2

Literatura:


  • M. Fowler i inni:Refaktoryzacje. Ulepszanie struktury
    istniejącego kodu, wyd. 2, 2018

  • S.H. Kan: Metryki i modele w inżynierii jakości oprogramowania,
    PWN 2006

  • A. Roman: Testowanie i jakość oprogramowania. Modele, techniki,
    narzędzia, PWN 2017

  • A. Harry: Formal Methods Fact File VDM and Z, Wiley 1996

  • Aspect-Oriented Software Development web site -
    http://www.aosd.net

  • J. Kerievsky, Refaktoryzacja do wzorców projektowych, Helion,
    2005

  • Specyfikacje OMG (MDA, MOF, UML, QVT) http://www.omg.org/


Literatura uzupełniająca:

  • L. Maciaszek : Practical Software Engineering, Pearson 2005

  • M. Flower i inni: Architektura systemów zarządzania
    przedsiębiorstwem, Wzorce projektowe, Helion 2005

  • J.Z.Gao, H.-S.J. Tsao, Ye Wu: Testing and quality Assurance for
    Component Based Software, Artech House 2003

  • C. Szyperski: Oprogramowanie komponentowe. Obiekty to za mało,
    WNT 2001

  • B. Wiszniewski, B. Bereza-Jarociński: Teoria i praktyka
    testowania programów, PWN 2006

  • G. Kiczales and others: Aspect-Oriented Programming,
    Proceedings of the European Conference on Object-Oriented Programming
    (ECOOP), Finland, LNCS 1241

  • http://www.mockobjects.com/

  • Materiały wykładowcy i strony Internetowe

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

Okres: 2021-02-20 - 2021-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 15 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Agnieszka Malanowska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2020-02-22 - 2020-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Agnieszka Malanowska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke, Anna Derezińska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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.0.0-7 (2024-03-18)