From 852c90fa03e5a5291be9a6d629601d89f5133ef3 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Tue, 14 May 2019 15:25:27 +0200 Subject: [PATCH] New inner-project dependency management - commit for logic --- .gitignore | 2 - REQUIREMENTS.MD | 144 ---------------------------------------------- era.mi/.gitignore | 1 + 3 files changed, 1 insertion(+), 146 deletions(-) delete mode 100644 .gitignore delete mode 100644 REQUIREMENTS.MD diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c427aa7a..00000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -era.mi/bin - diff --git a/REQUIREMENTS.MD b/REQUIREMENTS.MD deleted file mode 100644 index 7a3d46d1..00000000 --- a/REQUIREMENTS.MD +++ /dev/null @@ -1,144 +0,0 @@ -# Rechnerarchitektur GP 2019 -#### Modularer Grafischer Schaltkreis Simulator (für die MI-Maschine) - -*Ihr könnt hier gerne nach belieben Dinge ändern, haltet euch nicht zurück^^* - -## Anforderungen - -### Pflichtfeatures -1. Emulation der MI-Maschine (siehe Am2900ME) -2. Visualisierung der MI-Maschine sehr ähnlich dem Bild der VL -3. sehr gute Website, Dokumentation, Hilfe aus dem Kontextmenü heraus -4. Hilfreiche Fehlermeldungen, Warnungen bei gefährlichen Operationen - für uns/Entwickler: gutes Loggen, Absturzberichte -5. Immer hilfreiche Tooltips zu fast allem. - - -### Sollte möglich sein -1. Export der Ansicht -2. Sicht des Assemblerprogrammierers, spezifizieren einer ISA und Nutzung -3. Farben, Schriftgröße & Co. einstellbar (für Präsentation, Hell/Dunkel, Farbenblind/…) -4. Entwurf eines Schaltkreises mit einem Editor -5. Sprache ändern (für nicht Muttersprachler, internat. Potenzial, Erweiterungsmögl.) -6. Sehr einfache Installation (Eclipse Marketplace) -7. Editor sollte tooltip Einstellung erlauben -8. Rückgängig - - -### Wunschfeatures -1. Debuggen im Sinne von Breakpoints & Co. -2. interaktives Tutorial in der GUI -3. Zurückspulen der Simulation / Zeitleiste -4. Wiederherstellungspunkt (Status) - -### Weiterführende Ideen -1. x86 Modell -2. ARM Modell -3. Signalgraphen - -### Use Cases -
Alle Use Cases anzeigen

- -#### 01. Installation -Das Programm lässt sich entweder über den Eclipse Marketplace einfach installieren (oder als Eclipse Projekt) oder als eigenes Eclipse RPC Projekt direkt herunterladen (ggf. entpacken) und starten.[A] Das Programm / Plugin lässt sich auf Windows (7+), MacOS und Linux ausführen; alle verbreitete Hardware nach 2010 mit 64 Bit OS sollte funktionieren.[B] Es muss auf den Rechnern in den TUM Rechnerhallen funktionieren.[C] - -#### 02. Deinstallation -Das Programm muss sich ohne nennenswerten Aufwand oder Kentnisse vom Benutzer rückstandslos entfernen lassen.[A] - -#### 03. Programmstart -Das Programm bzw. Plugin startet schnell (unter 10 sec.; besser unter 5 sec).[A] Bei dem ersten Programmstart ist ein Willkommensfenster zu sehen, das auf erklärende Resourcen verweist, den Nutzer grüßt und ggf. auf die (Sprach-)Einstellungen hinweist.[B] Es wird bestenfalls auf ein Beispielprojekt verwiesen (kann erstellt werden?) um dem Nutzer zu ermöglichen, sich damit vertraut zu machen.[C] Ein schnell Link zum Erstellen eines neuen Projekts/Simulation/... wird angezeigt.[D] - -#### 04. Programmende -Sollten bei Beenden des Programms oder Programmabsturz nicht persistierte Daten vorliegen, muss dafür gesorgt werden, dass diese nicht verloren gehen.[A] Enweder durch einen Dialog[B], oder durch erzeugte Recovery-Dateien[C]. Bei Absturz des Programms wird eine passende und aufschlussreiche Fehlermeldung angezeigt, bestenfalls mit Link zu einer Report-Möglichkeit.[D] - -#### 05. Einstellungen -Die Hauptextfarbe und Schriftgröße muss einstellbar sein[A], besser noch Hintergrund- und Markierungsfarben und Schriftstil.[B] Die Einstellung der Sprache muss möglich sein.[C] - -#### 06. Einstieg -Das Einstiegsprojekt zeigt zu Beginn die passende Ansicht an, die Mikroprogrammierung ist wie bei dem Am2900ME ungehindert möglich.[A] Bestenfalls ist dieses beim (erstmaligen) Start direkt geöffnet.[B] Wichtige Fenster (v.a. die grafische Darstellung) sind direkt sichtbar, oder zumindest in einem Tab geöffnet (müssen nicht gesucht werden).[C] - -#### 07. Nutzung der Visualisierung -Die Visualisierung soll möglichst der Vorlesung entsprechen.[A] Sie lässt sich transformieren (z.B. Zoom mit dem Mausrad, Verschieben mit Mausklick oder Mausklick und Alt) und wieder zurücksetzen.[B] - -#### 08. Hilfestellung -Mit dem Produkt wird eine offline-Dokumentation mitgeliefert. (bestenfalls DE und EN)[A] Mit Rechtsklick lässt sich über ein Kontextmenü der Teil der Dokumentation öffnen, der das angeklickte und seine Funktion beschreibt (Vorbild Cinema4D). Dies sollte mit fast allem möglich sein.[B] Bleibt man mit der Maus länger über einem GUI-Bestandteil, wird eine kurze Beschreibung/Hilfe dazu angezeigt (Tooltip).[C] - -#### 09. Dateihandhabung -Die Dateien sollten möglichst menschenlesbar sein, z.B. in CSV-Format, um Kommunikation mit anderer Software und Änderungen durch den Nutzer zu ermöglichen.[A] Die Dateien enthalten eine Versionsnummer, um Abwärtskompatibilität und hilfreiche Fehlermeldungen zu ermöglichen.[B] - -#### 10. Entwicklerunterstützung -Das Projekt soll sich einfach bauen/kompilieren/exportieren lassen, es muss beschrieben werden wie das möglich ist.[A] Die Verbreitung zur Anwendung soll ebenfalls unproblematisch sein.[B] - -#### Fügt hier eure eigenen dazu, fortlaufend nummeriert und ggf. mit [A,B,C,..] genauer spezifiziert. - -

- -### UML und Ähnliches -#### Grobe Struktur -![image](https://user-images.githubusercontent.com/11130248/57186855-aae24600-6ee6-11e9-88b4-371622d43adc.png) - -## Technologie-Stack -* Git (anscheinend über Gitlab) -* Eclipse RCP - - (noch zu testen) -* Java - - Version 8? - - Version 10? - - Version 12? -* Bibliotheken - - JUnit 5.4.x ? AssertJ? [http://joel-costigliola.github.io/assertj/index.html](http://joel-costigliola.github.io/assertj/index.html) - - (Apache Commons?) - Sehr weit verbreitete und gut designte & getestete Lib; - aber zusätzliche Dep. - - Sonstiges? Logging? Log4j -- Automatischer Build mit Maven? Wohl eher nicht, wegen ERPC Build - -## Meilensteine - -## Außenwirkung -### Name, Abkürzung -### Signet, Logo -### Beschreibung - -## Sonstiges -### Nützliche Links -- [https://wiki.eclipse.org/Rich_Client_Platform](https://wiki.eclipse.org/Rich_Client_Platform) -Links -- [https://wiki.eclipse.org/User_Interface_Guidelines](https://wiki.eclipse.org/User_Interface_Guidelines) - etwas alt, aber nützlich -- [https://download.eclipse.org/eclipse/downloads/](https://download.eclipse.org/eclipse/downloads/) - Eclipse Project -- [https://www.vogella.com/tutorials/EclipseRCP/article.html](https://www.vogella.com/tutorials/EclipseRCP/article.html) - **Eclipse RPC Tutorial** -- [https://github.com/eclipse/gef/wiki](https://github.com/eclipse/gef/wiki) - **Wiki für das Grafikframework** -- [https://github.com/eclipse/MaisiKoleni/Am2900ME](https://github.com/eclipse/MaisiKoleni/Am2900ME) - der geistige Vorgänger -- [https://github.com/Haspamelodica/Am2900ME_swt](https://github.com/Haspamelodica/Am2900ME_swt) - ... auch mit SWT - -### Rechtliches -
-MIT Lizenz? - https://choosealicense.com/licenses/mit/ - -

- ->MIT License -> ->Copyright (c) 2019 Christian Femers, Daniel Kirschten, Fabian Stemmler -> -> -> ->Permission is hereby granted, free of charge, to any person obtaining a copy ->of this software and associated documentation files (the "Software"), to deal ->in the Software without restriction, including without limitation the rights ->to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ->copies of the Software, and to permit persons to whom the Software is ->furnished to do so, subject to the following conditions: -> ->The above copyright notice and this permission notice shall be included in all ->copies or substantial portions of the Software. -> ->THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ->IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ->FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ->AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ->LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ->OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ->SOFTWARE. - -

-Muss ggf. Eclipse Public License verwendet werden wegen Copyleft? diff --git a/era.mi/.gitignore b/era.mi/.gitignore index 72b65a87..f59a3a78 100644 --- a/era.mi/.gitignore +++ b/era.mi/.gitignore @@ -1,3 +1,4 @@ +/bin/ *.class *.log -- 2.17.1