127 lines
3.8 KiB
Markdown
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
|
|
|