O wymaganiach Kilka słów o wymaganiach w projektach informatycznych

13sie/104

Co oznacza jednoznaczność specyfikacji wymagań?

Kiedyś już rozważaliśmy, co standard IEEE 830 rozumie przez dobrze napisany SRS. Przeglądaliśmy również atrybuty dobrej specyfikacji wymagań według tego samego standardu, a nawet zastanawialiśmy się, czym jest "śledzenie" wymagań. Dzisiaj chciałbym pochylić się nad kolejnym atrybutem dobrego SRSa, nad jednoznacznością.

SRS jest jednoznaczny, jeśli każde opisane wymagania ma tylko jedną interpretację.

Atrybut ten jest o tyle istotny, że niejednoznacznie zapisane wymagania będą się na nas mściły od samego początku pracy nad oprogramowaniem, aż do samego końca. Niejednoznaczne wymagania spowodują, że klient może inaczej zrozumieć zapisane wymagania, inaczej zrozumie je architekt, jeszcze inaczej zaimplementują je programiści, a testerzy będą testować jeszcze coś innego. Problem jest o tyle ciężki do rozwiązania, że często pisząc wymagania nie zdajemy sobie sprawy, że coś może mieć więcej niż jedno znaczenie, dopiero zderzenie z innym punktem widzenia pomaga nam uzmysłowić sobie, że zapisane wymaganie można zinterpretować na kilka sposobów.

Niestety, jeśli używamy języka naturalnego do opisu wymagań, to skazujemy się automatycznie na niejednoznaczność, gdyż jest ona cechą charakterystyczną właśnie takiego podejścia.

Łatwiej zadbać o jednoznaczność korzystając z notacji przeznaczonych do opisu wymagań, które często w sposób automatyczny wskażą nam potencjalne problemy wieloznaczności. Niestety podejście to ma też swoje wady - wymaga ono poświęcenia czasu oraz wysiłku do nauki sprawnego posługiwania się daną notacją. W przypadku osób "technicznych" nie powinno stanowić to problemu, jednak dla naszego klienta może okazać się to barierą nie do przeskoczenia.

Możecie podzielić się swoimi "przygodami" wynikającymi z niejednoznaczności wymagań?

1cze/100

Śledzenie wymagań

We wpisie Jaki powinien być Twój SRS? napisałem, że jedną z cech poprawnego dokumentu wymagań jest "łatwość śledzenia (ang. traceability)". Nie dla wszystkich z Was może być jasne, o co w tym wyrażeniu chodzi, więc spieszę z wyjaśnieniem.

SRS jest łatwy do śledzenia jeśli pochodzenie każdego wymagania jest jasne i oraz jeśli dokument ułatwia odwoływanie się do poszczególnych wymagań podczas jego edycji. Trzeba pamiętać, o tym, że mamy:

  • łatwość śledzenia wstecz - jasne wskazanie na źródło wymagania;
  • łatwość śledzenia wprzód - każde wymaganie powinno mieć unikalną nazwę oraz identyfikator, aby łatwo można się było do niego odwołać.

W kontekście tego, dobrze jest przypomnieć sobie wpis nie podmieniaj!

26maj/103

Jaki powinien być Twój SRS?

Twój SRS powinien być (*):

  1. Poprawny
  2. Jednoznaczny
  3. Kompletny
  4. Spójny
  5. Uporządkowany według ważności i/lub stabilności wymagań
  6. Weryfikowalny
  7. Modyfikowalny
  8. Łatwy do śledzenia (ang. traceable) [zna ktoś może lepsze tłumaczenie?]

Czy możesz szczerze powiedzieć, że Twój ostatni SRS miał wszystkie powyższe cechy?

(*) Na podstawie standardu IEEE 830-1998.

16maj/100

Jak pisać specyfikacje wymagań według IEEE?

W instrukcji tworzenia specyfikacji wymagań, o której pisałem kilka tygodni temu postanowiliśmy oprzeć strukturę specyfikacji na standardzie IEEE 830-1998. Standard ten opisuje dobre praktyki oraz sugeruje podejścia do specyfikowania wymagań oprogramowania, które mają pomóc zapisać wymagania w sposób kompletny oraz jednoznaczny.  Standard za swój cel wyznacza sobie pomoc przy:

  • Dokładnym opisie wymagań przez klientów.
  • Pełnym zrozumieniu wymagań klientów przez dostawców oprogramowania.
  • Definiowaniu standardowego formatu oraz zawartości dokumentu specyfikacji wymagań (SRS) w organizacji.

Według IEEE 830-1998 dobry SRS powinien:

  • być podstawą umowy między klientem, a dostawcą oprogramowania na temat tego co tworzony system powinien robić;
  • pomóc zredukować wysiłek wkładany w wytworzenie systemu;
  • być podstawą dla estymacji kosztów oraz harmonogramu;
  • dostarczać fundamenty dla walidacji oraz weryfikacji wymagań;
  • ułatwiać transfer oprogramowania do nowych użytkowników;
  • służyć jako podstawa dla dalszych rozszerzeń oprogramowania.

W kolejnych wpisach postaram się przybliżyć Wam dalsze wskazówki jakie można znaleźć w standardzie IEEE 830-1998. Jeśli jednak nie możecie się doczekać, żeby o nich przeczytać to zapraszam do lektury naszej instrukcji oraz przykładowej specyfikacji.

   
Get Adobe Flash playerPlugin by wpburn.com wordpress themes