Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Inżynieria oprogramowania

Informacje ogólne

Kod przedmiotu: 1000-214bIOP Kod Erasmus / ISCED: 11.302 / (0612) Database and network design and administration
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
zobacz reguły punktacji
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
Programowanie obiektowe 1000-212bPO

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 2020/21" (zakończony)

Okres: 2021-02-22 - 2021-06-13
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Piotr Hofman
Prowadzący grup: Wojciech Dubiel, Grzegorz Grudziński, Piotr Hofman, Łukasz Kamiński, Sławomir Lasota, Patrycja Węgrzynowicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2021/22" (jeszcze nie rozpoczęty)

Okres: 2022-02-21 - 2022-06-15
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Piotr Hofman, Marcin Wrochna
Prowadzący grup: Grzegorz Grudziński, Piotr Hofman, Łukasz Kamiński, Paweł Kucharczyk, Tomasz Waleń, Patrycja Węgrzynowicz, Marcin Wrochna
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.