Podstawy inżynierii programowania - projekt

by Karol Wieczorek published 2020/03/03 16:07:00 GMT+2, last modified 2021-10-18T23:42:03+02:00

Organizacja zajęć projektu z Podstaw inżynierii programowania / Inżynierii programowania

  1. Projekty wykonywane są w grupach 3-4 osobowych. Inna liczebność członków zespołu projektowego wymaga zgody Prowadzącego.
  2. Każdy zespół projektowy wybiera swojego team leadera, który odpowiada za koordynację pracy w zespole. Team leader odpowiada za kontakt z Prowadzącym w imieniu zespołu osobiście, bądź może do tego wyznaczyć inną osobę.
  3. Każdy zespół musi dotrzymywać terminów wg Harmonogramu opisanego poniżej.
  4. Na zaliczenie projektu musi stawić się cały zespół.
  5. Przebieg zaliczenia projektu odbywa się wg następujących punktów:
    • Przedstawienie tematyki projektu i założeń projektowych
    • Prezentacja aplikacji wraz z przeprowadzonymi testami
    • Przedstawienie sposobu implementacji poszczególnych elementów aplikacji (kod źródłowy, użyte biblioteki, narzędzia itp.)
    • Obrona projektu - każdy z członków zespołu referuje część aplikacji wykonaną przez siebie
    • Złożenie sprawozdania - dokumentacja techniczna w formie papierowej oraz dokumentacja wraz z kodami źródłowymi w wersji elektronicznej (wysłanej na wskazanego maila)

Harmonogram kamieni milowych:

  1. Do końca października 2021 r. - Zgłoszenie zespołów projektowych z wskazaniem Team Leadera. Zgłoszenie tematów projektów (tematy MUSZĄ być unikalne). Przygotowanie wstępnej listy funkcjonalności projektu (zapisy będą w dokumencie do którego link zostanie przysłany mailem)
  2. Do końca listopada 2021 - Przygotowanie prezentacji z pełnymi założeniami projektu: Treść założeń, schemat baz danych (jeśli dotyczy), wykorzystywane technologie, diagramy UML.
  3. Ostatnie zajęcia w semestrze - I termin oddania projektu

Wymagania dotyczące projektu

  1. Projekt musi być zaimplementowany w obiektowym, nieskryptowym języku programowania.
  2. Konkretny język programowania pozostaje do wyboru zespołu projektowego
  3. Tematy projektu powinny dotyczyć wykonania systemu zarządzania firmą lub organizacją (np. hotel, akademik, zajezdnia autobusowa itp.)
  4. Wykonanie zadania wymaga przeprowadzenia typowych czynności realizowanych w ramach projektu tworzenia systemu informatycznego: specyfikacji wymagań, projektowania architektury oprogramowania, implementacji, opracowania testów oraz dostosowania systemu do potrzeb klienta.
  5. W ramach projektu i implementacji należy uwzględniać poniższe wymagania:
    • przynajmniej po 2 różne wzorce projektowe konstrukcyjne, strukturalne, czynnościowe (użycie konkretnego wzorca powinno być uzasadnione konkretną funkcjonalnością projektu. Nie tworzymy "sztucznych" zastosowań),
    • stosujemy zasady "czystego kodu" - SOLID, DRY, KISS
    • korzystamy z w miarę najnowszych wersji języków programowania (tzn., że korzystamy z dobrodziejstw nowszych wersji - dla przykładu: korzystanie z Javy 8, 11, 13 i brak stosowania Optional, LocalDateTime, Stream itp nie spełnia założeń)
    • dozwolone i mile widziane jest stosowanie z mechanizmów ORM
    • stosujemy dziedziczenia, polimorfizm itd.
    • mile widziane AOP (Aspect Oriented Programming)
  6. Każdy projekt musi mieć zaimplementowane testy jednostkowe oraz integracyjne

Przykładowe tematy

  1. Projekt i implementacja systemu CRM (zarządzanie danymi klientów, kampanie reklamowe, zarządzanie historią spraw klientów itp. itd.)
  2. Projekt i implementacja systemu do zarządzania firmą  transportową (samochody, kierowcy, zlecenia, raporty itp. itd.)
  3. Projekt i implementacja systemu WMS (zarządzanie magazynem - generowanie dokumentów magazynowych, inwentaryzacja, lokalizacja elementów w magazynie itp. itd.)
  4. .................... (rozważam Państwa propozycje. W razie potrzeby wymyślę kolejne)