Module also offered within study programmes:
General information:
Name:
Software Engineering
Course of study:
2018/2019
Code:
JIS-1-601-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
6
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Olejarz-Mieszaniec Ewa (ewao@agh.edu.pl)
Academic teachers:
dr inż. Bubak Marian (bubak@agh.edu.pl)
Module summary
Moduł opisuje proces tworzenia oprogramowania (od zebrania wymagań, poprzez tworzenie zespołu, uwzględnienie architektury systemu) do jego testowania i implementacji.
Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Potrafi pracować w małym zespole. IS1A_K01 Activity during classes,
Execution of laboratory classes
Skills
M_U001 Potrafi użyć właściwych procesów tworzenia oprogramowania IS1A_U06, IS1A_U05 Activity during classes,
Execution of laboratory classes
M_U002 Potrafi dobrać narzędzia do budowy systemu oprogramowania IS1A_U06, IS1A_U05 Activity during classes,
Execution of laboratory classes
M_U003 Umie korzystać z literatury. IS1A_U04 Activity during classes,
Examination,
Execution of laboratory classes
Knowledge
M_W001 Zna proces tworzenia systemów informatycznych. IS1A_W03 Activity during classes,
Examination,
Execution of laboratory classes
M_W002 Rozumie kluczową rolę zbierania i analizy wymagań. IS1A_W03 Activity during classes,
Examination,
Execution of laboratory classes
M_W003 Potrafi użyć właściwych procesów tworzenia oprogramowania. IS1A_W03 Activity during classes,
Examination,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Potrafi pracować w małym zespole. - - + - - - - - - - -
Skills
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. + - + - - - - - - - -
Knowledge
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. - - + - - - - - - - -
Module content
Lectures:
  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.

Laboratory classes:
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.)

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 150 h
Module ECTS credits 5 ECTS
Participation in lectures 30 h
Participation in laboratory classes 30 h
Realization of independently performed tasks 26 h
Preparation for classes 30 h
Preparation of a report, presentation, written work, etc. 24 h
Examination or Final test 10 h
Additional information
Method of calculating the final grade:

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.

Prerequisites and additional requirements:

Znajomość przynajmniej jednego obiektowego języka programowania.

Recommended literature and teaching resources:
  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
Scientific publications of module course instructors related to the topic of the module:

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”

Additional information:

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