| Termin | Definicja |
|---|---|
| SDD | SDD to skrótowe określenie dokumentu opisu projektu wykorzystywanego przy planowaniu systemu. SDD jako dokument opisu projektu systemuSDD jest skrótowym określeniem dokumentu, w którym porządkuje się założenia, budowę oraz sposób działania planowanego systemu. Taki materiał powstaje po to, aby ustalić, co ma zostać wykonane, z jakich elementów będzie się składać rozwiązanie i w jaki sposób poszczególne części będą ze sobą współpracować. W zależności od projektu skrót SDD może być rozwijany jako Software Design Document, System Design Document albo Software Design Description. Wspólną cechą tych znaczeń pozostaje opis koncepcji technicznej, który pomaga przejść od wymagań do konkretnego planu realizacji. Nie jest to zwykła lista funkcji ani instrukcja obsługi gotowego programu. W dokumencie SDD przedstawia się decyzje projektowe: podział rozwiązania na moduły, przepływ danych, sposób komunikacji, reguły obsługi błędów, wymagania dotyczące bezpieczeństwa oraz założenia związane z utrzymaniem. Dokument może również opisywać ograniczenia sprzętowe, systemowe i organizacyjne, o ile mają wpływ na planowane rozwiązanie. Dzięki temu projekt można analizować jeszcze przed rozpoczęciem kosztownych prac wykonawczych. Zakres SDD nie jest sztywno określony. W mniejszym projekcie dokument może mieć formę kilku uporządkowanych stron z diagramem i opisem najważniejszych decyzji. W większym przedsięwzięciu może obejmować rozdziały dotyczące architektury, interfejsów, danych, uprawnień, testów, wdrożenia i późniejszych zmian. Najważniejsze jest zachowanie spójności: opis powinien odpowiadać rzeczywistym wymaganiom i umożliwiać zrozumienie projektu osobie, która nie uczestniczyła w każdej wcześniejszej rozmowie. SDD a wymagania, architektura i dokumentacja wykonawczaDokument SDD zajmuje miejsce pomiędzy opisem potrzeb a szczegółami implementacji. Wymagania odpowiadają przede wszystkim na pytanie, jaki rezultat ma zostać osiągnięty i jakie funkcje są potrzebne. SDD wyjaśnia natomiast, jak zaplanowano osiągnięcie tego rezultatu. Dokument może wskazywać podział na warstwy, moduły lub usługi, opisywać zależności między nimi oraz wyjaśniać, dlaczego wybrano określone rozwiązanie. W porównaniu z dokumentem wymagań SDD jest bardziej techniczny. Nie powinien jednak zamieniać się w zbiór fragmentów kodu ani w instrukcję dla jednej konkretnej osoby. Zbyt szczegółowy zapis szybko się dezaktualizuje, gdy zmieniają się biblioteki, nazwy klas lub układ plików. Zbyt ogólny opis nie pozwala z kolei ocenić, czy projekt jest wykonalny. Przydatny poziom szczegółowości uzyskuje się przez opisanie odpowiedzialności elementów, ich wejść i wyjść, zależności oraz zachowania w sytuacjach nietypowych. SDD można zestawić także z diagramem architektury. Diagram pokazuje relacje w sposób skrótowy i ułatwia orientację, ale sam zwykle nie wyjaśnia powodów podjętych decyzji. Dokument pisemny uzupełnia grafikę o kontekst, ograniczenia i konsekwencje wyboru. Warto stosować oba sposoby przedstawienia informacji: schemat dla szybkiego zrozumienia struktury oraz opis dla precyzyjnego wyjaśnienia działania. Istotne znaczenie ma również odróżnienie SDD od dokumentacji użytkowej. Dokument użytkowy koncentruje się na czynnościach wykonywanych przez operatora lub odbiorcę programu. SDD opisuje sposób zaprojektowania rozwiązania, dlatego interesują go między innymi przepływy informacji, warunki brzegowe, mechanizmy zapisu danych i reakcje na awarie. Oba rodzaje materiałów mogą dotyczyć tego samego systemu, lecz odpowiadają na inne pytania. SDD i typowe problemy podczas tworzenia opisuJednym z częstych problemów jest niespójność pomiędzy SDD a aktualnym stanem projektu. Dokument może opisywać wcześniejszą koncepcję, podczas gdy w kodzie lub konfiguracji zastosowano już inne rozwiązanie. W takiej sytuacji trudniej zaplanować rozwój, przeprowadzić analizę błędu i przekazać zadania kolejnej osobie. Pomaga ustalenie właściciela dokumentu oraz przegląd treści po każdej większej zmianie architektury. Innym problemem bywa używanie skrótów i nazw zrozumiałych tylko dla wąskiej grupy. Jeżeli nie zostaną wyjaśnione, dokument traci wartość przy zmianie składu zespołu. Zaleca się wprowadzenie krótkiego słownika pojęć, rozwinięcie skrótów przy pierwszym użyciu oraz konsekwentne stosowanie tych samych nazw dla elementów systemu. Szczególnej uwagi wymagają podobne określenia odnoszące się do modułu, komponentu, procesu, zadania i interfejsu. Ryzyko powstaje także wtedy, gdy w SDD zapisuje się wyłącznie scenariusz prawidłowego działania. W praktyce trzeba uwzględnić brak danych, niedostępność zależnego elementu, niepoprawne uprawnienia, przerwanie operacji, duże obciążenie oraz odzyskiwanie po błędzie. Nie oznacza to konieczności przewidywania każdej możliwej sytuacji. Wystarczy opisać przypadki, które mogą mieć istotny wpływ na bezpieczeństwo, ciągłość pracy, integralność danych lub możliwość diagnozowania problemu. Trudność może sprawiać również rozdzielenie decyzji obowiązkowych od opcjonalnych. Warto oznaczyć, które założenia wynikają z wymagań, które są ograniczeniami środowiska, a które stanowią preferencję projektową. Przy każdej ważniejszej decyzji można dopisać jej uzasadnienie i przewidywane konsekwencje. Taki zapis ogranicza powracanie do tych samych dyskusji oraz ułatwia późniejszą ocenę, czy zmiana nadal jest potrzebna. SDD w praktyce: jak przygotować użyteczny dokumentPracę nad SDD można rozpocząć od krótkiego celu dokumentu i zakresu projektu. Następnie warto opisać kontekst, główne role, granice rozwiązania oraz zależności od innych elementów. Kolejna część może przedstawiać proponowaną strukturę, przepływ danych i odpowiedzialność poszczególnych komponentów. Nie należy pomijać informacji o przechowywaniu danych, kontroli dostępu, rejestrowaniu zdarzeń, aktualizacjach i obsłudze błędów, ponieważ właśnie te obszary często decydują o późniejszej stabilności rozwiązania. Przydatny układ rozdziałów może obejmować: cel i zakres, słownik pojęć, wymagania istotne dla projektu, opis architektury, charakterystykę komponentów, przepływy danych, interfejsy, zasady bezpieczeństwa, obsługę błędów, testowanie, wdrożenie oraz plan utrzymania. Nie każdy projekt wymaga pełnego zestawu rozdziałów. Należy pozostawić te części, które pomagają podjąć decyzję lub wykonać pracę, a usunąć puste sekcje tworzone wyłącznie dla zachowania szablonu. Warto stosować przykłady, ale trzeba wyraźnie zaznaczać, czy przedstawiony fragment jest obowiązującym rozwiązaniem, czy jedynie ilustracją. Diagramy powinny mieć legendę, czytelne nazwy i opis kierunku przepływu. Przy tabelach dobrze jest wskazać jednostki, warunki oraz źródło wartości. Jeżeli opis odnosi się do plików, urządzeń albo konfiguracji, należy unikać nazw tymczasowych, które mogą zostać zmienione bez aktualizacji dokumentu. Przed zatwierdzeniem SDD zaleca się przeprowadzenie przeglądu z udziałem osób odpowiedzialnych za wymagania, wykonanie, testy i utrzymanie. Każda osoba może zweryfikować inną część: zgodność z celem, wykonalność, możliwość sprawdzenia działania oraz łatwość późniejszej obsługi. Po przeglądzie powinno pozostać jasno określone, które kwestie zostały rozstrzygnięte, które wymagają decyzji i kto odpowiada za ich uzupełnienie. SDD a diagnoza problemów z komputeremKontakt z serwisem może być uzasadniony wtedy, gdy dokument SDD dotyczy systemu używanego na komputerze, lecz nie da się ustalić, czy problem wynika z projektu, konfiguracji, sprzętu lub uszkodzenia nośnika. Objawami wymagającymi sprawdzenia mogą być powtarzające się zawieszanie programu, samoczynne restarty, utrata dostępu do danych, błędy podczas uruchamiania albo niestabilna praca po aktualizacji. Przed przekazaniem urządzenia warto zapisać komunikaty błędów, moment występowania problemu i ostatnie wykonane zmiany, ponieważ ułatwia to odtworzenie sytuacji. W przypadku dokumentacji projektowej przydatne może być przekazanie wersji SDD, informacji o używanym systemie oraz opisu zależności, które mają znaczenie dla działania programu. Nie należy jednak dołączać haseł ani poufnych danych, jeżeli nie są niezbędne do analizy. Warszawskie Pogotowie Komputerowe 24/7 może zostać wskazane jako miejsce, w którym można rozpocząć taką diagnostykę i uporządkować informacje o problemie. Sam dokument SDD nie zastępuje badania urządzenia, ale dobrze przygotowany opis skraca drogę od zgłoszenia do ustalenia prawdopodobnej przyczyny. |