Software engineering
1000-ZiIOP
Lectures:
1. Introduction to software engineering.
2. Version control systems.
3. Classical and agile methods of software designing.
4. Specification.
5. UML language.
6. Documentation.
7. Code testing.
8. Software design patterns.
Labs:
1. Project management with GIT.
2. Code testing.
3. Implementation of software design patterns.
4. UML diagrams.
Total student workload
1. Hours with teacher:
- lecture - 20 hours
- labs - 16 hours
2. Individual work:
- 40 hours for preparation for labs
- 20 hours for preparation for lectures
3. Preparation for passing:
- 30 hours for labs' homoworks
- 54 hours for preparation for exam
Together: 180 hours
Learning outcomes - knowledge
(in Polish) 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).
Learning outcomes - skills
(in Polish) 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).
Learning outcomes - social competencies
(in Polish) 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).
Course coordinators
Teaching methods
1. Lectures
2. Labs
Prerequisites
Basic skills in object-oriented programming and using of computer.
Assessment criteria
Labs: homeworks during the whole semester.
Lectures: written test (on the condition of passing the labs).
Practical placement
Bibliography
Basic literature:
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
Additional literature:
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.
Additional information
Additional information (registration calendar, class conductors,
localization and schedules of classes), might be available in the USOSweb system: