background image

Inżynieria Oprogramowania

Egzamin 2FD

Zadania wiążą się ze sobą!

Wstęp
Mamy następujące dane na temat systemu informatycznego:

Wyroby

Klasyfikacje

Typy

id

nazwa

id

data_od

data_do

wyrobID

typID

id

typ

1

trampki

1

1.01.2009

1.01.2010

1

1

1

buty

2

T-shirt

2

1.01.2010

NULL

1

3

2

odzież

3

1.01.2010

NULL

2

2

3

obuwie

Encje

Funkcje

Wyrób Klasyfikacja Typ

Zarządzaj wyrobami
    Dodaj nowy wyrób

C

C

R

    Edytuj wyrób

U

UC

R

    Usuń wyrób

D

D

    Pokaż listę wyrobów R

R

R

Zadanie 1.
Napisz kod klas obiektów
transferowych używanych
przez funkcję Dodaj nowy
wyrób
. Na diagramie DFD przepływ Formularz wyrobu nie jest obiektem 
transferowym. Formularz wyrobu pokazany jest na drugiej stronie. Dane przesyłane 
z formularza to obiekt klasy Wyrob i typyTO

_ _

. Oprócz klas list utwórz też kod dla 

pojedynczych obiektów.

Zadanie 2.
funkcję Dodaj nowy wyrób zaimplementowano stosując wzorce projektowe MVC, 
Session Facade, DAO, DTO, Application Service. Narysuj diagram klas pokazujący 
zależności dynamiczne między klasami tworzącymi logikę aplikacji (backing bean, 
DAO, serwis i fasada). Uwzględnij wszystkie potrzebne klasy DAO i wszystkie 
metody klas.

Zadanie 3.
Napisz kod klas fasady i serwisowej, zawierający metody potrzebne do implementacji 
diagramu DFD. Funkcja Pokaż formularz wyrobu nie jest funkcją fasady ani serwisu 
(funkcjonalność tę realizuje warstwa prezentacji).

Inżynieria Oprogramowania

Egzamin 2FD

Zadania wiążą się ze sobą!

Wstęp
Mamy następujące dane na temat systemu informatycznego:

Osoby

Właściciele

Budynki

id osoba

id data_od

data_do

osobaID budynekID

id opis

adres

1 Adam K.

1

1.01.2009

1.01.2010

1

1

1 kamienica

….

2 Grzegorz D.

2

1.01.2010

NULL

2

1

2 dom

….

3

1.01.2010

NULL

1

3

3 bunkier

….

Encje

Funkcje

Osoba Właś-

ciciel

Budynek

Zarządzaj budynkami
   Dodaj nowy budynek R

C

C

   Edytuj budynek

R

UC

U

   Usuń budynek

D

D

   Pokaż listę budynków R

R

R

Zadanie 1.
Napisz kod klas obiektów
transferowych używanych
przez funkcję Pokaż listę
budynków
. Na diagramie DFD przepływ Lista budynków nie jest obiektem 
transferowym. Formatka raportu pokazana jest na drugiej stronie. Raport wyświetla 
dane przesłane w obiekcie klasy ListaBudynków i WłaścicieliTO

_ _

. Oprócz klas list 

utwórz też kod dla pojedynczych obiektów.

Zadanie 2.
Funkcję Pokaż listę budynków zaimplementowano stosując wzorce projektowe MVC, 
Session Facade, DAO, DTO, Application Service. Narysuj diagram klas pokazujący 
zależności dynamiczne między klasami tworzącymi logikę aplikacji (backing bean, 
DAO, serwis i fasada). Uwzględnij wszystkie potrzebne klasy DAO i wszystkie 
metody klas.

Zadanie 3.
Napisz kod klas fasady i serwisowej, zawierający metody potrzebne do implementacji 
diagramu DFD. Funkcja Pokaż budynki nie jest funkcją fasady ani serwisu 
(funkcjonalność tę realizuje warstwa prezentacji). Nie wnikaj w szczegóły algorytmu 
tworzenia listy budynków i właścicieli, zaznacz tylko wywołania odpowiednich 
metod obiektów dostępu do danych.

A

29.06.2010

B

29.06.2010

Pobierz listę typów

Pracownik

Dodaj nowy wyrób

Pokaż formularz

wyrobu

Typy

Wyroby

Klasyfikacje

Lis

taT

yp

ow

TO

ListaTypowTO

Formularz wyrobu

Utwórz wyrób

KlasyfikacjaDTO

Wy

rob

DT

O

Wyrob_i_typyTO

Pobierz budynki

Pracownik

Pokaż listę budynków

Pokaż budynki

Budynki

Osoby

Właściciele

Lis

taB

ud

yn

wT

O

ListaBudynków_i_WłaścicieliTO

Lista budynków

Lista

Wła

ścic

ieliT

O

ListaOsóbTO

background image

Wygląd okna raportu o budynkach

Przykłady kodu w języku Java

public class KlasaDTO implements Serializable {
  int ID;   String tekst;

  // między KlasaDTO a Klasa2DTO jest asocjacja o liczebności 0..*
  //albo 1..*

  List<Klasa2DTO> listaObiektów;
  // między KlasaDTO a Klasa3DTO jest asocjacja o liczebności 1

  Klasa3DTO pojedynczyObiekt;
  //tutaj metody

  public void nazwaMetody(int parametr) { this.id = parametr;}
  public String nazwaMetody2() { return this.id;}

}
//przykład listy obiektów TO

public class ListaObiektówTO extends ArrayList<KlasaDTO>
implements Serializable {}

public class LogikaAplikacji {

  KlasaUslugowa usluga;   KlasaUslugowa2 usluga2;

  public LogikaAplikacji() { //konstruktor klasy
    usluga  = new KlasaUslugowa();   usluga2 = new KlasaUslugowa2();

  }

  public KlasaDTO pobierzKlasa() {
    ListObiektowTO lista;

    lista = usluga.pobierzKlasa();
    for(KlasaDTO k: lista) {

      ListaObiektow2TO lista2 = usluga2.pobierzKlasa2(k);
      k.ustawListę(lista2);

    }
  }

  public void usunKlasa(KlasaDTO x) {

    usluga.usunKlasa(x);
  }

}

Wygląd okna formularza wyrobu

Formularz nie pokazuje ID obiektów, lecz obiekty TO mają identyfikatory. 
Użytkownik wprowadza dane wyrobu i przydziela mu listę typów.

Przykłady kodu w języku Java

public class KlasaDTO implements Serializable {
  int ID;   String tekst;

  // między KlasaDTO a Klasa2DTO jest asocjacja o liczebności 0..*
  //albo 1..*

  List<Klasa2DTO> listaObiektów;
  // między KlasaDTO a Klasa3DTO jest asocjacja o liczebności 1

  Klasa3DTO pojedynczyObiekt;
  //tutaj metody

  public void nazwaMetody(int parametr) { this.id = parametr;}
  public String nazwaMetody2() { return this.id;}

}
//przykład listy obiektów TO

public class ListaObiektówTO extends ArrayList<KlasaDTO>
implements Serializable {}

public class LogikaAplikacji {

  KlasaUslugowa usluga;   KlasaUslugowa2 usluga2;

  public LogikaAplikacji() { //konstruktor klasy
    usluga  = new KlasaUslugowa();   usluga2 = new KlasaUslugowa2();

  }

  public KlasaDTO pobierzKlasa() {
    ListObiektowTO lista;

    lista = usluga.pobierzKlasa();
    for(KlasaDTO k: lista) {

      ListaObiektow2TO lista2 = usluga2.pobierzKlasa2(k);
      k.ustawListę(lista2);

    }
  }

  public void usunKlasa(KlasaDTO x) {

    usluga.usunKlasa(x);
  }

}

X

  ID          adres                       opis             właściciel

 1001    W. Pola 2,  Rzeszów   kamienica    Grzegorz D.
 1002    Wąska 13, Rzeszów   dom              Anna Z.
 1003    Słaba 1,     Rzeszów  bunkier          Adam K.

Lista budynków

Edycja

Usuń

Dodaj

Historia własności

X

Wybierz typy wyrobu:
 buty
 odzież
 obuwie

Nowy wyrób

Anuluj

Dodaj

Nazwa:


Document Outline