LF06.1 - Anwendungsentwicklung: Unterschied zwischen den Versionen

(Mikrocontroller-Programmierung)
(Anwendungsfalldiagramm[https://de.wikipedia.org/wiki/Anwendungsfalldiagramm])
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 129: Zeile 129:
 
(Das Thema wird in der Oberstufe in Lernfeld 10 behandelt: [[LF10 - Betreuung von IT-Systemen]].)
 
(Das Thema wird in der Oberstufe in Lernfeld 10 behandelt: [[LF10 - Betreuung von IT-Systemen]].)
  
[http://www.uml.ac.at/wp-content/uploads/teaching/06_Anwendungsfalldiagramm_Folien.pdf Folien] der TU Wien und [http://www.sparxsystems.de/UML_Grundlagen.pdf UML-Grundlagen] Seiten 11 - 19.
+
'''Material:'''
 +
* [http://www.uml.ac.at/wp-content/uploads/teaching/06_Anwendungsfalldiagramm_Folien.pdf Folien] der TU Wien und [http://www.sparxsystems.de/UML_Grundlagen.pdf UML-Grundlagen] Seiten 11 - 19.
 +
* https://www.youtube.com/watch?v=zid-MVo7M-E (nutzen Sie draw.io)
 +
* https://www.youtube.com/watch?v=hKeCXoQ_Hhc
  
 
'''Arbeitsauftrag:'''
 
'''Arbeitsauftrag:'''

Aktuelle Version vom 24. März 2020, 15:06 Uhr

1 Strukturierte Programmierung

Nach Bearbeitung dieses Kapitels können Sie ...

  • ... Prozesse und Zusammenhänge in Handlungsschritte zerlegen und strukturieren und ...
  • ... in einer DIN-gerechten Notation darstellen.

Zur Planung und Visualisierung eignen sich

Arbeitsauftrag: Erstellen Sie für die folgenden Sachverhalte jeweils einen Programmablaufplan, ein Struktorgramm und eine Entscheidungstabelle:

  1. Für die Berechnung der richtigen Rabattstufe soll ein Programm entwickelt werden. Bei einem Bestellwert unter 100,00 € wird ein Rabatt von 2 % gewährt. Wird für mehr als 500,00 € bestellt, beträgt der Rabatt 5 % sonst 3 %. Nach der Ausgabe der Rabattstufe, des berechneten Rabatts in Euro und des neuen Preises soll der Benutzer gefragt werden, ob eine weitere Berechnung gewünscht ist.
  2. Visualisieren Sie den genauen Ablauf bei der Subtraktion Binärer Zahlen. Berücksichtigen Sie auch, dass das Ergebnis negativ sein kann.
  3. Bei der Erfassung des Wareneingangs in einem Handelsbetrieb wird wie folgt vorgegangen:
    • Beschädigte Artikel werden von vornherein ausgesondert.
    • Von jedem einwandfreien Artikel, der in der Lieferung enthalten ist, wird der Zugang (über eine Tastatur) eingegeben. Der Rechner (bzw. das Programm) schreibt den Bestand fort und zeigt den aktuellen Bestand am Bildschirm an.
    • Handelt es sich um einen neuen Artikel, muss vorher ein Artikelstammsatz angelegt werden.

Programme:

2 Vorgehensmodelle [3]

Nach Bearbeitung dieses Kapitels können Sie ...

  • ... die Schritte bei der Durchführung von (Software-)Projekten nennen und erläutern.
  • ... verschiedene Softwareentwicklungsmodelle gegeneinander abgrenzen und Vor- und Nachteile nennen.

Gute Planung bei der Entwicklung von Software ist unabdingbar.

Erstellen Sie in Gruppen Präsentationen (jeweils ca. 15min) inklusive Hand-Out (jeweils ca. 1-2 Seiten) zu den Themen

Bilden Sie Gruppen und schreiben Sie die Namen auf. Speichern Sie dieses Dokument im pdf-Format im Klassenordner ab.
Legen Sie die Hand-Outs vor der Präsentation ebenfalls im pdf-Format im Klassenordner ab.

Termin für die Präsentation:

3 Einstieg in die Programmierung mit C++

Nach Bearbeitung dieses Kapitels können Sie ...

  • ... Abläufe in Einzelschritte zerlegen und strukturieren.
  • ... Konsolenprogramme erstellen, die nach erfolgter Eingabe Berechnungen durchführen. Hierbei werden u.a. Kontrollstrukturen und Schleifen verwendet. Anschließend erfolgt eine Ausgabe.

Zunächst wird auf die Grundlagen der Programmierung eingegangen und die erforderlichen Programmschritte in einem Programmablaufplan mit Hilfe des PAP-Designers dargestellt. Anschließend werden die Programme für die Konsole in der Sprache C++ erstellt.

Hilfe finden unter 'Links und Videos'.

Für das Erstellen des Programms gibt es verschiedene Möglichkeiten:

  • Nutzen Sie einen C++-Online-Compiler oder ...
  • ... laden Sie eine geeignete IDE (Integrierte Entwicklungsumgebung) für C++ herunter und installieren Sie diese auf Ihrem PC. Z.B.:
    • Qt. Für diese Einführung reicht die Komponente 'MinGW 5.3.0 32-bit' aus.
      Ein neues Projekt erstellen Sie über: 'Datei - Neu... - Projekt ohne Qt - Reine C++-Anwendung - Build-System: qmake'
      Hilfe erhalten Sie in der Dokumentation oder im Qt wiki
    • Dev C++
    • eclipse IDE for C/C++

Arbeitsauftrag:

  • Bearbeiten Sie die Übungsaufgaben aus den Kapiteln 1 und 2. Bearbeiten Sie zu jedem Thema mindestens drei Aufgaben und kommentieren Sie den Quelltext .
    Speichern Sie den erstellten Programmcode unter der zugehörigen Nummer ab.

Links und Videos:

4 Mikrocontroller-Programmierung

In diesem Kapitel lernen Sie den Umgang mit dem Arduino, Programmierung in C++ und die Verwendung der digitalen und analogen Ein- und Ausgänge und schalten diverser Aktoren.

Zum Kapitel Mikrocontroller-Programmierung...


5 Unified Modelling Language

Nach Bearbeitung dieses Kapitels können Sie ...

  • ... ein Projekt mit Hilfe verschiedener UML-Diagramme planen.

"UML ist eine standardisierte grafische Darstellungsform zur Visualisierung, Spezifikation, Konstruktion und Dokumentation von (Software-)Systemen. Sie bietet ein Set an standardisierten Diagrammtypen, mit denen komplexe Sachverhalte, Abläufe und Systeme einfach, übersichtlich und verständlich dargestellt werden können.
UML ist keine Vorgangsweise und auch kein Prozess, sie stellt lediglich ein Wörterbuch?an Symbolen zur Verfügung, von denen jedes eine definierte Bedeutung hat. Sie bietet Diagrammtypen für die objektorientierte Analyse, Design und Programmierung und gewärleistet somit einen nahtlosen Übergang von den Anforderungen an ein System bis zur fertigen Implementierung. Dabei werden die Struktur und das Verhalten des Systems dargestellt und somit Angriffspunkte für eine Optimierung der Lösung geboten." (Quelle: [5])

Bei der Model Driven Development-Methode stehen UML-Diagramme im Mittelpunkt.

Siehe Ringhand Kapitel 4.2-4.3, Seiten 142-161


Ausgangssituation: Das Taxi-Unternehmen Schneider & Schneider möchte seinen Schichtplan online zur Verfügung stellen und hat dazu das WebTaxi Lastenheft erstellt. Führen Sie zunächst die Entwurfsphase an Hand der folgenden UML-Diagramme durch.

Dokumentieren Sie alle Schritte sorgfältig und strukturiert, da dieses Projekt im Laufe Ihrer Ausbildung immer wieder unter verschiedenen Aspekten thematisiert wird.


Links:

Software:

5.1 Anwendungsfalldiagramm[6]

Das Anwendungsfalldiagramm ist oft der Ausgangspunkt für die Entwicklung eines komplexen Systems. In ihm wird auf einer hohen Abstraktionsebene dargestellt, welche Funktionen (Anwendungsfälle) das System dem Anwender (Akteur) zur Verfügung stellt. Anwendungsfalldiagramme modellieren keine Abläufe.

Diese Anwendungsfälle sind mögliche Überschriften in einem späteren Handbuch für den oder die Anwender.
(Das Thema wird in der Oberstufe in Lernfeld 10 behandelt: LF10 - Betreuung von IT-Systemen.)

Material:

Arbeitsauftrag:

  1. Entwickeln Sie ein Anwendungsfalldiagramm zu der folgenden Problemstellung:
    Ein Schulungsunternehmen bietet EDV-Kurse in verschiedenen Bereichen an.
    Jeder Kurs kann maximal 14 Teilnehmer haben. Es gibt fest angestellte Dozenten und freie Mitarbeiter, die als Dozenten tätig sind.
    Falls es zu Spannungen zwischen den Dozenten und den Teilnehmern kommt, bietet der Schulungsleiter ein verbindliches Vermittlungsgespräch an.
    Muss der Kurs aus Krankheitsgründen des Dozenten abgebrochen werden, erhalten die Teilnehmer Gutscheine für spätere Kurstage.
  2. Erstellen Sie ein Anwendungsfalldiagramm für das WebTaxi Lastenheft.
  3. Erstellen Sie ein Anwendungsfalldiagramm, dass die Interaktion mit einem EC-Geldautomaten darstellt. Der Fokus liegt dabei auf der Authentifikation mit der Geheimzahl. Die Beantwortung der folgende Fragen hilft bei der Erstellung des Diagramms:
    1. Welche Akteure gibt es?
    2. Welche Anwendungsfälle ("Situationen", "Funktionen") gibt es?
    3. Welche Beziehungen zwischen den Akteuren und Anwendungsfällen gibt es?

5.2 Aktivitätsdiagramm[7]

Das Aktivitätsdiagramm stellt den genauen Ablauf innerhalb der Anwendungsfälle dar. Das bedeutet, dass zu jedem Anwendungsfall aus dem Anwendungsfalldiagramm ein Aktivitätsdiagramm erstellt werden sollte.

Die Aktionen, die hierin dargestellt werden, sind später Inhalt der Dokumentation.

Folien der TU Wien und UML-Grundlagen Seiten 20 - 31.

Arbeitsauftrag:

  1. Entwickeln Sie ein Aktivitätsdiagramm zu der folgenden Ausgangssituation:
    Die Kunden einer Kfz-Versicherungsgesellschaft können ihre Schäden online über eine entsprechende Maske eintragen. Die Daten werden anschließend von einem Sachbearbeiter geprüft.
    In einem ersten Schritt muss die Schuldfrage geklärt werden. Hat der Versicherte Schuld (oder Teilschuld) an dem Schadensfall, so fordert der Sachbearbeiter ein Gutachten an, in dem die Schadenssumme genau berechnet wird.
    Liegt diese Schadenssumme unter 12.500,- €, so muss der Sachbearbeiter die Vertragsdaten des Versicherten anpassen (Anpassung des Schadensfreiheitsrabatts).
    Danach kann eine Reparaturfreigabe erfolgen, allerdings unter einschränkenden Bedingungen, die dem Versicherten mitgeteilt werden.
    Liegt die Schadenssumme über 12.500,- €, so muss der Sachbearbeiter neben der Anpassung des Vertrags auch den Abteilungsleiter informieren. Erst danach kann dann die Reparaturfreigabe unter Einschränkung erfolgen.
    Falls der Versicherte keine (Teil-) Schuld trägt, so kann eine uneingeschränkte Reparaturfreigabe erfolgen.
  2. Zeichnen Sie das Aktivitätsdiagramm für die Organisation einer Klausur.
    Beachten Sie, dass Aktivitäten auch parallel oder alternativ ablaufen können. Jeder der Punkte kann dabei mehrere Aktionen umfassen, wenn es Ihnen angebracht erscheint.
    Enthalten sein sollten mindestens:
    • Die Teilnahme an den Übungen (erfolgreich/nicht erfolgreich)
    • Die erfolgreiche Teilnahme führt zur Klausuranmeldung, dem Erfragen des Termins und sorgfältiger Vorbereitung in beliebiger Reihenfolge.
    • Die Klausur selbst mit anschließender Abfrage der Ergebnisse im Internet.
    • Eine einmalige Zulassung zur Nachklausur, wenn die Klausur im ersten Versuch nicht bestanden wurde.
    • Die Nachholklausur erfordert eine erneute Terminabfrage und Vorbereitung.
    • Ein Krankheitsfall kann ebenfalls eintreten. Mit einem Attest und einer anschließenden Genesung ist eine Wiederholung der jeweiligen Klausur möglich.
  3. Entwickeln Sie für jeden Anwendungsfall für das WebTaxi Lastenheft das entsprechende Aktivitätsdiagramm.

5.3 Klassendiagramm[8]

Das Klassendiagramm stellt die statische Strukturs eines Systems dar. Die Klassen beinhalten Attribute und Methoden und sind untereinander verbunden, um kommunizieren zu können.

Die Herangehensweisen bei der Erstellung sind vielfältig. Eine Möglichkeit einen ersten Einstieg in die Erstellung des Klassendiagramms zu machen ist die grammatikalische Untersuchung des Lasten- oder Pflichtenheftes. Hierbei sind Substative mögliche Kandidaten für Klassen, Adjektive könnten Attribute sein und Verben geben Hinweise auf Methoden. Darauf aufbauend können CRC-Karten erstellt werden (CRC-Karten gab bereits vor der UML).

Verbindungen zwischen den Klassen, bei denen auch verschiedene Multiplizitäten möglich sind:

  • Generalisierung - 'ist ein'-Beziehung. Eigenschaften und Methoden, die in mehreren Klassen auftreten werden in einer Basis-Klasse zusammengefasst, von der die anderen Klassen erben.
  • Assoziation - wenn zwei Klassen untereinander kommunizieren, müssen sie verbunden sein.
  • Aggregation - 'ist Teil von'-Beziehung, bei der das Teil auch ohne das Ganze existieren kann.
  • Komposition - 'ist Teil von'-Beziehung, bei der das Teil nicht ohne das Ganze existieren kann.

Folien der TU Wien und UML-Grundlagen Seiten 37 - 51

Arbeitsauftrag:

  1. Erstellen Sie ein Klassendiagramm zu der folgenden Problemstellung. Achten Sie auf die entsprechenden Beziehungen zwischen den Klassen. Berücksichtigen Sie auch die Implikationen, die durch bestimmte Multiplizitäten entstehen.
    Es soll eine Individualsoftware entwickelt werden, mit der Schulungskurse, Mitarbeiter, Dozenten und Teilnehmer verwaltet werden können. Die Software soll benutzerfreundlich sein und über automatische Datensicherungsmechanismen verfügen (speichern der Daten in einer Datei oder in einer Datenbank).
    Nutzen Sie als Vorlage die Folien 45-56, in denen die Entwicklung eines Klassendiagramms schrittweise gezeigt wird.
    Wichtige Funktionalitäten:
    • Anlegen von Mitarbeitern und verwalten bestehender Mitarbeiter
    • Anlegen von neuen Kursen und verwalten bestehender Kurse
    • Anlegen von neuen Dozenten und verwalten bestehender Dozenten
    • Anlegen von neuen Teilnehmern und verwalten bestehender Teilnehmer
    • Teilnehmer und Dozenten den Kursen hinzufügen
    • Ausgabe einer Liste der Kurse (incl. Dozenten und Teilnehmer)
    • Ausgabe einer Liste der Dozenten (incl. der Kurse)
    • Ausgabe einer Liste der Mitarbeiter
    • Ausgabe einer Liste der Teilnehmer (incl. deren Kurse)
  2. Erstellen Sie ein Klassendiagramm für das WebTaxi Lastenheft.
  3. Ergänzen Sie die Verbindungen mit Multiplizitäten und überprüfen Sie, welche Verbindungen zwischen den Klassen Assoziationen, Aggregationen oder Kompostionen sind.

5.4 Sequenzdiagramm[9]

Im Sequenzdiagramm wird der zeitliche Verlauf von Nachrichten zwischen Objekten/Klassen für ein Szenario von oben nach unten dargestellt. Wenn im Sequenzdiagramm eine Nachricht an eine Klasse geschickt wird, muss im Klassendiagramm diese Klasse eine gleichnamige Methode haben.

Folien der TU Wien und UML-Grundlagen Seiten 56 - 60

Arbeitsauftrag:

  1. Erstellen Sie zu dem Sequenzdiagramm auf Folie 27 das passende Klassendiagramm.
  2. Für eine Bank soll ein Softwaresystem entwickelt werden. Folgende Akteure und Objekte wurden zunächst bestimmt:
    Kunde, Kundenberater, Konto, Datenbank
    Entwickeln Sie ein Sequenzdiagramm zu folgendem Szenario:
    • Ein Kunde möchte ein Konto (bzw. bis zu drei Konten) eröffnen.
    • Der Kundenberater erfragt die gewünschte Anzahl der Konten.
    • Der Kundenberater startet eine Datenbankabfrage, um die Bonität des Kunden zu ermitteln (kritische Abfrage, da die Datenbankverbindung nicht immer vorhanden ist).
      • Ist die Bonität vorhanden, so legt der Kundenberater ein Konto nach dem anderen an.
      • Ist die Bonität nicht vorhanden, so informiert der Kundenberater den Kunden und legt kein Konto an.
  3. Erstellen Sie für diese Aufgabe das entsprechende Klassendiagramm mit allen benötigten Methoden und Assoziationen.
  4. Erstellen Sie für verschiedene Szenarien Sequenzdiagramme für das WebTaxi Lastenheft.

5.5 Zustandsdiagramm[10]

Folien der TU Wien und UML-Grundlagen Seiten 32 - 36

5.6 Objektdiagramm[11]

UML-Grundlagen Seite 72

6 Smartphone-Apps erstellen

... geht sehr einfach mit dem MIT AppInventor2. Alles, was man dazu braucht, ist ein Google-Account und ein Smartphone. Um eine Verbindung zwischen PC und Smartphone herzustellen, muss MIT AI2 Companion installiert werden und im Menü des App Inventors 'Connect - AI Companion' ausgewählt werden. Beide Geräte müssen sich hierzu im selben Netz befinden. Das Smartphone lässt sich auch emulieren. Diese Verbindung wird während der Entwicklung genutzt. Wenn die App dauerhaft auf dem Smartphone installiert werden soll, muss diese gepackt und übertragen werden.

Da in der Schule nur eine begrenzte Bandbreite zur Verfügung steht, muss das Smartphone über USB verbunden werden. Folgen sie hierzu dieser Anleitung! Anschließend wird der App Inventor auf dem PC mit Admin-Rechten installiert ([[12] Downloadlink])

Nachdem ein neues Projekt angelegt ist, können auf dem Screen beliebige Steuerelemente platziert werden. Diesen Elementen kann unter 'Blocks' eine Funktionalität zugeordnet werden.

Links:

Arbeitsauftrag:

  1. Erstellen Sie eine einfache Zähler-App, die zwei Buttons zum hoch- und runterzählen sowie einen zum Reset hat. Der Zählerstand soll auf einem Label angezeigt werden.
  2. In der Pizzeria ist es schwierig, verschiedene Pizzagrößen zu vergleichen. Erstellen Sie eine App mit einem Eingabefeld, in dem der Durchmesser der Pizza eingegeben werden kann. Wenn auf den Button gedrückt wird, wird die Fläche der Pizza berechnet (A=pi*d^2/4), dieser wird auf einem Label angezeigt.
  3. Erstellen Sie eine App, die die aktuellen GPS-Koordinaten (Längengrad - Longitude[13] und Breitengrad - Latitude[14]) in zwei Labeln anzeigt. Gegen Sie die Koordinaten zur Kontrolle in Google-Maps ein.
  4. Erweitern Sie die letzte Aufgabe so, dass bei einer Änderung des Standortes von mehr als 10 Metern (ca. 0,00015) der neue Standort mit dem aktuellen Zeitstempel an eine Datei angehängt werden. Der zuletzt gespeicherte Standort soll mit dem Zeitstempel in der App angezeigt werden.
    Die Aufzeichnung muss sich über Buttons starten, pausieren und beenden lassen.
    Optional kann der Standort auch zusätzlich auf einer Karte angezeigt werden.
  5. Zur Inventarisierung von Geräten soll eine App erstellt werden. In einem Eingabefeld wird die Raumnummer eingegeben. Anschließend kann mit dem Barcodescanner die Seriennummer erfasst werden. Diese wird durch klicken auf einen Button mit einem Zeitstempel versehen in eine TinyWebDB übertragen.
  6. Erstellen Sie weitere, sinnvolle Apps.

7 Literatur*

  1. Dr. Klaus Ringhand, Hans-Georg Wittmann: Entwickeln und Bereitstellen von Anwendungssystemen für IT-Berufe. Westermann, Braunschweig 2011, ISBN: 978-3-8045-5384-2
  2. Sascha Kerksen: IT-Handbuch für Fachinformatiker. Rheinwerk-Verlag, Bonn 2015, ISBN: 978-3-8362-3473-3 - Kapitel 11
  3. Helmut Balzert: Lehrbuch der Softwaretechnik. Spektrum Akademischer Verlag, Heidelberg 2011, ISBN: 978-3-827-41706-0
  4. Jürgen Wolf: Grundkurs C++. Rheinwerk-Verlag, Bonn 2016, ISBN: 978-3-8362-3895-3
  5. Jürgen Wolf: C von A bis Z. Rheinwerk-Verlag, Bonn 2009, ISBN: 978-3-8362-1411-7 OpenBook
  6. Praxisbuch Objektorientierung von Bernhard Lahres, Gregor Rayman
  7. Dirk Hardy: UML für IT-Berufe. Europa-Lehrmittel, Haan 2011, ISBN: 978-3-8085-8558-0

[*] Bei der angegebenen weiterführenden Literatur handelt es sich nicht um Schulbücher. Der Erwerb ist für den Unterricht nicht erforderlich und nicht vorgeschrieben. Die Bücher geben die Möglichkeit, sich tiefer in ein Teilgebiet ein zu arbeiten.