Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden  
Sie können sich hier anmelden
Dieses Thema hat 6 Antworten
und wurde 625 mal aufgerufen
 Mitteilungen
Michael Offline



Beiträge: 42

31.05.2005 15:22
Schnittstellen und Datenhaltung Antworten

Hi, das haben wir heute gemacht, ist allerdings noch nicht fertig


Schnittstellen und Datenhaltung


KF_Schnittstelle(2): - anfrageTrennen(): boolean
- anfrageZusammenschließen(): boolean
- sendeNachricht(String msg): void

SWP_Schnittstelle(4): - getAktuelleDaten(FahrerNr): Datensatz
- anfrageTrenne(FahrerNr): boolean
- anfrageZusammenschließen(FahrerNr): boolean
- sendeNachricht(String msg, FahrerNr): void
- setzeBremsleistung(int Leistung): void

Daten_Schnittstelle(1): - setSensordaten(double[] Sensoren) // alle Werte auch auf die Platte schreiben
- getSonsordaten(): double[]
- getTrainingsplan(): Trainingsplan
- setTrainingsplan(Trainingsplan t): void
- setKonstitution(int Konstitution): void
- getKonstitution(): int
- setProfil(Profil): void
- getProfil(): Profil
- getMasterInReichweite

Gui_Schnittstelle(3): - setNachricht(String msg): void
- setStatusindoor(int HF_i, int HF_s, int TF_i, int TF_s, int v, Zeittyp Zeit)
- setStatusoutdoor(int HF_i, int HF_s, int TF_i, int TF_s, v, int L_i, int L_s, Zeittyp Zeit)
- getTrainingsplan(): Trainingsplan
- getTraining(): int
- getProfil(Profile P): Profil

###########################################################################

Trainingsplan:
Trainingsplan Trainingseintrag [ ]
Trainingseintrag: int Leistung
int HF // optional
int TF
int Zeit // in Minuten

Profil:
Profil: String Name
int Gewicht
int Alter (optional)
int[] Leistungsprofil
Trainingsplan[] Trainingspläne
double[] Trainingsdaten
int Toleranzbereich // jeder Fahrer hat einen anderen //Toleranzbereich bei der Herzfrequenz: standardmäßig +-5 //Schläge
Training
String Fahrername
Trainingsplan Trainingsplan
double[] Trainingsdaten// also die Sensor- und Eingabedaten //die alle 10 sec. erhoben werden: Trennung nach Einzel- und //Gruppentrainingsdaten)

Gast
Beiträge:

01.06.2005 12:49
#2 RE:Schnittstellen und Datenhaltung Antworten

Moin,

es besteht noch immer jede Menge Diskussionsbedarf bezüglich der Kommunikation zwischen den Fahrrädern. Hier einmal die Vor und Nachteile der Realisierung über Nachrichten:

+ weniger Asynchronitätsprobleme, da die Kommunikation im SWP Segment gekapselt und sich das Segment KF nicht bei jedem RemoteMethodenaufruf um die um Kommunikationsprobleme kümmern muss.
+ Prof. Rausch meint es sei ein durchaus übliches Konzept zur Realisierung von Problemen unserer Art.

- statische Typsicherheit wird verletzt
- Markus steht dieser Realisierung sehr Skeptisch gegenüber


Anbei die neu Identifizierten Schnittstellen:

--------
--------

KF_Schnittstelle(2): - anfrageTrennen(): boolean
- anfrageZusammenschließen(): boolean
- sendeNachricht(String msg): void


SWP_Schnittstelle(4): - getAktuelleDaten(FahrerNr): Datensatz
- anfrageTrenne(FahrerNr): boolean
- anfrageZusammenschließen(FahrerNr): boolean
- sendeNachricht(String msg, FahrerNr): void
- setzeBremsleistung(int Leistung): void

Daten_Schnittstelle(1): - setSensordaten(double[] Sensoren) // alle Werte auch auf die Platte schreiben
- getSonsordaten(): double[]
- getTrainingsplan(): Trainingsplan
- setTrainingsplan(Trainingsplan t): void
- setKonstitution(int Konstitution): void
- getKonstitution(): int
- setProfil(Profil): void
- getProfil(): Profil
- getMasterInReichweite

Gui_Schnittstelle(3): - setNachricht(String msg): void
- setStatusindoor(int HF_i, int HF_s, int TF_i, int TF_s, int v, Zeittyp Zeit)
- setStatusoutdoor(int HF_i, int HF_s, int TF_i, int TF_s, v, int L_i, int L_s, Zeittyp Zeit)
- getTrainingsplan(): Trainingsplan
- getTraining(): int
- getProfil(Profile P): Profil

###########################################################################

Trainingsplan:
Trainingsplan Trainingseintrag [ ]
Trainingseintrag: int Leistung
int HF // optional
int TF
int Zeit // in Minuten

Profil:
Profil: String Name
int Gewicht
int Alter (optional)
int[] Leistungsprofil
Trainingsplan[] Trainingspläne
double[] Trainingsdaten
int Toleranzbereich // jeder Fahrer hat einen anderen //Toleranzbereich bei der Herzfrequenz: standardmäßig +-5 //Schläge
Training
String Fahrername
Trainingsplan Trainingsplan
double[] Trainingsdaten// also die Sensor- und Eingabedaten //die alle 10 sec. erhoben werden: Trennung nach Einzel- und //Gruppentrainingsdaten)

Christoph Offline



Beiträge: 6

01.06.2005 13:05
#3 RE:Schnittstellen und Datenhaltung Antworten

Leider kann ich das letzte GastPosting nicht merh editieren hier die neuen Schnittstellen: (vgl. FlipChart- Rechnerraum)

-----------------------
-----------------------

KF_Schnittstelle(2): - anfrageTrennen(): boolean
- anfrageZusammenschließen(): boolean
- sendeNachricht(String msg): void
- starteTraining(): void
- stoppeTraining(): void


SWP_Schnittstelle(4): - getAktuelleDaten(FahrerNr): Datensatz
- anfrageTrenne(FahrerNr): boolean
- anfrageZusammenschließen(FahrerNr): boolean
- sendeNachricht(String msg, FahrerNr): void
- setzeBremsleistung(int Leistung): void

Daten_Schnittstelle(1): - setSensordaten(double[] Sensoren) // alle Werte auch auf die Platte schreiben
- getSonsordaten(): double[]
- getTrainingsplan(): Trainingsplan
- setTrainingsplan(Trainingsplan t): void
- setKonstitution(int Konstitution): void
- getKonstitution(): int
- setProfil(Profil): void
- getProfil(): Profil
- getMasterInReichweite
- getLeistungsProfile():int[][] //alle vorhandenen Leistungsprofile von Platte laden
- getProfile(): Profil[]
- setTrainingsArt(int) //GT <-> ET


Gui_Schnittstelle(3): - setNachricht(String msg): void
- setStatusindoor(int HF_i, int HF_s, int TF_i, int TF_s, int v, Zeittyp Zeit)
- setStatusoutdoor(int HF_i, int HF_s, int TF_i, int TF_s, v, int L_i, int L_s, Zeittyp Zeit)
- getTrainingsplan(): Trainingsplan
- getTrainingsArt(): int
- getProfil(Profil[]): Profil
- getAnfangskonstituion(): int
- getNeuesProfil(int[][]) //der gui werden alle vorhandenen Leistungsprofile übergeben

HW_A_Schnittstelle(5):

start(): void
stop(): void


###########################################################################

Trainingsplan:
Trainingsplan Trainingseintrag [ ]
Trainingseintrag: int Leistung
int HF // optional
int TF
int Zeit // in Minuten

Profil:
Profil: String Name
int Gewicht
int Alter (optional)
int[] Leistungsprofil
Trainingsplan[] Trainingspläne
double[] Trainingsdaten
int Toleranzbereich // jeder Fahrer hat einen anderen //Toleranzbereich bei der Herzfrequenz: standardmäßig +-5 //Schläge
Training
String Fahrername
Trainingsplan Trainingsplan
double[] Trainingsdaten// also die Sensor- und Eingabedaten //die alle 10 sec. erhoben werden: Trennung nach Einzel- und //Gruppentrainingsdaten)

Christian Offline



Beiträge: 6

01.06.2005 20:01
#4 RE:Schnittstellen und Datenhaltung Antworten

also ich hatte mit dem Christoph am Dienstag ne Idee für sendMessage wo die Typsicherheit gewährleistet bleibt:

sendeNachricht(Message msg, FahrerNr): void

und von der Klasse Message werden dann die konkreten Messagetypen abgeleitet, so dass durch instanceof die Messagetypen unterschieden werden können. Da muss dann kein String geparst werden.

z.B. AnfrageGruppeTrennenMessage extends Message

Ich finde diese Schnittstelle für die SWP auch angebracht.
Man könnte aber eine Schicht höher in den Unterkomponenten der KF (z.B. Komponente Gruppentraining) eine Schnittstelle definieren mit einer Methode anfrageGruppeTrennen, die dann die sendeNachricht-Schnittstelle von der SWP benutzt und über sie die AnfrageGruppeTrennenMesssage verschickt.

könnte z.B. so aussehen

class Gruppentraining {
void anfrageGruppeTrennen() {
SWP.sendeNachricht(new AnfrageGruppeTrennenMessage(), ...);
}
}

hoffe, das ist verständlich

Christoph Offline



Beiträge: 6

02.06.2005 12:54
#5 RE:Schnittstellen und Datenhaltung Antworten

Wäre schön wenn sich ein paar mehr Leute an dieser Diskussion beteiligen würden, da diese Entscheidung sicherlich weitreichende Auswirkungen auf unser System haben wird.

Gruß Christoph

Christoph Buettner Offline



Beiträge: 1

03.06.2005 17:48
#6 RE:Schnittstellen und Datenhaltung Antworten

Hallo Nochmal,

so es wurden heute Jede Menge MessageTypen identifiziert und auf dem Klassendieagramm-Flip-Chart im Computerraum dargestellt.

Außerdem hat Ulf wunderschöne Sequenzdiagramme an die Tafel gezeichnet (Quasi als DesignAbsicherung). Alle dafür benötigten Schnittstellen finden sich hier wieder:
------------------
KF_Schnittstelle (2):
------------------
// folgende Schnittstellen werden von dem GUI benutzt
- starteTraininng(): void
- stoppeTraining(): void
// folgende Schnittstellen werden von der SWP benutzt
- receiveMessage(Message, Sender): void
- gruppeEntdeckt(Master): void

--------------------
SWP_Schnittstelle(4):
--------------------
// folgende Schnittstelle wird von KF benutzt:
- setzeBremsleistung(int Leistung)
- getMasters(): Master[]
- receiveMessage(Message, sender): void
- sendMessage(Message, empfeanger): void

--------------------
Daten_Schnittstelle(1):
--------------------
- setSensordaten(double[] Sensoren) // alle Werte auch auf die Platte schreiben
- getSonsordaten(): double[]
- getTrainingsplan(): Trainingsplan
- setTrainingsplan(Trainingsplan t): void
- setSSE(int SSE): void
- getSSE(): int
- setSSE(int SSE,int RagtAsID): void //im MASTER werden auch die SSE der anderen Fahrer abgelegt
- getSSE(int RagtAsID): int //im MASTER werden auch die SSE der anderen Fahrer abgelegt
- setProfil(Profil): void
- getProfil(): Profil
- getLeistungsProfile():int[][] //alle vorhandenen Leistungsprofile von Platte laden
- getProfile(): Profil[]
- setTrainingsArt(int) //GT <-> ET
- getTrainingsArt(): int

--------------------
Gui_Schnittstelle(3):
--------------------
- setStatusindoor(int HF_i, int HF_s, int TF_i, int TF_s, int v, Zeittyp Zeit)
- setStatusoutdoor(int HF_i, int HF_s, int TF_i, int TF_s, v, int L_i, int L_s, Zeittyp Zeit)
- getTrainingsplan(): Trainingsplan
- getTrainingsArt(): int
- getProfil(Profil[]): Profil
- getAnfangskonstituion(): int
- getNeuesProfil(int[][]) //der gui werden alle vorhandenen Leistungsprofile übergeben
- getMaster(Masters[]):Master // GruppeAuswaehlen
- getGruppeZusammenfueren(String[] GruppenMitgliederNamen): boolean
- getGruppeTrennen(String[] GruppenMitgliederNamen1, String[] GruppenMitgliederNamen2): boolean

---------------------
HW_A_Schnittstelle(5):
---------------------
start(): void
stop(): void


#####################################DATENSTRUKTUREN#############################
---------------
Trainingsplan:
---------------
Trainingsplan Trainingseintrag [ ]
Trainingseintrag: int Leistung
int HF // optional
int TF
int Zeit // in Minuten

---------
Profil:
---------
Profil: String Name
int Gewicht
int Alter (optional)
int[] Leistungsprofil
Trainingsplan[] Trainingspläne
double[] Trainingsdaten
int Toleranzbereich // jeder Fahrer hat einen anderen //Toleranzbereich bei der Herzfrequenz: standardmäßig +-5 //Schläge
Training
String Fahrername
Trainingsplan Trainingsplan
double[] Trainingsdaten// also die Sensor- und Eingabedaten //die alle 10 sec. erhoben werden: Trennung nach Einzel- und //Gruppentrainingsdaten)

Tobias Bielohlawek Offline



Beiträge: 28

05.06.2005 19:46
#7 RE:Schnittstellen und Datenhaltung Antworten

Schnittstellen gefallen mir gut. Ein Punkt hätte ich aber noch, sollen wir nicht entweder alle Methoden kompeltt in Englisch oder kompeltt in Deutsch bennenen? So ein mischmasch finde ich nicht so gut,


Gut Tobi

 Sprung  
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz