Wymagania funcjonalne - jak to się sensownie robi?

1

Witam, na jeden z ostatnich już projektów w mojej informatycznej edukacji znów muszę zrobić wymagania funkcjonalne do powstałego projektu. Po raz kolejny mając styczność z tym tematem czuję, że tworzone przeze mnie tabelki są pełne chaosu i wszystko jest nie tak jak powinno - nie wspominając o tym, że niektóre elementy dla tej samej funkcji się często powtarzają.

Ze wszystkich elementów składowych tabelki: Nazwa funkcji, Opis, Dane wejściowe, Źródła danych wejściowych, Wynik, Warunek wstępny, Warunek końcowy, Efekty uboczne, Powód. nie kwestionuję sensu, Nazwy funkcji, Opisu i Powodu ale już w przypadku Wyniku, Warunku wstępnego, Warunku końcowego, Danych wejściowych, Źródła danych wejściowych, Efektu ubocznego mam wrażenie, że wszędzie wpisuje "coś" tylko po to, żeby "coś" tam było. Dla np. funkcji logowania wszystko jest proste, ale jak przychodzi do opisania w ten sposób nietypowych funkcji to nad wymyślaniem bzdetów co ma być w tej tabelce siedzę dłużej niż nad samą implementacją.

Czy ja mogę kogoś doświadczonego poprosić o jakiś "wzór" postępowania przy tworzeniu takiej tabeli, bo naprawdę przeklinam, każdy projekt w którym trzeba tworzyć te wymagania funkcjonalne. Może nie użyje zwrotu, że chciałbym, żeby tworzenie tej tabeli sprawiało mi przyjemność, ale żeby chociaż nie sprawiało tak dużego kłopotu. Powiadają, że nie ma rzeczy trudnych jak wie się jak je stworzyć.

0

Widać uczy Cię jakiś ignorant albo osoba która sama nie rozumie wymagań funkcjonalnych.

Co prawda nigdy nie pisałem ich w formie tabelki per funkcja bo to się mija z celem - wymagania funkcjonalne nie określają funkcji z poziomu języka programowania a niskopoziomowej funkcjonalności oprogramowania. W praktyce sprowadzało się to u mnie do uściślenia abstrakcji z wyższych poziomów...

Myślę że w Twoim wypadku najlepszym podejściem będzie nie wypisywanie bzdur, tylko:

Wynik - na podstawie tego co zawsze będzie prawdą
Warunek wstępny - czyli warunek wywołania funkcji, jeśli funkcja zawsze musi być wykonana to "brak"
warunek końcowy - tu jest podobnie jak warunek wyjścia z pętli.
dane wejściowe - opis pakietu danych i semantyki
źródło danych wejściowych - funkcje wywołujące
efekt uboczny - najlepiej jeśli funkcje nie mają efektów ubocznych poza tym co robią, bo można wpisać "brak"

0
Nequrian napisał(a)

Ze wszystkich elementów składowych tabelki: Nazwa funkcji, Opis, Dane wejściowe, Źródła danych wejściowych, Wynik, Warunek wstępny, Warunek końcowy, Efekty uboczne, Powód. nie kwestionuję sensu, Nazwy funkcji, Opisu i Powodu ale już w przypadku Wyniku, Warunku wstępnego, Warunku końcowego, Danych wejściowych, Źródła danych wejściowych, Efektu ubocznego mam wrażenie, że wszędzie wpisuje "coś" tylko po to, żeby "coś" tam było. Dla np. funkcji logowania wszystko jest proste, ale jak przychodzi do opisania w ten sposób nietypowych funkcji to nad wymyślaniem bzdetów co ma być w tej tabelce siedzę dłużej niż nad samą implementacją.

Zazwyczaj tego typu problem nie istnieje jesli oprogramowanie jest stworzone wedlug dobrego konceptu i jest udokumentowane w UML. Istnieja narzedzia, ktore automatycznie wygeneruja Ci tabelki dla wszystkich publicznych metod.

Sama struktura jest wporzadku, Wynik i Warunek Koncowy, tak jak pozostale, ktore dla Ciebie nie maja sensu, sa moim zdaniem wporzadku, bo umorzliwiaja napisanie bardzo dokladnych testow.

http://agiletesting.blogspot.de/2006/12/mock-testing-examples-and-resources.html

0

Co to znaczy efekt uboczny? Dla przykładu, z pewnego punktu widzenia (hmm, funkcjonalnego?) setter nie zwraca żadnego wyniku, natomiast efektem ubocznym jest zmiana zawartości pewnego pola (bądź większej ilości pól jeśli setter jest nietrywialny). Funkcja zapisująca obiekt do bazy może np zwracać status (nie)powodzenia, a efektem ubocznym z tego punktu widzenia jest dodanie rekordu do bazy i np zwiększenie licznika do autoinkrementacji id.

1

Z tym efektem ubocznym to wchodzicie chyba za głęboko w implementację. Wymagania funkcjonalne to nie jest przecież spis funkcji na poziomie języka programowania ;)
Efektem ubocznym dla funkcjonalności "Logowanie do systemu" może być zapisanie w logach informacji o próbie dostania się do systemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1