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

127 lines
3.8 KiB
Markdown

---
title: Softwaretechnik 1
date: Wintersemester 20/21
author: 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