Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass{article}
- \usepackage[T1]{fontenc}
- \usepackage[polish]{babel}
- \usepackage[utf8]{inputenc}
- \usepackage{lmodern}
- \usepackage{lipsum}
- \usepackage[margin=1in,left=1.5in,includefoot]{geometry}
- \newcommand{\blank}[1]{\hspace*{#1}}
- \selectlanguage{polish}
- \author{Michal Kolendo}
- % header and footer stuff
- \usepackage{fancyhdr}
- \pagestyle{fancy}
- \fancyhead{}
- \fancyfoot{}
- \fancyfoot[R]{\thepage\\}
- \renewcommand{\headrulewidth}{0pt}
- \renewcommand{\footrulewidth}{1pt}
- %
- \begin{document}
- \begin{titlepage}
- \begin{center}
- \line(1,0){400}\\
- [0.25in]
- \huge{\bfseries Specyfikacja Implementacyjna}\\
- [2mm]
- \line(1,0){300}\\
- [1.5cm]
- \textsc{\LARGE Problem N-ciał}\\
- [0.75cm]
- \textsc{\Large Języki i Metody Programowania cz.2}\\
- [10cm]
- \end{center}
- \begin{flushright}
- \textsc{\large Michał Kolendo\\
- \small Nr indeksu 286771 \\
- \large Bartek Królak\\
- \small Nr indeksu 284922 \\
- \large Marzec 14, 2017}
- \end{flushright}
- \end{titlepage}
- % Front matter stuff
- \pagenumbering{arabic}
- %this is main body stuff
- \setcounter{page}{1}
- \section{\underline{Opis modułów}}\label{sec:intro}
- Program będzie składał się z pięciu modułów:
- \begin{enumerate}
- \item Moduł wczytujący - \textbf{Skaner}
- \item Moduł liczący - \textbf{Nbody}
- \item Moduł zapisujący - \textbf{Eksport}
- \item Skrypt w gnuplocie wykonujący animacje - \textbf{script}
- \end{enumerate}
- \vspace{10mm}
- \noindent \textbf{Skaner:}\\
- <stdio.h> (do czytania z pliku)\\
- <stdlib.h>(do rezerwowania pamięci w strukturze)\\
- <ctype.h>(do obsługi błędów)\\
- \hspace{5cm}\underline{scan(FILE nazwa,struct dane)};\\
- \noindent Funkcja scan dostaje nazwe pliku z którego będzie czytała dane oraz tablice struktur do których będzie zapisywala informacje o planetach. Malokuje pamięć na ilosc wspolrzednych równą n( n = dlugosc symulacji / krok czasowy). Skanowanie i zapisywanie do struktur będzie zrobione w dwóch pętlach.\\
- \noindent W module Skaner wykorzystamy funkcje z biblioteki ctype.h do obsługi błędów.
- \vspace{5mm}
- \noindent\textbf{\underline{N-body}}\\
- \vspace{5mm}
- \noindent <math.h>(funkcja sqrt)\\
- \noindent \hspace{3cm}\underline{futwspolrzedne( struct dane, int krok czasowy, int dlugosc symulacji);}\\
- \noindent Funkcja przelicz będzie przeliczala przyszle wspolrzedne i zapisywał je kolejno w odpowiednej strukturze i jej odpowiadajacej tablicy . Z kazdym obrotem pętli , licznik będzie przesuwal się po kolejnych wspolrzednych. Dzięki temu algorytm obliczeniowy będzie obliczal kazde kolejne położenie na podstawie poprzedniego.\\
- N-body dostaje jak o dane struktrue w której zawarte jest:\\
- -liczba planet\\
- -wspolrzedna x\\
- -wspolrzedna y\\
- -wspolrzedna z\\
- -wektor Vx\\
- -wektor Vy\\
- -wektor Vz\\
- Krok czasowy oraz długość symulacji, potrzebne do liczenia położen w pętlach.\\
- \newpage
- \noindent \textbf{Eksport:}\\
- \vspace{5mm}
- \noindent <stdio.h>(do otworzenia utworzonego pliku)
- \noindent \hspace{3cm}\underline{zapiszplik( FILE nazwapliku, tablica strukturadanych);}\\
- \noindent Funkcja będzie tworzyla plik o nazwie \verb|<nazwa_pliku>| , otwierała go i zapisywała kolejno położenia z danej struktury i odpowiadającej dla niej tablicy x,y,z.\\
- \noindent Moduł Eksport zwraca nam plik z nowymi danymi.
- \noindent \textbf{Main:}\\
- \noindent Będzie on łączył poszczególne moduły. Będzie w nim zadeklarowana główna zdefiniowana jak i zadeklarowana główna struktura.\\
- \noindent Main będzie przyjmował argumenty takie:\\
- \hspace{2cm}\verb| /a.out -i <plik.txt> -o <plik.txt> -n <liczba ciał> -s <krok czasowy>|\\
- \blank{3cm} \verb|-l <długość symulacji> -r <promień ciał>|
- \noindent Modul main tylko zarządza resztą modułów.
- \section{\underline{Opis algorytmu}}\label{sec:intro}
- TODO\\
- \section{\underline{Opis testowania}}\label{sec:intro}
- Testy programu zostaną podzielone na cztery fazy:
- \begin{enumerate}
- \item Testy jednostkowe
- \item Testy integracyjne
- \item Testy akceptacyjne
- \end{enumerate}
- \vspace{5mm}
- \noindent \textbf{1. Testy jednostkowe:}\\
- \indent W testach jednostkowych będziemy testować każdy moduł indywidualnie. Sprawdzimy, czy po otrzymaniu poprawnego wejścia otrzymamy poprawne wyjście. Przetestujemy tu także obsługę błędów.\\
- \vspace{5mm}
- \noindent \textbf{2. Testy integracyjne:}\\
- \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ęć.\\
- \vspace{5mm}
- \noindent \textbf{3. Testy akceptacyjne:}\\
- \indent Testy akceptacyjne to ostatnia faza testowania. Sprawdzimy tu, czy program poprawnie działa jako całość.\\
- \vspace{5mm}
- \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement