Inżynieria oprogramowania II (5 semestr studiów stacjonarnych)

Inżynieria oprogramowania (5 semestr studiów niestacjonarnych)

 

PROJEKT ZALICZENIOWY

  

·         Naszym celem będzie opracowanie indywidualnego projektu systemu informatycznego, przeznaczonego dla podanej w temacie firmy, przedsiębiorstwa lub organizacji. 

·         W większości będą to systemy możliwe do implementacji np. w formie aplikacji internetowej, umożliwiającej bądź ułatwiającej użytkownikowi korzystanie z oferty danej firmy/organizacji.

·         Główny nacisk położymy na poprawność faz: określenia wymagań, analizy oraz projektowania.

·         Końcowa implementacja systemu w postaci gotowej, działającej aplikacji nie będzie wymagana (może być to wymagane w ramach przedmiotu o nazwie Projekt systemu informatycznego)

·         Integralną częścią projektowanego systemu stanowić będzie relacyjna baza danych – dlatego istotnym elementem projektu systemu będzie wstępny projekt bazy w formie tzw. diagramu związków encji.

·         Diagramy projektowe wykonujemy z wykorzystaniem poznanego na zajęciach narzędzia CASE – pakietu Power Designer, zaś dokumentację projektową (opracowanie pisemne) – w dowolnym edytorze tekstu.

·         W trakcie zaliczenia oddajemy dokumentację oraz prezentujemy na komputerze diagramy projektowe.

 


 

Lista tematów projektowych (przydzielanych przez prowadzącego)

 

1.    Sportowe rozgrywki ligowe w wybranej dyscyplinie (ewidencja drużyn, zawodników, kolejek, spotkań, ich wyników, sędziów, zdobytych bramek, itp.)

 

2.    Biuro pośrednictwa nieruchomości (ewidencja nieruchomości, ofert sprzedaży i kupna, klientów, agentów, umów pośrednictwa, okazań, transakcji, itp.)

 

3.    Internetowa wypożyczalnia filmów z możliwością wypożyczania na nośnikach klasycznych (ewidencja tytułów, nośników, typów nośników, rezerwacji, wypożyczeń, klientów, pracowników, itp.)

 

4.    Firma organizująca przewozy międzynarodowe (ewidencja pojazdów, kierowców, przejazdów, biletów, klientów, tras regularnych, miejscowości, itp.)

 

5.    Korty tenisowe (ewidencja kortów, sprzętu, pracowników, klientów, trenerów, rezerwacji, udostępniania kortów, wypożyczeń sprzętu, itp.)

 

6.    Przychodnia lekarska (ewidencja gabinetów, lekarzy, specjalności, rejestracji, wizyt, pacjentów, pracowników, itp.)

 

7.    Motel (ewidencja pokoi, rezerwacji, pobytów, gości, miejsc parkingowych, pracowników hotelu, itp.)

 

8.    Multikino (ewidencja tytułów, seansów, sal kinowych, sprzedaży biletów, rezerwacji, pracowników, itp.)

 

9.    Ogród zoologiczny (ewidencja gatunków, zwierząt, sektorów, wybiegów, pomieszczeń, opiekunów, dyżurów, pokarmów, itp.)

 

10. Szkoła nauki jazdy (ewidencja kursów, kursantów, instruktorów, zajęć teoretycznych, jazd, pojazdów, egzaminów, itp.)

 

11. Wielostanowiskowy warsztat samochodowy (ewidencja stanowisk, napraw, przeglądów, pojazdów, klientów, pracowników, części samochodowych, itp.)

 

12. Biblioteka internetowa z możliwością wypożyczania klasycznych pozycji (ewidencja tytułów, pozycji książkowych, czasopism, wypożyczeń, zamówień, czytelników, pracowników, zakupów, itp.)

 

13. Obsługa portierni na uczelni (ewidencja pomieszczeń, pracowników i ich uprawnień, kluczy, pilotów do projektorów, wypożyczeń kluczy oraz pilotów przez pracowników, itp.)

 

14. Wypożyczalnia samochodów i przyczep samochodowych (ewidencja samochodów, przyczep, klientów, zamówień, wypożyczeń, pracowników, napraw, przeglądów technicznych, itp.)

 

15. Komis samochodowy i motocyklowy (ewidencja pojazdów, transakcji kupna, sprzedaży, sprzedających, nabywców, jazd próbnych, pracowników, itp.)

 

16. Biuro organizujące wczasy pobytowe (ewidencja ofert, kierunków wyjazdów, terminów, hoteli, klientów, ajentów, sporządzonych umów, itp.)

 

17. Organizacja i obsługa (katering) przyjęć weselnych, studniówek, itp. (ewidencja lokali, zamówień, klientów, sal, menu, potraw, pracowników, kelnerów, itp.).

 

18. Antykwariat - książki, starodruki, pocztówki, itp. (ewidencja zbiorów, sprzedawców, kupujących, zamówień, transakcji kupna i sprzedaży, pracowników, itp.)

 


 

Do przygotowania na pierwsze obowiązkowe konsultacje

 

(nie dotyczy studentów studiów stacjonarnych, które kontynuują zaliczony u mnie temat z przedmiotu Inżynieria Oprogramowania I)

 

 

1.    Przed przystąpieniem do opracowywania projektu należy zorientować się w zakresie funkcjonowania typowej firmy związanej z tematem projektowym. Np. w przypadku tematu nr 2., należy zapoznać się z funkcjonowaniem typowego biura pośrednictwa nieruchomości, przejrzeć witryny internetowe takich biur, zapoznać się z publikowanymi na nich ogłoszeniami o sprzedaży lub kupnie nieruchomości.

 

2.    Następnie stworzyć słowny opis wycinka rzeczywistości, który może mieć np. formę fikcyjnego wywiadu z właścicielem/pracownikiem firmy/instytucji, opisującym jej działalność. W wywiadzie tym powinien również zostać sprecyzowany:

·         tzw. zakres odpowiedzialności systemu, tzn. informacja o tym, które obszary działalności firmy powinny zostać objęte działaniem projektowanego systemu informatycznego, a które nie,

·         tzw. kontekst systemu, czyli wszyscy użytkownicy, którzy będą mieć kontakt z systemem – zarówno ludzie, jak i inne systemy informatyczne czy urządzenia.

Opis przynosimy na konsultacje w formie wydrukowanej.

 

Przykład opisu (punkt 1).

 

3.    Dopiero w oparciu o taki opis słowny będziemy tworzyć formalną specyfikację wymagań oraz diagramy, składające się na analityczny model systemu informatycznego. Funkcje oraz diagramy zamieszczone w projektach a nie mające odzwierciedlenia w słownym opisie wycinka rzeczywistości nie będą akceptowane! Dla ułatwienia, podstawowy zarys funkcjonalności, jaką powinien oferować projektowany system, został podany powyżej (w nawiasach za tematem projektu). W razie wątpliwości, zakres odpowiedzialności systemu oraz jego kontekst mogą zostać doprecyzowane w trakcie konsultacji z prowadzącym zajęcia.

 

 


 

Całościowy zakres projektu – wymagania

 

 

            Na całość projektu będą się składać:

·         diagramy projektowe, zbudowane z wykorzystaniem narzędzia PowerDesigner,

·         dokumentacja projektowa.

 

Przed przystąpieniem do opracowania dokumentacji projektowej, należy dokładnie zapoznać się z uwagami redakcyjnymi w zawartymi w szablonie pracy dyplomowej.

Dokumentacja projektowa powinna być sformatowana zgodnie z uwagami w szablonie oraz zawierać następujące elementy:

 

·         Część I, a w jej ramach:

1.    stronę tytułową z nazwiskiem i imieniem autora oraz tematem projektu;

2.    spis treści (rozdziały, podrozdziały);

3.    zwięzły (tzn. w formie jednego lub dwóch zdań) opis celu projektu;

4.    opis obszaru i przedmiotu projektowania, a w tym:

4.1.        opis dziedziny problemu – ogólne omówienie zakresu i charakteru działalności jednostki, dla której przeznaczony jest projektowany system; Opis musi być na tyle szczegółowy, aby w fazie strategicznej zastępował model systemu, oraz aby na podstawie tego opisu mógł powstać pełny model analityczny. Może mieć np. formę wywiadu z klientem, dla którego system będzie przeznaczony.

4.2.        opis zakresu i kontekstu przedsięwzięcia – szczegółowe omówienie tej części zakresu działalności jednostki, w której ma być używany projektowany system.

5.    opis wymagań funkcjonalnych dotyczących projektowanego systemu (zawierający także funkcje administracyjne), sporządzony w postaci:

5.1.        graficznej hierarchii funkcji, jakie system powinien realizować;

5.2.        scenariuszy wszystkich przypadków użycia wraz z diagramem przypadków użycia;

6.    opis wymagań niefunkcjonalnych a także specjalnych wymagań i ograniczeń (np. co do pojemności bazy danych, obowiązkowego czasu przechowywania danych archiwalnych, okresowości przygotowywania raportów itp.).

 

·         Część II, dotyczącą analizy strukturalnej systemu, a w jej ramach:

1.    hierarchiczny diagram przepływu danych (DFD), stanowiący model procesów zachodzących w przedsiębiorstwie i opisujący zależności dynamiczne między jego elementami. Powinien zawierać co najmniej 3 poziomy – diagram kontekstowy, diagram systemowy, diagramy procesów elementarnych, a także macierze CRUD dla wszystkich magazynów danych. Należy pamiętać, aby do każdego z magazynów danych oraz przepływów na diagramie przypisane były odpowiednie dane. Diagram DFD powinien być zbudowany z wykorzystaniem narzędzia PowerDesigner; 

2.    diagram związków encji (ERD), stanowiący model potrzeb informacyjnych przedsiębiorstwa i opisujący zależności statyczne między jego elementami (około 6-10 encji). Diagram ERD powinien być zbudowany z wykorzystaniem narzędzia PowerDesigner;

3.    słownik danych, zawartych w modelach DFD oraz ERD;

4.    specyfikacja procesów – wystarczy ograniczyć się do 3 wybranych funkcji najniższego poziomu. Najlepiej wykorzystać w tym celu tzw. pseudokod dla danego procesu.

 

·         Część III, dotyczącą częściowej fizycznej implementacji systemu, a w jej ramach:

1.    fizyczny model danych (PDM) dla dostępnej platformy bazy danych (np. SQL Anywhere), wygenerowany w oparciu o ERD i odpowiednio rozszerzony (dodana przynajmniej jedna tabela, jeden widok, jeden trigger i dane testowe dla jednej tabeli). Model fizyczny powinien być zbudowany z wykorzystaniem narzędzia PowerDesigner;

2.    skrypty SQL: tworzący bazę danych oraz wstawiający dane testowe do wybranej tabeli.

3.    propozycja i uzasadnienie wyboru narzędzi programistycznych niezbędnych do implementacji systemu;

4.    propozycja i uzasadnienie wyboru architektury systemu (monolityczna, klient-serwer, WWW), wykorzystywane standardowe lub dedykowane niezależne podsystemy (np. silnik bazy danych), biblioteki (np. funkcji interfejsu graficznego), systemy operacyjne, itp.;

5.    specyfikacja platformy sprzętowej (hardware) niezbędnej do implementacji systemu.

  

·         Część IV, dotyczącą analizy obiektowej systemu oraz projektu interfejsu graficznego, a w jej ramach:

1.    diagram klas, stanowiący odpowiednik diagramu związków encji z modelu strukturalnego;

      Uwaga 1: diagram klas nie może być jednak „kalką” diagramu ERD - powinien uwzględniać, oprócz odmiennej notacji, także specyficzne aspekty „obiektowości”: związki dziedziczenia, klasy abstrakcyjne, związki agregacji, kompozycji, asocjacje, itp.

      Uwaga 2: na diagramie klas uwzględniamy jedynie klasy wchodzące w skład warstwy danych projektowanego systemu; nie jest wymagany diagram klas realizujących np. interfejs użytkownika;

2.    pliki z kodem w języku C++, Java lub C#, wygenerowane na podstawie diagramu klas – podczas zaliczenia trzeba umieć wytłumaczyć szczegóły kodu;

3.    dodatkowe typy diagramów UML, ukazujące niektóre aspekty działania naszego systemu: przykładowy diagram obiektów (przynajmniej po dwa obiekty każdej klasy), dwa diagramy sekwencji dla dwóch wybranych przypadków użycia. Wszystkie diagramy UML powinny być zbudowany z wykorzystaniem narzędzia PowerDesigner;

4.    wstępny projekt graficznego interfejsu użytkownika. Może być to prototyp sporządzony przy pomocy dostępnego w pracowni narzędzia IDE (np. Microsoft Visual Studio). Należy zwrócić uwagę na jego jakość i ergonomię (układ i grupowanie elementów, skalowanie, kolorystyka, filozofia działania).

 

Przy tworzeniu części pisemnej projektu wykorzystać można np. opcję raportowania programu PowerDesigner (nie muszą być to pełne raporty). Ważne jest rozszerzenie projektu o słowny komentarz autora dotyczący kolejnych faz tworzenia projektu – tak, aby nasz projekt nie ograniczał się jedynie do „gołych” diagramów i tabel !

  

UWAGA: Wszystkie powyższe punkty dotyczą pełnego projektu, tzn. takiego, który (w najlepszym przypadku) można będzie zaliczyć na ocenę bardzo dobrą.

  Istnieje także możliwość zaliczenia projektu:

·         w wersji light (tzn. na ocenę najwyżej dostateczną) – wówczas do wykonania jest część I oraz II powyższego wykazu;

·         w wersji „medium” (tzn. na ocenę najwyżej dobrą) – część I, II oraz III.

   


 

 

W trakcie zaliczenia należy:

 

·           oddać wydrukowane i estetycznie obłożone pisemne opracowanie projektu,

·           zaprezentować (na komputerze) opracowane w programie Power Designer diagramy wchodzące w skład projektu,

·           zademonstrować bazę danych oraz proste operacje na niej wykonywane, a także prototyp interfejsu użytkownika,

·           wykazać się wiedzą na tematy związane z projektem (np. przeczytać notację wskazanego związku encji, ewentualnie wyjaśnić wskazany fragment skryptu SQL, omówić kod deklaracji wybranej klasy w pliku nagłówkowym wygenerowanym z diagramu klas),

·           znać podstawowe pojęcia oraz zagadnienia dotyczące analizy strukturalnej (ewentualnie obiektowej):

 

a)    w przypadku projektu w wersji light:

-          modelowanie związków encji,

Przykładowe pytania: definicja identyfikatora encji, poprawnie przeczytać wskazany związek encji, itp. ...

-          modelowanie diagramów przepływu danych,

Przykładowe pytania: co to jest terminator, na czym polega bilansowanie procesów, itp. ...

 

b)    w przypadku projektu w wersji „medium”:

-          jak na ocenę dostateczną, a ponadto:

-          fizyczny model danych oraz podstawy relacyjnych baz danych,

Przykładowe pytania: co to jest widok (perspektywa), co to jest pierwsza postać normalna relacji (tabeli), do czego służy polecenie DROP, itp. ...

 

c)    w przypadku projektu w wersji full:

-          jak na ocenę dobrą, a ponadto:

-          modelowanie i programowanie obiektowe,

Przykładowe pytania: na czym polega związek generalizacji-specjalizacji, różnica między agregacją a kompozycją, co to jest polimorfizm, mapowanie relacyjno-obiektowe, co to jest konstruktor, itp. ...

  

Ocena końcowa z projektu może zostać obniżona:

-          o ½ za każdą kolejną nieusprawiedliwioną nieobecność na zajęciach w części ćwiczeniowej (1 nieobecność nieusprawiedliwiona dozwolona bez konsekwencji),

-          o ½ za brak zaliczenia projektu lub obowiązkowych konsultacji w wymaganym terminie.

 


  

TERMINY PIERWSZYCH OBOWIĄZKOWYCH KONSULTACJI

(konsultacje te odbywać się będą równolegle z częścią laboratoryjną)

 

Semestr 5 studiów stacjonarnych (konsultacje nie dotyczą osób, które kontynuują u mnie temat z przedmiotu Inżynieria oprogramowania I):

 

·         podgrupa A: 16.10.2017 (poniedziałek),

·         podgrupa B: 23.10.2017 (poniedziałek).

 

Na te konsultacje należy przygotować słowny opis wycinka rzeczywistości (wydrukowany, przynajmniej 2 strony A4, czcionka 11-12 pt, pojedyncze odstępy) – np. wywiad z właścicielem firmy, dla której projektujemy system – wydrukowany. Patrz także punkt: „Do przygotowania na pierwsze obowiązkowe konsultacje”.

 

Semestr 5 studiów niestacjonarnych:

 

·         podgrupa A: 19.11.2017 (niedziela),

·         podgrupa B: 26.11.2017 (niedziela).

 

 

TERMINY DRUGICH OBOWIĄZKOWYCH KONSULTACJI  („przedzaliczeniowych”)

 

Semestr 5 studiów stacjonarnych:

 

·         podgrupa A: 11.12.2017 (poniedziałek),

·         podgrupa B: 18.12.2017 (poniedziałek).

 

Semestr 5 studiów niestacjonarnych:

 

·         podgrupa A: 14.01.2018 (niedziela),

·         podgrupa B: 21.01.2018 (niedziela).

 

Zagadnienia do przygotowania na konsultacje: najlepiej (prawie) gotowy projekt, ale przede wszystkim:

 

1.  Cel, zakres oraz kontekst projektu informatycznego (wydrukowane).

 

2.  Opis dziedziny problemu (np. w formie wywiadu z klientem, dla którego system będzie zaprojektowany).

 

3.  Wymagania funkcjonalne:

- Wykres hierarchii funkcji, jakie system będzie realizować (w formie graficznej, wydrukowany).

- Diagram przypadków użycia - kompletny. Sporządzony w programie PowerDesigner, wydrukowany.

- Szczegółowe scenariusze dla 3 wybranych przypadków użycia (w formie tabeli, wydrukowane).

W każdym przypadku należy uwzględnić scenariusz główny oraz możliwe scenariusze alternatywne.

 

3. Wymagania niefunkcjonalne (opcjonalnie).

 

4. Diagram związków encji - kompletny:

- Sporządzony w programie PowerDesigner, wydrukowany.

- Powinien wykorzystywać notację używaną na zajęciach i wykładach.

- Powinien uwzględniać atrybuty encji, ich typy, opcjonalność, identyfikatory encji, nazwy ról w związkach.

- W razie potrzeby należy uwzględnić w modelu związki dziedziczenia, rekurencyjne, encje słabe.

 

5.Diagram przepływu danych:

- Sporządzony w programie PowerDesigner, wydrukowany.

- Powinien zawierać przynajmniej 2 poziomy: diagram kontekstowy oraz diagram systemowy (zerowego poziomu).

- Kompletna dekompozycja jednego wybranego procesu z diagramu systemowego (opcjonalnie).

 

6.  Opcjonalnie można przynieść dodatkowe składniki projektu, np. fizyczny model danych, naszkicowany lub sporządzony w formie prototypu projekt graficznego interfejsu użytkownika.

 


  

TERMINY ZALICZEŃ PROJEKTU

 

Semestr 5 studiów stacjonarnych:

 

·         podgrupa A: 22.01.2018 (poniedziałek),

·         podgrupa B: 24.01.2018 (środa wg planu poniedziałkowego).

 

Semestr 5 studiów niestacjonarnych:

 

·         podgrupa A i B: 28.01.2018 (niedziela).

 

Warunkiem koniecznym przystąpienia do zaliczenia w tym terminie jest wcześniejsze zaliczenie konsultacji.
 
Istnieje możliwość zaliczenia projektu we wcześniejszym terminie (po uprzednim wcześniejszym zaliczeniu konsultacji).
Istnieje także możliwość zaliczenia w późniejszym terminie (tzn. w sesji zaliczeniowej), ale ocena wyjściowa ulega obniżeniu o ½.

      

 


 

POWRÓT  DO  STRONY  PRZEDMIOTU

 


ostatnia aktualizacja: 25.09.2017

Krzysztof Bartecki, k.bartecki@po.opole.pl