Inżynieria oprogramowania
Transkrypt
Inżynieria oprogramowania
Nazwa przedmiotu: INŻYNIERIA OPROGRAMOWANIA Software engineering Kierunek: Forma studiów: Stacjonarne Poziom przedmiotu: Informatyka Kod przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny I stopnia C5_19 Rok: III Semestr: V Rodzaj zajęć: Liczba godzin/tydzień: Liczba punktów: wykład, laboratorium 2WE, 2L 5 ECTS Rodzaj przedmiotu: PRZEWODNIK PO PRZEDMIOCIE I KARTA PRZEDMIOTU CEL PRZEDMIOTU C1. Zapoznanie studentów z przebiegiem procesu produkcyjnego oprogramowania, rozpoczynając od fazy strategicznej, poprzez ustalenie wymagań po stronie użytkownika, aż do faz końcowych, tj. testowania instalacji u użytkownika i pielęgnacji. C2. Nabycie przez studentów praktycznych umiejętności w zakresie projektowania oprogramowania. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI 1. Wiedza z zakresu matematyki i podstaw programowania. 2. Znajomość najpopularniejszych paradygmatów programowania: proceduralnego oraz obiektowego. 3. Umiejętność projektowania klas i znajomość rodzajów relacji między nimi. 4. Umiejętność stosowania odpowiednich algorytmów i struktur danych do rozwiązywania problemów. 5. Umiejętność korzystania z różnych źródeł informacji w tym z instrukcji i dokumentacji technicznej. 6. Umiejętności pracy samodzielnej i w grupie. 7. Umiejętności prawidłowej interpretacji i prezentacji własnych działań. EFEKTY KSZTAŁCENIA EK 1 – posiada podstawową wiedzę teoretyczną z zakresu projektowania oprogramowania, EK 2 – zna tendencje i kierunki rozwoju w zakresie projektowania i programowania systemów komputerowych, EK 3 – potrafi wykorzystać proces inżynierii wymagań do identyfikacji wymagań stawianych oprogramowaniu, EK 4 – potrafi przedstawić projekt systemu komputerowego w postaci dokumentacji technicznej jak również potrafi ją biegle odczytać, EK 5 – potrafi wykorzystać wybrane techniki inżynierii oprogramowania w trakcie procesu projektowania oprogramowania, z uwzględnieniem wykorzystania odpowiednich wzorców projektowych w procesie projektowania 1 EK 6 – zna podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania. EK 7 – potrafi utworzyć testy jednostkowe dla wybranego fragmentu systemu, EK 8 – zna metody zarządzania cyklem życia oprogramowania oraz podstawy zarządzania przedsięwzięciami programistycznymi, TREŚCI PROGRAMOWE Forma zajęć – WYKŁADY W 1 – Modele procesu tworzenia oprogramowania. W 2 – Proces inżynierii wymagań. W 3 – Wprowadzenie do UML. W 4 – UML – diagramy strukturalne. W 5 – UML – diagramy behawioralne. W 6 – Projektowanie obiektowe. W 7 – Metody identyfikacja klas i obiektów w tworzonym projekcie. W 8 – Architektura systemów komputerowych. W 9 – Wstęp do wzorców projektowych. W 10 – Szczegółowe omówienie wybranych wzorców projektowych. W 11 – Proces weryfikacji i walidacji oprogramowania. W 12 – Testy jednostkowe. W 13 – Techniki programowania zwinnego. W 14 – Podstawy zarządzania przedsięwzięciami programistycznymi. W 15 – Zarządzanie konfiguracją oprogramowania. Forma zajęć – LABORATORIUM L 1 – Zapoznanie z pojęciami inżynierii oprogramowania. L 2 – Zapoznanie z narzędziami CASE na przykładzie programu Enterprise Architect. L 3 – Specyfikacja wymagań dla przykładowego projektu. L 4 – Projektowanie przypadków użycia na podstawie specyfikacji wymagań. L 5 – Scenariusze przypadków użycia, scenariusze alternatywne, wyjątki. L 6 – Diagramy sekwencji dla przypadków użycia. L 7 – Związki klas: generalizacja, asocjacja, agregacja i kompozycja. L 8 – Projekt diagramu klas dla rozważanego wcześniej projektu. L 9 – Tworzenie dokumentacji dla danego kodu źródłowego. L 10 – Wykorzystanie wybranych diagramów UML w projekcie oprogramowania. L 11 – Przykładowe implementacja wybranych wzorców projektowych. L 12 – Łączenie wzorców projektowych. L 13 – Budowa oprogramowania zgodnego ze wzorcem Model-Widok-Kontroler. L 14 – Testowanie oprogramowania – testy jednostkowe. L 15 – Wstęp do systemów kontroli wersji. Liczba godzin 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Liczba godzin 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 NARZĘDZIA DYDAKTYCZNE 1. – wykład z wykorzystaniem prezentacji multimedialnych 2. – ćwiczenia laboratoryjne, opracowanie sprawozdań z realizacji przebiegu ćwiczeń 3. – instrukcje do wykonania ćwiczeń laboratoryjnych 4. – profesjonalny program typu CASE (Enterprise Architect) 2 5. – wybrane środowisko programistyczne IDE SPOSOBY OCENY ( F – FORMUJĄCA, P – PODSUMOWUJĄCA) F1. – ocena przygotowania do ćwiczeń laboratoryjnych F2. – ocena umiejętności stosowania zdobytej wiedzy podczas wykonywania ćwiczeń F3. – ocena aktywności podczas zajęć P1. – ocena umiejętności rozwiązywania postawionych problemów oraz sposobu prezentacji uzyskanych wyników – zaliczenie na ocenę* P2. – ocena opanowania materiału nauczania będącego przedmiotem wykładu – zaliczenie wykładu (lub egzamin) *) warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen ze wszystkich ćwiczeń laboratoryjnych, OBCIĄŻENIE PRACĄ STUDENTA Forma aktywności Godziny kontaktowe z prowadzącym Średnia liczba godzin na zrealizowanie aktywności 30W 30L 60 h Godziny konsultacji z prowadzącym 5h Godziny przeznaczone na egzamin 3h Zapoznanie się ze wskazaną literaturą 12 h Przygotowanie do ćwiczeń laboratoryjnych 15 h Wykonanie sprawozdań z realizacji ćwiczeń laboratoryjnych, 10 h projektów (czas poza zajęciami) Przygotowanie do egzaminu i kolokwium Suma SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU liczba punktów ECTS, którą student uzyskuje na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym 20 h 125 h 5 ECTS 2.7 ECTS 2.2 ECTS LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA 1. Gamma E. i in.: Wzorce projektowe, WNT, Warszawa 2005. 2. Jaszkiewicz A.: Inżynieria oprogramowania, Helion, Gliwice 1997. 3. Miles R., Hamilton K.: UML 2.0. Wprowadzenie, Helion, Gliwice 2007. 4. Pressman R.S.: Praktyczne podejście do inżynierii oprogramowania, WNT, Warszawa 2004. 5. Sommerville I.: Inżynieria oprogramowania, WNT, Warszawa 2003. 6. Wrycza S., Marcinkowski B., Wyrzykowski K.: Język UML 2.0 w modelowaniu systemów informatycznych, Helion, Gliwice 2006, 7. Booch G., Rumbaugh J., Jacobson I.: UML przewodnik użytkownika, WNT, Warszawa 2002. 8. Fowler M., Scott K.: UML w kropelce, Oficyna Wydawnicza LPT, Warszawa 2002 9. McConnell S.: Kod doskonały. Jak tworzyć oprogramowanie pozbawione błędów, Helion, Gliwice 2010 10. Sacha K.: Inżynieria oprogramowania, PWN, Warszawa 2010. 3 PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL) 1. dr inż. Robert Dyja [email protected] MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA Efekt kształcenia EK1 EK2 EK3 EK4 EK5 EK6 EK7 EK8 Odniesienie danego efektu do efektów zdefiniowanych dla całego programu (PEK) K_W14 K_W04 K_W19 K_W14 K_W13 K_W08 K_K01 K_U17 K_U02 K_K05 K_W14 K_W08 K_U02 K_U03 K_U17 K_U02 K_U17 K_W14 K_W13 K_W14 K_U17 K_U16 K_W14 K_W25 Cele przedmiotu Treści programowe Narzędzia dydaktyczne Sposób oceny C1 W1-15 L1-2,14 1,2,3,4 P2 C1 W1 L2,14 1,2,3,4,5 P1 C2 W2 L3-5 1,2,3,4,5 F1,F2, F3 C2 W3-5 L6-7 1,2,3,4 F1,F2, F3 C1,C2 W3-5,9-10 L4,5,8,9,11-13 1,2,3,4,5 F1,F2, F3 C1 C2 C1, C2 W11-12 W11-12 L14 W1,13,14,15 L15 1 1,2,3,5 1 F3 F1,F2, F3 F3 4 II. FORMY OCENY - SZCZEGÓŁY Na ocenę 2 Efekt 1,2,3,8 Student zna podstawowe czynności wykonywane podczas poszczególnych etapów procesu produkcyjnego oprogramowania oraz potrafi je wykonywać Na ocenę 3 Na ocenę 4 Na ocenę 5 Student nie zna podstawowych czynności wykonywanych podczas poszczególnych etapów procesu produkcyjnego oprogramowania Student częściowo zna podstawowe czynności wykonywane podczas poszczególnych etapów procesu produkcyjnego oprogramowania oraz potrafi je wykonywać z pomocą prowadzącego Student zna podstawowe czynności wykonywane podczas poszczególnych etapów procesu produkcyjnego oprogramowania oraz potrafi je wykonywać na podstawie instrukcji Student zna podstawowe czynności wykonywane podczas poszczególnych etapów procesu produkcyjnego oprogramowania oraz potrafi je samodzielnie wykonywać Efekt 4,5 Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z projektowaniem oprogramowania Student nie posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z projektowaniem oprogramowania Student posiada ograniczone umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z projektowaniem oprogramowania Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z projektowaniem oprogramowania Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z projektowaniem oprogramowania, potrafi dokonać oceny oraz uzasadnić trafność przyjętych metod Efekt 6,7 Student zna podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania Student nie zna podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania Student zna częściowo podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania Student zna podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania Student zna podstawowe zagadnienia dotyczące weryfikacji i walidacji oprogramowania oraz automatyzacji testowania oraz potrafi samodzielnie poszerzać wiedzę Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE 1. Wszelkie informacje dla studentów (prezentacje do zajęć, instrukcje do ćwiczeń laboratoryjnych) dostępne są na stronie internetowej http://icis.pcz.pl/~dyja, w zakładce Dydaktyka. 2. Informacja na temat konsultacji przekazywana jest studentom podczas pierwszych zajęć danego z przedmiotu. 5