Project

General

Profile

C++ Projektvorlage » History » Version 7

Daniel Giritzer, 12/01/2017 05:50 PM

1 2 Daniel Giritzer
h1. [Archiv] Generische und flexible Projektvorlage für SDP3
2 1 Daniel Giritzer
3 1 Daniel Giritzer
*Dieser Eintrag betrifft nur die Alte C++ Projektvorlage für Linux.*
4 2 Daniel Giritzer
https://projects.nwrk.biz/attachments/download/1/Cpp_Template.tar.gz
5 1 Daniel Giritzer
6 1 Daniel Giritzer
7 2 Daniel Giritzer
8 1 Daniel Giritzer
h2. Abhängigkeiten
9 1 Daniel Giritzer
10 2 Daniel Giritzer
Um diese Vorlage verwenden zu können werden folgende Programme vorrausgesetzt 
11 2 Daniel Giritzer
(ein großteil ist normalerweiße standardmäßig installiert):
12 1 Daniel Giritzer
13 2 Daniel Giritzer
perl, texlive-full, doxygen, graphviz, tcl, whiptail, liblib-abs-perl, libmoose-perl,
14 2 Daniel Giritzer
tk, libany-moose-perl,libnamespace-autoclean-perl, libperl6-junction-perl,
15 2 Daniel Giritzer
libmoosex-role-parameterized-perl, libhash-fieldhash-perl, libcapture-tiny-perl, 
16 2 Daniel Giritzer
libc-bin, libdata-section-simple-perl, libmoo-perl, libipc-run3-perl, libwant-perl, 
17 1 Daniel Giritzer
libtype-tiny-perl, exuberant-ctags, dia2code
18 1 Daniel Giritzer
19 2 Daniel Giritzer
Diese Abhängigkeiten können mit dem generate script auf einer Debian basierenden 
20 2 Daniel Giritzer
GNU/Linux Distribution (apt) wie folgt Installiert werden:
21 2 Daniel Giritzer
> $ ./generate install
22 1 Daniel Giritzer
23 2 Daniel Giritzer
Diese weiteren Programme werden außerdem empfohlen: dia, codeblocks
24 1 Daniel Giritzer
25 1 Daniel Giritzer
h2. Deckblatt
26 1 Daniel Giritzer
27 2 Daniel Giritzer
Die Angabe muss sich im Unterordner 'Dateien/doc' befinden und in 'Angabe.pdf' 
28 2 Daniel Giritzer
umbenannt werden. Das Angabeblatt wird automatisch beim erstellen der Latex Doku
29 2 Daniel Giritzer
mit den in der Abgabe.tex Datei enthaltenen Eingaben ausgefüllt. Falls
30 2 Daniel Giritzer
nötig können die Koordinaten der Eingaben in der 'Dateien/config/docsettings.tex' Datei 
31 2 Daniel Giritzer
angepasst werden.
32 1 Daniel Giritzer
33 1 Daniel Giritzer
h2. Quellcode
34 1 Daniel Giritzer
35 4 Daniel Giritzer
Der Quellcode des SDP Projekts gehört in den Unterordner 'Dateien/src'. In disem Unterordner 
36 4 Daniel Giritzer
befindet sich auch ein Makefile welches automatisch alle *.cpp Dateien kompiliert
37 5 Daniel Giritzer
und linkt. (mit und ohne Debugging Informationen). Genauere  Infos zur Handhabung dieses Makefiles 
38 5 Daniel Giritzer
kann man aus den darin enthaltenen Kommentaren entnehmen. Alle Source und Header Dateien in diesem 
39 5 Daniel Giritzer
Ordner werden automatisch in die Latex Doku eingebunden.
40 1 Daniel Giritzer
41 1 Daniel Giritzer
h2. Dokumentation
42 1 Daniel Giritzer
43 4 Daniel Giritzer
Generell sollte der Sourcecode mit DoxyGen Kommentarblöcken kommentiert werden. Systemdokumentation, 
44 4 Daniel Giritzer
Organisatorische Informationen, Erläuterungen zum Testtreiber, und die Ausgabe des Testtreibers sollen 
45 4 Daniel Giritzer
in die dementsprechenden Dateien im 'Dateien/doc' Verzeichnis eingetragen werden. Allgemeine Infos 
46 4 Daniel Giritzer
zum Projekt sollen in der 'Abgabe.tex' Datei im Wurzelverzeichnis ergänzt werden.
47 1 Daniel Giritzer
48 1 Daniel Giritzer
h2. UML Diagramm
49 1 Daniel Giritzer
50 1 Daniel Giritzer
Diese Projektvorlage arbeitet mit zwei Diagrammformaten:
51 1 Daniel Giritzer
- .dot Graphviz Diagramme
52 1 Daniel Giritzer
- .dia Dia Diagramme
53 1 Daniel Giritzer
54 4 Daniel Giritzer
Das UML Diagramm muss sich im Unterordner 'Dateien/uml' befinden. Für die Abgabe muss es außerdem im PNG Format 
55 4 Daniel Giritzer
gespeichert sein und den Dateinamen 'UML.png' besitzen. Standardmäßig ('$ ./generate all') erzeugt das generate 
56 4 Daniel Giritzer
Script aus dem Quellcode automatisch ein Graphviz UML Diagramm und generiert daraus ein Bild im PNG Format nach
57 4 Daniel Giritzer
'Dateien/uml/UML.png' (*ACHTUNG:* +existiert diese Datei bereits wird sie überschrieben!+). Dieses Diagramm ist 
58 4 Daniel Giritzer
aber in der Regel nicht Fehlerfrei, man kann es aber mit 'dotty' editieren. Es wird auch ein mit DIA editierbares 
59 4 Daniel Giritzer
Diagramm erzeugt. Generell wird jedoch empfohlen selbst ein DIA UML Diagramm zu erstellen, weil man sich daraus
60 4 Daniel Giritzer
schon ein Codegerüst gnerieren lassen kann ('$ ./generate src'). Dazu muss das DIA Diagramm unter 'Dateien/uml/UML.dia'
61 4 Daniel Giritzer
gespeichert sein. Das Codegerüst wird nach 'Dateien/src/generated_from_uml' generiert. Um ein Handout mit einem 
62 4 Daniel Giritzer
selbstgezeichneten UML Diagramm zu erstellen muss man dieses nach 'Dateien/uml/UML.png' kopieren
63 4 Daniel Giritzer
und die Abgabe mittels '$ ./generate handout' zu erzeugen.
64 1 Daniel Giritzer
65 1 Daniel Giritzer
h2. Log Dateien
66 1 Daniel Giritzer
67 3 Daniel Giritzer
Sollte irgendetwas nicht Funktionieren, kann man in den Log Dateien unter 'Dateien/log' nach Hinweisen 
68 3 Daniel Giritzer
suchen. Die Hauptlogging Datei mit den wahrscheindlich wichtigeren Infos ist hierbei 
69 3 Daniel Giritzer
'Dateien/log/general.log'.
70 1 Daniel Giritzer
71 1 Daniel Giritzer
h2. Design anpassen
72 1 Daniel Giritzer
73 1 Daniel Giritzer
Das Design der Vorlage kann mit den '*.tex' Dateien im Verzeichnis
74 1 Daniel Giritzer
'Dateien/config' angepasst werden. Genaueres kann aus den Kommentaren
75 1 Daniel Giritzer
dieser Dateien entnommen werden. 
76 1 Daniel Giritzer
77 3 Daniel Giritzer
> Beschreibung der Dateien:
78 3 Daniel Giritzer
> packages.tex		- Beinhaltet alle verwendeten Pakete.
79 3 Daniel Giritzer
> setup_doxygen.tex 	- Beinhaltet alle von DoxyGen benötigten 
80 3 Daniel Giritzer
> 			  Pakete, und für DoxyGen extra definierte 
81 3 Daniel Giritzer
> 			  Befehle (aus refman.tex übernommen).
82 3 Daniel Giritzer
> codesettings.tex	- Beinhaltet Einstellungen für das Syntax
83 3 Daniel Giritzer
> 			  Highlighting der Quellcode Dateien.
84 3 Daniel Giritzer
> docsettings.tex		- Beinhaltet generelle Dokumenteinstellungen (
85 3 Daniel Giritzer
> 			  Kopf- und Fußzeile, Inhaltsverzeichnis,
86 3 Daniel Giritzer
> 			  Deckblatt, ...).
87 1 Daniel Giritzer
88 1 Daniel Giritzer
h2. Handhabung des generate Scripts
89 1 Daniel Giritzer
90 3 Daniel Giritzer
Das Script MUSS immer im Hauptverzeichnis mit der Verknüpfung 
91 3 Daniel Giritzer
im Hauptverzeichnis ausgeführt werden.
92 1 Daniel Giritzer
93 1 Daniel Giritzer
94 1 Daniel Giritzer
/SDP/hauptverzeichnis $ ./generate [option]
95 3 Daniel Giritzer
> Verfügbare Optionen:
96 3 Daniel Giritzer
> all     - generiert komplette Abgabe (incl. UML.png + UML.dia)
97 3 Daniel Giritzer
> handout - generiert komplette Abgabe (ohne UML.png + UML.dia)
98 3 Daniel Giritzer
> uml     - generiert nur UML.png und UML.dia
99 3 Daniel Giritzer
> src	- generiert ein Codegerüst aus einem bestehenden UML.dia 
100 3 Daniel Giritzer
> 	  Diagramm
101 3 Daniel Giritzer
> pdf     - generiert nur Abgabe.pdf
102 3 Daniel Giritzer
> clean   - löscht alle temporär angelegte Dateien
103 3 Daniel Giritzer
> install - installiert benötigte Paket
104 1 Daniel Giritzer
105 1 Daniel Giritzer
h2. Zusammenfassung
106 1 Daniel Giritzer
107 3 Daniel Giritzer
Damit dass "generate" Script verlässlich eine Abgabe generiert muss
108 1 Daniel Giritzer
folgendes gegeben sein:
109 7 Daniel Giritzer
 
110 7 Daniel Giritzer
* alle Abhängigkeiten Installiert ($ ./generate install)
111 7 Daniel Giritzer
* Angabe.pdf im Dateien/doc Ordner
112 7 Daniel Giritzer
* Quellcode mit DoxyGen Kommentaren im Dateien/src Ordner
113 7 Daniel Giritzer
* allgemeine Infos in der Abgabe.tex ausgefüllt
114 7 Daniel Giritzer
* ausgabe des Testtreibers in Dateien/doc/Output_Testtreiber.tex
115 7 Daniel Giritzer
* Resultat Testtreiber in Dateien/doc/Erlauterung_Test.tex beschrieben
116 7 Daniel Giritzer
* Aufgabenverteilung in Dateien/doc/Organisatorisches.tex eingetragen
117 7 Daniel Giritzer
* Systemspezifikation in Dateien/doc/Systemspezifikation.tex beschrieben
118 7 Daniel Giritzer
* UML Diagramm als Dateien/uml/UML.png gespeichert
119 1 Daniel Giritzer
120 3 Daniel Giritzer
Bleibt das generate script 'hängen' fehlt meist eine der oben genannten
121 1 Daniel Giritzer
Dateien.
122 1 Daniel Giritzer
123 1 Daniel Giritzer
(C) 2016 Daniel Giritzer
124 1 Daniel Giritzer
daniel@giritzer.eu
125 1 Daniel Giritzer
FH-Hagenberg, HSD