hawxgamer

Untitled

Dec 9th, 2013
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. \section{Anforderungsdefinition (Systemspezifikation)}
  2.  
  3. Gesucht ist die Implementierung eines Dateisystem-Simulation.
  4. Dieses System soll Ordner, Dateien und Verweise haben , wobei ein Ordner, wobei ein Ordner weitere Ordner Dateien Verweise haben kann.
  5. Dateien haben folgende Eigenschaften:
  6. sie speichern die aktuelle Dateigröße in Bytes, die Größe eines Blockes auf dem Speichermedium (wieder in Bytes) und Anzahl der reservierten Blöcke.
  7. Blockgröße und reservierter Block wird nur einmal pro File angegben und durch eine Write-Methode. Zur Erzeugung von Dateien, Ordnern und Verweisen soll eine einfache Fabrik verwendet werden.
  8. Der Visitor Dump der die gespeicherten Daten in hierarchischer Form ausgibt.
  9. FilterFiles, der alle Dateien mit einem bestimmten Größenbereich herausfiltert.
  10. FilterLinks soll alle Verweise herausfiltern.
  11. Dabei soll geachtet werden , dass alle gefilterten Dateien mit ihrem vollständigen Pfadnamen auszugeben und bei der Filterung von Verweisen soll der Name des Elements worauf verwiesen wird auch ausgegeben werden.
  12.  
  13. \section{Design Patternwahl}
  14.  
  15. Wir benutzen in diesem Beispiel das Visitor-Pattern, weil bei Nichtverwendung die Integration verschiedener nicht miteinander verwandter Operationen in die Klassen einer Objektstruktur sich oft schwierig gestaltet.
  16. Bei der Erweiterung um neue Operationen müssen alle Klassen erweitert werden. Der Besucher lagert die Operationen in externe Besucherklassen aus. Dazu müssen die zu besuchenden Klassen jedoch eine Schnittstelle zum Empfang eines Besuchers definieren.
  17.  
  18.  
  19.  
  20. \section{Systementwurf}
  21.  
  22.  
  23. \subsection{Klassendiagramm}
  24.  
  25. \includegraphics[angle=90,width=0.7\linewidth]{img.png}
  26.  
  27.  
  28.  
  29.  
  30. \subsection{Komponentenübersicht}
  31. \begin{itemize}
  32.  
  33. \subsection{Entry}
  34. \item Dieser hat die pure-virtual Methoden Print und AcceptVisitor, die in den abgeleiteten Klassen fertig implementiert werden.
  35. Außerdem besitzt die Klasse eine Funktion werden Parents mit SetParent gesetzt (also ein Unterordner hat als Parent einen Oberordner). Mit GetPath() erhalten wir den Pfad des Eintrags zurück.
  36.  
  37. \subsection{DataAccess}
  38. \item Basisklasse der konkreten Visitoren
  39.  
  40. \subsection{FilterFiles, FilterLinks, Dump}
  41. \item implementieren DataAccess aus
  42. \subsection{Directory}
  43. \item Im Directory können wir mithilfe von AddEntry() Entries in unsere Memberliste einfügen. Sonstige Funktionen sind die pure-virtual Methoden von Entry die hier ausimplementiert werden.
  44.  
  45. \subsection{File}
  46. \item Beim Konstruieren eines Files übergeben wir die Parameter
  47. für die Größe der reservierten Blöcke, und die Blockgröße. Diese beiden Benutzen wir in der Methode GetMaxDataSize()
  48. um die maximale beschreibbare Dateigröße festzulegen. Beim Konstruieren wird außerdem noch der Filename und durch die zwei obigen Werte für die. Der AcceptVisitor() akzeptiert einen Visitor.
  49.  
  50.  
  51. \subsection{Link}
  52. \item Hat auch einen AcceptVisitor(). Dieser kann auf Ordner, Dateien und weitere Verweise verweisen.
  53.  
  54. \subsection{DataManagerFactory}
  55. \item erzeugt und löscht Entries
  56.  
  57. \subsection{Client}
  58. \item enthält die Testtreiber
  59.  
  60.  
  61. \end{itemize}
Advertisement
Add Comment
Please, Sign In to add comment