1.4.3 Systematik der Software

Werbung
Lernfeld 6
weist aber einige besondere Merkmale auf, die beim
Umgang mit ihr beachtet werden müssen:
1.4.3 Systematik der Software
1.4.3.1 System- oder Anwendungssoftware
W
n
n
n
n
n
Besondere Eigenschaften von Software
Software ist immateriell, d. h. nur durch den
Datenträger materiell und „fassbar“.
Software kann nicht ohne Weiteres betrachtet
werden, Computer und passende Betriebssysteme sind notwendig.
Kopie und Original sind völlig gleich. Das Erstellen von Kopien verursacht kaum Aufwand.
Software wird nicht gefertigt, sondern nur entwickelt. Jede Softwareentwicklung ist eine individuelle Leistung, je nach Umfang der Software
erbracht durch kleine oder große Teamarbeit.
Software verschleißt nicht, aber Software „altert“
in dem Maße, in dem sich ihre Umwelt ändert.
Was wir als natürlich empfinden, verknüpft sich mit
materiellen Eigenschaften. An Software ist nichts natürlich. Erfahrungen aus der natürlichen Welt sind auf
die Software nicht übertragbar, werden aber dennoch
ständig übertragen. Zum Beispiel stellt die Wartung
nicht den alten Zustand wieder her, sondern schafft einen neuen Zustand. Software unterliegt keinem Verschleiß, sie veraltet aber, da sich ihr Umfeld und ihre
Einsatzbedingungen verändern. Die Verwendung bei
vielen Anwendern erscheint bei Software extrem lukrativ, wenn der Aufwand für Anpassungen relativ gering ausfällt. Programmierer unterschätzen allerdings
meist das Problem der Anpassbarkeit.
Die Entwicklung und Bereitstellung von Anwendungen
der IT (Informations- und Telekommunikationstechnik)
muss eine Verbindung zwischen dem aktuell technisch
Machbaren und den Anforderungen der Kunden schaffen.
S ACI nutzt die im eigenen Haus entwickelte Software
selbst als gewerblicher Kunde, also als ein Nutzer der
IT , der unter Einsatz von IT -Anwendungen seine gewerbliche Tätigkeit ausüben, ausweiten und rationeller
gestalten will.
ACI ist zugleich Auftraggeber und Anwender für ein
zu schaffendes Warenwirtschaftssystem mit eingebundenem Webshop, das die Auszubildenden entwickeln
sollen. Diese Eigenentwicklung versetzt die Firma ACI
GmbH damit zugleich in die Rolle von Auftraggeber und
Auftragnehmer.
16 Ausgangssituation im Unternehmen
Nach ihrer Bestimmung mit mehr Nähe zum Anwender oder zur Hardware hin wird zwischen Anwendungssoftware und Systemsoftware unterschieden.
Systemsoftware dient zum Betreiben (daher auch
Betriebssystem) der Hardware, Anwendungssoftware
wird hingegen zur Bearbeitung einer fachlich-inhaltlichen Aufgabenstellung beim Anwender benötigt.
W
Systemsoftware ist zum Betrieb und zur Steuerung
der Hardware erforderlich und umfasst außerdem
hardwarenahe, anwendungsneutrale Entwicklungsund Verwaltungsprogramme.
Ursprünglich wurde die Systemsoftware direkt vom
Hardwarehersteller entwickelt und ausgeliefert, heute
wird Systemsoftware auch von hardwareunabhängigen
Softwareunternehmen angeboten. Zur Systemsoftware
werden alle Softwareprodukte gerechnet, die anwendungsunabhängig sind und damit für unterschiedlichste
Anwendungen eingesetzt werden können. So gehören
zur Präsentationssoftware u. a. die Browser, mit denen
die Informationsangebote aus dem Internet betrachtet werden können. Der Browser wiederum bietet den
Rahmen für den Einsatz aktiver Komponenten (z. B. JavaScript), durch die sich Anwendungssoftware realisieren lässt. Ähnlich verhält es sich mit den Datenbankmanagementsystemen, die als solche anwendungsunabhängig sind, aber im Rahmen von betriebswirtschaftlichen
Anwendungen zur Datenverwaltung eingesetzt werden.
Anwendungssoftware umfasst alle Programme, die
betriebswirtschaftliche, technisch-wissenschaftliche oder branchenbezogene Anwendungen
unterstützen. Die Anwendungssoftware lässt sich in
folgende Bereiche aufteilen:
n betriebswirtschaftliche Anwendungssoftware:
Hierunter fallen sämtliche für betriebswirtschaftliche Zwecke genutzten Programme. Soweit es
sich um allgemein notwendige Aufgaben handelt,
versuchen die meisten Unternehmen hierfür
Standardsoftware einzusetzen.
n technische Anwendungssoftware: Im Vordergrund
steht hierbei die Unterstützung technischer bzw.
mathematischer Aufgaben, wie z. B. Software
für grafische Darstellungen, technische Berechnungen und Architekturlösungen.
n Branchensoftware: An der Schnittstelle zwischen betriebswirtschaftlichen und technologischen Aufgaben
werden durch diese Software branchenspezifische
Aufgaben unterstützt (z. B. die Berechnung der
Taxigebühren aus Fahrweg und Standzeiten oder die
Berechnung von Heizkosten pro Wohnung etc.)
W
3 Analyse und Design
Initiieren des Projektes  Anforderungen des Auftraggebers  Analyse des
Istzustandes  Erstellen des Modells  Verbesserungen am Design  Pflichtenheft
3.1 Analyse
Vorgehensmodelle
zeigen den
Weg
Analyse,
Einordnen
und Inhalt
verstehen
betont. Die sich daraus ergebende Festlegung von Tätigkeiten und Zwischenergebnissen ist eine Voraussetzung zur Sicherung einer arbeitsteiligen, planmäßigen
und wirtschaftlichen Softwareentwicklung, verbunden
mit einer wirksamen Qualitätssicherung. Dieser Ausgangspunkt führte zur Definition von sogenannten
Phasenmodellen oder allgemeinen Vorgehensmodellen.
In Anlehnung an das Wasserfallmodell wird von folgenden Phasen im Lebenszyklus eines Softwareproduktes ausgegangen:
Design,
Erkenntnisse
als Modell
abbilden
Im vorigen Kapitel wurde die Notwendigkeit der Aufgliederung der Softwareentwicklung in einzelne, im
Allgemeinen zeitlich nacheinander ablaufende Phasen
Phase
Analyse
Inhalt
n
n
n
n
n
Design
systemorientierte Betrachtung
Erfassung des Istzustands
Aufdecken von Schwachstellen
Analyse der Anforderungen
Prognose der Entwicklung
Beschreibung des zu schaffenden
Systems (fachlicher Entwurf)
n
n
n
n
n
n
n
Programmentwurf (programmtechnischer Entwurf)
W
Ergebnis
n
n
n
n
Abgrenzung des Einsatzgebiets
Modell des Istzustands
präzisierte Anforderungen
Systemarchitektur
Systemschnittstellen
Testszenarien
Pflichtenheft
(Anforderungsspezifikation aus
Sicht des Auftragnehmers)
Datenausgaben und -eingaben
Benutzerschnittstellen
Datenmodell
Entwurf der Algorithmen
Implementierung
n
Programmierung, Test
n
lauffähige Module
Integration
n
Integration, Test
n
lauffähiges Softwareprodukt
n
Abnahmetest
Fehlerkorrektur
Anpassung
n
freigegebenes Softwaresystem
Updates
Einführung, Routinebetrieb
und Wartung
n
n
n
(Fortsetzung auf folgender Seite)
Analyse 83
Lernfeld 6
W
Begriff
Erläuterung
Java Server
Pages (JSP)
JSP verkörpern eine spezielle Technologie,
um statische HTML-Seiten mit dynamisch
generiertem HTML-Code zu mischen. Dazu
werden die konventionellen HTML-Texte um
spezielle JSP-Tags ergänzt.
Java Beans
Java Beans wurden geschaffen, um eine einfache Entwicklung von grafischen Benutzeroberflächen zu ermöglichen. Java Beans
Java-Quelltext:
*.java
sind normale Java-Klassen, die innerhalb
ihrer Programmierung jedoch bestimmte
strenge Konventionen einhalten müssen.
Enterprise
Java Beans
(EJB)
EJB werden als „server-side“-Komponenten
entwickelt und müssen sich extrem parametrisieren lassen. Die Parameter kommen
aus der Properties-Datei und werden über
die Dateien COMMON.XML und BUILD.XML
ausgelesen und weitergegeben.
Java-Compiler
Bytecode
Entwicklungsumgebung (JDK)
portabler Code
VM
(virtual machine)
Anwendungsplattform
API-Bibliothek
Java Runtime Environment (JRE)
Entstehung einer Java-Applikation
5.3 Grundlegende
Sprachelemente in Java
5.3.1 Das erste Programm
Eine Programmiersprache versteht man am besten
mithilfe einer Kombination aus Beispielen und theoretischen Erklärungen. Deshalb soll hier am Anfang ein
einfaches Beispiel stehen:
import.java.io.*
public class ErstesBeispiel
{ public static void main (String[ ]
aufrufParameter)
{ int intZahl, intErgebnis;
intZahl=7;
intErgebnis=intZahl * 3;
System.out.print („Das Ergebnis
lautet: “);
System.out.print (intErgebnis);
System.out.println („.“)
}
}
184 Programmierung in Java
Anhand dieses Beispiels können viele Eigenheiten der
Programmierung in Java erläutert werden:
1. Java unterscheidet zwischen Groß- und Kleinschreibung. Java ist „case sensitive“.
2. Java-Programme bestehen aus Klassen. Die Klassendefinition wird mit dem Schlüsselwort class eingeleitet.
3. Damit aus der Klasse eine Anwendung, eine application wird, muss eine Funktion namens main vorhanden sein. main ist die Hauptfunktion, die beim
Aufruf der application gestartet wird.
4. Die Attribute der Funktion main verkörpern folgende Sachverhalte:
void
Diese Funktion hat keinen Rückgabewert. Der
Datentyp der Funktion ist damit unbestimmt.
static
Diese Funktion gehört fest zu der Klasse.
public
Diese Funktion steht anderen Programmteilen zur Benutzung zur Verfügung.
5. Geschweifte Klammern markieren die Anweisungen.
Das erste Klammernpaar fasst alles zusammen, was
zur Klasse gehört. Das innere Klammernpaar schließt
die Anweisungen der Funktion main ein.
Lernfeld 6
static ResultSet Lesen(Connection Daba, String SQLtext) {
try {
Statement SQLanw = Daba.createStatement( );
return SQLanw.executeQuery(SQLtext);
} // try
catch(SQLException ex) {
System.err.println(“SQL-Fehler beim Lesen: ” + SQLtext);
System.err.println(ex);
return null;
} // catch
};
Die Methode .executeUpdate ( ) zum Ausführen einer
Änderung liefert als Rückgabewert eine ganze Zahl, die
der Anzahl der erfolgreich veränderten Datensätze in der
angesprochenen Tabelle entspricht. Dieser Wert ist für
das Beispiel zuerst uninteressant, muss aber entgegengenommen werden. Es folgt der Quelltext zum Ändern
in der Datenbank für das Beispiel (siehe oben).
static int Einfuegen(Connection Daba,
String SQLtext) {
try {
Statement SQLanw = Daba.createStatement
( );
return SQLanw.executeUpdate(SQLtext);
} // try
catch(SQLException ex) {
System.err.println(“SQL-Fehler beim
Aendern/Einfuegen:” + SQLtext);
System.err.println(ex);
return 0;
} // catch
};
Eine Fehlerbehandlung ist jedoch
notwendig. Java verlangt ein „Exception-Handling“, der Compiler selbst
akzeptiert keine Anweisungen ohne
Ausnahmebehandlung. Deshalb werden die kritischen Anweisungen des
Datenbankzugriffes mittels „try“
gekapselt und gegebenenfalls mit
„catch“ abgefangen. Als Ausnahmen
werden behandelt:
Ausnahmesituation
Bemerkung
ClassNotFoundException
Der gewünschte Treiber
kann beim dynamischen
Methodenaufruf nicht gefunden werden. Hier ist eventuell
der CLASSPATH -Wert anzupassen.
IOException
Bei der Ein- oder Ausgabe tritt
ein Fehler auf, was hier durch die
allgemeine Arbeit mit Zeichenketten kaum passieren kann.
NullPointerException
Im Objekt vom Type ResultSet
bewegt sich der Zeiger in
unvorgesehene Regionen.
SQL Exception
Die SQL -Anweisung ist falsch
und kann daher nicht ausgeführt werden, meistens durch
einen Syntaxfehler in SQL
verursacht.
7.5.4 Antwort des Servlets
7.5.3 Datensicherung und
Fehlerbehandlung beim
Datenbankzugriff
Für den Webshop wurden in den Anforderungen (vgl.
Lastenheft, Abgrenzung gegenüber nicht zu realisierenden Leistungen) keine Maßnahmen zur Datensicherung vereinbart:
2.3 Abgrenzungskriterien
(Anmerkung der Autoren: Die ersten drei Abgrenzungskriterien sind nur in der Modellsituation akzeptabel)
1. Es sind keinerlei Maßnahmen zur Datensicherung
vorzusehen.
2. Es sind keinerlei Maßnahmen zur Datenarchivierung vorzusehen.
3. Es sind nur einfache Maßnahmen zur Zugriffssicherheit vorzusehen.
4. Die Pflege des Warenbestandes erfolgt ausschließlich über das bestehende Warenwirtschaftssystem.
Die Verbindung zwischen Browser und HTTP -Server
wird als „stateless“ bezeichnet, sie ist zustandslos. Eine
zustandslose Verbindung hat kein eigenes Gedächtnis,
sie kann Informationen aus dem Seitenaufruf nicht
speichern, um sie bei einem späteren Aufruf einer anderen oder der gleichen Seite wieder zur Verfügung zu
stellen. Deshalb kann man auf der Seite des Servers
eine bestehende Webseite nicht modifizieren, sondern
sie muss komplett neu geschrieben werden.
Auch der Client kann die Webseite nicht ändern,
sondern nur Formulare ausfüllen und Daten aus
Auswahllisten auswählen. Für das Beispiel des Webshops bedeutet diese zustandslose Verbindung, dass
die Anzeige im Browser nicht partiell verändert werden kann, sondern nach einer Änderung stets wieder
komplett zu schreiben ist. Also muss vom Servlet auch
eine komplette Seite erzeugt werden, wobei sich der
Inhalt der Seite nach den Abfrageergebnissen richtet.
ACI-Webshop: Servlet mit Datenbankzugriff 305
Lernfeld 6
Die abzugebende Dokumentation als Gegenstand der
Prüfung muss im Wesentlichen als Projektbericht verfasst sein, also als Projektablaufdokumentation, aus der
ersichtlich ist, dass der Prüfling „Arbeitsabläufe und
Teilaufgaben zielorientiert unter Beachtung wirtschaftlicher, technischer, organisatorischer und zeitlicher
Vorgaben selbständig planen und kundengerecht umsetzen sowie Dokumentationen kundengerecht anfertigen kann.“ Die von den einzelnen Kammern (IHK)
vorgegebenen Begrenzungen für den Umfang (maximal 10 bis 15 Seiten) orientieren praktisch auf eine
Ablaufdokumentation. Die Ergebnisse der Projektarbeit
können in der Anlage dargestellt werden, aber nur in
Art und Umfang der oben beschriebenen Marketingmaterialien zur schnellen Erfassung von Leistung und
Qualität der erstellten Produkte.
9.1.3 Programm ohne Dokumentation
Ein Programm ohne Dokumentation ist keine Software und kann nicht an unbekannte Nutzer zur langfristigen erfolgreichen Verwendung übergeben werden. Dieser Satz ruft viel Widerspruch hervor. Gegen
eine Dokumentation werden meistens folgende Argumente genannt:
n Das Programm ist klein, verständlich geschrieben und
im Quelltext gut kommentiert. Dieses Argument wird
sogar messbar gemacht, wenn man von Programmen
mit maximal 500 Zeilen Quelltext oder maximal 10
Seiten Programmcode spricht. Aber für wen ist dieses
Programm gedacht? Versteht der Kunde den Quelltext? Der Kunde muss hier ebenfalls ein Entwickler
sein, der Bausteine für seine Programmierarbeiten
braucht. Viele gute Programme gehen so von Hand
zu Hand. Dem Ziel dieses Lehrbuches, Anwendungssysteme zu entwickeln und bereitzustellen, können
diese Programme jedoch nicht entsprechen.
n Das Programm wird nur einmal eingesetzt und ist generell nur für den internen Gebrauch gedacht. Derartige „Wegwerf-Programme“ werden beispielsweise
zur Konvertierung von Daten für die Übernahme
in ein neues Softwaresystem benötigt. Befindet sich
die neue Software erfolgreich im Einsatz, sind alle
Daten im neuen System verfügbar, verliert das Konvertierungsprogramm seine Bedeutung und wird
nicht mehr benötigt. Hier kann wirklich auf eine
aufwendige Dokumentation verzichtet werden. Für
die Qualitätssicherung sollten die Konvertierungsalgorithmen jedoch dokumentiert werden. Tauchen
später Fehler in den Daten auf, können hier mögliche Ursachen aufgedeckt werden.
n
n
Interne Programme, oft Ergebnis von User-Development, werden kaum dokumentiert. Wenn ein Mitarbeiter sich selbst ein VBA -Makro zur Rationalisierung seiner Office-Arbeit schreibt, dann verbleibt
das Wissen bei ihm. Vielleicht könnte man aber im
gesamten Unternehmen große Effekte durch den
Einsatz dieses kleinen Makros erreichen. Hier muss
allerdings vom Management der Publikationsaufwand für das Dokumentieren der Lösung entsprechend honoriert werden.
Das Programm ist selbsterklärend. Bei diesem Argument muss bedacht werden, dass erheblich mehr an
Aufwand notwendig ist, um eine gute, selbsterklärende Benutzeroberfläche zu erstellen. Damit entsteht die Benutzerdokumentation quasi online. Aber
wo befinden sich die Installationshinweise? Dafür
ist eine aufwendige Installationsroutine mit einem
langen Dialog und dem Abtesten aller erdenklichen
Konstellationen notwendig. Auch das kostet viel
Zeit. Schließlich werden beim Benutzer Kenntnisse
und Fertigkeiten im Umgang mit der Software vorausgesetzt, die er sich aus anderen Dokumentationen und Schulungsunterlagen bereits angeeignet
hat. Selbsterklärende Software wird vom Markt nur
dann angenommen, wenn es sich um den „Nachbau“ bekannter Softwaresysteme handelt.
Es mag spezielle Situationen geben, wo eine Dokumentation überflüssig ist. In den meisten Fällen kann
bei einer Softwareentwicklung jedoch nicht auf eine
Dokumentation verzichtet werden, denn der Markt
verlangt danach. Die Dokumentation schafft die Voraussetzung für eine langfristige, sichere Nutzung der
Software. Der Entwickler kennt die Anwender im Normalfall nicht. Erst mit der Dokumentation vermittelt er
sein Wissen über die Software an den Anwender.
9.2 Dokumentationsarten
Nachdem die Bedeutung der Dokumentation und ihre
Rolle im Lebenszyklus eines Softwareproduktes klar
ist, bleibt immer noch die Frage nach dem Inhalt und
der Gestaltung der Dokumentation zu beantworten.
Der Inhalt und damit die Art der Dokumentation
richten sich zuerst nach den Zielgruppen: Entwickler
oder Anwender. Die Entwickler benötigen die Dokumente zur Planung, Durchführung und Absicherung
des Entwicklungsprozesses sowie im späteren Lebenszyklus zur Wartung der Software. Die Anwender müssen die Software installieren und betreiben können und
deren Benutzer benötigen Material zum Erlernen und
Dokumentationsarten 343
Herunterladen