Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

11.04.

2023

Specyfikowanie słownika
dziedziny

dr hab. Michał Śmiałek, prof. uczelni

1DI1615: Inżynieria wymagań oprogramowania

Treść wykładu

• Identyfikowanie pojęć w słowniku


• Formułowanie słownika dziedziny
• Słownik w postaci modelu klas

Inżynieria wymagań oprogramowania 2

1
11.04.2023

Gdzie jesteśmy? Słownik dziedziny w piramidzie


wymagań

Wymagania funkcjonalne
Wymagania jakościowe Wizja systemu

Wymagania użytkownika
• Słownik dziedziny
opisuje pojęcia
występujące w
innych rodzajach Wymagania oprogramowania
wymagań

Inżynieria wymagań oprogramowania 3

:: Identyfikowanie pojęć w słowniku ::


Inżynieria wymagań oprogramowania 4

2
11.04.2023

Co to jest słownik dziedziny?

• Za Słownikiem Języka Polskiego:


– słownik to „zbiór wyrazów ułożonych i opracowanych
według pewnej zasady, zwykle objaśnianych pod
względem znaczeniowym” lub „indywidualny zasób
wyrazów”;
– dziedzina to „zakres czyjegoś działania w obrębie nauki,
gospodarki, techniki, kultury”.
• W inżynierii wymagań słownik dziedziny to:
– uporządkowany zbiór wyrazów i fraz wraz z ich
znaczeniami, za pomocą których można opisać wszystkie
pojęcia występujące w określonym fragmencie
rzeczywistości, dla którego budujemy system
oprogramowania.

Inżynieria wymagań oprogramowania 5

Konstrukcja dzieła literackiego - powieści

A A A

A A

A A

Inżynieria wymagań oprogramowania 6

3
11.04.2023

Konstrukcja wymagań z „opisem przyrody”

Inżynieria wymagań oprogramowania 7

Konstrukcja wymagań z „mapą terenu”

Stary dom

Rzeka
1. Nauka

2. Pojedynek

3. Spotkanie

Kopiec
4. Uprawa Nowy dom

Inżynieria wymagań oprogramowania 8

4
11.04.2023

Centralny słownik w całej specyfikacji wymagań

Wizja systemu Wym. użytkownika Wymagania oprogramowania


Requirem ent1 Requirement2
Requirement6
Custome r w ants to si gn up
for ex erc ises

System checks ava ilability of


exercises
Requirem ent5
[ exercises not ava ilable]
[exercises available] System
System shows e rror
messa ge
Systems shows tim e Customer
sch edule Requirem ent4 Customer w ants to sign up
Requirement3 for ex ercise s
Cus tomer choos es time from
time s chedule

wants to si gn up for exe rcises()


System shows s ign-up
checks avail abi l ity
Syste m chec ks a v aila bility of
sum mary dia log
of exe rcises() exercises
Wydruk Zarej estrow anie [exercises not avai l able ]
Anulow anie potw ierdzenia w płaty «invokes» w płaty [exercises avail abl e]
rezerw acj i biletu sho ws ti me sche dul e()

Dodanie now ego


użytkow nika
sho ws si gn-up summary dia log () Klinet anuluje rezerwację
System show s error
me ssage
Systems shows time
schedule
«i nvokes»
«i nvokes»
submi ts sign -up for exercises()
Requirement1 Requi rement2 Zmiana parametrów
k onta Generuj raport «invokes»
1. Customer wants to sign up fortimeexercises.
Customer chooses time from
s chedule
Zalogow anie się do
systemu
si gns up customer for exercises() 2. System checks availability of exercises.
Requi rement5 3. System shows time schedule.
System shows sign-up
Requirement6
4. Customer chooses time fromsummarytimedialog
schedule.
Requi rement3
Requirement4 5. System shows sign-up summary dialog.
6. Customer cancels sign-up for exercises.
Pracow nik banku
Klient
dziedziny
Słownik

Inżynieria wymagań oprogramowania 9

Identyfikacja pojęć do słownika

Zarejestrowanie Dokonanie [zamówienia


Sprzedawca wydania na samochód]
[samochodu]
Klient

(…) wybiera [model samochodu] z [cennika], a


Wyszukanie następnie wypełnia [zamówienie na samochód] (…)
[klienta]

Cennik (…) zawiera [modele samochodów] (…)


Słownik dziedziny

Klient (…) kupuje [samochody] (…)

Model samochodu (…) ma [nazwę] i [producenta] (…)

Samochód (…) konkretny egzemplarz [modelu samochodu] (…)

Zamówienie na samochód (…) dokonuje [klient] (…)


Inżynieria wymagań oprogramowania 10

10

5
11.04.2023

Spójność słownika – synonimy i homonimy

• Różne grupy (np. działy w firmie) używają różnych


określeń dla tych samych pojęć
Synonimy Homonimy
Klient wybiera usługę Administrator modyfikuje konto

… gdzie konto oznacza konto


…oznacza osobę użytkownika zarejestrowanego
uprawioną do w systemie
korzystania z usług
oferowanych
przez dostawcę.
System dodaje sumę do konta

… gdzie konto oznacza rachunek


Użytkownik rezerwuje usługę
bankowy klienta

Inżynieria wymagań oprogramowania 11

11

Organizacja słownika dziedziny

• Aby zapanować nad


złożonością i objętością
słownika dziedziny,
dzieli się go na pakiety
logicznie powiązanych
pojęć
• Możliwe jest
zagnieżdżanie pakietów

Inżynieria wymagań oprogramowania 12

12

6
11.04.2023

:: Formułowanie słownika dziedziny ::


Inżynieria wymagań oprogramowania 13

13

Podstawowe zasady tworzenia słownika

• Pojęcia rozróżniamy poprzez ich nazwy


– uzgadniamy z wszystkimi uczestnikami projektu
• Słownik aktualizujemy na bieżąco
• Podstawowe założenia tworzenia słownika:
– W słowniku umieszczamy pojęcia wraz z definicjami
– Definicje na tyle rozbudowane, aby nie pozostawiały
wątpliwości co do znaczenia definiowanych pojęć
– Definicje zawierają odniesienia do innych pojęć oraz
składników definiowanych pojęć
– Używamy jednolitej notacji – czcionek, wyróżnień,
kolorów, itp.

Inżynieria wymagań oprogramowania 14

14

7
11.04.2023

Słownik z postaci dokumentu

• Najczęściej spotykana forma słownika


• Prosta forma, lecz trudna w utrzymaniu
Cennik. Spis, zawierający wszystkie [modele samochodów] oferowanych przez naszą
firmę, wraz z całą strukturą cenową - [pozycjami cennika]. (…)
Klient. Osoba, która dokonuje zakupu [samochodów] w salonach naszej firmy. (…)
Model samochodu. Określenie rodzaju pojazdu produkowanego przez firmę
motoryzacyjną. Dla modelu samochodu określa się [nazwę], [markę], a także różne
[pozycje cennika]. (…)
Pozycja cennika. Składnik [cennika] naszej firmy, który zawiera informację o [cenie]
konkretnego produktu lub usługi. (…)
Samochód. Konkretny egzemplarz danego [modelu samochodu]. (…)
Zamówienie na samochód. Dokument, zawierający dane [samochodu] oraz [klienta],
który chce dokonać zakupu tego [samochodu].

Inżynieria wymagań oprogramowania 15

15

Słownik w postaci Wiki

Klient
Zamówienie na samochód
Osoba, która dokonuje zakupu samochodów w
Dokument, zawierający dane samochodu oraz klienta, salonach naszej firmy. (…)
który chce dokonać zakupu tego samochodu.

Samochód
Model samochodu Konkretny egzemplarz danego
Określenie rodzaju pojazdu produkowanego przez firmę modelu samochodu. (…)
motoryzacyjną. Dla modelu samochodu określa się nazwę,
markę, a także różne pozycje cennika. (…)

Pozycja cennika
Cennik Składnik cennika naszej firmy, który
zawiera informację o cenie
Spis, zawierający wszystkie modele samochodów konkretnego produktu lub usługi. (…)
oferowanych przez naszą firmę, wraz z całą
strukturą cenową - pozycjami cennika. (…)

Inżynieria wymagań oprogramowania 16

16

8
11.04.2023

Słownik w postaci diagramu

• Największa ekspresja – lepsze zrozumienie dziedziny


• Szybkie rozeznanie w strukturze dziedziny
• „Mapa terenu” ułatwiająca zrozumienie całej
specyfikacji wymagań

Zamówienie na samochód Klient

Model samochodu Samochód

Cennik Pozycja cennika

Inżynieria wymagań oprogramowania 17

17

:: Słownik w postaci modelu klas ::


Inżynieria wymagań oprogramowania 18

18

9
11.04.2023

Słownik w formie graficznej?

• Zakres pojęć i danych dla


systemu oprogramowania
• Definicje pojęć Rejestrator Właściciel

używanych w ramach
wymagań funkcjonalnych
i jakościowych
• Zależności między Rejestracja

pojęciami dziedziny
• Wyrażony w formie
tekstowej i/lub graficznej
Pojazd
SYSTEM
OBSŁUGI
REJESTRACJI

Inżynieria wymagań oprogramowania 19

19

UML: reprezentacja klasy


• Klasa jest oznaczana jako prostokąt z nazwą
• Atrybut – element danych zawarty całkowicie i
kontrolowany przez odpowiednią klasę
• Składnia atrybutów
– „nazwa_atrybutu : typ_atrybutu [krotność]”
– Typ atrybutu jest nieobowiązkowy
– Nazwy typów nie są w UML ustandaryzowane
• Na danym diagramie może być ujawnione więcej lub
mniej szczegółów (zasada abstrakcji!)
Cennik Model samochodu Samochód
nazwa numer VIN
marka kolor
dostępne kolory
tags
rozmiary
odpowiedzialny = Michał
waga = 10

Modelowanie struktury: diagramy klas 20

20

10
11.04.2023

Typy wyliczeniowe

• Typ wyliczeniowy – typ danych w postaci


ustalonego zbioru wartości (napisów)
• Składnia typów wyliczeniowych
– Prostokąt z nazwą
– Nad nazwą oznaczenie «enumeration»
– Pod nazwą lista literałów (napisów)
• Po zdefiniowaniu, typy wyliczeniowe można
używać jak typy proste
«enumeration»
Samochód
Kolor
numer VIN :tekst
czerwony
kolor :Kolor
zielony
niebieski

Modelowanie struktury: diagramy klas 21

21

Asocjacje między klasami

• Asocjacja definiuje możliwe relacje między pojęciami


• Klasy mogą pełnić role w asocjacji
– Role zaznaczamy jako nazwy końców asocjacji
• Może istnieć kilka związków między tymi samymi
klasami
parent1 children
Person

parents
child1 driver child2 ow ner driv er

driver
owner owner
ow ned car driv en car
owner
Car

Modelowanie struktury: diagramy klas 22

22

11
11.04.2023

Krotności w asocjacjach i dla atrybutów

• Krotność - dopuszczalna liczba obiektów klasy w relacji


z jednym obiektem drugiej klasy
– Podajemy dolną i górną granicę zakresu, np. 0..5
– Górna granica może wynosić nieskończoność (*)
– Gdy dolna i górna granica są takie same (np. 2..2), wystarczy
podać jedną wartość; oznaczenie * jest równoważne 0..*
children
their mother their father 0..*
Person

child1 child2 parents


2
ow ner 1 0..1 driv er
driver
driver
owner owner
owner
ow ned car 0..* 0..1 driv en car

Car

Modelowanie struktury: diagramy klas 23

23

Nawigowalność asocjacji

• Możliwość efektywnego osiągnięcia


obiektów jednej klasy przez obiekty
drugiej klasy Registration
– Dany obiekt „wie” o innym obiekcie i Certificate
może np. wykorzystywać jego usługi
• Notacja: asocjacja zakończona 0..1

strzałką
• Rodzaje nawigowalności v ehicle 1
– Brak nawigowalności
– Nawigowalność poprzez atrybut Car
– Nawigowalność bez atrybutu
• Obecność roli na końcu asocjacji
wskazuje na nawigowalność poprzez
atrybut
Modelowanie struktury: diagramy klas 24

24

12
11.04.2023

Agregacje i kompozycje
• Agregacja i kompozycja oznaczają asocjacje grupowania, np.
grupowania typu całość-części (składowe)
– WAŻNE, notacja: romb umieszczamy po stronie całości
• W relacji kompozycji składowe nie mogą być dzielone między
różne całości
• Kompozycja najczęściej ogranicza czas życia składowych czasem
życia całości
• Różnica między agregacją i kompozycją jest czasami płynna i
zależy od kontekstu/celu danego modelu

Luggage
0..1
0..*
Car

0..1
0..2 Engine

Modelowanie struktury: diagramy klas 25

25

Generalizacje i specjalizacje

• Taksonomia klas obiektów (np. taksonomia świata


zwierzęcego): klasy ogólne i klasy specjalizowane
• Klasy „dziedziczą” atrybuty i operacje od klas
ogólnych; obiekty „sumują” atrybuty i operacje
• Klasy abstrakcyjne
– Nie posiadają swoich instancji (obiektów)
– Nazwa pisana kursywą Nie istnieją!
Vehicle

number of wheels :number


passenger limit :number

Car Plane
number of wheels = 4 number of wheels = 0
VIN :text flight range :number
passenger limit = 5 passenger limit = 0
colour :Colour
VIN = FGH12345 flight range = 15 m
colour = red
Modelowanie struktury: diagramy klas 26

26

13
11.04.2023

Kompletny słownik jako model klas


Zamów ienie na
samochód zamawiający Klient Osoba
0..*
numer :liczba numer klienta :napis imię
data :Data 1 nazwisko
znizka :liczba zamówienie PESEL
właściciele 0..2
0..1

«enumeration»
realizacja *
Model samochodu Kolor
1
Samochód czerwony
nazwa :napis
marka :napis model zielony
*
numer VIN :napis niebieski
dostępne kolory 1
rozmiary samochody rok produkcji :liczba
kolor :Kolor
ładowność :liczba
liczba pasażerów :liczba

modele *

* ceny Podstaw ow a
cennik 1 pozycj a cennika

nazwa wariantu
Cennik Pozycj a cennika
cennik pozycje
okres obowiązywania :przedział czasu cena :liczba
1 *

Dodatkow a
pozycj a cennika

nazwa dodatku
Inżynieria wymagań oprogramowania typ dodatku 27

27

14

You might also like