X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=REQUIREMENTS.MD;h=3a7a8d77a425956dc0ebfe7b56dba8e255831378;hb=5fbd016c4e4556ad44459c1c680cc2f7ba175069;hp=7a9821e3ba536f78a27c47123cce7ae7e35dc245;hpb=473c5e38a4d3365c64af3779edb969f462bddd43;p=Mograsim.git diff --git a/REQUIREMENTS.MD b/REQUIREMENTS.MD index 7a9821e3..3a7a8d77 100644 --- a/REQUIREMENTS.MD +++ b/REQUIREMENTS.MD @@ -1,6 +1,8 @@ # 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 @@ -32,29 +34,49 @@ ### Weiterführende Ideen 1. x86 Modell 2. ARM Modell +3. Signalgraphen - -### Szenarios -
-Alle Szenarios Anzeigen... -

+### 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] +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] +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]. +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] -### Fügt hier eure eigenen dazu, fortlaufend nummeriert und ggf. mit [A,B,C,..] genauer spezifiziert. +#### 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 @@ -64,8 +86,6 @@ Sollten bei Beenden des Programms oder Programmabsturz nicht persistierte Daten - Version 10? - Version 12? * Bibliotheken - - Lombok? [https://projectlombok.org/features/all](https://projectlombok.org/features/all) - Sauberer und sicherer Code; aber zusätzliche Dep. - 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; @@ -87,14 +107,18 @@ Sollten bei Beenden des Programms oder Programmabsturz nicht persistierte Daten - [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) +- [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/](https://choosealicense.com/licenses/mit/)

+

+MIT Lizenz? - https://choosealicense.com/licenses/mit/ + +

>MIT License > ->Copyright (c) 2019 Christian Femers, Daniel Kirschten, Fabian Stemmler +>Copyright (c) 2019 Christian Femers, Daniel Kirschten and Fabian Stemmler > > > @@ -117,4 +141,25 @@ Sollten bei Beenden des Programms oder Programmabsturz nicht persistierte Daten >SOFTWARE.

+ Muss ggf. Eclipse Public License verwendet werden wegen Copyleft? +
+Eclipse Public License 2.0? - https://www.eclipse.org/legal/epl-2.0/ + +

+ +>Copyright (c) 2019 Christian Femers, Daniel Kirschten and Fabian Stemmler +> +>This program and the accompanying materials are made +>available under the terms of the Eclipse Public License 2.0 +>which is available at https://www.eclipse.org/legal/epl-2.0/ +> +>This Source Code may also be made available under the following Secondary +>Licenses when the conditions for such availability set forth in the Eclipse +>Public License, v. 2.0 are satisfied: GNU General Public License, version 2 +>with the GNU Classpath Exception which is +>available at https://www.gnu.org/software/classpath/license.html. +> +>SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + +