-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathvs-script-orga.tex
154 lines (124 loc) · 12.5 KB
/
vs-script-orga.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
\section{Studienplan}
Allgemein wird zur Vorbereitung der Vorlesung ermuntert, es ist aber nicht zwingend zum Verständnis der Vorlesung. Es wird aber klar zur Nachbereitung angeraten, da einzig die Skript-Inhalte (nicht die Vorlesung(!)) den \textbf{prüfungsrelvanten} Anteil definieren. Im Praktikum werden alle Schritte der Softwareentwicklung durchschritten (Anforderungsanalyse, Design, Implementierung, Test und Deployment). Das Vorgehen selbst wird durch die Festlegung der Vorgehensmethodik im Praktikumsteam festgelegt.
\\\\
Bei der Entwicklung der Lösung orientiert sich der Ansatz konsequent am aktuellen Stand der Technik und berücksichtigt etablierte, fachspezifische Standards und Praktiken. Es dürfen die Inhalte bisheriger Vorlesungen angeführt werden, ansonsten gilt als Referenz:
\begin{itemize}
\item Modern Operating Systems von Tanenbaum, Andrew S. and Bos, Herbert \cite{tanenbaum2022modern}
\item Computer Networks von Tanenbaum, Andrew S. and Feamster, Nick and Wetherall, David J. \cite{tanenbaum2021computer}
\item Introduction to Java Programming and Data Structures, Comprehensive Version von Liang, Y. Daniel \cite{liang2021java}
\item Fundamentals of Database Systems von Ramez Elmasri und Shamkant B. Navathe \cite{elmasri_navathe_2021}
\item Database Systems: The Complete Book von Hector Garcia-Molina, Jeffrey D. Ullman und Jennifer Widom \cite{garcia_molina_ullman_widom_2011}
\item Design Patterns: Elements of Reusable Object-Oriented Software von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides \cite{gamma1994design}
\item The Unified Modeling Language Reference Manual von James Rumbaugh, Ivar Jacobson und Grady Booch \cite{rumbaugh_jacobson_booch_2004}
\item Software Engineering von Ian Sommerville \cite{sommerville2015software}
\item Data Structures und Algorithms in Python von Canning, Alan Broder und Robert Lafore \cite{canning_broder_lafore_2023}
\end{itemize}
\textbf{Ausreichende Kenntnisse aus Programmierung, Datenbanken, Betriebssysteme, Rechnernetze, Softwaretechnik (SE) und Algorithmen und Datenstrukturen werden erwartet.}
\\\\
Erweiterte Informationen zu den Themen des Skriptes können auch in den Standardwerken intensiver verfolgt werden:
\\\\
Distributed Systems(Updated)\\
Pearson New International Edition: Principles and Paradigms by\\
Andrew S. Tanenbaum, Maarten Van Steen, Tanenbaum /. Van Steen\\
ISBN: 978-90-815406-3-6\\
\url{https://www.distributed-systems.net/index.php/books/ds4/}\\
Kann eine kostenlose Version mit Wasserzeichen beantragt werden.
\\\\
Weiter ist die erweiterte Literatur zu den Algorithmen mit Distributed Algorithms von Wan Fokkink \cite{Fokkink2018} zu benennen.
\newpage
\subsection{Woche 1}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche01}ff (Textstelle~\ref{Woche01})lesen. Dies ist aber nicht zwingend zum Verständnis der Vorlesung, wird dann aber als Nachbereitung angeraten.
\\\\
Tipp zum Praktikum: Kümmern Sie sich auch um die Bildung der Praktikumsgruppen. Maximal 4 Teilnehmer je Gruppe. Das Praktikum ist mit drei Teilnehmern durchführbar. Mehraufwände in kleineren Gruppen sind akzeptiert, aber der Verantwortung der Studierenden überlassen.
\subsection{Woche 2}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche02}ff (Textstelle~\ref{Woche02}) lesen. Dies ist aber nicht zwingend zum Verständnis der Vorlesung, wird dann aber als Nachbereitung angeraten.
\\\\
Idee zum Praktikum: Umsetzung der funktionalen Zerlegung. Bereichern Sie \enquote{bereits erlerntes} Anforderungsmanagement um die Themen Shared Resources, Openness, Transparency und Scaling. Dies ist der Startschuss für das Requirement-Management und die Entwicklung einer Lösungsstrategie im Praktikum (SE).
\\\\
Bemerkung: Wo der Fokus in SE darin lag, eine möglichst breite Werkzeugpalette bereitzustellen, liegt der Fokus in VS auf die Anwendung, deren Planung und Umsetzung aus Sicht des Entwicklers. Es stehen die Ziele der verteilten Systeme und die Techniken im Fokus, die auch sehr unterschiedlich zu anderen Veranstaltungen sein können. \\\\
Nochmal zusammengefasst:
\\\\
Die Entwicklung einer Lösungsstrategie für verteilte Systeme erfordert eine sorgfältige Planung und Analyse. Im Folgenden ist eine Auflistung von Punkten, an die man sich im Praktikum für die ersten Schritte orientieren kann.
\subsubsection{Anforderungsmanagment}
\paragraph{Problemdefinition und Zielsetzung}
\mbox{}\\
Festlegung der genauen Anforderungen und Ziele des verteilten Systems.
Identifizierung der Herausforderungen und Probleme, die gelöst werden müssen.
\paragraph{Detaillierte Technische Analyse}
\mbox{}\\
Untersuchung der aktuellen technischen Infrastruktur und Netzwerktopologie. Bewertung der Skalierbarkeitsanforderungen und Leistungsziele. Analyse der erforderlichen Netzwerkprotokolle und Technologien.
\\\\
Kurz: Welche Umgebung, Welche Sprache, Welche Werkzeuge
\paragraph{Stakeholder-Analyse}
\mbox{}\\
Identifizierung aller relevanten Stakeholder, einschließlich Benutzer, aber auch Euch. Erfassung der spezifischen Anforderungen und Erwartungen jedes Stakeholders.
\\\\
Kurz: Zeitpläne, Produktionspläne, Testpläne, etc
\paragraph{Lösungsmethoden}
\mbox{}\\
Entwicklung von Lösungsansätzen, die die identifizierten Probleme lösen und die Ziele erreichen.
Auswahl der geeigneten Technologien und Architekturen für das verteilte System.
Kurz: Zusammenführung aller Aspekte in einen Plan, der mit einer Vorgensmethode wie Srum oder Wasserfall umgesetzt wird.
\subsubsection{Dokumentationsmethoden}
Festlegung einer klaren Dokumentationsstrategie für das Projekt.
Erstellung von technischen Dokumenten, die die Systemarchitektur, Konfiguration und Betriebsanleitungen umfassen.
\\\\
Einrichtung eines Systems zur kontinuierlichen Aktualisierung der Dokumentation. Vorschlag ARC 42 \url{https://www.arc42.de/overview/}. Alternativ sind auch Dokumente aus der SE Ausbildung als Vorbild wählbar.
\\\\
Aufbau eines Repros auf gitlab \url{https://git.haw-hamburg.de/users/sign_in}.
\subsection{Woche 3}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche03}ff (Textstelle~\ref{Woche03}) lesen. Dies ist aber nicht zwingend zum Verständnis der Vorlesung, wird dann aber als Nachbereitung angeraten.
In der aktuellen Woche sollte die Lösungsstrategie und die endgültige Festlegung der Methoden (Funktionale Zerlegung) im Fokus stehen. Bei der Lösungsstrategie sind insbesondere die neu diskutierten Ziele der verteilten Systeme zu adressieren.
\\\\
Falls Sie nach ARC 42 arbeiten, beachten Sie das der Punkt 1.2 \url{https://docs.arc42.org/section-1/} eine weitere Differenzierung in der Section 10 \url{https://docs.arc42.org/section-10/} findet.
\subsection{Woche 4}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche04}ff (Textstelle~\ref{Woche04})lesen.
\\\\
In der aktuellen Woche steht der Abschluss der Lösungsstrategie für die Applikation und die endgültige Festlegung der Schnittstellen der Applikationen im Fokus der Bemühungen. Es sollten auch die ersten Architekturpattern und Komponenten der Applikation diskutiert werden. Am Beispiel von ARC 42 sind die Aufgaben auf \url{https://docs.arc42.org/section-4/} zusammengefasst,
\subsection{Woche 5}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche05}ff (Textstelle~\ref{Woche05}) lesen.
\\\\
Es steht weiter die Architektur im Fokus. Sowohl die Bausteinansicht \url{https://docs.arc42.org/section-5/} für die relevanten Dienste/Anwendungen, in mindestens Level 1 (besser 2), und die dazugehörigen Laufzeitansichten.
\\\\
Interne Abfolgen werden beispielhaft als Aktivitätsdiagramm und/oder Statediagramm abgebildet (z.B. eine Köchin in der Küche), kooperierende Abfolgen sind eine Kombination aus internen Abläufen, eingebettet in die Transaktionen (Beispielhaft Sequenzdiagramme, die die Interaktion von Chefkoch, Hilfskoch und Abwäscher zeigen) \url{https://docs.arc42.org/section-6/}
\\\\
Bemerkung: Sektion 5 und 6 getrennt zu bearbeiten macht wenig Sinn. Es heisst Sequenzdiagramm (ein mittel der Komplexreduktion) und nicht(!) Sequenzendiagramme.
\subsection{Woche 6}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche06}ff (Textstelle~\ref{Woche06}) lesen.
\\\\
Praktikum: Die Architektur und das Verhalten sollte für die Applikation abgeschlossen werden, und die wesentlichen Querschnittstechnologien für die Applikation (Kapitel 8 - \url{https://docs.arc42.org/section-8/}) wären festzulegen. Weiter ist der Vorschlag weiter ans Herz gelegt die Schichten einzubringen für die Differenzierung Applikation und Middleware (Verteilung).
\subsection{Woche 7}
Bergfest ist gefeiert. Frisch motiviert geht es in den Endspurt. Anforderungsanalyse und Architektur sind in der Vorlesung mit Kapitel 1 und 2 abgeschlossen. Wir nehmen nun die Umsetzung in der Vorlesung an.
\\\\
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche07}ff (Textstelle~\ref{Woche07}) lesen.
\\\\
Praktikum: Die Anwendung sollte im ersten Design festgelegt sein und in die Implementierung übergehen. Arbeitspakete soll(t)en iterativ ausformuliert sein und verteilt werden unter den Teammitgliedern. Beginnend mit den Interfaces ist die Implementierung zu beginnen und weitereQuerschnittsthemen der Umsetzung sind festzulegen.
\\\\
Das Design der Middleware sollte in der nächsten Woche ein entsprechendes Design erhalten, wie es in der Vorlesung an einem Beispiel besprochen wurde. Die Umsetzung sollte in zwei Wochen angestrebt werden.
\subsection{Woche 8}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche08}ff (Textstelle~\ref{Woche08}) lesen. Wir konzentrieren uns ab diesem Punkt auf die Implementierung in der Vorlesung. Diese Woche sind es ein paar Seiten mehr, aber vieles wurde bereits für das Praktikum begleitent vorbereitet. Es lohnt sich aber, hier hin und wieder für das Praktikum Inspiration zu suchen.
\\\\
Praktikum: Die ersten Schritte für die Umsetzung der Applikationsschicht sollten in dieser Woche erreicht sein. Das Design der Middleware ist wünschenswert abzuschliessen und mit ausgewählten oder vorgegebenen Technologien zu versehen, um es in der Woche 9 in die Implementierung zu überführen. Die Dokumentation ist abzuschliessen. Code passt zur Dokumentation und Dokumentation zum Code.
\subsection{Woche 9}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche09}ff (Textstelle~\ref{Woche09}) lesen. Wir konzentrieren uns ab diesem Punkt auf die Implementierung in der Vorlesung.
\\\\
Im Praktikum ist die Implementierungsphase mit Testing erreicht, wobei Testing in Pipelines und erste Ideen des Deployments diskutiert werden können.
\subsection{Woche 10}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche10}ff (Textstelle~\ref{Woche10}) lesen. Für den erfolgreichen Besuch der Vorlesung ist aber die Vorbereitung der logischen Uhren aus Woche 9 sehr sinnvoll.
\subsection{Woche 11}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche11}ff (Textstelle~\ref{Woche11}) lesen.
Nun stehen auch die ersten Termine für das Testat an. Bitte beachtet die Termine!
\subsection{Woche 12}
Wer die Veranstaltung im Skript bereits vorbereiten möchte, kann gerne bis Seite \pageref{Woche12}ff (Textstelle~\ref{Woche12}) lesen.
Nun stehen auch die letzten Termine für das Testat an. Bitte beachtet die Termine!
\subsection{Checkliste Praktikum}
Eine Praktikumsgruppe besteht aus maximal 4 Personen oder weniger.\\
Zur PVL gehören:
\begin{itemize}
\item Dokumentation (Vorschlag ARC42): Code muss zur Dokumentation passen und Dokumentation zum Code.
\item Code (Mit Test (!)) in gitlab (Martin Becke und wissenschaftlicher Mitarbeiter müssen als Developer eingetragen sein). Commits werden herangezogen um die Arbeitslast im Team zu überprüfen.
\item Ein Ansatz der funktionale Zerlegung für die erarbeiteten Use Cases/ Anwendungsfälle
\item Das Design in der Dokumentation muss den Anforderungen der Refernzliteratur oder des Scriptes entsprechen. Insbesondere muss mindestens eine 3-Layer-Architecture und eine 3-Tier-Archtecture umgesetzt werden.
\item Die Architektur muss in Verhalten (Statediagramme und/oder Sequenzdiagramme) und Architektur (Componenten, Klassen) mindestens zu jedem Use Case beschrieben sein.
\item Für die PVL Vergabe müssen im Vorfeld zwei Bericht erstellt worden sein.
\end{itemize}