Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowania
Strona główna

Inżynieria oprogramowania

Informacje ogólne

Kod przedmiotu: 1000-I1IOP
Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Inżynieria oprogramowania
Jednostka: Wydział Matematyki i Informatyki
Grupy:
Punkty ECTS i inne: 4.00 LUB 3.00 (zmienne w czasie) 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.

zobacz reguły punktacji
Język prowadzenia: polski
Wymagania wstępne:

Zaliczenie przedmiotu Podstawy programowania i Programowanie I.

Rodzaj przedmiotu:

przedmiot obligatoryjny

Całkowity nakład pracy studenta:

1. Godziny realizowane z udziałem nauczycieli - 30 godzin, w tym

* wykład - 15 godzin;

* laboratorium - 15 godzin.

2. Czas potrzebny na pracę indywidualną studenta - 20 godzin, w tym

* 10 godzin na przygotowanie się do laboratorium (wykonywanie zadań);

* 10 godzin na powtórzenie materiału z wykładu.

3. Czas potrzebny na przygotowanie się do zaliczenia oraz przygotowanie projektu - 50 godzin, w tym

* 30 godzin na przygotowanie projektu zaliczeniowego laboratorium;

* 15 godzin na powtórzenie materiału do zaliczenia wykładu;

* 5 godzin na przygotowanie się do zaliczenia laboratorium.

Efekty uczenia się - wiedza:

1. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie języków i paradygmatów programowania oraz inżynierii oprogramowania (K_W02).

2. Ma ogólną wiedzę na temat różnych paradygmatów programowania i języków programowania (imperatywny, obiektowy), szczegółowo zna metody projektowania i programowania obiektowego (kapsułkowania i ukrywania informacji, klasy i podklasy, dziedziczenie, polimorfizm, hierarchie klas) (K_W10).

3. Ma wiedzę na temat inżynierii oprogramowania, w tym projektowania (wzorce projektowe, architektura oprogramowania, analiza i projektowanie obiektowe), wykorzystania API, narzędzi i środowisk wytwarzania oprogramowania (narzędzia do analizy wymagań i modelowania, narzędzia do testowania, narzędzia do podglądu kodu, narzędzia do zarządzania konfiguracjami i wersjami oprogramowania), cyklu życia projektu informatycznego, specyfikacji oprogramowania, walidacji i weryfikacji, utrzymywania oprogramowania (refaktoryzacji) (K_W11).

Efekty uczenia się - umiejętności:

1. Potrafi pracować indywidualnie i w zespole informatyków, w tym także potrafi zarządzać swoim czasem oraz podejmować zobowiązania i dotrzymywać terminów (K_U03).

2. Potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach, w tym w języku angielskim oraz z wykorzystaniem narzędzi informatycznych (K_U04).

3. Potrafi stworzyć model obiektowy prostego systemu (np. w języku UML) (K_U16).

4. Ocenia przydatność różnych paradygmatów i związanych z nimi środowisk programistycznych do rozwiązywania różnego typu problemów (K_U21).

5. Projektuje oprogramowanie zgodnie z metodyką obiektową (K_U22).

6. Potrafi ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych (K_U23).

7. Potrafi wykonać prostą analizę sposobu funkcjonowania systemu informatycznego i ocenić istniejące rozwiązania informatyczne, przynajmniej w odniesieniu do ich cech funkcjonalnych (K_U25).

8. Tworzy, ocenia i realizuje plan testowania oprogramowania (K_U26).

9. Ma umiejętność posługiwania się przynajmniej jednym z najbardziej popularnych systemów zarządzania wersjami (K_U27).

10. Posługuje się wzorcami projektowymi (K_U28).

Efekty uczenia się - kompetencje społeczne:

1. Nawiązuje i utrzymuje długotrwałą i efektywną współpracę z innymi, dąży do realizacji celów zespołu poprzez odpowiednie zaplanowanie i organizację pracy swojej i innych, motywuje współpracowników do zwiększenia wysiłku w celu osiągnięcia założonych celów (K_K01).

2. Skutecznie przekazuje innym swoje myśli w zrozumiały sposób, właściwie posługuje się terminologią fachową, potrafi nawiązać kontakt w obrębie swojej dziedziny i z osobą reprezentującą inną dziedzinę (K_K02).

3. Jest nastawiony na nieustanne zdobywanie nowej wiedzy, umiejętności i doświadczeń, rozumie potrzebę ciągłego doskonalenia się i podnoszenia kompetencji zawodowych (K_K03).

Metody dydaktyczne:

* Wykład.

* Laboratorium.

* Stworzenie projektu systemu informatycznego w grupach.

* Pisanie programów zgodnych z wzorcami architektonicznymi.

Pełny opis:

  • Wprowadzenie i przedstawienie podstawowych koncepcji.
  • Wprowadzenie podstawowych pojęć związanych z programowaniem obiektowym.
  • Specyfikacja wymagań.
  • Język UML.
  • Wzorce projektowe.
  • Refaktoryzacja.
  • Standardy tworzenia oprogramowania. 
Literatura:

Literatura podstawowa:

  • R. V. Binder, Testowanie systemów obiektowych. Modele, wzorce i narzędzia, WNT, Warszawa 2003. 
  • G. Booch, J. Rumbaugh, I. Jacobson, UML Przewodnik użytkownika wyd. 3, WNT, Warszawa 2002.
  • A. Cockburn, Jak pisać efektywne przypadki użycia, WNT, Warszawa 2004.
  • A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997.

Literatura uzupełniająca:

  • M. Bays, Metodyka wprowadzania oprogramowania na rynek, WNT, Warszawa 2001.
  • P. Beynon-Davies, Inżynieria systemów informacyjnych, WNT, Warszawa 1999.
  • J. Górski, Inżynieria oprogramowania w projekcie informatycznym, Mikom, Warszawa 2000. 
Metody i kryteria oceniania:

Zaliczenie laboratorium odbywa się na podstawie zadań rozwiązywanych przez studentów w ciągu całego semestru.

Ocena z zaliczenia wykładu ustalana jest przez koordynatora przedmiotu (zwykle osoba prowadząca wykład) na podstawie wyników osiąganych przez studenta podczas laboratorium oraz na podstawie ustnych odpowiedzi na pytania dotyczące treści wykładu.

Zajęcia w cyklu "Semestr zimowy 2022/23" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 16 miejsc więcej informacji
Wykład, 15 godzin, 150 miejsc więcej informacji
Koordynatorzy: Rafał Bocian
Prowadzący grup: Jerzy Białkowski, Rafał Bocian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Laboratorium - Zaliczenie
Wykład - Zaliczenie na ocenę

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin, 16 miejsc więcej informacji
Wykład, 15 godzin, 150 miejsc więcej informacji
Koordynatorzy: Rafał Bocian, Anna Gogolińska
Prowadzący grup: Jerzy Białkowski, Rafał Bocian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Laboratorium - Zaliczenie
Wykład - Zaliczenie na ocenę

Zajęcia w cyklu "Semestr zimowy 2024/25" (zakończony)

Okres: 2024-10-01 - 2025-02-23
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin, 16 miejsc więcej informacji
Wykład, 15 godzin, 150 miejsc więcej informacji
Koordynatorzy: Anna Gogolińska
Prowadzący grup: Jerzy Białkowski, Anna Gogolińska, Jakub Narębski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Laboratorium - Zaliczenie
Wykład - Zaliczenie na ocenę
Skrócony opis:

Zapoznanie się z metodykami tworzenia oprogramowania. Tworzenie kompleksowych projektów systemów informatycznych, obejmujących między innymi specyfikację, dokumentację i testowanie. Używanie wzorców projektowych.

Pełny opis:

Wykład.

1. Wprowadzenie i przedstawienie podstawowych koncepcji.

2. Systemy kontroli wersji.

3. Klasyczne i zwinne metodyki tworzenia oprogramowania.

4. Specyfikacja wymagań.

5. Język UML.

6. Testowanie oprogramowania.

7. Wzorce projektowe.

Laboratorium.

1. Zarządzanie projektem z wykorzystaniem systemu GIT.

2. Rysowanie diagramów UML.

3. Implementacja wzorców projektowych.

Literatura:

Literatura podstawowa:

1. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Helion, 2010

2. https://git-scm.com/book/pl/v1/Pierwsze-kroki

3. A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997.

4. M. Krzemiński, Agile: szybciej, łatwiej, dokładniej, Helion, Gliwice, 2014.

5. https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Polish.pdf

Literatura uzupełniająca:

1. M. Bays, Metodyka wprowadzania oprogramowania na rynek, WNT, Warszawa 2001.

2. G. Booch, J. Rumbaugh, I. Jacobson, UML Przewodnik użytkownika wyd. 3, WNT, Warszawa 2002.

3. Eric Freeman, Kathy Sierra, Bert Bates, Elisabeth Robson, Head First Design Patterns, 2004

4. R. V. Binder, Testowanie systemów obiektowych. Modele, wzorce i narzędzia, WNT, Warszawa 2003.

Zajęcia w cyklu "Semestr zimowy 2025/26" (jeszcze nie rozpoczęty)

Okres: 2025-10-01 - 2026-02-22
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 15 godzin, 16 miejsc więcej informacji
Wykład, 15 godzin, 150 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: Jerzy Białkowski, Anna Gogolińska
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Laboratorium - Zaliczenie
Wykład - Zaliczenie na ocenę
Skrócony opis:

Zapoznanie się z metodykami tworzenia oprogramowania. Tworzenie kompleksowych projektów systemów informatycznych, obejmujących między innymi specyfikację, dokumentację i testowanie. Używanie wzorców projektowych.

Pełny opis:

Wykład.

1. Wprowadzenie i przedstawienie podstawowych koncepcji.

2. Systemy kontroli wersji.

3. Klasyczne i zwinne metodyki tworzenia oprogramowania.

4. Specyfikacja wymagań.

5. Język UML.

6. Testowanie oprogramowania.

7. Wzorce projektowe.

Laboratorium.

1. Zarządzanie projektem z wykorzystaniem systemu GIT.

2. Rysowanie diagramów UML.

3. Implementacja wzorców projektowych.

Literatura:

Literatura podstawowa:

1. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Helion, 2010

2. https://git-scm.com/book/pl/v1/Pierwsze-kroki

3. A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997.

4. M. Krzemiński, Agile: szybciej, łatwiej, dokładniej, Helion, Gliwice, 2014.

5. https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Polish.pdf

Literatura uzupełniająca:

1. M. Bays, Metodyka wprowadzania oprogramowania na rynek, WNT, Warszawa 2001.

2. G. Booch, J. Rumbaugh, I. Jacobson, UML Przewodnik użytkownika wyd. 3, WNT, Warszawa 2002.

3. Eric Freeman, Kathy Sierra, Bert Bates, Elisabeth Robson, Head First Design Patterns, 2004

4. R. V. Binder, Testowanie systemów obiektowych. Modele, wzorce i narzędzia, WNT, Warszawa 2003.

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ kontakt deklaracja dostępności mapa serwisu USOSweb 7.1.1.0-7 (2025-03-24)