Wymagania na tworzenie oprogramowania.

Wymagania na tworzenie oprogramowania.

Kryteria dobrej specyfikacji wg IEEE Std 830-1998 PDF Drukuj Email


Źródłem kryteriów stanowiących o jakości dokumentacji wymagań jest standard IEEE 830. Zgodnie z tym standardem dokumentacja powinna charakteryzować się następującymi cechami:

 



A więc, specyfikacja powinna być:

1. Poprawna (ang. correct)

Specyfikacja wymagań jest poprawna tylko wtedy, gdy każde wymaganie to wymaganie, które system powinien spełniać. Aby zapewnić poprawność należy porównać specyfikację wymagań z innymi dokumentami projektu,
Standardami i regulacjami, których system musi przestrzegać (np. nie można zawrzeć żadnych wymagań, które będą sprzeczne z polskim prawem).
Kontrolę poprawności ułatwia śledzenie powiązań (ang. traceability).

2. Jednoznaczna (ang. unambiguous)

Specyfikacja jest jednoznaczna, gdy każde wymaganie można zinterpretować tylko w jeden sposób; nie ma miejsca na domyślanie się i wybieranie jednej „najbardziej prawdopodobnej” alternatywy. Wieloznaczność można w pewnym stopniu wyeliminować opracowując słownik wszystkich terminów, które mogą być niezrozumiałe, lub rozumiane na wiele sposobów – szczególnie dotyczy to terminów charakterystycznych dla danej branży (tzw. slang branżowy). Należy mieć na uwadze, że specyfikacja wymagań tworzona wyłącznie za pomocą języka naturalnego, nigdy nie będzie w pełni jednoznaczna, gdyż różni odbiorcy mogą różnie odbierać zapis tekstu. Jedynie zastosowanie metod formalnych pozwala w pełni uniknąć wieloznaczności. Większość projektów toleruje pewien akceptowalny (dla nich) poziom niejednoznaczności wynikający z pisania wymagań językiem naturalnym jest wystarczający. Projekty rozwijające np. systemy krytyczne ze względu na bezpieczeństwo, powiązane z dużym ryzykiem w przypadku niespełnienia, lub nieprawidłowej implementacji wymagań, specyfikują wymagania za pomocą metod formalnych.

3. Kompletna (ang. complete)

Specyfikacja wymagań jest kompletna tylko wtedy, gdy spełnione są trzy warunki:

• zawiera wszystkie istotne wymagania (nie tylko funkcjonalne, lecz również niefunkcjonalne),
• określa odpowiedź systemu na każdą informację wejściową, dla danych zarówno poprawnych, jak i niepoprawnych,
• zawiera referencje do wszystkich diagramów, tabel, pojęć słownikowych.

4. Spójna (ang. consistent)

Spójność rozumiemy jako spójność wewnętrzną, czyli np. zgodność z dokumentem wyższego poziomu.

Niespójność może wynikać z:

• konfliktów pomiędzy opisywanymi obiektami: np. jedno wymaganie mówi, że zestawienie danych ma być w formie tabelarycznej, natomiast drugi, że w formie tekstowej i to wyłącznie na wydruku,
• konfliktów logicznych pomiędzy czynnościami: np. jedno wymaganie mówi, że system wyliczy wartość wg wzoru X, a drugie stwierdzi, że ta wartość ma być wyliczona wg wzoru Y,
• używania różnych terminów do opisu tych samych obiektów.

5. Uporządkowana wg ważności/stabilności (ang. ranked for importance/stability)

Uporządkowanie to (określenie priorytetów) ułatwia to programistom podjęcie właściwych decyzji dot. architektury oraz skupienia się na najważniejszych wymaganiach.

Dzięki priorytetom wymagań, można prościej rozwiązać konflikty w przypadku niespójności wewnętrznej. Określenie stabilności natomiast pomaga wybrać te obszary specyfikacji wymagań, które raczej nie ulegną już zmianie – takie fragmenty mogą być implementowane w pierwszej kolejności.

6. Weryfikowalna (ang. verifiable) - gdy każde wymaganie jest weryfikowalne, czyli można w jednoznaczny sposób powiedzieć, że zostało wykonane, lub sprawdzić, czy zostało wykonane we właściwy sposób. Czyli innymi słowy – wymaganie można pokryć przypadkami testowymi i przetestować.

7. Modyfikowalna (ang. modifiable)

Wymagania mogą się zmienić. Tym samym powinna móc się zmieniać dokumentacja wymagań. Dokumentacja jest modyfikowalna jeśli jej struktura i styl pozwalają dokonać w niej zmian w prosty, kompletny i spójny sposób.

Elementy, które utrudniają modyfikowalność to:

• redundancja - jedno wymaganie jest wymienione w wielu miejscach,
• skomplikowana struktura dokumentu,
• mieszanie wymagań - jedno miejsce w specyfikacji zawiera wymagania nie powiązane ze sobą, natomiast jedno wymaganie zapisane jest w różnych miejscach.

8. Umożliwiająca śledzenie powiązań (ang. traceable)

Czyli pochodzenie każdego wymagania jest znane i dokument umożliwia zarządzanie referencjami pomiędzy wymaganiami, a innymi artefaktami.


Autor: Karolina Zmitrowicz

 
 
Joomla 1.5 Templates by Joomlashack