Inżynieria oprogramowania
Informacje ogólne
Kod przedmiotu: | 1000-214bIOP |
Kod Erasmus / ISCED: |
11.302
|
Nazwa przedmiotu: | Inżynieria oprogramowania |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obowiązkowe dla II roku informatyki Przedmioty obowiązkowe dla II roku JSIM - wariant 3I+4M Przedmioty obowiązkowe dla III roku JSIM - wariant 3M+4I |
Strona przedmiotu: | http://moodle.mimuw.edu.pl |
Punkty ECTS i inne: |
5.50
|
Język prowadzenia: | polski |
Kierunek podstawowy MISMaP: | informatyka |
Rodzaj przedmiotu: | obowiązkowe |
Wymagania (lista przedmiotów): | Indywidualny projekt programistyczny 1000-222bIPP |
Założenia (lista przedmiotów): | Bazy danych 1000-213bBAD |
Założenia (opisowo): | Znajomość zagadnień omawianych na przedmiotach: 1. Indywidualny projekt programistyczny 2. Bazy danych 3. Programowanie obiektowe |
Skrócony opis: |
Celem przedmiotu jest nauczenie zasad tworzenia oprogramowania w projektach programistycznych realizowanych zespołowo. Na wykładzie omawiane są praktyki tworzenia oprogramowania wybrane z obowiązujących współcześnie metodyk. Podczas laboratorium czteroosobowe zespoły pracują nad wybranymi przez siebie małymi projektami; uczą się pracować w zespole, stosować wzorce funkcjonalne i architektoniczne, korzystać z narzędzi wspierających wytwarzanie oprogramowania. Od zespołów oczekuje się, że doprowadzą w kilku (co najmniej dwóch) iteracjach do powstania uruchamialnej wersji systemu, która zawierać będzie minimalny zakres funkcjonalności, pozwalający uznać system za użyteczny (MVP, minimal viable product). Zdobyta wiedza i doświadczenie mają posłużyć w kolejnym roku przy realizacji dużego projektu programistycznego w ramach proseminarium Zespołowy Projekt Programistyczny. |
Pełny opis: |
Zakres wykładu: - Projekt informatyczny - Architektura - Funkcjonalność - Wzorce - Specyfikacja - Jakość - Planowanie - Zarządzanie konfiguracją - Metodyki - Praca w grupie Zakres laboratorium: - Ustalenie zespołów projektowych (4-osobowych) - Uzgodnienie projektu przewidzianego do realizacji (pomiędzy zespołami a prowadzącym laboratorium) - Przeprowadzenie kilku (co najmniej 2) iteracji wytwórczych, w ramach każdej iteracji stworzenie kolejnych wersji wszystkich artefaktów projektowych (co najmniej: kod źródłowy systemu, zwięzły opis architektury i funkcjonalności systemu, krótka prezentacja na temat systemu, plakat reklamujący system) |
Literatura: |
1. E.Yourdon, Death March 2. T.DeMarco, The Deadline 3. I.Sommerville, Software Engineering 4. S.McConnell, Code Complete 5. H.Takeuchi, I.Nonaka, The new product development game (article) 6. W.W.Royce, Managing development of large software systems (article) 7. M.Shaw, D.Garlan, Software Architecture 8. E.Gamma, R.Helm, R.Johnson, J.Vlissides, Design patterns |
Efekty uczenia się: |
Wiedza: student ma * uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności, architektury systemów komputerowych, systemów operacyjnych, technologii sieciowych, języków i paradygmatów programowania, baz danych, inżynierii oprogramowania (K_W02); * 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_W10, Umiejętności: student potrafi * pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02); * 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); * samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09); * posługiwać się wzorcami projektowymi (K_U24); * opisywać systemy informatyczne tak z użyciem specjalistycznej terminologii, jak i w sposób zrozumiały dla niefachowców; potrafi przygotować prezentację (artykuł) z użyciem narzędzi informatycznych (K_U25); * określić procesy wytwórcze właściwe dla wytwarzanego systemu; * projektować (modelować) architekturę wytwarzanego systemu; * projektować (modelować) funkcjonalność wytwarzanego systemu; * definiować (w mierzalny sposób) oczekiwania jakościowe względem wytwarzanego systemu; * planować projekt w zakresie procesów wytwórczych; * planować projekt w zakresie narzędzi wspierających; * zarządzać konfiguracją, zarządzać zmianami, budować wydania oprogramowania. Student może też nabyć dodatkowe umiejętności ponadstandardowe, tak że potrafi: * zarządzać małym projektem programistycznym; * identyfikować i dobierać właściwe dla projektu wzorce (projektowe, architektoniczne, analityczne); * identyfikować i dobierać właściwe dla projektu metodyki (wytwórcze, zarządcze); * koordynować mały zespół programistów. Kompetencje społeczne: student jest gotów do * pracy z zachowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02); * uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03); * wypełniania zobowiązań społecznych związanych z racjonalnym i bezpiecznym przetwarzaniem danych (K_K04). |
Metody i kryteria oceniania: |
Ocena końcowa jest oparta na sumie punktów otrzymanych za projekt laboratoryjny oraz test egzaminacyjny. Oceny są ustalane następująco: jeśli suma punktów > 50% wtedy ocena = 3 (dst); jeśli suma punktów > 60% wtedy ocena = 3,5 (dst+); jeśli suma punktów > 70% wtedy ocena = 4 (db); jeśli suma punktów > 80% wtedy ocena = 4,5 (db+); jeśli suma punktów > 90% wtedy ocena = 5 (bdb); w przeciwny przypadku ocena = 2 (ndst). |
Zajęcia w cyklu "Semestr letni 2022/23" (w trakcie)
Okres: | 2023-02-20 - 2023-06-18 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Piotr Hofman | |
Prowadzący grup: | Grzegorz Grudziński, Piotr Hofman, Łukasz Kamiński, Maciej Skórski, Tomasz Waleń, Patrycja Węgrzynowicz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Nauk Ekonomicznych.