Einführung Flashcards
Was ist Software?
- immaterielle Teile (auf EDV Nutzbarerer) Programme
- Menge von Programmen, Daten und Dokumenten (die für Anwendung hilfreich)
- Computer programs, procedures, rules and documentation for operation of a computer system
Definition Softwareprodukt
(Softwareteilprodukt)
- Produkt aus SW
- in sich abgeschlossenes, für Auftraggeber bestimmtes Ergebnis eines Projektes / Herstellungsprozesses
Teilprodukt: abgeschlossener Teil
Definition System
- Ausschnitt aus der realen oder gedanklichen Welt, bestehend aus Gegenständen (Menschen, Materialien, Maschinen o.a. Produkten) und darauf vorhandenen Strukturen (z.B. Aufbau aus Teileinheiten oder Beziehung untereinander)
Definition Systemsoftware
- Für spezielle Hardware / HW Familie entwickelt, um den Betrieb dieser zu ermöglichen oder erleichtern
- Z.B. OS, DBs, Compiler
- Orientiert sich an den Eigenschaftend der HW und ergänzt Funktionalität
Definition Anwendungssoftware
( Software-Turm)
- Löst Anwenderaufgaben mit Hilfe eine Computersystems
- Setzt i.d.R. auf die Systemsoftware der verwendeten Hardware auf / benutzt sie zur Erfüllung der eigenen Aufgaben
Definition Softwareentwicklung
- Viele Methoden, Architekturen und Arbeitsformen
- Entstanden aus verschiedenen Programmiersprachen, Datenbanken, Rechnerfamilien und OS
Definition Systementwicklung
- Besteht aus HW und SW Komponenten
- Zusätzliche Rahmenbedingungen
Eigenschaften von Software
- Immateriell, nicht sinnlich wahrnehmbar
- Wird entwickelt, nicht gefertigt (keine Fertigungskosten, Kopie und Original sind gleich)
- Sehr komplex, hohe Zustandsanzahl
- Fehler schwer lokalisierbar
- Verschleißt, Wartung stellt keinen Zustand wiederher, sondern erweitert Funktionalität
Eigenschaften von Software (2)
- Altert durch Änderungswünsche
- Digital (Logik statt Ingenieurmathe)
- Nicht durch phsyikalische Gesetze beschränkt
- i.A. schneller änderbar, als ein technisches Produkt
- Schwer zu vermessen
Änderung der Softwareentwicklung in den letzten 30 Jahren
- Zunehmende Bedeutung
- Wachsende Komplexität
- Zunehmende Qualitätsanfoderungen
- Zunehmender Fachkräftemangel
- Zunehmende Standardsoftware
- Zunehmend “Altlasten”
- Außer Haus Entwicklung (Outsourcibng, Offshoring)
Formen von Softwarequalität
Gebrauchsqualität (externe Qualität):
- Relevanz und Effektivität
- Betriebsqualität
- Zuverlässigkeit
- Benutzungsfreundlichkeit
Produktqualität (interne Qualität)
- Korrektheit
- Robustheit
- Wartbarkeit
- Übertragbarkeit
Prozessqualität
- Durch Qualität im Entwicklungsprozess die Prdoukt und Einsatzqualität steigern
Probleme martkreifer Software
- Funktionstreue
- Termintreue
- Kostentreue
- Qualitätstreue
- Während der Entwicklung ändern sich Produktanforderungen, HW / SW Komponenten, Methoden u. Werkzeuge
Altlasten
- Anpassung an Änderungen der Einsatzumgebung macht 2/3 aller Software-Kosten aus
- Als Legacy Software bezeichnet
- Haben sich bewährt
Geburt der Softwaretechnik
Ender der 60er:
- Software ist fehlerhaft, nicht wartbar, nicht termingerecht fertig und entsprach nicht den Anforderungen
- Programmiermethodik, Vorgehenseweisen und Werkzeuge waren sehr unterschieldich und wenig hilfreich
- mathematisch-technische Herangehensweise an das Problem
Definition Softwaretechnik
- Das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software sowie die ingenieurwissenschaftliche Disziplin, die sich mit Methoden und Verfahren zur Lösung der damit verbundenen Problemstellungen befasst
- Bereitstellung und systematische Verwendung von Methoden und Werkzeugen für die Herstellung und Andwendung von Software
- Systematisches Vorgehen zur Erstellung, Operation, Wartung und Außerdienstellung von Software
Definition Softwaretechnik 2
- Befasst sich mit der professionellen Entwicklung großer Softwaresysteme, wobei Anwendungssoftware im Vordergrund steht
Große Systeme:
- methodisch-technische Unterstützung ander als bei kleinen Programmen
- Reduktion der Komplexität von zentraler Bedeutung
- Umfangreiche Programme, Anforderungs- und Beschreibungsdokumente, lange Lebensdauer, mehrere Versionen, große Änderungen
Anwendungssoftware:
- Modelliert Gegenstände der realen Welt
- Fester (dedizierte Systeme) oder variabler (Standardsoftware) Einsatzkontext
- Interaktion zw. Nutzer und Anwendungssystem
Professionelle Softwareentwicklung
- Mehrere Entwickler nutzen Werkzeuge und Methoden zur Herstellung
- Arbeitsteilung und Zusammenarbeit muss geplant werden
- Projektorganisation, Vorgehensmodelle, Arbeitskonventionen und QS-Maßnahmen wichtig
Grundprinzipien der Softwaretechnik
Abstraktion
- Unwichtige Merkmale und Details weglassen
Strukturierung
- Durch Hierarchisierung und Modularisierung werden spezielle Merkmale hervorgehoben
Hierarchisierung
- Elemente werden in eine Rangordnung gebracht und in Baumform dargestellt
Modularisierung
- Aufspaltung in einzelne Bausteine (Module) mit definierten Schnittstellen
Ziel aller Prinzipien: Verringerung der Komplexität