Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 5.60 KB | None | 0 0
  1. \documentclass{article}
  2. \usepackage[T1]{fontenc}
  3. \usepackage[polish]{babel}
  4. \usepackage[utf8]{inputenc}
  5. \usepackage{lmodern}
  6. \usepackage{lipsum}
  7. \usepackage[margin=1in,left=1.5in,includefoot]{geometry}
  8. \newcommand{\blank}[1]{\hspace*{#1}}
  9. \selectlanguage{polish}
  10. \author{Michal Kolendo}
  11. % header and footer stuff
  12. \usepackage{fancyhdr}
  13. \pagestyle{fancy}
  14. \fancyhead{}
  15. \fancyfoot{}
  16. \fancyfoot[R]{\thepage\\}
  17. \renewcommand{\headrulewidth}{0pt}
  18. \renewcommand{\footrulewidth}{1pt}
  19. %
  20.  
  21. \begin{document}
  22.  
  23. \begin{titlepage}
  24. \begin{center}
  25. \line(1,0){400}\\
  26. [0.25in]
  27. \huge{\bfseries Specyfikacja Implementacyjna}\\
  28. [2mm]
  29. \line(1,0){300}\\
  30. [1.5cm]
  31. \textsc{\LARGE Problem N-ciał}\\
  32. [0.75cm]
  33. \textsc{\Large Języki i Metody Programowania cz.2}\\
  34. [10cm]
  35. \end{center}
  36. \begin{flushright}
  37. \textsc{\large Michał Kolendo\\
  38. \small Nr indeksu 286771  \\
  39. \large Bartek Królak\\
  40. \small Nr indeksu 284922 \\
  41. \large Marzec 14, 2017}
  42. \end{flushright}
  43. \end{titlepage}
  44. % Front matter stuff
  45. \pagenumbering{arabic}
  46.  
  47.  
  48.  
  49. %this is main body stuff
  50. \setcounter{page}{1}
  51.  
  52. \section{\underline{Opis modułów}}\label{sec:intro}
  53. Program będzie składał się z pięciu modułów:
  54. \begin{enumerate}
  55. \item Moduł wczytujący - \textbf{Skaner/Parser}
  56. \item Moduł liczący - \textbf{Nbody}
  57. \item Moduł zapisujący - \textbf{Eksport}
  58. \item Skrypt w gnuplocie wykonujący animacje -  \textbf{script}
  59. \end{enumerate}
  60. \vspace{10mm}
  61.  
  62. \noindent \textbf{Skaner:}\\
  63.  
  64. \begin{center}
  65. \verb|int wczytaj_dane(char * nazwa_pliku_wej, struct_dane, int * n)|;\\
  66. \end{center}
  67.  
  68. \noindent Funkcja \verb|wczytaj_dane| dostaje nazwę pliku z którego będzie czytała dane oraz tablice struktur do których będzie zapisywała informacje o planetach. Alokuje pamięć na liczbę współrzędnych i prędkości równą q( q = długość symulacji / krok czasowy). Uzupełnia n ilością wczytanych planet. Skanowanie i zapisywanie do struktur będzie zrobione w dwóch pętlach.\\
  69.  
  70. \begin{center}
  71. \verb|int sprawdz_dane(char * nazwa_pliku_wej)|;\\
  72. \end{center}
  73.  
  74. \noindent Funkcja \verb|sprawdz_dane| będzie sprawdzała poprawność danych zawartych w pliku tekstowym. Dane będą sprawdzane zarówno od strony logicznej jak i składniowej. Gdy funkcja wykryje, że dane, które zostały podane są niepoprawne zakomunikuje nam o błędzie i jego rodzaju.\\
  75.  
  76.  
  77. \vspace{5mm}
  78. \noindent\textbf{{N-body:}}
  79. \vspace{3mm}
  80.  
  81. \begin{center}
  82. \verb|int oblicz_pozycja(struct_dane, int krok_czasowy, int dlugosc_symulacji, int n);|\\
  83. \end{center}
  84.  
  85. \noindent Funkcja \verb|oblicz_pozycja| będzie przeliczała przyszłe współrzędne i zapisywała je kolejno w strukturze planeta pod odpowiednim indeksem tablicy. Z każdym obrotem pętli, licznik będzie przesuwał się po kolejnych współrzędnych.  Dzięki temu algorytm obliczeniowy będzie obliczał każde kolejne położenie na podstawie poprzedniego.\\
  86. N-body dostaje jako dane strukturę w której zawarte jest:\\
  87. -współrzędna x\\
  88. -współrzędna y\\
  89. -współrzędna z\\
  90. -wektor Vx\\
  91. -wektor Vy\\
  92. -wektor Vz\\
  93. Krok czasowy oraz długość symulacji, potrzebne do liczenia położeń w pętlach.\\
  94. \newpage
  95.  
  96. \noindent \textbf{Eksport:}
  97. \vspace{3mm}
  98.  
  99. \begin{center}
  100. \verb|int zapisz_plik(char *nazwa_pliku_wyj, struct_dane);|\\
  101. \end{center}
  102.  
  103. \noindent Funkcja \verb|zapisz_plik| będzie tworzyla plik o nazwie \verb|<nazwa_pliku_wyj>| , otwierała go i zapisywała kolejno położenia z danej struktury i odpowiadającej dla niej tablicy x,y,z.\\
  104.  
  105. \begin{center}
  106. \verb|int zapisz_w_gnuplot(char *nazwa_pliku_wyj);|\\
  107. \end{center}
  108. \noindent Funkcja \verb|zapisz_w_gnuplot| będzie zapisywała do skryptu w gnuplocie nazwę pliku z którego skrypt ma czytać informacje potrzebne do stworzenia animacji graficznej. Dane odpowiedni będą zapisywane do \verb|script2d| i \verb|script3d|.\\
  109.  
  110. \vspace{5mm}
  111. \noindent \textbf{Main:}
  112. \vspace{3mm}
  113.  
  114. \noindent Zadaniem main'a będzie uruchamianie poszczególnych moduły w odpowiedniej kolejności. W mainie trzymane są tylko najważniejsze informacje tj. arguemnty wejściowe, ilość planet i wskaźnik do struktury z planetami.\\
  115.  
  116. \begin{center}
  117. \verb|int main(int argc, char *argv[]);|\\
  118. \end{center}
  119. \noindent Main będzie przyjmował następujące argumenty wejściowe przy uruchomieniu programu:\\
  120. \hspace{2cm}\verb| /a.out -i <plik.txt> -o <plik.txt> -n <liczba ciał> -s <krok czasowy>|\\
  121. \blank{3cm} \verb|-l <długość symulacji> -r <promień ciał>|
  122.  
  123. \noindent Modul main tylko zarządza resztą modułów.
  124. \section{\underline{Opis algorytmu}}\label{sec:intro}
  125. TODO\\
  126. \section{\underline{Opis testowania}}\label{sec:intro}
  127. Testy programu zostaną podzielone na trzy fazy:
  128. \begin{enumerate}
  129. \item Testy jednostkowe
  130. \item Testy integracyjne
  131. \item Testy akceptacyjne
  132. \end{enumerate}
  133. \vspace{5mm}
  134.  
  135. \noindent \textbf{1. Testy jednostkowe:}\\
  136. \indent W testach jednostkowych będziemy testować każdy moduł indywidualnie.W poszczególnych modułach będzie wstawiali prototyp funkcji main.Sprawdzimy, czy po otrzymaniu poprawnego wejścia otrzymamy poprawne wyjście. Przetestujemy tu także obsługę błędów.\\
  137. \vspace{5mm}
  138.  
  139. \noindent \textbf{2. Testy integracyjne:}\\
  140. \indent W testach integracyjnych sprawdzimy, czy wszystkie moduły prawidłowo się ze sobą komunikują i czy poprawnie reagują na przekazywane sobie informacje. Oprócz tego sprawdzimy tu również czy program poprawnie alokuje i zwalnia pamięć.\\
  141. \vspace{5mm}
  142.  
  143. \noindent \textbf{3. Testy akceptacyjne:}\\
  144. \indent Testy akceptacyjne to ostatnia faza testowania. Sprawdzimy tu, czy program poprawnie działa jako całość.\\
  145. \vspace{5mm}
  146.  
  147.  
  148.  
  149. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement