Softwareentwicklung: Betriebssysteme, Programmierung, Testen & Dokumentation
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 11,39 KB
Grundlagen der Softwareentwicklung
Was ist ein Betriebssystem?
Ein Betriebssystem (OS) ist eine grundlegende Computersoftware, die eine Schnittstelle zwischen dem Benutzer, anderen Computerprogrammen, Hardware-Geräten und dem System selbst herstellt.
Grundlegende Funktionen eines Betriebssystems
- Verwaltung von Maschinenressourcen
- Koordination der Hardware
- Organisation von Dateien und Verzeichnissen auf Speichergeräten
Einteilung der Betriebssysteme
- Multi-User: Ermöglicht zwei oder mehr Benutzern, ihre Programme gleichzeitig zu nutzen.
- Multiprozessor: Unterstützt die Ausführung desselben Programms auf mehr als einer CPU.
- Multitasking: Ermöglicht die gleichzeitige Ausführung mehrerer Programme.
- Multithreading: Ermöglicht die gleichzeitige Ausführung verschiedener Teile eines einzigen Programms.
- Echtzeit: Reagiert sofort auf Eingaben.
Was ist eine Programmiersprache?
Eine Programmiersprache ist eine standardisierte Kommunikationstechnik, die es uns ermöglicht, Anweisungen auszudrücken, die von einem Computer ausgeführt werden sollen.
Sie ermöglicht es einem Programmierer, genau anzugeben, mit welchen Daten ein Computer arbeiten soll und wie diese gespeichert und übertragen werden sollen.
Häufig verwendetes Programmierparadigma: Objektorientierte Programmierung
Objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das die Welt als Sammlung von Objekten betrachtet, die miteinander interagieren. Es ist eine natürliche Denkweise für Menschen.
Schritte zur Entwicklung eines Programms
1. Programmspezifikation
Bestimmung der grundlegenden Informationen für die Programmentwicklung.
Ansatz zur Problemlösung: Fünf Aufgaben
- Ziele des Programms bestimmen: Es müssen eindeutig die zu lösenden Probleme oder die auszuführenden Aufgaben identifiziert werden. Dies gibt uns Aufschluss darüber, was gelöst werden soll, und liefert hilfreiche Informationen für die Planung.
- Gewünschte Ausgabe bestimmen: Die ausgewählten Daten sollten Informationen in einer geordneten Weise produzieren (z. B. zum Ausdrucken oder zur Anzeige auf dem Monitor).
- Eingabedaten bestimmen: Sobald die gewünschte Ausgabe feststeht, können die Eingabedaten und deren Quelle bestimmt werden. Daten sollten gesammelt und analysiert werden.
- Verarbeitungsanforderungen bestimmen: Hier werden die Verarbeitungsaufgaben definiert, die mit den Eingabedaten durchgeführt werden müssen, um die Ausgabe zu erzeugen.
- Programmspezifikationen dokumentieren: Alle für die Verarbeitung benötigten Daten müssen erfasst werden.
2. Programmentwurf
Dies ist der Entwurf eines neuen Systems oder einer Anwendung, um die Anforderungen zu erfüllen.
3. Programmierung (Coding)
Die eigentliche Erstellung des Programms mit einer Programmiersprache. In diesem Stadium wird die in Schritt 2 entwickelte Logik verwendet, um das Programm tatsächlich zu erstellen.
4. Testen und Debuggen des Programms
Beim Debuggen wird das Programm auf einem Computer ausgeführt und die Teile korrigiert, die nicht funktionieren. In dieser Phase wird die Funktionalität jedes Programms mit realen oder fiktiven Daten überprüft.
Fehlerarten beim Debuggen eines Programms
- Syntaxfehler oder Kompilierungsfehler: Mögliche Fehler, die leichter zu korrigieren sind, da sie vom Compiler erkannt werden.
- Laufzeitfehler: Treten in der Regel bei unzulässigen Operationen auf, wie z. B. Division durch Null oder dem Lesen nicht-numerischer Daten in ein numerisches Feld.
- Logikfehler: Führen zu inkorrekten Ergebnissen. Der einzige Weg, sie zu erkennen, ist durch umfassende Tests des Programms, da sie auf der Konzeption und dem Design des Programms beruhen.
- Spezifikationsfehler: Diese entstehen durch eine schlechte Gestaltung des Programms und werden oft erst nach Abschluss des Designs und der Installation des Programms erkannt, was zu erheblichem Mehraufwand führen kann.
Programmtests
Programmtests bestehen aus der Überprüfung der Funktionalität des Programms durch verschiedene Methoden, um mögliche Fehler zu erkennen.
Testverfahren
- Desk Check: Der Programmierer überprüft den Code am Schreibtisch, Zeile für Zeile, auf Syntax- und Logikfehler.
- Manuelle Testdatenprüfung: Das Programm wird manuell mit korrekten und inkorrekten Daten ausgeführt, um die korrekte Funktion zu überprüfen.
- Übersetzungsversuch: Das Programm wird auf einem Computer mit einem Compiler/Interpreter ausgeführt, um es in Maschinensprache umzuwandeln. Hierfür muss es möglichst frei von Syntaxfehlern sein.
- Testen mit Daten auf dem Computer: Logische Fehler werden durch die Verwendung verschiedener Testdaten auf dem Computer gesucht.
- Beta-Tests (Test mit potenziellen Nutzern): Dies ist in der Regel der letzte Schritt beim Testen eines Programms. Potenzielle Anwender testen das Programm und geben Feedback.
5. Programmdokumentation
Die Programmdokumentation besteht aus der schriftlichen Beschreibung technischer Verfahren im Zusammenhang mit dem Programm und seiner Nutzung.
6. Programmwartung (Maintenance)
Dies ist der letzte Schritt in der Softwareentwicklung. Der Zweck der Wartung ist es, sicherzustellen, dass Programme fehlerfrei, effizient und effektiv genutzt werden können.
Software-Metriken
Software-Metriken beziehen sich auf die Effizienz, Funktionalität und Komplexität der Softwareentwicklung.
Metrik-Techniken
Diese konzentrieren sich auf Software-Merkmale wie logische Komplexität und Modularität. Sie messen die Systemstruktur und deren Funktionsweise.
Qualitätsmetriken
Geben einen Hinweis darauf, wie die Software die impliziten und expliziten Kundenanforderungen erfüllt.
Produktivitätsmetriken
Diese konzentrieren sich auf die Leistung des Software-Engineering-Prozesses und geben an, wie produktiv die Softwareentwicklung ist.
Größenorientierte Metriken
Dienen dazu, den Fertigstellungszeitpunkt der Software und den benötigten Personalaufwand zu bestimmen.
Funktionsorientierte Metriken
Die vorgeschlagene Methode basiert im Wesentlichen auf dem von Albrecht entwickelten Function-Point-Ansatz zur Messung der Produktivität.
Phasen der Systemplanung
1. Planungsbeginn
Bestimmung des offiziellen Beginns der Systemplanung mit Unterstützung der höchsten Organisationsebene.
2. Definition und Organisation
Ausführliche und genaue Beschreibung des Informationssystems (SI), Zuweisung von Zeitplänen und Humanressourcen.
3. Analyse relevanter Informationen
Relevante Informationen werden für die ordnungsgemäße Entwicklung des Systems analysiert.
4. Anforderungsidentifikation
Erfassung der Anforderungsspezifikationen, die für die Planung von Informationssystemen und die Systemanalyse notwendig sind.
5. Analyse der aktuellen Situation
Erstellung einer Bewertung der aktuellen Situation.
6. Modellentwurf
Identifiziert und definiert das Informationssystem (SI), das die von der Information betroffenen Systemprozesse unterstützen wird.
7. Technologiearchitektur
Die unterstützende Technologiearchitektur wird für das Informations- und Informationssystemmodell vorgeschlagen.
8. Plandefinition
Entwicklung eines detaillierten Plans für Informationssysteme: Definition von Projekten, Aktivitäten, Zeit und Ressourcen zur Implementierung von Informationssystemen und Technologieinfrastruktur.
9. Überprüfung und Genehmigung
Der Plan wird der Geschäftsleitung zur endgültigen Überprüfung und Genehmigung vorgelegt.
10. Dokumentation
Liste der Anforderungen.
Software-Tests
Software-Tests sind Prozesse, die es ermöglichen, die Qualität eines Softwareprodukts zu überprüfen und aufzudecken. Sie werden verwendet, um mögliche Mängel in der Implementierung, Qualität oder Benutzerfreundlichkeit eines Computerprogramms zu identifizieren.
Testprozess
Der Testprozess ist ein technischer Forschungsprozess, der geschulte, hochqualifizierte Fachleute in Entwicklungssprachen, Methoden und spezialisierten Testtechniken erfordert.
Arten von Tests
- Unit-Tests
- Funktionale Tests
- Integrationstests
- Validierungstests
- Systemtests
- White-Box-Tests
- Black-Box-Tests
- Abnahmetests
- Regressionstests
- Lasttests
- Performancetests
- Mutationstests
Systemimplementierung
Die Konfiguration, Parametrierung und Implementierung eines Systems erfordert eine logische Zeitplanung, da Benutzer mit neuen Aufgaben, Prozessen und Verantwortlichkeiten konfrontiert werden. Eine erfolgreiche Implementierung erfordert Zusammenarbeit, Bereitschaft und Flexibilität auf beiden Seiten. Eine ausgezeichnete Lösung wird durch vorausschauende Planung, Zeitmanagement und Organisation erzielt.
Dokumentation
Für eine möglichst einfache Wartung einer Softwareanwendung ist es wünschenswert, eine vollständige Dokumentation zu haben, d.h. alle Dokumente, die in den vorhergehenden Phasen erstellt wurden: Anforderungsspezifikationen (ERS), Algorithmen, Quellcodes, Benutzerhandbücher usw.
Benutzerhandbuch
Dieser Teil der Anwendung ist in zwei verschiedene Handbücher unterteilt, eines für jeden Client. Es werden alle möglichen Optionen, die der Benutzer mit diesen Anwendungen ausführen kann, detailliert und mit Hilfe von Screenshots erklärt. Dieses Dokument ist für Endanwender bestimmt.
Struktur eines Benutzerhandbuchs
- Startseite: Informationen zum Dokument und dessen Ersteller.
- Einleitung: Beschreibung des Zwecks des Dokuments und der Anwendung.
- Analyse und Systemanforderungen: Informationen zu Installations- und Nutzungsanforderungen.
- Erläuterung der Funktionsweise: Schritt-für-Schritt-Anleitung zur Programmnutzung mit detaillierten Erklärungen.
- Glossar: Sollte so geschrieben sein, dass es für jeden mit geringstem Aufwand verständlich ist.
Das Handbuch sollte auch die Möglichkeiten und Grenzen des Programms aufzeigen.
Verwaltungshandbuch
Das Verwaltungshandbuch dient als Ausgangspunkt für das vorgeschlagene System. Es unterstützt die IT-Management-Funktion und ermöglicht es den Systemnutzern, selbst zu bestimmen, ob das System die Anforderungen erfüllt.
Technisches Handbuch
Dieses Dokument enthält alle Informationen über die im Projekt verwendeten Ressourcen und bietet eine sehr detaillierte Beschreibung der physikalischen Eigenschaften der einzelnen Komponenten und des technischen Personals. Beispiele hierfür sind Prozessormerkmale, Geschwindigkeit, Gerätegrößen, Garantien, Support und weitere Lieferanteninformationen.