Software Engineering (SE)
Begriffe: Software Technik
Technologie
Ziele: - Methodisches Vorgehen bei Abwicklung von SW-Projekten - Kenntnis verteilter Systeme
- Pattern orientierte Entwicklung (MT-Pattern) - Qualitätssichernde Massnahmen
- Kenntnis gängiger Middleware-Architekturen (COM, CORBA, .NET, RMI) ACE = Adaptive Communication Enviroment (Doug Schmidt)
TAO CORBA – Implementierung basierend auf ACE 1. Software
Def.: „ Im engeren Sinn: Alle Informationen, die auf der HW in Programmform verarbeitet werden;
im weiteren Sinn: das dazugehörige Begleitmaterial insbesonders die # Kokumentation.“
[ G_Gravenroth, Computerrecht von A-Z, Beul in dtv ] Charakteristika: (a) immaterielles Produkt
(b) unterliegt keinem Verschleiß
(c) keine Begrenzung durch physikalische Gesetze (d) leichter schneller änderbar als ein techn. Produkt (e) keine ersatzteile
(f) „altert“ nur in Bezug auf Umgebung (g) schwer zu „vermessen“ Metrik Anforderungen an die SW-Entwicklung
(a) Funktionstreue (b) Qualitätstreue (c) Termintreue (d) Kostentreue
Unterscheidung der SW-Lösungen:
Art der Anteil Auftraggeber
Lösung Personalgrösse
(a) Individual- / Spezialsoftware a) 5% 50000 - ? (b) Standard SW +
individuale Anpassungen b) 10% 3000 - 50000
(c ) Lösungen zusammengesetzt
aus Standard-Sw-Komponenten c) 35% 500 - 3000
(d) vollständige lösungen durch d) 50% < 500 Standard-SW
Lebenszyklus: a) Anwendersoftware: 10 – 15 Jahre b) System Software: 6 Jahre
c) Hardware 3 Jahre
Prinzipien (Grundsätze) in SE:
a) Hierarchisierung: Zerlegung eine Problems UML b) Modularisierung: Teilprodukte mit def. Schnittstelle
c) Strukturierung: Programmentwurf z.B. Kontrollstrukturen
Software – Management: Entwicklung
Management Qualitätssicherung Wartungspflege
2. Die Planungsphase
Planen des Produktes: - Auswählen des Produnktes
- Voruntersuchung des Produnktes
- Durchführbarkeitsuntersuchung (Prototyp) - Prüfen der ökonomischen Durchführbarkeit
||
\/
Durchführbarkeitsstudie
Lastenheft Projektkalkulation Projektplan
Aufbau eines Lastenheftes:
1. Zielbestimmung 2. Produkteinsatz
3. Produktfunktionen (auch (funktionale) Requirements: RQ1, ...., RQn) 4. Produnktdaten
5. Produktleistungen: Zeit, Datenumfang, Genauigkeit
6. Qualitätsanforderungen: Zuverlässigkeit(mittlere Zeit bis zum auftreten eines Fehlers), Benutzbarkeit, Effizienz
Normalfunktionale RQ 7. Ergänzungen
Einflussfaktoren der Aufwandsschätzung:
Entwicklungskosten: Personalkosten, Lizenzkosten Schätzgrösse: Loc Lines of Code
MJ, MM Mitarbeiter-Jahre / -Monate
Faustregel: 350 Quellcodezeichen (ohne Kommentar) pro Ing. Monat Teufelsquadrat der
Einflussfaktoren: Qualität Quantität
Entwicklungs- Kosten Diener
Quantität: a) LOC
Schutzmodelle Aufwand = f (LOC) b) Funktions- und Datenumfang
- in Planungs und Def. Phase
- „ unabhängig“ von Programmiersprache c) Komplexität
- Schnittstellen
- Daten (Struktur der Daten) Qualität: Qualitätsmerkmale; Zuordnung von Kennzahlen Entwicklungsdauer: Contra #MA (Anzahl Mitarbeiter)
Contra Kommunikationsaufwand
Optimale Entwicklungsdauer = 2,5 * (Aufwand in MM) S mit s = 0,38 für Batch-Systeme
s = 0,35 für Online – Systeme s = 0,32 für Echtzeitsysteme Produktivität: wesentliche Faktoren:
- Motivation der MA - Lernfähigkeit der MA - Firmenkultur
3. Prozess – Modelle:
Literatur: Helmut Balzert, Lehrbuch der Software-Technik, Spektrum, Berlin, 1998
Prozess-Modell: - Reihenfolge des Arbeitsablaufs definieren - Def. Der Teilprodukte
- Fertigstellungskriterien Rollen - Verantwortlichkeiten und Kompetenzen
- Anzuwendende Standards, Richtlinien, Methoden und Werkzeuge Motivation: CMMICapability Maturity Model Integration
z.B. für Safety related Systems CMMI-Level >= 3
Ausgangssituation: Code & Fix
1. Schreibe ein Programm
2. Finde und behebe die Fehler in dem Programm
=> Software Krise 3.1. Wasserfall-Modell:
System-
Anforderungen Software Anforderungen
Analyse
Entwurf
Codierung Testen
Betrieb 3.2 Das V-Modell
= Wasserfall-Modell + QS
Verifikation Validierung
Anforderungsdef. Abnahmetest VAL
Grobentwurf Systemtest
Feinentwurf Integrationstest VER
Modulimpl- Modultest
Ementierung
VER Verifikation „Wird ein korrektes Produkt entwickelt?“
z.B. Codierrichtlinien MISRA C
Motor Industry Software Reliability Association (Tooleinsatz PCLIM)
Milestone
VAL: Validation “Wird das richtige Produkt entwickelt?”
Exkurs: Begriffe
?????
?????