background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 1

   

Projektowanie systemów 

informacyjnych

Ewa Stemposz, Kazimierz Subieta 

Instytut Podstaw Informatyki PAN, 
Warszawa

Polsko-Japońska Wyższa Szkoła
Technik Komputerowych, Warszawa

Wykład 12

Budowa  modelu obiektowego:
podsumowanie

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 2

Zagadnienia

Strategie w budowie modelu obiektowego:

 top-down

 bottom-up

 inside-out

Analiza – kolejne kroki
Kryteria jakości modelu obiektowego
Proponowana miara dla oceny modelu obiektowego
(diagramu klas)

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 3

Budowa modelu obiektowego; 

strategia top-down

Kolejne

rozwinięcia są

coraz bardziej 

szczegółowe

Od  ogółu  do  szczegółu  (top-down)  –  najpierw  definiuje  się  pojęcia 

ogólne,  a  następnie  uszczegóławia  je  w  kolejnych  krokach 

(wykorzystując pojęcia elementarne, tzw. prymitywy).

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 4

Strategia top-down; prymitywy (1)

KLASA => KLASY POWIĄZANE

KLASA => SPECJALIZACJE

KLASA=>

       KILKA KLAS NIEZALEŻNYCH

ASOCJACJA=>

         ASOCJACJE RÓWNOLEGŁE

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 5

Strategia top-down; prymitywy (2)

ASOCJACJA=>

                    KLASA Z ASOCJACJĄ

UZUPEŁNIENIE O ATRYBUTY 

ROZWINIĘCIE ATRYBUTÓW

A
B

A1
A2
B1
B2

UZUPEŁNIENIE O METODY

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 6

Strategia top-down; przykłady (1)

PRACOWNIK

NAGRODA

NAGRODA

NOBLA

NAGRODA

OSCARA

MIEJSCE

WOJEWÓDZTWO

MIASTO

UMYSŁOWY

PRACOWNIK

FIZYCZNY

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 7

Strategia top-down; przykłady (2)

MĘŻCZYZNA

mieszka w

urodziła się w

MIEJSCE

OSOBA

DANE

DEMOGRAFICZNE

DANE O

MIESZKAŃCACH

DANE O

TERENIE

KOBIETA

ZAGRANICA

MIASTO W KRAJU

WOJEWÓDZTWO

znajduje się w

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 8

Budowa modelu obiektowego; 

strategia bottom-up

Od szczegółu do ogółu (bottom-up) − najpierw definiuje się pojęcia elementarne, a następnie
buduje się z nich struktury w celu stworzenia pojęć ogólnych.

Od szczegółu do ogółu (bottom-up) − najpierw definiuje się pojęcia elementarne, a następnie
buduje się z nich struktury w celu stworzenia pojęć ogólnych.

WYMAGANIA

WYMAGANIE n

WYMAGANIE 1

POJĘCIE 11

POJĘCIE 1m

POJĘCIE n1

POJĘCIE nk

DIAGRAM 11 DIAGRAM 1m

DIAGRAM n1

DIAGRAM nk

DIAGRAM 1

DIAGRAM n

KOŃCOWY

DIAGRAM

ZINTEGROWANY

. . . .  

. . . .  

.....

.....

.....

.....

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 9

Strategia bottom-up; przykład

MĘŻCZYZNA

MIEJSCE

OSOBA

KOBIETA

ZAGRANICA

MIASTO W KRAJU

WOJEWÓDZTWO

MĘŻCZYZNA

KOBIETA

ZAGRANICA MIASTO W KRAJU

OSOBA

MIEJSCE

związana z

MIASTO W KRAJU

WOJEWÓDZTWO

znajduje się w

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 10

Strategia inside-out

POJĘCIA

NAJWAŻNIEJSZE

DIAGRAMY

(coraz szersze)

WYMAGANIA

DIAGRAM

KOŃCOWY

Diagram wstępny

Diagramy 

pośrednie

W istocie, strategie 
projektowania są 
zwykle oparte na 
rozprzestrzeniani
u
, z 
inklinacją  do  top-
down 
lub bottom-up.

Rozprzestrzenianie (inside-out)  najpierw definiuje się pojęcia, które 
wydają  się  być  najważniejsze,  a  następnie  rozwija  się  je  poprzez 
dobudowywanie kolejnych pojęć, stanowiących ich uzupełnienie.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 11

Analiza − kolejne kroki

 Pierwszy przebieg: zidentyfikuj klasy i ich własności (głównie atrybuty).

Udokumentuj je w modelu obiektowym i słowniku danych!

 Drugi przebieg: Usuń niepotrzebne klasy i dodaj dziedziczenie.

Udokumentuj to w modelu obiektowym i słowniku danych!

  Trzeci  przebieg:  Dodaj  asocjacje,  dokonaj  uszczegółowienia 
asocjacji: wprowadź  oznaczenia liczności asocjacji, dodaj atrybuty (lub 
klasy  asocjacji)  związane  z  asocjacjami,  wyszukaj  ewentualne  relacje 
zawierania się (agregacje i kompozycje), wyszukaj asocjacje
kwalifikowane i asocjacje n-arne.

Udokumentuj to w modelu obiektowym i słowniku danych!

 Czwarty przebieg: dodaj metody do klas poprzez zbudowanie modelu 
dynamicznego.  Jeżeli    jesteś  z  siebie  zadowolony,  przejdź  do  fazy 
projektowania;  w  przeciwnym  wypadku  idź  z  powrotem  do  drugiego 
przebiegu.

Udokumentuj to w modelu obiektowym i słowniku danych!

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 12

Zidentyfikuj potencjalne klasy

Rzeczy dotykalne: samochód, czujnik, składnik, samolot, 
transakcje:
 pożyczka, spotkanie, sprzedaż,
zdarzenia: lądowanie, zapytanie,
role: matka, ojciec, nauczyciel, pasażer.

 Zidentyfikuj kandydujące rzeczowniki  ze sformułowania problemu 
w specyfikacji   
   wymagań użytkownika − jako potencjalne klasy.

 Szukaj rzeczy dotykalnychtransakcji, zdarzeń i ról, np.:

 Zidentyfikuj potencjalne kolekcje (zbiory). Pewne rzeczowniki implikują kolekcje i mogą 
   stać się kontenerami (ang. container). Kolekcje wymagają specjalnego traktowania.

Np.: Każdy dostęp jest rejestrowany w dzienniku. Ergo: dziennik jest kolekcją.

  Zidentyfikuj  obiekty  stanowiące  pogranicze  systemu:  obiekty 
dostępne  dla  innych  systemów,  urządzenia  peryferyjne,    obiekty 
wejścia/wyjścia, ...

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 13

Zidentyfikuj potencjalne atrybuty

 Rzeczownik  może  być atrybutem, jeżeli  nie można przypisać mu  ani 
atrybutów  ani  −  interesującego  z  punktu  widzenia  celów 
projektowanego systemu − zachowania.

  Rzeczownik  może  być  atrybutem,  jeżeli  wyjaśnienie  jego  znaczenia 
zmusza  do  odwołania  się  do  jakiegoś  innego  rzeczownika 
(oznaczającego  obiekt).  Np.  rzeczownik  “kolor”  zmusza  do  zadania 
pytania “kolor czego?”.

  Potencjalny  atrybut  może  ostatecznie  okazać  się  asocjacją  między 
klasami,    np.  atrybut        NazwaFirmy  w  klasie  Pracownik  na  etapie 
tworzenia  schematu  pojęciowego  jest    modelowany  jako  asocjacja 
między klasami Firma Pracownik.

Zidentyfikuj  klasę  lub  asocjację, 
która 

jest 

najlepszym 

kandydatem  do  wystąpienia  w 
roli “właściciela” atrybutu.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 14

Dokumentuj swoje ustalenia!

  Utwórz  szkic  projektu  w  postaci  modelu  obiektowego  wysokiego 
poziomu, (najlepiej przy użyciu narzędzi CASE).
  Twórz  nowy  model  obiektowy  dla  każdego  kroku  iteracyjnego. 
Staraj  się  równolegle  budować  model  przypadków  użycia  i  model 
dynamiczny.
 Pracuj nad słownikiem danych. 

Sformułuj cel istnienia klasy.
Opisz klasę. 
Ustal
: Kto/co tworzy obiekty klasy.
           Kto/co usuwa obiekty klasy.
           Kto/co modyfikuje obiekty klasy.
           Kto/co zawiera obiekty klasy.
Wypisz asocjacje klasy z innymi klasami.
------------------  PROJEKTOWANIE  ------------------------
Wypisz interfejsy realizowane przez klasę.
Wypisz widoczne publicznie atrybuty i metody.
Wypisz dziedzinę wartości dla każdego atrybutu w klasie.

Dla każdej klasy:

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 15

Usuń niepotrzebne klasy, dodaj 

dziedziczenie

  Wyciągnij  przed  nawias  wszelkie  wspólne  własności  (metody  i 
atrybuty) kilku    semantycznie powiązanych klas.
 Zgrupuj te wspólne własności w jedną nadklasę.
  Nazwij  tę  nadklasę  w  taki  sposób,  aby  każda  klasa  pochodna    mogła 
być uważana za jej podklasę. Np. pies jest nadklasą, pekińczyk, jamnik, 
pudel 
są podklasami  klasy pies

Ekstensje podklas mogą mieć puste lub niepuste przecięcia. Oznacz je 
odpowiednio.  Obiekt,  należący  do  przecięcia,  posiada  własności  obu 
podklas.

E

K1

E

K2

E

K1

E

K2

K

K1

K2

K

K1

K2

{overlapping}

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 16

Dodaj asocjacje

  Przetestuj  ścieżki  dostępu;  niekiedy  dostęp  do  jednego  obiektu 
wymaga dostępu do innego, co implikuje asocjację między odpowiednimi 
klasami.

 Dodaj oznaczenia liczności do asocjacji.

  Zidentyfikuj  role  dla  asocjacji  rekurencyjnych  (w  ramach  tej  samej 
klasy), ternarnych, itd.

 Sprawdź, czy asocjacja ma prowadzić do danej klasy, czy też raczej do 
jej podklasy lub 
   nadklasy.

 Dodaj atrybuty związane z wprowadzoną asocjacją.

  Jeżeli  asocjacja  ma  charakter  “część-całość”,  zamień  ją  na  agregację 
lub kompozycję.

 Oznacz asocjacje kwalifikowane.

Wystąpienia  asocjacji  są  związkami  zachodzącymi  pomiędzy 
obiektami.  Dowolna  zależność  pomiędzy  obiektami  może  być 
zamodelowana  jako  asocjacja.  Wiele  asocjacji  może  powstać 
jako  efekt  wynikły  z  analizy  modelu  dynamicznego  −  rozwijaj 
więc ten model.

Udokumentuj  te  ustalenia  w  modelu  obiektowym  i  w 
słowniku danych! 

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 17

Przygotowanie słownika danych

Przygotowanie  słownika  danych  stanowi  bardzo  istotny  element 
każdego projektu. 
Pojedyncze słowa mogą być różnie interpretowane, 
przez  różne  osoby.  Należy  dążyć  do  maksymalnego  uproszczenia, 
ujednolicenia  słownictwa,  co  powinno  prowadzić  do  jednoznacznej 
interpretacji.

Unikać  synonimów:  np.  używania  w  tym  samym  projekcie  słów 
traktor i ciągnik.
Unikać  homonimów:  używania  tego  samego  słowa  dla  określenia 
dwóch różnych bytów, np. asocjacja Kierownik i atrybut Kierownik.

Przykład 
słownika Klient: 
pojedyncza osoba, małżeństwo, osoba prawna.

Konto:  służy  do  rejestrowania  zasobów  i  wyników  transakcji 
przeprowadzanych przez klienta, będącego właścicielem konta. 
Konta  mogą  być  różnych  typów,  a  w  szczególności:  konta 
indywidualne,  małżeńskie,  firmowe  i  inne.  Każdy  klient  może 
posiadać  więcej  niż  jedno  konto.  Pojedyncze  konto  przypisane 
jest do dokładnie jednego klienta.
Bank:  instytucja  finansowa  zarządzająca  kontami  klientów, 
wydająca  karty  bankowe,  udzielająca  kredytów  i  prowadząca 
inne operacje finansowe.
Kasjer: pracownik banku posiadający uprawnienia do obsługi 
kont klientów.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 18

Zawartość słownika danych

Nie  istnieją  standardy  dotyczące  sposobu  specyfikowania  zawartości 
słownika  danych.  Można  wykorzystywać  do  tego  celu  np. 
zaadaptowaną  notację  BNF  (Backus-Naur-Form).  BNF  jest  używana 
głównie do opisu składni języków programowania.

Można wykorzystywać następujące symbole:

=  struktura  danych  po  lewej  stronie  symbolu  =  składa  się  z 
elementów wyspecyfikowanych po stronie prawej,

+  odpowiada słowu “i”; wykorzystywane do agregowania elementów,

[  …  ]  definiowana  struktura  zawiera  tylko  jeden  spośród 
elementów  zawartych  w  nawiasach  [  ]  i  oddzielonych 
średnikami,

{ … }  definiowana struktura zawiera od 0..* wystąpień elementu 
zawartego  w  nawiasach  {  };  kolejne  wystąpienia  są  rozdzielane 
przecinkami,

(  …  )    elementy  zawarte  w  nawiasach  (  )  są  opcjonalne  co 
oznacza, że mają 0..1 wystąpień,

*  …  *    informacje  zawarte  między  *  *  są  traktowane  jak 
komentarz,  a  więc  nie  stanowią  elementów  składowych 
definiowanej struktury.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 19

Przykłady specyfikowania

Zamówienie = NrZamówienia + DataZamówienia + NazwaOdbiorcy + 
NazwaSprzedawcy + {NrProduktu + NazwaProduktu + Cena + Ilość + 
WartośćProduktu} + (SumarycznaWartośćZamówienia)

Zamówienie = NrZamówienia + DataZamówienia + NazwaOdbiorcy + 
NazwaSprzedawcy + {PozycjaZamówienia} + (SumarycznaWartośćZamówienia}

gdzie:
PozycjaZamówienia = NrProduktu + NazwaProduktu + Cena + Ilość + 
WartośćProduktu

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 20

Czy masz prawidłowe klasy? (1)

 Klasy nadmiarowe: Jeżeli dwie klasy wyrażają tę samą informację, 
wówczas  powinna być wybrana ta, która jest bardziej informatywna. 
Np. w systemie dla linii  lotniczej mogą być klasy Klient i Pasażer, ta 
druga jest bardziej informatywna.

  Klasy  nierelewantne:  Jeżeli  klasa  ma  niewielki  związek  z 
problemem,  wówczas        powinna  być  pominięta,  szczególnie  na 
wyższych poziomach abstrakcji. 

  Klasy  niejasne:  Klasy  powinny  być  jednoznacznie  określone.  Np. 
klasa Podmiot_obsługi może być rozumiana jak KlientBankPasażer
Firma, itd. 

 Atrybuty przypisane do klas charakteryzują pojedyncze obiekty lub 
grupy obiektów danej klasy. Jeżeli atrybut może istnieć niezależnie od 
obiektu,  być  może  lepsze byłoby  zrobienie z  niego klasy, np.  atrybut 
Dzieci_pracownika dla klasy Pracownik.

  Operacje  przypisane  do  klas  działają  na  pojedynczych  obiektach 
lub  zbiorach  obiektów.  W  niektórych  sytacjach  operacja  może  w 
ostateczności  okazać  się  klasą.  Np.  Rozmowa_telefoniczna  może  być 
operacją,  ale  może  być  także  klasą  z  atrybutami  takimi  jak  czas
długośćtaryfa, itd. 

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 21

Czy masz prawidłowe klasy? (2)

  Klasa  zamiast  roli  asocjacji:  Nazwa  klasy  powinna  wyrażać  jej 
istotny  charakter,  a  nie  rolę  jaką  pełni  w  związku  z  inną  klasą.  Np. 
Właściciel,  jako  określenie  osoby  posiadającej  samochód,  jest 
niewłaściwie  wybraną  nazwą  klasy,  ponieważ  jest  to  rola  jaka  pełni 
osoba w asocjacji z samochodem. Osoba może być połączona poprzez 
inne  asocjacje np. ze swoimi dziećmi, i wtedy taka nazwa klasy okaże 
się nieodpowiednia i  niezrozumiała.

 Klasy odnoszące się do implementacji: Należy ich unikać. Model 
pojęciowy 

nie 

powinien 

zawierać 

elementów 

projektowych 

(implementacyjnych). Łączenie klas takich jak OsobaFirmaBudynek 
z  klasami  takimi  jak  Okno_dialogowe,  Moduł,  Plik,  Zapis,  Dokument
Proces,  Algorytm,  Tablica,  Wyjątek,  Przerwanie,  itd.  powoduje,  że 
diagram  staje  się  całkowicie  nieczytelny.  W  takiej  sytuacji  należy 
raczej  zdecydować  się  na  dwa  diagramy,  jeden  ze  świata  przedmiotu 
systemu  informatycznego  (dziedziny  problemowej),  drugi  ze  świata 
jego  wnętrza,  oraz    powiązać  te  dwa  diagramy  ze  sobą,  np.  przy 
pomocy  nieformalnego  opisu  lub  poprzez  specjalnie  przygotowane 
formularze.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 22

Czy masz prawidłowe atrybuty? (1)

Zwykle  atrybuty  nie  są  wystarczająco  dokładnie  opisane  w 
tekście  wymagań.  Często  trzeba  je  określać  pośrednio:  w 
oparciu  o  inne  informacje  wynikające  z  wymagań,  z 
charakterystyk  operacji  zachodzących  na  obiektach  czy  w 
ostateczności z wiedzy dziedzinowej. 
Na szczęście, rzadko wpływają na podstawową strukturę modelu.  

  Klasa  zamiast  atrybutu:  Jeżeli  pewna  własność  posiada  niezależne 
znaczenie, być może powinna być modelowana jako klasa − może wtedy 
brać udział w związkach z innymi klasami. Np. Adres jest raczej (?) klasą 
niż atrybutem, natomiast NazwiskoZarobek są atrybutami.

  Identyfikatory:  Model  obiektowy  zapewnia  unikalną  tożsamość 
obiektów,  dlatego  z  reguły  atrybuty  stanowiące  identyfikatory  obiektów 
są zbędne. Specyfikuje się jedynie te z nich, które występują explicite w 
dziedzinie problemowej (np. PESEL dla osoby).

 Atrybuty asocjacji: Są zwykle oczywiste w przypadku asocjacji  m : n. 
Dla asocjacji n : 1 i    1 : 1 nie jest to już tak oczywiste. Można stosować 
myślowy  eksperyment:  “Co  by    było  gdyby  ta  asocjacja  byłaby  m  :  n  ?” 
Np.  atrybut  zarobek  w  klasie  Pracownik  stał  by  się  wtedy  atrybutem 
asocjacji między klasami: Pracownik Firma.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 23

Czy masz prawidłowe atrybuty? (2)

 Atrybuty wewnętrzne (pomocniczy): Jeżeli  atrybut  ma  charakter 
wewnętrzny  (jest  niewidoczny)    to  należy  go  raczej  wyeliminować  z 
modelu  pojęciowego.  Np.  dla  metody  oblicz_podatek  mogą  istnieć 
wewnętrzne atrybuty przechowujące podatek obliczony dla kolejnych 
lat.

  Atrybuty  nieistotne:  Omijaj  w  modelu.  Np.  atrybut:  “Uwagi  do 
obiektu”,  który  nie        uczestniczy  w  żadnej  istotnej  operacji  na 
obiekcie (poza zapisaniem i wyświetlaniem tego atrybutu).

  Atrybuty  tzw.  rozszczepiające  (dyskryminatory):  Jeżeli  atrybut 
ma  charakter  dzielącego  ekstensję  danej  klasy  na  grupy  o  nieco 
różnej  semantyce,  to  zastąp  go  specjalizacjami  klas  (tzw.  podział 
poziomy klasy). Np. atrybut rodzaj_pracownika z wartościami: uczeń, 
stażysta
,  etatowy,  na_zlecenie,  emerytowany.  Dość  często  takie 
atrybuty 

powstają 

wskutek 

przedwczesnych 

decyzji 

 

implementacyjnych.

  Atrybuty  odnoszące  się  do  implementacji:  Należy  je 
wyeliminować z modelu analitycznego.  Przykładem są atrybuty, takie 
jak,  np.:  format  pliku  graficznego  ze  zdjęciem  pracownika,  rozmiar 
obiektu w bajtach
przyjętą częstość składowania obiektów, itp.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 24

Co może sugerować, że brakuje 

pewnych klas?

  Rozłączne  grupy  atrybutów  i  operacji  wewnątrz  klasy:  Należy 
rozdzielić taką klasę na  kilka innych (tzw. podział pionowy klasy).

 Trudności z generalizacją: Jedna klasa może pełnić dwie zasadniczo 
różne role. Np. klasa Książka: z jednej strony, są operacje odnoszące się 
do  książki,  jak  do  konkretnego    egzemplarza,  z  drugiej  strony  są 
operacje odnoszące się do książki, jak do pozycji  wydawniczej.

  Istnienie  operacji,  której  nie  da  się  zastosować  do  żadnej  z 
istniejących już klas:
  Należy dodać brakującą klasę. 

  Zdublowane  asocjacje  o  tej  samej  semantyce  i  strukturze: 
Sugerują,  że  warto  utworzyć  klasę  bardziej  ogólną  i  skorzystać  z   
możliwości dziedziczenia asocjacji.

  Pewna  rola  klasy  zdecydowanie  zmienia  jej  charakter:  Być  może 
powinna  być    oddzielną  klasą.  Np.  rola  samochodu  w  związku  ze 
złomowiskiem:  przestają  mieć    znaczenie  stare  atrybuty,  a  nabierają 
znaczenia nowe, takie jak np. waga metali, zdolność  do  recyclingu, itd.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 25

Czy masz prawidłowe asocjacje? (1)

  Asocjacje  związane  z  likwidowaną  klasą:  Jeżeli  klasa  jest 
eliminowana z modelu, to   wszystkie jej asocjacje powinny być również 
eliminowane.  W  takich  sytuacjach  należy      rozpatrzyć,  czy  jednak  nie 
powinny być przyłączone do innych klas.

  Asocjacje  nierelewantne  lub  implementacyjne:  Należy 
wyeliminować  z  modelu  pojęciowego    te  asocjacje,  które  nie  odnoszą 
się do dziedziny problemowej.  

  Akcje/czynności/procesy  jako  asocjacje:  Asocjacje  powinny 
opisywać  strukturalne  własności  dziedziny  problemowej,  a  nie 
aspekt  działania  bytów  w  niej  istniejących.  Np.  weryfikacja_klienta 
opisuje  interakcję  pomiędzy  obiektem  Kasjer  (lub  aktorem  Kasjer)  a 
obiektem  Klient,  a  nie  związek  pomiędzy  tymi  obiektami  (chyba  że 
chcemy rejestrować: kto, kogo i kiedy weryfikował). Bardzo częsty błąd.

 Asocjacje  3-arne, 4-arne, itd. Należy traktować je podejrzliwie (?) i 
dekomponować  na  asocjacje  binarne  poprzez  wprowadzenie  klasy 
pośredniczącej (?).

Klasa pośrednicząca

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 26

Czy masz prawidłowe asocjacje? (2)

posiada

 Dodawanie nazw ról, kiedy jest to właściwe: Np. pomiędzy Firmą i 
Osobą  dla  asocjacji  pracuje_dla  warto  dodać  role  pracodawca  i/lub 
pracownik,  aby  uniknąć  wątpliwości    kto  dla    kogo  pracuje  (lub 
wykorzystać symbol    ).

  Asocjacje  pochodne:  Należy  unikać  asocjacji,  które  wynikają  z  innych 
asocjacji.  Podobnie,  jeżeli  asocjacja  wynika  z  wartości  atrybutów,  można 
wyeliminować  albo  tę  asocjację,  albo  któryś  z  atrybutów.  Należy  bardzo 
uważać, ponieważ niekiedy wynikanie jest pozorne.

Firma

Osoba

Komputer

zatrudnia

jest_przydzielony

Wszystkie  asocjacje  są  tu 
niezbędne.  Asocjacji  zatrudnia 
nie  można  wydedukować  z 
dwóch  pozostałych,  ponieważ 
są  pracownicy,  którym  nie 
przydzielono komputera.

*

*

*

0..1

1

1

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 27

Czy masz prawidłowe asocjacje? (3)

  Asocjacje  Kwalifikowane:  Często,  pewien  atrybut  powiązany  z 
asocjacją posiada  unikatowe znaczenie, pozwalając na jednoznaczny 
podział zbioru obiektów (na pojedyncze obiekty lub grupy obiektów). 
  Np.  kod_banku  identyfikuje  jednoznacznie  bank  w  ramach 
konsorcjum banków. Warto oznaczyć taką sytuację.

  Liczność:  Staraj  się  wprowadzić  liczność  do  diagramów,  ale  nie 
przywiązuj  do  tego  zbytniej  wagi  na  początku  analizy,  ponieważ 
liczności  bardzo  często  ulegają  zmianie  w    miarę  rozwijania 
projektu.

 Opuszczone asocjacje: Staraj się zidentyfikować je na podstawie 
atrybutów  (mogą  z  nich  wynikać),  na  podstawie  diagramów 
dynamicznych lub scenariuszy interakcji aktorów  z  systemem.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 28

Za mało lub za dużo asocjacji?

  Brak ścieżki dostępu do pewnych obiektów: Możemy to stwierdzić 
próbując skonstruować zapytanie.

    Redundantna  informacja  w  asocjacji:  Zastanowić  się,  czy  jest 
potrzebna.

    Brak  operacji,  które  wykorzystują  daną  asocjację:  Jeżeli  nie 
mamy  operacji  lub  zapytań,  które  efektywnie  używają  danej  asocjacji, 
wówczas prawdopodobnie jest ona zbędna.

W  praktyce,  rzadko  udaje  się  wypracować  dostatecznie 
rygorystyczne reguły postępowania, kóre prowadziłyby skutecznie 
do celu, czyli do uzyskania modelu o zadawalającej jakości. Liczba 
sytuacji,  z  którymi  mają  do  czynienia  analitycy,  jest  ogromna  i 
zawsze będą istnieć przypadki, kiedy omówione powyżej zalecenia 
nie wystarczą. Ostatecznym kryterium jest więc próba uniknięcia 
wszelkich  niespójności  i  uzyskania  pełnego  zadowolenia  klienta. 
Dla wielu projektów jest to i tak bardzo trudne do osiągnięcia. 

Model może zawierać zbyt mało lub zbyt dużo asocjacji, gdy:

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 29

Kryteria jakości modeli

 poprawny, 
 kompletny,
 minimalny,
 czytelny,
 samo-tłumaczący się,
 podatny na modyfikacje.

 poprawny, 
 kompletny,
 minimalny,
 czytelny,
 samo-tłumaczący się,
 podatny na modyfikacje.

Jednoczesne  spełnienie  wszystkich  warunków  jest  często 
niemożliwe, nie mniej jednak należy do tego dążyć.

 

Dobrej jakości model powinien być:

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 30

Poprawność

Poprawność syntaktyczna:

 Pojęcia są prawidłowo zapisane/narysowane/powiązane na 

diagramie.

Poprawność semantyczna:

 Diagram odpowiada sytuacji z modelowanej rzeczywistości.

Najczęstsze błędy:

 użycie atrybutu zamiast klasy czy asocjacji lub odwrotnie,
 pominięcie uogólnienia lub specjalizacji,
 nieprawidłowa arność asocjacji (np. binarna zamiast n-narnej),
 użycie klasy zamiast asocjacji lub odwrotnie,
 pominięcie atrybutów w asocjacjach,
 pominięcie lub nieprawidłowa liczność asocjacji.

Poprawność syntaktyczna:

 Pojęcia są prawidłowo zapisane/narysowane/powiązane na 

diagramie.

Poprawność semantyczna:

 Diagram odpowiada sytuacji z modelowanej rzeczywistości.

Najczęstsze błędy:

 użycie atrybutu zamiast klasy czy asocjacji lub odwrotnie,
 pominięcie uogólnienia lub specjalizacji,
 nieprawidłowa arność asocjacji (np. binarna zamiast n-narnej),
 użycie klasy zamiast asocjacji lub odwrotnie,
 pominięcie atrybutów w asocjacjach,
 pominięcie lub nieprawidłowa liczność asocjacji.

Model/diagram  jest  poprawny  jeżeli  wszystkie  występujące  na  nim 

pojęcia zostały właściwie użyte.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 31

Kompletność

Jak to sprawdzić ?

 dokładnie,  szczegółowo  przejrzeć  specyfikacje  wymagań 

dotyczących opisywanego fragmentu dziedziny problemowej 

i sprawdzić czy są one wyrażone na diagramie,

 przejrzeć pojęcia zobrazowane na diagramie i porównać ich 

opisy w wymaganiach,

 próbować  porównywać  ze  sobą  diagram  klas  i  diagramy 

dynamiczne sprawdzając ich zgodność i spójność.

Jak to sprawdzić ?

 dokładnie,  szczegółowo  przejrzeć  specyfikacje  wymagań 

dotyczących opisywanego fragmentu dziedziny problemowej 

i sprawdzić czy są one wyrażone na diagramie,

 przejrzeć pojęcia zobrazowane na diagramie i porównać ich 

opisy w wymaganiach,

 próbować  porównywać  ze  sobą  diagram  klas  i  diagramy 

dynamiczne sprawdzając ich zgodność i spójność.

Model/diagram  jest  kompletny  jeżeli  wszystkie  cechy  opisywanego 

obszaru są na nim wyrażone.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 32

Minimalność 

Model/diagram  jest  minimalny  jeżeli  każdy  z  aspektów  wymagań 

analizowanego  obszaru  występuje  na  schemacie  tylko  raz.  Usunięcie 

dowolnego elementu z diagramu minimalnego powoduje utratę informacji.

Model/diagram  jest  minimalny  jeżeli  każdy  z  aspektów  wymagań 

analizowanego  obszaru  występuje  na  schemacie  tylko  raz.  Usunięcie 

dowolnego elementu z diagramu minimalnego powoduje utratę informacji.

Atrybuty: Liczba_prac (liczba pracowników w projekcie)

 i Kierownik dublują informację zawartą w asocjacjach.

PRACOWNIK

Imię

Nazwisko

Data_ur

PROJEKT

ID_projektu

Kierownik

Liczba_prac

pracuje_nad

kieruje

PRACOWNIK

Imię

Nazwisko

Data_ur

PROJEKT

ID_projektu

pracuje_nad

kieruje

0..1

*

*

0..1

Redundancja  informacji  jest  czasami  korzystna.  Należy  wtedy 

udokumentować, które elementy są pochodnymi innych i w jaki sposób 

się je wylicza lub wyprowadza.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 33

Czytelność

B

B-D

B-C

B-E

A-C

A-E

C

E

D

A

A-D

B

D-B

C-B

E-B

A-C

A-E

C

E

D

A

A-D

Model/diagram  jest  czytelny  jeżeli  graficzna  reprezentacja  zawiera 

minimum punktów percepcji (przecięć, załamań linii, itp.). 

Kryteria  czytelności:  elementy  w  punktach  rastru,  ta  sama  wielkość 

elementów, linie diagramu biegnące poziomo i/lub pionowo, minimalna 

liczba przecięć czy załamań linii, symetria, itp.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 34

Samo-tłumaczenie (1)

 

 

PROFESOR

SEMINARIUM

prowadzi

WYKŁAD

ASYSTENT

prowadzi

oferuje

objaśnia

NAUCZYCIEL

ZAJĘCIA

PROFESOR

ASYSTENT

SEMINARIUM

WYKŁAD

prowadzi

Model/diagram  jest  samo-tłumaczący  się  (samo-opisowy)  jeżeli 

wymagania  analizowanego  obszaru  są  reprezentowane  na  schemacie  w 

naturalny sposób, są zrozumiałe i na tyle  wyczerpujące, że nie wymagają 

dodatkowych wyjaśnień.

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 35

Samo-tłumaczenie (2)

Model/diagram  jest  samo-tłumaczący  się  także  w  sytuacji,  gdy  nie  istnieje 

potrzeba  stosowania  innych  formalizmów  (np.  opisów  słownych),  dodatkowych 

w  stosunku  do  notacji  pojęciowych  modelu  danych,  w  celu  reprezentowania 

cech analizowanego obszaru.

Model/diagram  jest  samo-tłumaczący  się  także  w  sytuacji,  gdy  nie  istnieje 

potrzeba  stosowania  innych  formalizmów  (np.  opisów  słownych),  dodatkowych 

w  stosunku  do  notacji  pojęciowych  modelu  danych,  w  celu  reprezentowania 

cech analizowanego obszaru.

PACJENT

LEKARZ

Opieka
Rodzaj_opieki

*

*

PACJENT

LEKARZ

jest_prowadzony

jest_konsultowany

*

*

*

0..1

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 36

Proponowana miara dla oceny 

diagramu klas (1)

Przedmiot oceny cząstkowej

Ocena

1.  Poprawność (suma ocen  z punktów 1.1 - 1.7)

0 - 20

1.1  poprawna  identyfikacja  klas;  odejmowanie  punktów  za  np.: 
brak  klasy,  za  umieszczenie  klasy  zamiast  atrybutu  czy  asocjacji 
(także w sytuacji odwrotnej), za wprowadzenie do diagramu aktora 
systemu (?), za błędną nazwę klasy (z reguły rzeczownik w liczbie 
pojedynczej)

0 - 3

1.2    poprawne:  identyfikacja  atrybutów  i  specyfikacja  ich  rodzaju 
(opcjonalny,  powtarzalny,  pochodny,  klasowy);  odejmowanie 
punktów  także  za  wprowadzenie  atrybutu  zamiast  asocjacji  (lub 
odwrotnie) czy zbyt detaliczną specyfikację

0 - 3

1.3    poprawne:  identyfikacja  metod  i  specyfikacja  ich  rodzaju 
(obiektu,  klasowe);  odejmowanie  punktów  np.  brak  metod  czy 
wprowadzenie  do  diagramu  metody  generycznej  (utwórz,  usuń, 
czytaj,  pisz),  metody  zamiast  atrybutu  pochodnego,  metody 
pochodnej (nie istnieje !), za zbyt detaliczną specyfikację

0 - 3

1.4  poprawne:  identyfikacja  struktur  i  rodzaju  dziedziczenia 
(rozłączne, 

nierozłączne, 

kompletne, 

niekompletne, 

jednoaspektowe, 

wieloaspektowe, 

jednokrotne, 

wielokrotne, 

dynamiczne)  oraz  rozmieszczenie  atrybutów  i  metod  w  ramach 
jednej  hierarchii;  odejmowanie  punktów  za  np.:  brak  hierarchii, 
nieprawidłową organizację hierarchii (np. klasy o różnej semantyce 
w jednej hierarchii, zamiana ról podklas-nadklasa, obecność pętli w 
strukturze, brak oznaczenia dla klasy abstrakcyjnej,

0 - 3

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 37

Proponowana miara dla oceny 

diagramu klas (2)

Przedmiot oceny cząstkowej

Ocena

1.5 

poprawna 

identyfikacja 

asocjacji: 

właściwe 

nazwy, 

wykorzystywanie  ról,  poprawne  liczności,  obecność  atrybutów 
asocjacji  (lub  klas  asocjacji);  odejmowanie  punktów  także  za 
modelowanie  czynności  wykonywanych  poza  systemem  czy 
interakcji aktora z systemem jako asocjacji, wprowadzanie asocjacji 
redundantnych (na skutek nie uwzględnienia dziedziczenia asocjacji 
czy 

nieprawidłowego 

oznaczenia 

asocjacji 

pochodnych), 

wykorzystywanie  elementów  przynależnych  do  fazy  projektowania 
(np. asocjacje skierowane czy klucze obce zamiast  asocjacji)

0 - 3

1.6  identyfikacja agregacji, kompozycji i asocjacji kwalifikowanej

0 - 2

1.7 wprowadzanie ograniczeń i komentarzy (ile i w jakiej postaci)

wykorzystywanie 

tzw. 

“obejść 

ograniczeń 

środowiska 

implementacji”  (np.  asocjacja,  agregacja  czy  kompozycja  zamiast 
dziedziczenia  –  akcje  odpowiednie  dla  etapu  projektowania,  a  nie 
analizy)

0 - 3

2.  Kompletność

0 - 3

3. Organizacja

0 - 5

4. 

Samo-tłumaczenie: czy nazwy dobrze przenoszą semantykę bytów

0 - 2

5.  Minimalność

0 - 1

background image

E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, 
Wykład 12, Slajd 38

Proponowana miara dla oceny 

diagramu klas (3)

Przedmiot oceny cząstkowej

Ocena

6.  Nadmiarowość

0 - 1

7.  Znajomość notacji języka modelowania

0 - 1

9.  Ocena łączna

0 - 34

8.  Czytelność

0 - 1


Document Outline