Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
14 2 Modelle und Metriken Problembestimmung Informales Modell Formale Modelle und Axiome Theoretische Validierung Empirische Validierung Anwendung Neue Modelle/Hypothesen Abbildung 2-3: Verfahren zur Entwicklung von Metriken (nach Shepperd, Ince, 1993, S. 79) 4. Theoretische Validierung: Es wird überprüft, ob die postulierten Axiome für die Metrik gelten. [Anhang A] 5. Empirische Validierung: Es wird empirisch überprüft, ob die Metrik tatsächlich die Anforderungen aus der Problembestimmung erfüllt. [Kapitel 10] Dabei gemachte Erfahrungen können neue Modelle oder Hypothesen liefern und zu einer erneuten Iteration des Vorgehens führen, um die Metrik und ihre Grundlagen zu verbessern. 6. Anwendung: Einsatz der Metrik. [Kapitel 10] Ein Qualitätsmodell für den objektorientierten Entwurf ist letztlich eine sehr komplexe Metrik, also lässt sich das Verfahren von Shepperd und Ince zu seiner Entwicklung verwenden. Bei der obigen Beschreibung der Phasen des Verfahrens ist in Klammern angegeben, in welchen Kapiteln dieser Arbeit die jeweiligen Aspekte behandelt werden. Für die Metriken, die für das Qualitätsmodell benötigt werden, kann das Verfahren ebenfalls angewendet werden.
Kapitel 3 Objektorientierung What is object oriented programming? My guess is that object oriented programming will be in the 1980’s what structured programming was in the 1970’s. Everyone will be in favor of it. Every manufacturer will promote his products as supporting it. Every manager will pay lip service to it. Every programmer will practice it (differently). And no one will know just what it is. (Rentsch, 1982, S. 51) Dieses Kapitel führt die wesentlichen Begriffe der Objektorientierung ein und zeigt ihre Darstellung in der Unified Modeling Language (UML). Eine ausführlichere Einführung in die Objektorientierung, die objektorientierte Analyse und den objektorientierten Entwurf findet sich z. B. bei Booch (1994). Philosophische Grundlagen der Objektorientierung finden sich bei Bunge (1977, 1979). Bunge entwickelt eine Ontologie, nach der die Welt aus substantiellen Individuen besteht, die eine Identität und Eigenschaften aufweisen: Objekte. Wand (1989) nutzt Bunges Ontologie, um daraus ein formales Modell für die Objektorientierung zu gewinnen. Beispielsweise entstehen Klassen, indem Objekte anhand der Ähnlichkeit ihrer Eigenschaften zusammengefasst werden. Aus dieser Weltsicht heraus ergibt sich die populäre Schlussfolgerung, dass ein objektorientiertes Programm besser verständlich und besser änderbar ist als ein prozedurales, da der kognitive Unterschied zwischen Konstrukten der Anwendungswelt und den Konstrukten der Lösungswelt geringer ist. Jacobson et al. (1995, S. 42ff.) bezeichnen den Unterschied zwischen Anwendungs- und Lösungswelt als „semantic gap“. Dieser sei bei der Objektorientierung geringer als bei der strukturierten Entwicklung. Für Rumbaugh et al. (1993) ist die Klasse eine natürliche Einheit der Modularisierung, weshalb durch die objektorientierte Vorgehensweise klare und verständliche Entwürfe entstehen. Berard (1993, Kap. 2) empfiehlt die Verwendung des objektorientierten Ansatzes wegen seiner Vorteile aus technischer Sicht: die zunehmende Akzeptanz moderner Programmierpraktiken (z. B. Datenabstraktion), höhere Wiederverwendung und bessere Erweiterbarkeit im Vergleich zum strukturierten Ansatz. Allerdings ist bei einem Wechsel von der strukturierten Entwicklung zur Objektorientierung ein Paradigmenwechsel nötig (Fichman, Kemerer, 1992). Diesen Wechsel schafft nicht jeder Entwick- 15
- Seite 1: Bewertung der Qualität objektorien
- Seite 5 und 6: Zusammenfassung In der Software-Ent
- Seite 7 und 8: Inhaltsverzeichnis 1 Danksagung....
- Seite 9 und 10: 12 Zusammenfassung und Ausblick....
- Seite 11 und 12: Kapitel 1 Einführung Design is one
- Seite 13 und 14: 1.2 Zielsetzung 3 Messverfahren. Da
- Seite 15 und 16: 1.4 Übersicht 5 Das allgemeine Qua
- Seite 17 und 18: Kapitel 2 Modelle und Metriken In d
- Seite 19 und 20: 2.2 Metriken 9 2.1.2 Beispiele […
- Seite 21 und 22: 2.2 Metriken 11 Merkmalsart Qualita
- Seite 23: 2.2 Metriken 13 Definition 2-2 (qua
- Seite 27 und 28: 3.1 Begriffe 17 Klasse Person mit A
- Seite 29 und 30: 3.1 Begriffe 19 3.1.5 Abstrakte Kla
- Seite 31 und 32: 3.2 Unified Modeling Language 21 3.
- Seite 33 und 34: Kapitel 4 Objektorientierter Entwur
- Seite 35 und 36: 4.1 Was ist Entwurf? 25 rungen im C
- Seite 37 und 38: 4.2 Klassifikationen des Entwurfs 2
- Seite 39 und 40: 4.2 Klassifikationen des Entwurfs 2
- Seite 41 und 42: 4.3 Muster und Rahmenwerke 31 und P
- Seite 43 und 44: 4.3 Muster und Rahmenwerke 33 Kateg
- Seite 45 und 46: 4.5 Probleme des Entwurfs 35 Lösun
- Seite 47 und 48: 4.5 Probleme des Entwurfs 37 Kompon
- Seite 49 und 50: 4.5 Probleme des Entwurfs 39 Aufgab
- Seite 51 und 52: 4.5 Probleme des Entwurfs 41 • di
- Seite 53 und 54: Kapitel 5 Ein Referenzmodell für d
- Seite 55 und 56: 5.2 Umfang 45 Abbildung 5-2: UML-Me
- Seite 57 und 58: 5.2 Umfang 47 5.2.2 Erweiterungen N
- Seite 59 und 60: 5.3 Kern 49 und I muss in genau ein
- Seite 61 und 62: 5.3 Kern 51 • uses: C × (C ∪ I
- Seite 63 und 64: 5.4 Erweiterungen 53 5.4.2 Erweiter
- Seite 65 und 66: 5.5 Formale Definition von Metriken
- Seite 67 und 68: 5.5 Formale Definition von Metriken
- Seite 69 und 70: Kapitel 6 Softwarequalität Quality
- Seite 71 und 72: 6.1 Qualität 61 Benutzerbezogene S
- Seite 73 und 74: 6.2 Qualitätsmodelle 63 Die Defini
Kapitel 3<br />
Objektorientierung<br />
What is object oriented programming? My guess is that object oriented programming will be<br />
in the 1980’s what structured programming was in the 1970’s. Everyone will be in favor of it.<br />
Every manufacturer will promote his products as supporting it. Every manager will pay lip<br />
service to it. Every programmer will practice it (differently). And no one will know just what it<br />
is.<br />
(Rentsch, 1982, S. 51)<br />
Dieses Kapitel führt die wesentlichen Begriffe <strong>der</strong> Objektorientierung ein und zeigt<br />
ihre Darstellung in <strong>der</strong> Unified Modeling Language (UML). Eine ausführlichere Einführung<br />
in die Objektorientierung, die objektorientierte Analyse und den objektorientierten<br />
Entwurf findet sich z. B. bei Booch (1994).<br />
Philosophische Grundlagen <strong>der</strong> Objektorientierung finden sich bei Bunge (1977,<br />
1979). Bunge entwickelt eine Ontologie, nach <strong>der</strong> die Welt aus substantiellen Individuen<br />
besteht, die eine Identität und Eigenschaften aufweisen: Objekte. Wand (1989)<br />
nutzt Bunges Ontologie, um daraus ein formales Modell für die Objektorientierung<br />
zu gewinnen. Beispielsweise entstehen Klassen, indem Objekte anhand <strong>der</strong> Ähnlichkeit<br />
ihrer Eigenschaften zusammengefasst werden. Aus dieser Weltsicht heraus ergibt<br />
sich die populäre Schlussfolgerung, dass ein objektorientiertes Programm besser verständlich<br />
und besser än<strong>der</strong>bar ist als ein prozedurales, da <strong>der</strong> kognitive Unterschied<br />
zwischen Konstrukten <strong>der</strong> Anwendungswelt und den Konstrukten <strong>der</strong> Lösungswelt<br />
geringer ist. Jacobson et al. (1995, S. 42ff.) bezeichnen den Unterschied zwischen<br />
Anwendungs- und Lösungswelt als „semantic gap“. Dieser sei bei <strong>der</strong> Objektorientierung<br />
geringer als bei <strong>der</strong> strukturierten Entwicklung. Für Rumbaugh et al. (1993) ist<br />
die Klasse eine natürliche Einheit <strong>der</strong> Modularisierung, weshalb durch die objektorientierte<br />
Vorgehensweise klare und verständliche <strong>Entwürfe</strong> entstehen.<br />
Berard (1993, Kap. 2) empfiehlt die Verwendung des objektorientierten Ansatzes<br />
wegen seiner Vorteile aus technischer Sicht: die zunehmende Akzeptanz mo<strong>der</strong>ner<br />
Programmierpraktiken (z. B. Datenabstraktion), höhere Wie<strong>der</strong>verwendung und bessere<br />
Erweiterbarkeit im Vergleich zum strukturierten Ansatz. Allerdings ist bei einem<br />
Wechsel von <strong>der</strong> strukturierten Entwicklung zur Objektorientierung ein Paradigmenwechsel<br />
nötig (Fichman, Kemerer, 1992). Diesen Wechsel schafft nicht je<strong>der</strong> Entwick-<br />
15