IT-Systemkaufmann/-frau: Software-Technik (2. Lehrjahr)

Sie sind hier: StartseiteIT-System-KaufmannSoftware-Technik (Teil 2)

PH / CM, Kurs vom 01.09.2000 - 31.08.2001

Software-Technik (Teil 2): Software-Entwicklung (Software-Modellierung, Software-Krise in den siebziger Jahren, Das Phasenmodell, Software-Qualität, Programmiersprachen, System-Software, Programme, Assembler, Compiler, Interpreter, Debugger, Linker, Parser, Editor, Anwender-Software, Software-Tools).

Software-Entwicklung

Software-Modellierung

Programmieren ist
  1. Finden einer automatisierbaren Lösung eines Problemes
  2. Umsetzen dieser Lösung in einer gewählten Programmiersprache
  3. Testen, Dokumentieren und Installieren des erzeugten Programmes

Software-Krise in den siebziger Jahren

Methoden für die Entwicklung von Software waren noch nicht ausgereift. Somit war Software unzuverlässig, teuer und nicht planbar.

Ziel war daraufhin die Schaffung von Methoden, die große Projekte planbar machten.

Dabei gab es verschiedene Ansätze, wir gehen näher auf die Phasenmethode ein.

Zunächst versuchte man, den Software-Entwicklungsprozess in einzelne Phasen zu zerlegen:

Das Phasenmodell

Unter einem Phasenmodell versteht man die zeitliche Gliederung des Projektverlaufes in bestimmte Teilabschnitte.

  1. Analysieren und Spezifizieren der Anforderungen
  2. Entwerfen (Algorithmen; Design, Struktogramm)
  3. Implementieren (Umsetzen in eine Programmiersprache)
  4. Integrieren
  5. Warten (im Sinne von Instandhalten)

Typisches Phasenmodell - das Wasserfall-Modell

Software-Qualität

Ziel der Software-Entwicklung: qualitativ hochwertige Programme zu erstellen

Im folgenden sollen einige Qualitätsfaktoren aufgezeigt werden:

  1. innere Faktoren (für Benutzer, Auftraggeber ersichtlich):
    • Modularität
      (Aufgliederung in Teilprobleme durch sauber abgegrenzte Teilbausteine)
    • Lesbarkeit
  2. äußere Faktoren (für Entwickler ersichtlich):
    • Zuverlässigkeit
      (Korrektheit/Exaktheit, Robustheit)
    • Erweiterbarkeit
    • Wiederverwendbarkeit
    • Kompatibilität

Korrektheit ist die Fähigkeit von Software-Produkten, ihre Aufgaben exakt zu erfüllen, wie sie durch Anforderungen und Spezifikation definiert ist (somit wichtigstes Qualitätsmerkmal).

Programmiersprachen

  1. Assemblersprachen
    (extrem Hardware-nah, d.h. es wird direkt mit dem Befehlssatz des Prozessors gearbeitet)
  2. Hochsprachen
    (verwenden eine Syntax, die eher der natürlichen Sprache angelehnt ist, problem-/objektorientiert)

Als Software bezeichnet man die Gesamtheit aller Programme. Software lässt sich untergliedern in System-Software, Anwender-Software und Daten.

System-Software

Die System-Software beinhaltet das Betriebssystem, welches sich aus Organisations-, Übersetzungs- und Dienstprogrammen zusammensetzt, und die systemnahe Software. Das Betriebssystem dient zur Steuerung und Verwaltung aller Hardware-Bestandteile sowie der Arbeitsabläufe im Computer. Das Betriebssystem muss zu Beginn einer Arbeitssitzung als Erstes gestartet werden, bevor mit der Anwender-Software und den zugehörigen Daten gearbeitet werden kann. Verbreitete Betriebssysteme sind z.B. Windows, OS/2, Unix, BS2000.

Programme

Steuerungsprogramme koordinieren die Speicherverwaltung, Programmverwaltung und Geräteverwaltung im Computer.

Übersetzungsprogramme bezeichnet man als Compiler oder Interpreter, die Quellprogramme einer Programmiersprache in Maschinensprache übertragen.

Dienstprogramme - auch Utilities genannt - stehen für Standardaufgaben innerhalb des Betriebssystems zur Verfügung, z.B. Kopieren oder Formatieren.

Zur systemnahen Software gehören Programmiersprachen und Benutzeroberflächen.

Programmiersprachen sind künstliche Sprachen zur Verständigung mit dem Computer. Maschinenorientierte Programmiersprachen (Assemblersprachen) sind auf die Technik eines bestimmten Computersystems ausgerichtet und orientieren sich in ihrer Struktur an dem verwendeten Prozessor. Problemorientierte Programmiersprachen ermöglichen die Entwicklung von Programmen unabhängig vom Rechnertyp auf der Grundlage von eindeutig festgelegten Sprachelementen und Regeln. Je nach Einsatzzweck und Anwendung können unterschiedliche Programmiersprachen genutzt werden.

Als Quellprogramm oder Sourcecode bezeichnet man ein Programm, das vom Programmierer in einer Programmiersprache erstellt ist.

Benutzeroberflächen erleichtern durch einen benutzerfreundlichen Bildschirmaufbau den Umgang und den Informationsaustausch mit dem System. Man unterscheidet Benutzeroberflächen mit Menütechnik, mit Grafiksymbolen und mit Fenstertechnik.

Die Maschinensprache ist das in binärer Form vorliegende Programm, das direkt von einem Prozessor ausgeführt werden kann. Jeder Prozessortyp hat seine eigene Variante der Maschinensprache.

Ein Programm, welches in einer Programmiersprache oder in Assemblercode geschrieben wurde, muss erst durch den Compiler, einen Interpreter oder einen Assembler in die vom Prozessor verwendete Maschinensprache übersetzt werden.

Assembler

Ein Programm, welches Assemblercode in Maschinensprache übersetzt. Im Gegensatz zu den höheren Programmiersprachen wie Basic, C, Pascal oder Delphi lehnt sich Assembler sehr stark an die Maschinensprache an.

Die einzelnen Maschinenkommandos werden über Buchstabenkürzel, sogenannte Mnemoniks, eingegeben.

Compiler

Ein Programm, das einen Quelltext aus einer Quelldatei (Datei) ausliest und in ein lauffähiges Programm übersetzt.

Der Quelltext (auch Quellcode genannt) ist zumeist in einer höheren Programmiersprache wie C, Pascal oder Delphi geschrieben und kann auch aus vielen miteinander verknüpften Dateien bestehen.

Interpreter

Ein Programm, das den Quellcode einer höheren Programmiersprache Anweisung für Anweisung in Maschinencode übersetzt.

Ein großer Nachteil des Interpreters ist, dass Anweisungen in Schleifen bei jeder Iteration von neuem übersetzt werden müssen (Zeitverzögerung).

Debugger

Ein Programm, das zum Auffinden von Fehlern (bugs) in Programmen verwendet wird (z.B. logische Fehler und Laufzeitfehler). Dazu wird das Programm innerhalb des Debuggers ausgeführt. Dabei kann es jederzeit angehalten werden, an zuvor definierten Punkten stoppen (Breakpoints) oder auch in einzelnen Schritten ausgeführt werden.

Ein Debugger bietet meistens auch die Möglichkeit, sich Variableninhalte, Registerinhalte und ähnliche Informationen anzeigen zu lassen.

Debugger gehören inzwischen zum Standard-Lieferumfang der meisten Entwicklungsumgebungen.

Linker

Ein Programm, das in der Erstellung von ablauffähigen Programmen aus Programmcode eine wesentliche Rolle spielt. Nachdem aus dem Quelltext mit dem Compiler Objektcode erzeugt wurde, werden die Einzelteile (die gerade kompilierten Module und Teile aus Bibliotheken) über den Linker gebunden.

Parser

Ein Parser analysiert die Syntax einer Sprache. Solche Sprachanalysatoren werden u.a. als Programmteile von Compilern eingesetzt.

Editor

Dieser Begriff wird am häufigsten für die Art von Anwendungsprogrammen eingesetzt, mit denen man auf einfachste Art Textdateien bearbeiten (editieren) kann. Diese besitzen meist nur die Möglichkeit für das Laden und Speichern veränderter Texte. Spezielle Formatierungen können nicht eingestellt werden.

Allgemein werden mit Editor alle Arten von Programmen gemeint, mit welchen man sehr einfach eine Form von Daten bearbeiten kann (z.B. Texteditoren, Grafikeditoren).

Anwender-Software

Unter Anwender-Software versteht man alle Programme zur Lösung spezieller Probleme des Anwenders. Anwender-Software kann als Standard-Software, Branchen-Software oder Individual-Software vorliegen.

Bei Standard-Software handelt es sich um problemorientierte Programme für branchenunabhängige Aufgabenbereiche, die von vielen Anwendern einheitlich verwendet wird.

Branchen-Software bietet Programmlösungen für bestimmte Branchen.

Bei Individual-Software handelt es sich um Einzelprogramme, die nach den individuellen Wünschen eines Anwenders entwickelt worden sind.

Software-Tools

Software-Werkzeuge, mit denen man persönliche arbeitsplatzbezogene Problemlösungen entwickeln kann, wie z.B. das Be- und Verarbeiten von Texten, das Erstellen von Tabellen und Grafiken oder das Erstellen und Verwalten von Dateien bzw. Datenbanken.

Integrierte Software-Pakete enthalten einige Software-Tools für verschiedene Aufgabengebiete mit einer meist einheitlichen Benutzeroberfläche.

Funktions-Software umfasst Programme für verschiedene Funktionsbereiche von Betrieben, wie z.B. Finanzbuchhaltung oder Lagerverwaltung, die unverändert in verschiedenen Branchen eingesetzt werden können.