EGE/Inf2019/Modelle

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

== Modelle in der Informatik ==
=== Was sind Modelle ===
In der Informatik dienen Modelle der
* Abbildung eines Realitätsausschnitts
** Modelle für zu erstellende Software / Architektur
** deren Code (Programmablaufplan, Struktogramm)
** Datenmodelle (bei Datenbanken) für die Strukturen und deren Daten (ER-Modell, UML)
* als Vorlage bei Konzeption von Rechneranlagen, und Systemmodelle (von-Neumann)
* Planungs-, Steuerungs- und Organisationsmodelle (Abläufe von Geschäftsprozessen…) → Organigramm
* Wirtschaftsinformatik: Mensch-Maschine-Modell (auch deren Auswirkungen)
<!--[[Bild:Mschubert_Informatische_modelle_beispiele.png]]-->

=== Beispiele für Modelle ===
<language>Python</language>
==== Programmablaufplan (PAP)====

'''Ziel/Einsatzmöglichkeiten:'''
*Darstellung eines Algorithmus
*Darstellung des Ablaufs in einem Programm
'''Anforderungen/Aufbau/Grenzen:'''
*behindert strukturierte Programmierung (Struktogramm besser)
'''Beispiel:'''

[[Bild:PAP_BSP.png]]

'''Übung:'''

''Setzen sie den Programmcode in ein Programmablaufplan um.''
<code>
input(kapital)

jahr = 0

while jahr < 50:
    jahr = jahr + 1
    zinsen = kapital*0.006
    kapital=kapital+zinsen

print("nach 50 Jahren: " + kapital)</code>

==== Struktogramm ====
'''Ziel/Einsatzmöglichkeiten:''' Darstellung von Programmabläufen für eine strukturierte Programmierung

'''Anforderungen:''' Zerlegung des Gesamtproblems in viele kleine Teilprobleme → Grundstrukturen, z.B. Sequenzen, übrig

'''Aufbau/Grenzen:''' Zusammensetzung aus Strukturblöcken, entweder hintereinander oder nebeneinander geschaltet

'''Beispiel: '''
Verzweigung: [[Bild:BenERZ_EinfAusw.png]]
Schleife: [[Bild:BenERZ_KopfgesteuerteSchleife.png]]

'''Aufgabe: Struktogramm für ein Telefonat (man soll solange nach Verbindung suchen bis zur Annahme)'''

Lösung: https://www.sachsen.schule/~infoms/info_neu/grafiken/struktogramm.gif

==== ER-Diagramm ====
'''Ziel/Einsatzmöglichkeiten:'''
Das ER-Diagramm dient der vereinfachten logischen Darstellung eines Datenbankensystems. 
Es wird verwendet um z.B. die Verständigung zwischen Entwickler und Anwender bei Erstellung eines Projekts zu vereinfachen.

'''Anforderungen/Aufbau/Grenzen:'''

Die Grundelemente eines jeden Entity-Relationship-Modells bilden: Entitäten, Beziehungen und Attribute. 
Entitäten haben bestimmte Eigenschaften welche durch Attribute beschrieben werden. In welchem Zusammenhang diese stehen beschreibt die Beziehung (1-n;1-1,m-n).

'''Beispiel:'''

Nenne 3 verschiedene Attribute der Entität "Fluss" und deren Beziehung.

==== UML-Diagramm ====
*'''U'''nified '''M'''odeling '''L'''anguage
'''Ziel/Einsatzmöglichkeiten:'''
*etwas zu verstehen, bevor etwas entsteht
*z.B. Programmierung einer Software
*eine gemeinsame umfangreiche visuelle Modellierungssprache für die Architektur, das Design und die Implementierung von komplexen Softwaresystemen zu schaffen
*bezeichnet eine visuelle/grafische Modellierungssprache, die sich über die Bereiche Architektur, Design und die Abläufe von Herstellungsprozessen erstreckt
*es handelt sich um eine grafische Standard-Notation (bedeutet spezielles Aufzeichnungssystem mit eigenem Vorrat an Zeichen und Symbolen)

'''Anforderungen/Aufbau/Grenzen:'''
*Paket = Bündelung von zusammengehörigen Klassen
*Klasse = Verallgemeinerung gemeinsamer Objekte (Oberbegriff)
**z.B. Auto (Marke, Farbe, PS, …)
*Klassen werden durch Rechtecke dargestellt, die oben den Klassenname, in der Mitte die Attribute und unten die Methoden der Klasse beinhalten
*Klassenattribute:
**immer unterstrichen, bei jedem Objekt der Klasse denselben Wert
**Abhängigkeit von Klasse und nicht von Objekt
**Beispiel: PKW anzahlRaeder: Integer (BWM nicht mehr Räder als VW)
*Klassenmethode:
**immer unterstrichen, von konkreten Objekten unabhängig
**nur Orientierung an Klasse
**Beispiel: anzahlAutos(): Integer
*Sichtbarkeit von Attributen und Methoden (Datenkapselung)
**public (+), Zugriff innerhalb/außerhalb der Klasse auf Attribute und Methoden
**private (-), Zugriff auf Attribute und Methoden nur innerhalb einer Klasse
**protected (#), Zugriff innerhalb einer Klasse aber auch durch Spezialisierungen der Klasse (z.B. Vererbung) auf Attribute und Methoden
**package(~), Zugriff auf Attribute und Methoden innerhalb eines Paketes
*Objekt = konkrete Ausprägung einer Klasse
**z.B. Blauer BMW, schwarzer Volvo)
*Ablauf:
**jede Klasse erst betrachten und dann zeichnen
**danach man weiß, welche Klassen man benötigt, welche Eigenschaften sie haben und wie sie untereinander in Verbindung stehen



'''Beispiel:'''

==== Von-Neumann-Architektur ====
'''Ziel/Einsatzmöglichkeiten:'''

Modell zur Visualisierung eines PCs

'''Anforderungen/Aufbau/Grenzen:'''

4 Funktionseinheiten:
* Rechenwerk (CPU)
* Steuerwerk(CPU)
* Speicherwerk (Festplatte /Arbeitsspeicher)
* Ein-/Ausgabewerk (I/O)

Vereinfachte Darstellung (Bus-System wird nicht erwähnt(Schnittstelle aller Werke))

[[Bild:Conrad_SGJjzZ6lWc3_D2ehQCEka5A.png]]

'''Beispiel:'''

Computer; DVD -Player etc.

==== Organigramm ====
'''Ziel/Einsatzmöglichkeiten:'''

Das Wort leitet sich von '''ORGANI'''sation und Dia'''GRAMM''' ab 
--> Organigramm

Ziel ist es bestimmte Dinge in Ober- und Untergruppen genau einzuordnen

Einsatzmöglichkeiten sind zum Beispiel in Betrieben um die Arbeiter 
in ihre verschiedenen Abteilungen einzuordnen --> Aufbauorganisation 
eines Betriebes

'''Anforderungen/Aufbau/Grenzen:'''

Anforderungen: hierarchische Strukturen werden klar ersichtlich, effizienter Informationsaustausch
Aufbau: Unterteilung in verschieden Ebenen/Gruppen, keine DIN-Norm, sowohl horizontal als auch vertikal
               
'''Beispiel:'''
[[Bild:Msu1654_Bildschirmfoto_vom_2019-12-11_10-49-03.png]]

Übung: Erstellt grob ein Organigramm eurer Familie (von euren Großeltern bis zu Euch.)