Dokumentacja wymagań przy użyciu języka naturalnego

Wykorzystanie języka naturalnego jest najbardziej popularnym sposobem dokumentowania wymagań. Jego największą zaletą jest brak potrzeby poświęcenia czasu przez interesariuszy na poznanie nowych notacji wykorzystywanych w przypadku modelów konceptualnych (np. UML) oraz możliwość opisu rzeczywistości, która może być trudna do przedstawienia za pomocą innych notacji.

Stosowanie języka naturalnego ma niestety także wiele wad. Wymagania są definiowane i analizowane przez ludzi, którzy posiadają zróżnicowany poziom wiedzy, różne uwarunkowania społecznościowe oraz doświadczenie. Te czynniki wpływają na częste niezrozumienie lub różną interpretację wymagań tworzonych przy użyciu języka naturalnego.

Różna percepcja oraz reprezentacja informacji przez ludzi zaangażowanych w projekt wynika z tak zwanego „efektu transformacji”.

Pięć procesów transformacyjnych, które są najbardziej istotne dla inżynierii wymagań:

  • Nominalizacja
  • Rzeczowniki bez indeksu referencyjnego
  • Uniwersalne kwantyfikatory
  • Niekompletnie określone warunki
  • Niekompletnie określone czasowniki

Nominalizacja

Nominalizacja ma miejsce, gdy czasownik opisujący jakiś proces zostaje przekształcony w rzeczownik. Nie ma powodu do niestosowania nominalizacji w opisie złożonych procesów, przy czym proces ten powinien być wyraźnie określony przez używany termin. Używany termin nie może pozwolić na jego swobodną interpretację, a opisywany przez niego proces musi być wyraźnie określony wraz z uwzględnieniem wejść i wyjść dla tego procesu oraz możliwych błędów i wyjątków.

Przykład

Dla wymagania „W przypadku awarii systemu należy wykonać jego restart” terminy „awaria systemu” i „restart”, które opisują proces powinny być przeanalizowane bardziej precyzyjnie.

Rzeczowniki bez indeksu referencyjnego

Określanie rzeczowników bez indeksu referencyjnego odnosi się do niekompletnego opisu rzeczowników. Przykładami rzeczowników bez indeksu referencyjnego mogą być: dane, komunikat, funkcja. Takie użycie rzeczownika nie wyczerpuje informacji o nim i może być różnie zinterpretowane.

Przykład

Wymaganie „Dane powinny zostać wyświetlone użytkownikowi na terminalu” nie określa jakie dane powinny zostać wyświetlone, jakiemu użytkownikowi i na którym terminalu. Aby uniknąć nieporozumień wymaganie może zostać sformułowane jako „Dane faktury powinny zostać wyświetlone zalogowanemu użytkownikowi na terminalu, na którym został zalogowany”.

Uniwersalne kwantyfikatory

Kwantyfikatory określają ilość oraz częstotliwość. Podczas użycia uniwersalnych kwantyfikatorów istnieje ryzyko, że określone zachowanie lub właściwość nie będzie miała zastosowania do wszystkich obiektów zgrupowanych za pomocą kwantyfikatora. Przykładami kwantyfikatorów są: nigdy, zawsze, wszystkie, niektóre.

Przykład

Wymaganie „System wyświetla wszystkie zbiory danych dla każdego podmenu” powinno zostać przeanalizowane pod kątem określenia, czy na pewno każde podmenu powinno je uwzględniać oraz czy na pewno istnieje potrzeba prezentacji wszystkich zbiorów danych dla danego podmenu.

Niekompletnie określone warunki

Wymagania zawierające warunek określają zachowanie systemu, które występuje jeżeli dany warunek zostanie spełniony. Niekompletne określenie warunku może spowodować utratę ważnych informacji.

Przykład

Wymaganie „System restauracji powinien pozwalać na sprzedaż napojów alkoholowych zarejestrowanym użytkownikom, którzy ukończyli 18 lat” nie określa jakie napoje mogą być sprzedawane użytkownikom którzy nie ukończyli 18 lat. Wymaganie może zostać sprecyzowane przez określenie „System restauracji powinien pozwalać na sprzedaż tylko napoi bezalkoholowych zarejestrowanym użytkownikom, którzy nie ukończyli 18 lat oraz wszystkich napoi zarejestrowanym użytkownikom, którzy ukończyli 18 lat”.

Niekompletnie określone czasowniki

Niektóre czasowniki opisujące jakiś proces wymagają więcej niż jednego rzeczownika, aby mogły zostać prawidłowo zinterpretowane. Na przykład czasownik przekazać powinien zostać określony przez trzy rzeczowniki określające co będzie przekazane, skąd i gdzie. Niekompletne określenie czasownika może spowodować utratę ważnych informacji.

Przykład

Wymaganie „Zalogowanie użytkownika wymaga wprowadzenia danych logowania” nie określa jednoznacznie kto, gdzie i jakie dane wprowadza. Wymaganie może zostać doprecyzowane przez sformułowanie „System musi pozwolić na wprowadzenie przez użytkownika jego loginu i hasła wykorzystując klawiaturę terminalna, aby mógł się zalogować w systemie”.

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

Podobne wpisy
Jesienny The Rational Edge ezine

Właśnie ukazał się jesienny The Rational Edge ezine (http://ibm.com/developerworks/ecma/campaign/er.jsp?id=376126&imid=68950291&end). Dla fanów RSA jest bardzo ciekawy artykuł, w którym Steve Arnold więcej

Podstawowe dobre praktyki inżynierii wymagań

Poniżej opisane wskazówki to podstawowe dobre praktyki opracowane przez Ian Sommerville i Pete Sawyer. Więcej na ten temat możesz przeczytać więcej

Średniozaawansowane dobre praktyki inżynierii wymagań

Poniżej opisane wskazówki to średniozaawansowane dobre praktyki opracowane przez Ian Sommerville i Pete Sawyer. Więcej na ten temat możesz przeczytać więcej

Zaawansowane dobre praktyki inżynierii wymagań

Poniżej opisane wskazówki to zaawansowane dobre praktyki opracowane przez Ian Sommerville i Pete Sawyer. Więcej na ten temat możesz przeczytać więcej

Reklama
MODESTO - licencje Enterprise Architect
Scroll to Top