Informatik/Softwaretechnik 1.md
2020-11-02 20:30:46 +01:00

3.8 KiB

title date author
Softwaretechnik 1 Wintersemester 20/21 Robert Jeutter

Software: Menge von Programmen oder Daten zusammen mit begleitenden Dokumenten, die für Ihre Anwendung notwendig oder hilfreich sind [Hesse]

Gute Software ist schwer herzustellen

  • Entspricht Kundenwünsche, Vollständigkeit
  • Funktioniert Korrekt
  • Kosten- und Termintreue bei der Erstellung
  • weitere nicht-funktionale Qualitätsforderungen
    • Benutzerfreundlichkeit, Ergonomie
    • Sicherheit
    • Zuverlässigkeit, Fehlertoleranz
    • Performanz
    • Ressourcen-Effizienz, Skalierbarkeit, Übertragbarkeit
    • Wartbarkeit, Änder- und Erweiterbarkeit

Softwaretechnik

  • Technische Disziplin der Software Herstellung
  • Zielorientierte Bereitstellung uns systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen [Balzert]

Wie kann man Software besser entwickeln?

  • Ingenieursmäßige Herangehensweise
    • Verwendung bekannter Prinzipien und Methoden
    • Systematische Vorgehensweise
  • Verwendung von:
    • Abstraktion, Modelle, Notation, Simulation
    • Wiederverwendung:Muster, Komponenten, Framework
  • Organisation
    • Arbeitsteilung, Integration, Planung
  • Verwendung von Werkzeugen
    • IDE (Integrated Development Environment)
    • Versionierung, Bugtracker, Modellierungswerkzeug

Modellierungskonzepte

Modell: ist eine Abstraktion eines Systems mit der Zielsetzung, das Nachdenken über ein System zu vereinfachen, indem irrelevante Details ausgelassen werden [Brügge] \rightarrow Beschreibung eines Ausschnitts der Realität

  • erstellen einer Abstraktion
  • abbilden signifikanter Eigenschaften
  • Deskriptiv/präskriptiv (real oder geplant)
  • Sichtweise auf ein System (Struktur, Verhalten, Zustand,...)
  • heißt Weglassen
  • setzt Verstehen voraus
  • ist nicht automatisierbar

Verschiedene Modelle:

  • Analysemodell
  • Entwurfsmodell
  • Implementierung (-smodell)
  • Vorgehensmodell
  • Produktmodell
  • Dokumentation, Alternativen-Auswahl

Modelle für:

  • Sichten
  • Funktionen
  • Daten
  • Algorithmen
  • Systemumgebung
  • Dynamisches Verhalten
  • Objektorientierte Modelle

Klassische Modelle

  • Funktionen:
    • Funktionsbaum
      • Hierarchische Dekomosition der Fkt
      • nummerieren der Ebenen/Funktionen möglich
      • Bsp: Abonnement Verwaltung
    • Blockschaltbild
      • eingebettetes System, HW/SW
  • Daten
    • Data Dictionary
      • Verzeichnis von Daten mit Strukturinformationen
      • Backus-Naur-Form, kontextfreie Grammatik
    • Entity Relationship Diagram
      • Daten und ihre Beziehungen
  • Systemumgebung
    • Datenflussdiagramm
      • Fluss und Transformation von Daten zwischen Funktionen, Speichern und Schnittstellen
      • kein Kontrollfluss
  • Algorithmen
    • Entscheidungstabelle
      • Regelbasierte Beschreibung
      • Bedingung
      • Aktionen
      • Reduktionsregeln
    • Pseudocode
      • von Programmiersprache abstrahierende, detaillierte Beschreibung eines Algorithmus
    • Programmablaufplan
      • Grafische Beschreibung des Kontrollflusses
      • DIN 66001
      • Unstrukturiert
    • Struktogramm
      • Nassi-Shneidermann-Diagramm
      • keine Sprünge
  • Dynamisches Verhalten (diskrete Zustände und atomare zustandübergänge)
    • Zustandsautomat
      • Verhalten mit Zuständen und -übergängen
      • Automatenmodelle und -theorie
      • Ggf zerlegung oder kommunizierende Automaten
    • Flow-Chart
    • Ereignisgesteuerte Prozesskette (EPK)
      • Geschäftsprozesse
      • BPM
    • Petri-Netz (ggf. mit Zeitmodell)
      • Grafische Beschreibung von Nebenläufigkeit und Synchronisation
  • Objektorientierte Modelle
    • Klassendiagramme
    • UML

Objektorientierung

  • bessere Strukturierung für komplexe Zusammenhänge
  • Abstraktere Sichtweise
  • Objekt hat
    • definiertes Verhalten
    • inneren Zustand
    • eindeutige Identität
  • Klasse: gleichartige Objekte mit ggf versch Zu

Unified Modeling Language