Poza opisem słownym warto jest dokumentować wymagania w oparciu o model.
Definicja: Model
Model to abstrakcyjna reprezentacja istniejącej rzeczywistości lub rzeczywistości, która będzie stworzona.
Model może odnosić się tak do bytów materialnych, jak i niematerialnych.
W inżynierii wymagań modele są wykorzystywane do dokumentowania wymagań jako uzupełnienie dokumentacji wymagań w języku naturalnym. W inżynierii wymagań można wyróżnić trzy rodzaje wymagań modelowanych niezależnie i wykorzystywanych we wspólnej dokumentacji: cele, przypadki użycia i wymagania opisujące funkcje systemu i ich jakość.
Każdy model ma za zadanie zmapowanie całej lub części interesującej nas rzeczywistości na poszczególne elementy modelu. Mapowanie może dotyczyć rzeczywistości już istniejącej lub też pożądanej, a także istniejącej i pożądanej (np. dokument wymagań może zawierać istniejący model procesów biznesowych klienta oraz model tworzonego systemu).
Model ma za zadanie reprezentację interesującej nas rzeczywistości. Tworzenie modelu pełni funkcję poznawczą i/lub opisową i aby ta funkcja została spełniona model musi redukować tą rzeczywistość i prezentować ją na pewnym poziomie abstrakcji.
Każdy model tworzony jest w określonym celu i w określonym kontekście. Idealny model zawiera tylko te informacje, które są istotne z określonej perspektywy.
Podczas tworzenia modelu, który będzie zrozumiały dla jego autora oraz odbiorcy, konieczne jest posługiwanie się przez nich tym samym językiem/notacją. Jeżyk modelowania jest definiowany poprzez:
- Składnię – która definiuje jakie elementy mogą zostać wykorzystane w tym języku oraz określa możliwe połączenia tych elementów,
- Semantykę – która określa znaczenie poszczególnych elementów i ich powiązać, co pozwala na prawidłową interpretację modeli utworzonych przy pomocy tego języka.
Najczęściej stosowanym językiem wykorzystywanym do modelowania wymagań jest język UML.
Badanie dotyczące możliwości poznawczych ludzi wykazały, że mózg ludzki jest zdolny szybciej i lepiej postrzegać i zapamiętywać informacje, które są przedstawione graficznie, niż informacje przedstawione za pomocą języka naturalnego.
Języki modelowania zazwyczaj mają ściśle określone zastosowanie i ich semantyka koncentruje się na modelowaniu określonych problemów. Zastosowanie tych języków pozwala na tworzenie modeli właściwych dla określonej perspektywy, pomijając informacje nieistotne lub mało istotne z punktu widzenia tej perspektywy.
Modele celów
Zadaniem inżynierii wymagań jest pozyskiwanie, dokumentacja oraz zarządzanie wymaganiami, które reprezentują potrzeby interesariuszy. Potrzeby te mogą być traktowane jako ich cele, które mają zostać osiągnięte za pomocą tworzonego systemu.
Nakład pracy potrzeby do określenia celów w porównaniu z całym nakładem poniesionym na inżynierię wymagań jest bardzo mały natomiast może on w znacznym stopniu poprawić jakość i kompleksowość wymagań oraz bardzo przydatne podczas określania wizji tworzonego systemu.
Cele mogą być dokumentowane za pomocą języka naturalnego, a także za pomocą modeli celów.
Do modelowania celów wykorzystać można dwa tym relacji dekompozycji AND i OR. Hierarchia dekompozycji może zostać zamodelowana za pomocą drzewa. W przypadku dekompozycji AND wszystkie cele podrzędne muszą zostać spełnione aby był spełniony cel nadrzędny. W przypadku dekompozycji OR wystarczy spełnić tylko jeden cel podrzędny aby został spełniony cel nadrzędny.
Przykład
Kolejną techniką wspomagającą dokumentowanie wymagań są przypadki użycia, które opiszę w kolejnym wpisie.
Tekst zainspirowany książką: Klaus Pohl, Chris Rupp „Requirements engineering fundamentals : a study guide for the Certified Professional for Requirements Engineering exam : foundation level”, IREB compliant Wydawnictwo: Rocky Nook Inc, 2011