Grundlagen Flashcards
Herkunft Software Engineering
ab 1970: Softwarekosten > Hardwarekosten
- Anwendungsprojekte scheiterten an Software
- NATO-Konferenz zu Software Engineering
Definition Software Engineering
Eine technische Disziplin, die sich mit allen Aspekten der Softwareherstellung beschäftigt, von den frühen Phasen der Systemspezifikation bis hin zur Wartung des Systems, nachdem sein Betrieb aufgenommen wurde.
Unterschied Standardsoftware und Individualentwickluing
- Ersteller von Standardsoftware muss Spezifikation selbst übernehmen
- kann Wünsche der Anwender nicht erfragen
Herausforderungen SE
- IT-Sicherheit
- Portabilität
- Verlässlichkeit
- Benutzerfreundlichkeit
- Handlen von großen Datenmengen
- Abhängigkeiten (Applikation, Server, Client)
Merkmale guter Software
1) Wartbarkeit –> Verständlichkeit
2) Zuverlässigkeit –> Zugriffsschutz, Betriebssicherheit, Schäden vermeiden
3) Effizienz (mobile Endgeräte)
4) Benutzerfreundlichkeit (Dokumentation, UI)
5) Wiederverwendbarkeit
6) Portabilität
7) Interoperatibilät
Arten kritischer Systeme
- sicherheitskritische Systeme (z.B. Atomkraftwerk)
- aufgabenkritische Systeme (z.B. Raumfahrt)
- geschäftskritische Systeme (z.B. Börse)
Wichtigste Eigenschaft kritischer Systeme
Zuverlässigkeit
- Ablehnung der Nutzer
- Kosten eines Ausfalls können Existenz gefährden
- Verlorene Informationen können wertvoller sein, als System selbst
Entwicklung kritischer Systeme
- ausgereifte statt neuer Technik
- Testkosten relativ unhöher als bei unkritischen Systemen
- aufwendige Methoden der SE lohnen sich bei kritischen Systemen
- Blick auf Gesamtsystem: Hardware-, System- und Bedienungsfehler bedingen sich gegenseitig
- Kosten für höhere Verlässlichkeit steigen exponentiell
Poka Yoke
- denkbare Fehlbedienungen von vornerein unmöglich machen (z.B. Knick in SD-Karte)
- manchen Benutzern kann ein System zuverlässig erscheinen, anderen aber nicht (alle nutzen selbe Teilmenge der Funktionalität)
Software Engineering Code of Ethics and Professional Practice
Standards und Prinzipien für Praktiken beim Entwickeln von Software
Prinzipien der Code of Ethics (8)
1) Public interest
2) Client and employer
3) Professional product standards
4) Integrity in professional judgement
5) Ethical Management approach
6) Advance the integrity and reputation of IT-profession
7) Be supportive to colleagues
8) Lifelong learning and promoting of ethical approach of the IT-profession