ThInf-HOME

  1. Einführung

  2. Lastenheft für EARTHSIMULATOR1

  3. Systemanalyse: Rahmenannahmen

  4. Übungsaufgaben


I-PROGRAMMIEREN1 WS 0203 - Vorlesung mit Übung
VL9: Projekt EARTHSIMULATOR1 - Überblick


AUTHOR: Gerd Döben-Henisch
DATE OF FIRST GENERATION: Nov-21, 2002
DATE OF LAST CHANGE: Nov-25, 2002
EMAIL: Gerd Döben-Henisch



1. Einführung

In den vorausgehenden Vorlesungen wurden alle wichtigen Ausdrucksmittel der Programmiersprache C eingeführt. In den verbleibenden Vorlesungen sollen diese Sprachmittel nun dazu benutzt werden, um eine kleine Problemstellung im Rahmen eines kleinen Projektes anzuwenden.

Welche Elemente ein Softwareprojekt charakterisieren, ist schon im Rahmen der Vorlesung VL5 'Künstliche Intelligenz' und 'Vernetztes Haus' als Informatik-Projekte, unter dem Punkt 2: Themen als Softwareprojekte kurz beschrieben worden.

Im Folgenden wird beispielhaft ein einfaches Lastenheft für ein kleines Projekt formuliert.

START


2. Lastenheft für EARTHSIMULATOR1

Im Lastenheft sollen 'von aussen nach innen' vorgehend die Anforderungen (:= SOLL) an das zukünftige Softwareprodukt beschrieben werden. Wir folgen dabei dem Schema von [BALZERT 2001: 62f]:


NR.

THEMA

AUSFÜHRUNG

1)

Zielbestimmung

Es soll Version V 1.0 eines Simulationsmodells mit Namen 'EARTHSIMULATOR1 [ESIM1]' entwickelt werden. ESIM1 soll die Wechselwirkung zwischen einem einfachen Populationsmodell und den Grössen Rentenkasse [RK], Arbeitslosenkasse [AK] sowie Krankenkasse [KK] sichtbar machen.

2)

Produkteinsatz

Im Rahmen von öffentlichen Diskussion um das Pro und Contra politischer Entscheidungen im Umfeld der Diskussion um die Rente, das Arbeitslosengeld sowie der Krankenversicherung soll der Simulator einen bescheidenen Beitrag zur Klärung der Optionen dadurch leisten, dass er die unterschiedlichen Konsequenzen von diskutierten Annahmen sichtbar machen soll.

3)

Produktübersicht

usecase

Kurzcharakteristik:

Der Benutzer ('user') hat die Möglichkeit, eine Reihe von Eckwerten zu Beginn der Simulation einzugeben. Anschliessend kann er die Simulation starten. Diese berechnet die Wirkungen der eingegebenen Parameter im Laufe der kommenden Jahre und zeigt wesentliche Werte pro Simulationslauf auf den Bildschirm an (zugleich wird eine Logdatei angelegt).Der Benutzer kann eine bestimmte Anzahl von Jahren für die Simulation vorgeben. Während des Simulationslaufs kann er die Simulation jederzeit abbrechen. Nach einer Simulation kann er sich die Logdatei zeigen lassen.

4)

Produktfunktionen

/LF10/

Geschäftsprozess: Manuelle Eingabe von Parametern für den Simulationsprozess

Akteur: Benutzer

Beschreibung: Der Benutzer gibt eine Reihe von Parametern für den Simulationsprozess ein, die das Programm von ihm erfragt.



/LF20/

Geschäftsprozess: Simulation

Akteur: EARTHSIMULATOR1

Beschreibung: Nach Eingabe der Parameter und Startbefehl durch den Benutzer berechnet der Simulator die Veränderung aller Systemzustände für das Folgejahr. Eine Auswahl1 von Werten dieser Veränderungen wird auf dem Bildschrim ausgegeben; eine andere Auswahl2 von Werten wird in einer Logdatei protokolliert. Die Simulation läuft entweder bis zu einer vorgegebenen Anzahl von Jahren oder wird vom Benutzer aktuell beendet.



/LF30/

Geschäftsprozess: Auswerten der Logdatei

Akteur: Benutzer

Beschreibung: Nach Beendigung der Simulation kann der Benutzer den Inhalt der Logdatei zur letzten Simulation aufrufen und am Bildschirm betrachten.



5)

Produktdaten

/LD10/

Keine Angaben

6)

Produktleistungen

/LL10/

Keine Angaben


NR.

THEMA

AUSFÜHRUNG




sehr gut

gut

normal

nicht relevant

7)

Qualitätsanforderungen

(DIN ISO 9126)

Funktionalität

Zuverlässigkeit

Benutzbarkeit

Effizienz

Änderbarkeit

Übertragbarkeit


x

x

x







x

x

x

8)

Benutzungsoberfläche

(vgl. [BALZERT 2001: 516 - 582])

/LB10/

Für Bildschirmein- und -ausgaben werden nur die Standardfunktionen von C benutzt.



/LB20/

Als primäres Bedienungselement dient die Tastatur.



9)

Nichtfunktionale Anforderungen

Die Software soll als Public Domain mit einer GNU-Lizenz zur Verfügung gestellt werden.

10)

Technische Produktumgebung

/LTP10/

Der EARTHSIMULATOR soll zunächst als eine Stand-Alone Lösung realisiert werden, die auf jeder Plattform läuft, auf der sich ISO-C kompilieren lässt.

10.1)

Software

xemacs,gcc, make

10.2)

Hardware

Mindestens auf Intel PCs oder Kompatiblen

10.3)

Produkt-Schnittstellen

Die Logdatei soll eine ASCII-Datei sein, die mit jedem Editor bearbeitet werden kann.

11)

Spezielle Anforderungen an die Entwicklungsumgebung

Keine.



START

3. Systemanalyse: Rahmenannahmen


Es wird jetzt hier in einer vereinfachten Form eine mögliche Struktur des Simulators skizziert. Diese vorgestellte Struktur ist weder die einzig mögliche noch die 'beste'. Ferner ist sie sehr idealisierend. Sie soll als Ausgangspunkt für die weitere Diskussion dienen.

Im Simulationsmodell EARTHSIMULATOR1 -im folgenden einfach nur 'Modell' genannt- wird angenommen, dass die Erde ('earth') aus einer Menge von Ländern ('countries') besteht. Jedes Land wiederum wird verstanden als eine Menge von Eigenschaften ('properties'), zwischen denen unterschiedliche funktionale Beziehungen angenommen werden.

Übergreifend wird eine Weltzeit ('world time') angenommen, die in Zyklen von 1 Jahr gemessen wird. Im Übergang von einem Jahr t zum Folgejahr t'=t+1 werden Veränderungen in der Welt berechnet und angezeigt.



earth1
Wichtige Grössen und funktionale Beziehungen des EARTHSIM1 für ein einzelnes Land im Überblick



Zu Beginn wird im Bereich eines Landes zwischen den folgenden Grössen unterschieden:

  1. Bevölkerung ('population') [POP]: ein Land hat eine Bevölkerung, die in Millionen Einwohnern gemessen wird.


  2. Rentenkasse ('pension fond') [RK]: die Menge aller Gelder, die für Rentenzahlungen im Rentenalter für ehemals Beschäftigte verwendet werden.


  3. Rentenkassenersatz für Selbständige('pension fond substitution') [XRA]: die Menge aller Gelder, die für Rentenzahlungen im Rentenalter für ehemals Selbständige verwendet werden.


  4. Arbeitslosenkasse ('unemployment fond') [AK]: die Menge aller Gelder, die für Zahlungen an offiziell gemeldete Arbeitslose verwendet werden.


  5. Krankenkasse ('health insurance fond') [KK]: die Menge aller Gelder, die für Zahlungen an offiziell gemeldete Kranke verwendet werden.


  6. Leistungen von Arbeitgebern ('employer's fond') [AG]: die Menge der Gelder, die alle Arbeitgeber zusammen an die öffentlichen Renten-/Arbeitslosen-/Kranken-Kassen zu entrichten haben.


  7. RENTNER1: diejenigen, die nach ihrer Zeit als Beschäftigte Rente aus den öffentlichen Rentenkassen beziehen.


  8. RENTNER2: diejenigen, die nach ihrer Zeit als Selbstände rentenähnliche Bezüge aus den privat organisierten Vermögen (:= XRA) beziehen


  9. SELBSTÄNDIGE: kein Beschäftigtenverhältnis.


  10. BESCHÄFTIGTE: bei einem Arbeitgeber beschäftigt.


  11. NICHT-BESCHÄFTIGTE: Nichtselbständige ohne aktuelles Beschäftigungsverhältnis


  12. AUSBILDUNG: idealisierend vom Jahr 0 bis 15; danach partiell bis ca. 25.


  13. KRANKE: Teilmengen von Rentnern, Selbständigen, Nicht-Selbständigen, Auszubildenden, die Leistungen von KK beziehen


  14. PHASE 0-max=4: zu einem bestimmten Zeitpunkt t wird angenommen, dass man die Bevölkerung eines Landes anhand des biologischen Alters in 'Phasen' unterteilen kann.Wie man die Phaseneinteilung vornimmt, hängt letztlich von spezifischen Bedingungen in einem konkreten Land ab. Die hier vorgenommene Phaseneinteilung wurde mit Blick auf die deutschen Verhältnisse gewählt.


  15. MIGRATION+: Zuwanderungen aus anderen Ländern (Erwachsene, u.U. mit Kindern)


  16. MIGRATION- und TODESFÄLLE: Abwanderung in andere Länder (Erwachsene, u.U. mit Kindern) sowie Todesfälle


  17. PASENÜBERTRAG+ und GEBURTEN: In Phase 0 geschieht ein positiver Übertrag in die Phase 0 hinein nur durch Geburten. Zwischen Phase i=0 und Phase i=max gibt es jedes Jahr einen Übergang von 'nachwachsenden' Mitgliedern, die aufgrund ihres Alters von Phase i in die Phase i+1 wechseln.



  18. PASENÜBERTRAG-: wenn zwischen Phase i und Phase i+1 ein positiver Phasenübertrag zugunsten von Phase i+1 stattfindet, bedeutet dies zugleich einen negativen Phasenübertrag für Phase i.


  19. FRAUEN: bislang hängt die Anzahl der möglichen Geburten von der Anzahl der Frauen zwischen ca. 15 - 45 ab. Aus verschiedenen Gründen haben nicht alle Frauen Kinder, andere haben dafür mehr als ein Kind. Es wird eine durchschnittlicher Geburtsfaktor pro Frau in einer Phase angenommen.


Zwischen diesen Grössen werden folgende funktionale Zusammenhänge angenommen:

  1. RK <--- AG & Beschäftigte: Jeder Beschäftigte zahlt einen festen Prozentsatz seines Brutoeinkommens; den gleichen Betrag zahlt nochmals sein Arbeitgeber.


  2. RK ---> Rentner1 Jeder Rentner1 bekommt einen bestimmten Prozentsatz seines ursprünglichen Einkommens ausgezahlt


  3. AK <--- AG & Beschäftigte: Jeder Beschäftigte zahlt einen festen Prozentsatz seines Bruttoeinkommens; den gleichen Betrag zahlt nochmals sein Arbeitgeber.


  4. AK ---> Nicht-Beschäftigte Jeder Nicht-Beschäftigte bekommt (für eine bestimmte Zeit) einen bestimmten Prozentsatz seines letzten Gehalts (mit Obergrenze) ausgezahlt.


  5. KK <--- AG & Beschäftigte & Selbständige: Jeder Beschäftigte und Selbständige zahlt einen festen Prozentsatz seines Bruttoeinkommens (bzw. einen bestimmten Satz); den gleichen Betrag zahlt im Falle von Beschäftigten nochmals sein Arbeitgeber.


  6. KK ---> Kranke aus {Rentner2, Rentner1, Selbständige, Bschäftigte, Nicht-Beschäftigte, Ausbildung} Jeder Kranke bekommt in bestimmtem Umfang Auslagen für krankheitsbeseitigende Massnahmen bezahlt.


  7. XRA <--- Selbständigen Jeder Selbständige muss für sich selbst einen bestimmten Betrag für die Alterssicherung aufwenden. Dies kann in sehr unterschiedlichen formen geschehen.


  8. XRA ---> Rentner2 Jeder Rentner2 bezieht aus seiner Quasi-Rentenkasse einen bestimmten Betrag.


  9. Phasenübertrag+ 0 = Geburten


  10. Geburten = Geburtenkoeffizient der Frauen in Phase 1 und 2


  11. Phasenübertrag+ i = Anteil des letzten Jahres an der gesamten Phase i


  12. Phase i+1 = Phase i+1 + Phasenübertrag+ i - PHASENÜBERTRAG- i+1


  13. Todesfälle = Koeffizient


  14. Migration+ = Koeffizient; Zuwanderung von Erwachsenen (Selbständige, Beschäftigte, Nichtbeschäftigte, Rentner1+2) und/ oder Auszubildenden


  15. Migration- = Koeffizient; Abwanderung von Erwachsenen (Selbständige, Beschäftigte, Nichtbeschäftigte, Rentner1+2) und/ oder Auszubildenden


  16. Todesfälle = Koeffizient


Schliesslich muss noch eine Übergangsfunktion P festgelegt werden, die bestimmt, welche Änderungen von einem Zeitpunkt t zum Folgezeitpunkt t+1 geschehen sollen. Formal ist diese Übergangsfunktion eine Abbildung der Art:

P: COUNTRIES x TIME ---> COUNTRIES x TIME

Wir beschreiben diese Funktion hier als eine Schleife ('loop'). Jeder Durchgang dieser Schleife entspricht einer einmaligen Anwendung dieser Funktion P. Schematisch könnte diese Schleife die folgende Form haben:




while( BEDINGUNG ERFÜLLT){

  compute_quantities(); /* Berechne die Veränderungen der Quantitäten der einzelnen Groessen */

  compute_money();       /* Berechne die Geldzu- und -abfluesse der verschiedenen Kassen */

  show_states();         /* Anzeige der Werte nach neuer Berechnung */

  ask_for_interruption(); /* Unterbrechung aufgrund voreinstellung oder aktueller benutzeraktion */

 }


START

4. Übungsaufgaben

  1. Bilden sie ein Team von max.3 Mitgliedern


  2. Erstellung Sie gemeinsam einen Text mit Namen und Matr.Nr. der AutorenInnen. Abgabe einer Kopie des Textes an den Dozenten vor Beginn der Vorlesung am Di (1 Woche nach Aufgabenstellung). Falls die Aufgabe ausführbaren Programmcode enthält wäre die zusätzliche Übergabe des Quelltextes auf Diskette oder per email wünschenswert. Im Falle von Programmcode muss im Programmtext auch nochmals Name und Matr.Nr. erscheinen.


  3. Präsentation der Lösung als Team vor der gesamten Gruppe. Präsentationszeit (abhängig von der Gesamtzahl der Teams) 3-5 Min. Mögliche Punkte: 1-3 im Normalfall. (Im Falle von mehr als 1 Autor ist die ausführliche Besprechung in der Übung Voraussetzung für die Vergabe der Punkte!)


  4. Versuchen Sie in dem Text Antworten auf folgende Aufgaben zu formulieren:


  5. Auf der Basis der Spezifikationen des EARTHSIMULATOR1 aus der Vorlesung VL9 sollen erste Vorschläge erarbeitet werden, wie diese Spezifikation in ein Programm umgesetzt werden könnten (welche Datenstrukturen, welche Funktionen, Anordnung der Daten und Funktionen in Dateien).



START