Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Inżynieria oprogramowania
Tok studiów:
2018/2019
Kod:
JIS-1-601-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
6
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Olejarz-Mieszaniec Ewa (ewao@agh.edu.pl)
Osoby prowadzące:
dr inż. Bubak Marian (bubak@agh.edu.pl)
Krótka charakterystyka modułu
Moduł opisuje proces tworzenia oprogramowania (od zebrania wymagań, poprzez tworzenie zespołu, uwzględnienie architektury systemu) do jego testowania i implementacji.
Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Zna proces tworzenia systemów informatycznych. IS1A_W03 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_W002 Rozumie kluczową rolę zbierania i analizy wymagań. IS1A_W03 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_W003 Potrafi użyć właściwych procesów tworzenia oprogramowania. IS1A_W03 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U001 Potrafi użyć właściwych procesów tworzenia oprogramowania IS1A_U06, IS1A_U05 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_U002 Potrafi dobrać narzędzia do budowy systemu oprogramowania IS1A_U06, IS1A_U05 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_U003 Umie korzystać z literatury. IS1A_U04 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K001 Potrafi pracować w małym zespole. IS1A_K01 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Zna proces tworzenia systemów informatycznych. + - + - - - - - - - -
M_W002 Rozumie kluczową rolę zbierania i analizy wymagań. + - + - - - - - - - -
M_W003 Potrafi użyć właściwych procesów tworzenia oprogramowania. - - + - - - - - - - -
Umiejętności
M_U001 Potrafi użyć właściwych procesów tworzenia oprogramowania - - + - - - - - - - -
M_U002 Potrafi dobrać narzędzia do budowy systemu oprogramowania - - + - - - - - - - -
M_U003 Umie korzystać z literatury. + - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi pracować w małym zespole. - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Proces tworzenia oprogramowania (2 godz.)

    Artefakty i role. Rola 4 P inżynierii oprogramowania. Modele procesów: wodospadowy, spiralny, przyrostowy, USDP. Dokumentacja. Rola standardów w inżynierii oprogramowania. Dokumentacja zgodnie z IEEE. Zarzadzanie jakością projektu informatycznego. Metodyki zwinne.

  2. Zarzadzanie tworzeniem oprogramowania (2 godz.)

    Tworzenie zespołu, podział zadań. Struktury zarzadzania. Ocena złożoności i kosztu projektu informatycznego. Identyfikacja ryzyka i zarządzanie nim. Przegląd modeli zarzadzania jakością.

  3. Zbieranie i analiza wymagań (4 godz.)

    Koncepcje zbierania wymagań. Aktywności związane ze zbieraniem wymagań. Współpraca z zamawiającym. Sposoby zapisu wymagań typu C. Szybkie prototypowanie. Inspekcje wymagań C.
    Wymagania D. Wymagania funkcjonalne i niefunkcjonalne. Wymagania stawiane zbiorowi wymagań. Sposoby zapisu wymagań D. Próby formalizacji zapisu wymagań. Dokument SRS. Inspekcja wymagań D.

  4. Architektura sytemu (2 godz.)

    Podstawowe typy architektury systemów informatycznych. Modele, ramy i wzorce projektowe. Architektury warstwowe. Aspekt jakości wyboru architektury, inspekcje.

  5. Projektowanie systemu (4 godz.)

    Przejście od architektury do projektu systemu. Budowanie szczegółowego projektu systemu poprzez wykorzystanie wymagań. Wykorzystanie diagramów sekwencji, przepływu danych, stanów. Specyfikowanie klas, metod i funkcji. Wykorzystanie wzorców projektowych.

  6. Implementacja – odwzorowanie modelu na kod (2 godz.)

    Dobór sposobu implementacji. Style programowania. Standardy programowania. Narzędzia wspierające implementacje. Inspekcje kodów.

  7. Testowanie (2 godz.)

    Testy jednostkowe, rola testów jednostkowych. Typy testów jednostkowych: black, grey, i white box. Planowanie testów. Testy a zestaw wymagań.

  8. Integracja systemu, weryfikacja i walidacja (2 godz.)

    Integracja systemu a testy integracyjne: testy systemu, regresyjne, instalacyjne. Dokumentowanie integracji i testowania. Testy a weryfikacja oraz walidacja. Metryki jakości oprogramowania.

  9. Pielęgnacja systemu (2 godz.)

    Istota pielęgnacji. Techniki pielęgnacji: reverse rengineering, reengineering. Współpraca z użytkownikami systemu. Sposoby ulepszania systemu.

  10. Podsumowanie (2 godz.)

    Przegląd poznanych metod i ocena ich przydatności w oparciu o doświadczenie studentów.

  11. Zadania inżynierii oprogramowania (1 godz.)

    Inżynieria oprogramowania: definicja i kontekst. Podstawowe aktywności w tworzeniu oprogramowania. Cztery aspekty tworzenia oprogramowania: proces, projekt, ludzie, produkty. Zagadnienie jakości

  12. UML w modelowaniu systemów informatycznych (3 godz.)

    UML- powstanie, struktura, pojęcia. Diagramy przypadków użycia. Diagramy sekwencji. Diagramy klas. Diagramy czynności. Diagramy stanów. Diagramy interakcji. Diagramy komunikacji. Diagramy wdrożeniowe. Metodyki, modele i narzędzia wspierające UML.

Ćwiczenia laboratoryjne:
Projekty laboratoryjne

W trakcie ćwiczeń laboratoryjnych realizowane są 2 projekty laboratoryjne o rożnych stopniach złożoności,
a w trakcie omawiane są kolejne etapy tworzenia systemu informatycznego.

  1. Poznanie narzędzi wspierających tworzenie oprogramowania (4 godz.)
  2. Inżynieria wymagań (4 godz.)
  3. Budowanie architektury systemu (4 godz.)
  4. Projektowanie systemu, wykorzystanie UML (4 godz.)
  5. Implementacja i testy jednostkowe (4 godz.)
  6. Integracja i testy systemu (4 godz.)
  7. Pielęgnacja (4 godz.)
  8. Ocena pracy (2 godz.)

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 150 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 30 godz
Udział w ćwiczeniach laboratoryjnych 30 godz
Samodzielne studiowanie tematyki zajęć 26 godz
Przygotowanie do zajęć 30 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 24 godz
Egzamin lub kolokwium zaliczeniowe 10 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z laboratorium, przedstawienie opracowania o charakterze mini-artykułu oraz zdanie egzaminu. Ocena końcowa jest średnią ważoną tych trzech ocen.

Wymagania wstępne i dodatkowe:

Znajomość przynajmniej jednego obiektowego języka programowania.

Zalecana literatura i pomoce naukowe:
  1. B. Bruegge, A.H. Dutoit. Inżynieria oprogramowania w ujęciu obiektowym. UML, wzorce projektowe i Java. Helion 2011
  2. K. Sacha. Inżynieria oprogramowania. PWN 2010
  3. S. Bennet, S. McRobb, and R. Farmer. Object-Oriented System Analysis and Design using UML. McGraw-Hill 2010
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

1. B. Wilk, M. Kasztelnik, M. Bubak: Software for eScience: from feature modeling to automatic setup of environments, Chapter 4 of the book: Jakub Swacha (Ed.), Advances in Software Development, Scientific Papers of the Polish Information Processing Society, Scientific Council, PTI, Warszawa 2013, pp. 83-96, ISBN 978-83-7518-597-3 (2013)
2. B. Bodziechowski, E. Ciepiela, M. Bubak: Assessment of Software Quality with Static Source Code Analysis: GridSpace2 Case Study, abstract for Cracow Grid Workshop 2012, 22-24 October 2012, Kraków, Poland (2012)
Full and constantly updated list of relevant publications is available a.o. at http://dblp.uni-trier.de/pers/hd/b/Bubak:Marian and “Google Scholar Marian Bubak”

Informacje dodatkowe:

Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach: wyrównywanie zaległości jest możliwe; student uzgadnia to bezpośrednio z osobą prowadzącą odpowiednie zajecia