Jaka jest różnica między specyfikacjami technicznymi a dokumentami projektowymi?

38

Jakie są specyfikacje techniczne? Czy są takie same jak dokumenty projektowe. Jeśli nie, jaka jest różnica i kilka przykładów?

John V.
źródło
1
Ten pierwszy omija projekt, a drugi tęskni za technicznymi.

Odpowiedzi:

33

Dokument projektu oprogramowania może znajdować się na poziomie systemu lub komponentu i ogólnie obejmuje:

  • odpowiednie cele lub wymagania (funkcjonalne i niefunkcjonalne);
  • struktura statyczna (np. komponenty, interfejsy, zależności);
  • zachowanie dynamiczne (interakcja komponentów);
  • modele danych lub interfejsy zewnętrzne (zewnętrzne względem systemu / komponentu opisanego w dokumencie); i
  • uwagi dotyczące wdrażania (np. wymagania dotyczące czasu wykonywania, komponenty innych firm).

Zauważ, że wszystkie te opisy są na poziomie abstrakcyjnym. Celem jest przekazanie czytelnikowi szerokiego ogólnego zrozumienia systemu lub komponentu. Może istnieć wiele poziomów dokumentów projektowych (np. Na poziomie systemu lub komponentu).

Specyfikacja techniczna opisuje najdrobniejsze szczegóły wszystkich lub określonych części projektu, takich jak:

  • podpis interfejsu, w tym wszystkie wymagane typy danych / struktury (typy danych wejściowych, typy danych wyjściowych, wyjątki);
  • szczegółowe modele klas, w tym wszystkie metody, atrybuty, zależności i powiązania;
  • konkretne algorytmy, które stosuje dany komponent i jak działają; i
  • fizyczne modele danych, w tym atrybuty i typy każdego podmiotu / typu danych.
miraculixx
źródło
1
Kiedy więc powinniśmy napisać specyfikację techniczną? Przed opracowaniem? Wraz z rozwojem? lub później ..?
shashwat
2
@ShashwatTripathi ogólnie, specyfikacje są pisane przed opracowaniem, aby ktoś inny (lub Ty w późniejszym czasie) mógł wdrożyć komponenty. Napisanie specyfikacji po zakończeniu programowania czyni ją trochę bezcelową (chyba że wykorzystasz ją jako dokumentację techniczną tego, co zostało wdrożone).
miraculixx
Natrafiłem na ten dokładny scenariusz, pracując dla ogromnego korpusu nad wieloletnim projektem. Pracowaliśmy wstecz nad stworzeniem dokumentu wymagań biznesowych po migracji projektu do Testu, a następnie do Prod! Tak, świetne zarządzanie projektami, wiem!
ThinkCode
Czy specyfikacje techniczne nie są tworzone po funkcjonalnie rozłożonych szczegółach Specyfikacja wymagań oprogramowania? W jaki sposób architekt tworzy TS bez SRS? Wygląda na to, że on / ona będzie musiał założyć tonę.
Oracular Man
Zgadzam się, TS powinien przestrzegać SRS (specyfikacja wymagań systemowych). Należy jednak pamiętać, że te terminy nie są znormalizowane, a TS może zostać utworzony jako szczegółowa forma SRS (typowa w systemach wbudowanych) lub może być wykorzystany do uzupełnienia SRS wysokiego poziomu, tj. Dokumentu projektowego (typowego w zastosowaniach komercyjnych ). Kluczową kwestią jest to, że wymagania, dokumenty projektowe i specyfikacyjne opisują jeden konkretny widok systemu i jego komponentów. Ważniejsze jest, aby zespół uzgodnił wymagane poglądy i wymagany poziom szczegółowości niż spełniając jakąś formalną definicję.
miraculixx
7

Specyfikacje techniczne, przynajmniej w formie projektu technicznego, są częścią dokumentów projektowych wraz z, na przykład, listami wymagań, projektami funkcjonalnymi, historiami użytkowników, makietami projektów graficznych, studiami użyteczności, diagramami UML, diagramami procesów biznesowych, danymi specyfikacje modelu itp.

Specyfikacje techniczne typu, który piszesz po fakcie, aby udokumentować gotowy produkt, zasadniczo nie są częścią dokumentów projektowych, ale mogą być zawarte w zestawie dokumentów projektowych późniejszej wersji (w celach informacyjnych) lub innego produktu, który polega na nich.

tdammers
źródło
Dziękuję Ci. Zasadniczo potrzebuję też specyfikacji funkcjonalnej, aby wiedzieć, co robić, a następnie projektować dokumenty, aby wiedzieć, jak to zrobić, czy to prawda? Tylko małe pytanie, do jakiego projektu funkcjonalnego się odwoływałeś (mam nadzieję, że nie spowoduje to zamieszania w moim rozumieniu specyfikacji funkcjonalnej)
John V
Funkcjonalny projekt określa zamierzoną funkcjonalność produktu, z punktu widzenia użytkownika, bez wchodzenia w szczegóły implementacji. Istnieje wiele pytań z doskonałymi odpowiedziami, które wyczerpująco wyjaśniają, czym jest funkcjonalny projekt, a czym nie.
tdammers
1
Kiedy więc powinniśmy napisać specyfikację techniczną? Przed opracowaniem? Wraz z rozwojem? lub później ..?
shashwat