Erfolgreich
mit Objektorientierung
Vorgehensmodelle und Managementpraktiken für die objektorientierte Softwareentwicklung
Glossar
Ablauforganisation Ablauforganisation ist die zeitliche und räumliche Ordnung
betrieblicher Prozesse innerhalb des durch die Aufbauorganisation geschaffenen
Rahmens. Abstraktion Abstraktion ist eine Methode, bei der unter einem bestimmten
Gesichtspunkt die wesentlichen Merkmale eines Gegenstandes oder Begriffes herausgesondert
werden. Aggregation (UML: aggregation)
ð Assoziation,
ð Komposition Eine Aggregation ist eine Sonderform der Assoziation, bei der
die beteiligten Klassen keine gleichwertige Beziehung führen, sondern eine
Ganzes-Teile-Hierarchie darstellen. Eine Aggregation beschreibt, wie sich etwas
Ganzes aus seinen Teilen zusammensetzt. Akteur (UML: actor) Ein Akteur ist eine eine außerhalb des Systems
liegende ð Klasse,
die an der in einem ð
Anwendungsfall beschriebenen Interaktion mit dem System beteiligt ist. Akteure
nehmen in der Interaktion gewöhnlich eine definierte Rolle ein. Ein Akteur
ist eine ð stereotypisierte
Klasse. Aktivität Eine Aktivität ist die konkrete Durchführung
von definierten Aktionen innerhalb eines Entwicklungsprozesses und Ausprägung
eines ðAktivitätstyps. Aktivität (UML: action state) Ein Zustand mit einer internen Aktion und einer oder mehreren
ausgehenden Transitionen, die automatisch dem Abschluß der internen Aktion
folgen. Eine Aktivität ist ein einzelner Schritt in einem Ablauf. Eine
Aktivität kann mehrere ausgehende Transitionen haben, wenn diese durch
Bedingungen unterschieden werden können. Aktivitätsdiagramm (UML: activity diagram) Ein Aktivitätsdiagramm ist eine spezielle
Form des Zustandsdiagramms, das überwiegend oder ausschließlich ð
Aktivitäten enthält. Aktivitätstyp Ein Aktivitätstyp ist eine abstrakte Beschreibung von
Tätigkeiten, um ein oder mehrere definierte Ergebnisse zu erzeugen. Ein
Aktivitätstyp ist somit eine Art Arbeitsanleitung. Amigos Grady Booch, James Rumbaugh und Ivar Jacobson sind die Initiatoren
der Unified Moeling Language (UML) und des Unified Process und
werden häufig einfach "die Amigos" genannt. Analyse Mit (objektorientierter) Analyse werden alle Aktiviäten
im Rahmen des Softwareentwicklungsprozesses bezeichnet, die der Ermittlung,
Klärung und Beschreibung der Anforderungen an das System dienen (d. h.
die Klärung, was das System leisten soll). Änderungsmanagement (Tätigkeit) Management zur Aufnahme, Verfolgung und Durchführung von
Änderungen, Erweiterungen und Fehlernbeseitigungen. Änderungsmanagement (Organisationseinheit) Entscheidungs- und Steuerungsgremium für das Änderungsmanagement. Anwendungsarchitektur Die fachliche und technische ðArchitektur
einer Software-Anwendung. Anwendungsfall (UML: use case) Ein Anwendungsfall beschreibt eine Menge von Aktivitäten
eines Systems aus der Sicht seiner Akteure, die für die Akteure zu einem
wahrnehmbaren Ergebnis führen. Ein Anwendungsfall wird stets durch einen
Akteur initiiert. Ein Anwendungsfall ist ansonsten eine komplette, unteilbare
Beschreibung. Anwendungsfalldiagramm (UML: use case diagram) Ein Diagramm, das die Beziehungen zwischen ð
Akteuren und ð
Anwendungsfällen zeigt. Anwendungsfallmodell (UML: use case model) Ein Modell, das die funktionalen Anforderungen an ein System
in Form von Anwendungsfällen beschreibt. Arbeitsauftrag Beschreibt für eine Person oder ein Team den Auftrag,
ein definiertes Ergebnis herzustellen. Rahmenbedingungen wie geschätzter
bzw. geplanter Aufwand, Start- und Endtermin, Form und Qualität des Ergebnisses,
ggf. einzusetzende Werkzeuge u. ä. werden beschrieben. Arbeitspaket Eine Menge von konkreten ðArbeitsaufträgen
oder die Beschreibung einer Aufgabe, die in mehrere konkrete Arbeitsaufträge
zerlegbar ist. Architektur ist die Spezifikation der grundlegenden Struktur eines Systems. Architektur-Prototyp Ein ðPrototyp,
mit dem die prinzipielle Brauchbarkeit und Funktionsfähigkeit einer technischen
oder fachlichen ðArchitektur
nachgewiesen werden soll. Architekturzentriert Im Kontext des Entwicklungsprozesses bedeutet
dies, daß bereits der Entwicklungsprozeß die besonderen Gegebenheiten
der ðArchitektur
(Konzepte, Abstraktionen, Artefakte u. ä.) berücksichtigt. Artefakt Jede Art von Ergebnis oder Produkt im Rahmen des Entwicklunsgprozesses. Assoziation (UML: association) ð
gerichtete Assoziationen, ð
bidirektionale Assoziationen Eine Assoziation beschreibt eine Relation zwischen Klassen,
d. h. die gemeinsame Semantik und Struktur einer Menge von Objektbeziehungen.
Attribut (UML: attribute) Eine benannte Eigenschaft eines Typs. Ein Attribut ist ein
Datenelement, das in jedem Objekt einer Klasse gleichermaßen enthalten
ist und von jedem Objekt mit einem individuellen Wert repräsentiert wird.
Im Gegensatz zu Objekten haben Attribute außerhalb des Objektes, von dem
sie Teil sind, keine eigene Identität. Attribute sind vollständig
unter der Kontrolle der Objekte, von denen sie Teil sind. Audit Ein Audit ist eine Untersuchung einer Organisationseinheit
oder eines Projektes, um die Einhaltung und Wirksamkeit von Regelungen, Verfahren
und Standards zu ermitteln und zu dokumentieren. Aufwand Aufwand ist eine Größe der Dimension
[Zahl von Personen] * [Zeit]. Der Aufwand in einem Projekt ergibt sich als Integral
der ðProjektbesetzung
über eine jeweils vorgegebene Zeit. Der Gesamtaufwand des Projektes ist
auch der ðHerstellungsaufwand
des jeweiligen Produktes. Basisklasse ð
Oberklasse Build Eine gewöhnlich unvollständige und verübergehende
aber ausführbare Version des Systems. Change Management ð
Änderungsmanagement CRC-Karten (Klassenkarte) Karteikarten, auf denen der Name der Klasse (Class), ihre Aufgaben
(Responsibilities) und ihre Beziehungen (Collaborations) beschrieben werden. Datenabstraktion Hierunter versteht man das Prinzip, nur die auf ein Objekt
anwendbaren Operationen nach außen sichtbar zu machen. Die tatsächliche
innere Realisierung der Operationen und die innere Struktur des Objektes werden
verborgen, d. h. man betrachtet abstrakt die eigentliche Semantik und läßt
die tatsächliche Implementierung außer acht. Default-Implementierung ð
Standard-Implementierung Delegation ist ein Mechanismus, bei dem ein Objekt eine Nachricht nicht
(vollständig) selbst interpretiert, sondern an ein anderes Objekt weiterleitet
(propagiert). Design Mit (objektorientiertem) Design werden alle Aktiviäten
im Rahmen des Softwareentwicklungsprozesses bezeichnet, mit denen ein Modell
logisch und physisch strukturiert wird, und die beschreiben, wie
das System die in der ð
Analyse beschriebenen Anforderungen erfüllt. Domäne ð
Problembereich Domänenmodell ð
Klassenmodell Ein Modell, beispielsweise ein Klassenmodell, welches die fachlich
relevanten Sachverhalte repräsentiert, nicht aber technisch oder fachfremd
motivierte Sachverhalte. Entwurfsmuster Entwurfsmuster sind generalisierte Lösungsideen zu immer
wiederkehrenden Entwurfsproblemen. Sie sind keine fertig codierten Lösungen,
sie beschreiben lediglich den Lösungsweg. Ergebnistyp Ein Ergebnistyp ist ein abstrahiertes Ergebnis, d. h. es wird
damit definiert, welche Inhalte, Struktur und Form ein bestimmter Typ von Ergebnissen
hat (syntaktische und semantische Beschreibung). Zur Beschreibung des Ergebnistyps
gehören auch Aussagen zur Qualität und Granularität. Evolutionäres Vorgehen Vorgehen, bei dem ausgehend von zunächst unvollständigen
Anforderungen ein Ergebnis in mehreren aufeinander aufbauenden Zwischenschritten
erstellt wird. Exemplar ð
Objekt, ð
Instanz Fachabteilung Eine Organisationseinheit, die dem eigentlichen Geschäftszweck
einer Organisation dient. Sie ist Partner der Softwareentwicklung, artikuliert
Bedarf, Anforderungen und Änderungen für Anwendungen und nutzt Anwendungen.
Fachklassenmodell ð
Domänenmodell Ein Klassenmodell, das ausschließlich oder vorwiegend
fachlich motivierte Klassen enthält. Fachliche Architektur Ein Modell, daß die grundsätzlichen fachlichen Zusammenhänge
eines Anwendungsbereiches repräsentiert. Fehler Ein Fehler ist die Nicht-Erfüllung einer festgelegten
Anforderung. Fehlerrate Die Zahl der während einer spezifischen Aktivität
auftretenden Fehler. Die spezifische Aktivität ist z. B. eine Stunde Test,
eine Stunde Benutzung, die Durchführung eines Testfalls o. ä. Fertigstellungsgrad ist der bereits erbrachte Anteil vom Herstellungsaufwand. Ein
Fertigstellungsgrad von 70% besagt, daß noch 30% des Herstellungsaufwandes
zu leisten sind, bevor das Produkt vollständig hergestellt ist. Forward-Engineering ðReverse-Engineering beschreibt die Überführung eines Modells in eine
spezielle Programmiersprache, d. h. gewöhnlich die Erzeugung von Code. Funktionspunkte sind ein extrinsisches ðMaß
für den von außen sichtbaren Funktionsumfang und damit die Größe
eines Softwareprodukts, das keine wesentliche verborgene Funktionalität
enthält. Funktionspunkte sind von der International Function Points Users
Group [IFPUG94] standardisiert. Vgl. auch ðWidgetpunkte.
Generalisierung (UML: generalization)
ð
Spezialisierung /Konkretisierung Geschäftsobjekt ð
Businessobjekt Geschäftsfall ð
Geschäftsvorfall Geschäftsprozeß ð
Workflow Ein Geschäftsprozeß ist eine Zusammenfassung von
organisatorisch evtl. verteilten, fachlich jedoch zusammenhängenden Aktivitäten,
die notwendig sind, um einen Geschäftsvorfall (z. B. einen konkreten Antrag)
ergebnisorientiert zu bearbeiten. Die Aktivitäten eines Geschäftsprozesses
stehen gewöhnlich in zeitlichen und logischen Abhängigkeiten zueinander.
Ein Geschäftsvorfall entsteht gewöhnlich durch ein Ereignis (z. B.
Antragseingang). Geschäftsvorfall (Vorgang) Ein Geschäftsvorfall ist ein geschäftliches Objekt
(z. B. ein konkreter Vertrag), das durch ein Ereignis ausgelöst (z. B.
Antragseingang) durch die innerhalb eines Geschäftsprozesses beschriebenen
Aktivitäten bearbeitet wird. GUI Graphical User Interface, Grafische Benutzeroberfläche Herstellungsaufwand Der ðAufwand,
der erforderlich ist, um ein bestimmtes Produkt herzustellen. Herstellungszeit Die Zeitspanne zwischen dem Beginn der Produkterstellung und
ihrem Ende, auch Projektdauer. Heuristik Eine Heuristik ist eine mit einer Wahrscheinlichkeit behaftete
Regel ("Daumenregel"). Inkrement Ein Inkrement ist die Erweiterung eines Produktes.
Ein Inkrement ist gewöhnlich gekennzeichnet durch die Differenz zwischen
zwei ðBuilds. Inkrementelles Vorgehen Eine Vorgehensweise, bei der ein Produkt schrittweise in wachsenden
Zwischenprodukten entsteht. Instantiierung ist das Erzeugen eines Exemplars aus einer Klasse. Instanz (UML: instance) ð
Objekt, ð
Exemplar Für den Hausgebrauch können Instanz, Objekt und Exemplar
synonym betrachtet werden. In der UML 1.0 finden sich jedoch teilweise inkonsistente
Akzentuierungen. Integration Zusammenfügen von Teilsystemen oder Komponenten zu einem
Gesamtsystem. Integrationstest Überprüfung, ob die durch eine ðIntegration
zusammengefügten Einzelteile korrekt zusammenarbeiten und als Gesamtheit
funktionieren. Interaktionsdiagramm (UML: interaction diagram) Sammelbegriff für ð
Sequenzdiagramm, ð
Kollaborationsdiagramm, ð
Aktivitätsdiagramm. Invariante Eine Eigenschaft oder ein Ausdruck, der über den gesamten
Lebenszeitraum eines Elementes, z. B. eines Objektes gegeben sein muß. Inspektion Eine Sitzung zur Überprüfung einzelner
Dokumente und Ergebnisse. Vgl. ðReview. Iteration Eine Iteration ist ein in ähnlicher Weise mehrfach vorkommender
zeitlicher Abschnitt in einem Prozeß. Iteratives Vorgehen Ist eine Vorgehensweise, bei der der Entwicklungsprozeß
in mehrere gleichartige Zeitabschnitte zerlegt wird. Klasse (UML: class) Eine Klasse ist die Definition der Attribute, Operationen und
der Semantik für eine Menge von Objekten. Alle Objekte einer Klasse entsprechen
dieser Definition. Klassenbibliothek Eine Klassenbibliothek ist eine Sammlung von Klassen. Klassendiagramm (UML: class diagram) Ein Klassendiagramm zeigt eine Menge statischer Modellelemente,
vor allem Klassen und ihre Beziehungen. Kollaborationsdiagramm (UML: collaboration diagram) Eine Kollaborationsdiagramm zeigt eine Menge von
Interaktionen zwischen einer Menge ausgewählter Objekte in einer bestimmten
begrenzten Situation (Kontext) unter Betonung der Beziehungen zwischen den Objekten
und ihrer Topographie. Ähnlich dem ð
Sequenzdiagramm. Komponente (UML: component) Eine Komponente ist ein ausführbares Softwaremodul
mit eigener Identität und wohldefinierten Schnittstellen (Sourcecode, Binärcode,
DLL oder ausführbares Programm). Außerhalb der UML wird Komponente
häufig anders, mehr im Sinne eines ð
Paketes definiert. Vgl. ð
Anwendungskomponente. Komponentendiagramm (UML: component diagram) Ein Komponentendiagramm zeigt die Organisation
und Abhängigkeiten von ð
Komponenten. Komposition (UML: composite) ð
Aggregation Eine Komposition ist eine strenge Form der Aggregation, bei
der die Teile vom Ganzen existenzabhängig sind. Konfiguration Eine Konfiguration ist die Gesamtheit zusammenpassender Software-Elemente. Konfigurationseinheit nennt man jeden einzeln versionierten und verwalteten Teil
einer Software. In der Regel ist ein Entwickler für eine Konfigurationseinheit
verantwortlich. Konfigurationsdiagramm ð
Einsatzdiagramm Konfigurationskontrollsystem nennt man die Menge der Verfahren, Mechanismen und Werkzeuge,
mit denen Konfigurationseinheiten verwaltet werden. Konfigurationsmanagement Vorgehensweise zur Überwachung und Kontrolle von Programmänderungen
und -erweiterungen. Dazu gehört unter anderem die Festlegung der Systembestandteile
sowie die Versionierung und Freigabe. Legacy System Synonym für ein schwer wartbares, schwer anpaßbares
oder inkompatibles Alt-System. LOC Lines of Code ist ein intrinsisches ðMaß
für die Größe eines Software-Programms. LOC mißt die Zeilen
der textuellen Quelle (nicht dagegen die Zahl der Anweisungen). Wichtig ist
noch die Unterscheidung in Brutto-LOC (inklusive aller Kommentare und Leerzeilen)
und Netto-LOC (exklusive aller Kommentare und Leerzeilen) Makroschätzung Die ðSchätzung
des Herstellungsaufwandes anhand globaler Parameter von Projekt und Produkt.
Sie benutzt wesentlich die Produktgröße, um die Herstellungszeit
und/oder die notwendige Projektbesetung zu prognostizieren. Eine Makroschätzung
setzt also eine Produktschätzung voraus. Maß Ein Maß dient dazu, Größen und
Mengen festzustellen. Bei der ðMessung
der ðProduktgröße
von Software unterscheidet man zwischen intrinsischen und extrinsischen Maßen.
Intrinsische Maße beziehen sich auf innere, von der Software-Produktionsumgebung
abhängige Eigenschaften und sind deshalb nicht zwischen verschiedenen Umgebungen
übertragbar. Extrinsische oder äußere Maße abstrahieren
davon. Mehrfachvererbung ð
Multiple Vererbung Meilenstein Ein Meilenstein definiert einen Termin, zu dem eine Menge von
Ergebnissen in vorgegebener Detaillierung und Vollständigkeit nachprüfbar
und formal dokumentiert vorliegen soll. Ein Meilenstein ist ein Hilfsmittel
zur Planung und Überwachung eines Projektes. Messung Die Bestimmung einer Größe oder Menge
durch Vergleich mit einem ðMaß.
Das Ergebnis einer Messung wird als Produkt von Maßzahl und Maß
angegeben. Metamodell (UML: meta model) Ein Modell, das die Sprache definiert, mit der ein Modell definiert
werden kann. Methode Eine Methode ist eine Handlungsvorschrift die beschreibt, wie
ein Ziel bzw. Ergebnis unter gegebenen Bedingungen erreicht werden kann. Methode (UML: method) ð
Operation In Smalltalk werden Operationen Methoden genannt. In der UML
wird eine Methode als Implementierung einer Operation definiert. Für die
Praxis ist es unkritisch, Methode und Operation synonym zu verwenden. Methodologie Methodologie ist die Lehre von den ðMethoden. Methodik Bedeutsam klingendes Synonym für ðMethode. Metrik Eine Meßmethode. Zu einer Metrik oder Meßmethode
gehört ein ðMaß
und eine Anleitung, wie bei der Messung zu verfahren ist. Mikroschätzung Die Schätzung eines ðHerstellungsaufwandes
anhand detaillierter Eigenschaften von Projekt und Produkt. Zu den Eigenschaften
zählen sowohl die Summe aller Aktivitäten im Projekt, die ðProjektbesetzung
und Struktur als auch eine Zerlegung des Produkts in solche Teile, die innerhalb
einzelner Aktivitäten erstellt werden können. Nachricht (UML: message) ð
Operation, ð
Methode Nachricht ist ein Mechanismus, mit dem Objekte
untereinander kommunizieren können. Eine Nachricht überbringt einem
Objekt die Information darüber, welche Aktivität von ihm erwartet
wird, d. h. eine Nachricht fordert ein Objekt zur Ausführung einer Operation
auf. Eine Nachricht besteht aus einem Selektor (einem Namen), einer Liste von
Argumenten und geht an genau einen Empfänger. Der Sender einer Nachricht
erhält ggf. ein Antwort-Objekt zurück. Durch ð
Polymorphismus kann eine Nachricht zum Aufruf einer von mehreren gleichlautenden
ð Operationen führen. Nebenläufigkeit Zwei oder mehr Aktiviäten werden zeitgleich (parallel)
ausgeführt. Norm Eine Richtlinie ist die Vorgabe eines Handlungsmusters,
daß befolgt, oder einer Qualität, die eingehalten werden muß.
Sie dient dazu, unabhängig voneinander entstehende Artefakte mit einheitlichen
Eigenschaften oder Qualitäten herzustellen. Vgl. ðRichtlinie. Oberklasse, Superklasse, Basisklasse (UML:
superclass) ð
Generalisierung Eine Oberklasse ist eine Verallgemeinerung ausgewählter
Eigenschaften ihrer ð
Unterklasse(n). Objekt (UML: object) Ein Objekt ist eine konkret vorhandene und agierende
Einheit mit eigener Identität und definierten Grenzen, das Zustand und
Verhalten kapselt. Der Zustand wird repräsentiert durch die ð
Attribute und ð
Beziehungen, das Verhalten durch ð
Operationen bzw. ð
Methoden. Jedes Objekt ist Exemplar (Synonym: Instanz) einer Klasse. Das definierte
Verhalten gilt für alle Objekte einer Klasse gleichermaßen, ebenso
die Struktur ihrer Attribute. Die Werte der Attribute sind jedoch individuell
für jedes Objekt. Jedes Objekt hat eine eigene, von seinen Attributen u.
a. unabhängige, nicht veränderbare Identität. Objektbeziehung (UML: link) Eine konkrete Beziehung zwischen zwei Objekten,
d. h. die Instanz einer ð
Assoziation. Ein Objekt hat eine Beziehung zu einem anderen Objekt, wenn es
eine Referenz darauf besitzt. Implementiert werden diese Referenzen gewöhnlich
durch ð Attribute,
was für die Modellierung jedoch unerheblich ist. Objektdiagramm (UML: object diagram) Ein Diagramm, das Objekte und ihre Beziehungen
untereinander zu einem bestimmten Zeitpunkt zeigt. Gewöhnlich ein ð
Kollaborationsdiagramm oder eine spezielle Variante des ð
Klassendiagramms. Objektidentität ist eine Eigenschaft, die ein Objekt von allen anderen unterscheidet,
auch wenn es möglicherweise die gleichen Attributwerte besitzt. Object Engineering Process (OEP) Ein objektorientiertes, UML-basiertes konkretes Vorgehensmodell
(Prozeßleitfaden), siehe [OEP99]. Kommerzielles Produkt der Fa. oose.de
GmbH. OCL, Object Constraint Language Die OCL definiert eine Sprache zu Beschreibung von Zusicherungen,
Invarianten, Vor- und Nachbedingungen und Navigation innerhalb von UML-Modellen. OEP ð
Object Engineering Process OO ist die Abkürzung für Objektorientierung. OMG ist die Abkürzung für Object Management Group. Operation (UML: operation) ð
Methode, ð
Nachricht Operationen sind Dienstleistungen, die von einem
Objekt mit einer ð
Nachricht angefordert werden können, um ein bestimmtes Verhalten zu bewirken.
Sie werden implementiert durch ð
Methoden. In der Praxis werden Operation und Methode häufig synonym verwendet. Organisationseinheit Eine Gruppe von Personen innerhalb eines Unternehmens, die
eine definierte Rolle wahrnehmen. Die Organisationseinheit ist ein Element der
Aufbauorganisation des Unternehmens. Die unterste Ebene ist gewöhnlich
die Abteilung. Paket (UML: package) Pakete sind Ansammlungen von Modellelementen beliebigen Typs,
mit denen das Gesamtmodell in kleinere, überschaubare Einheiten gegliedert
wird. Ein Paket definiert einen Namensraum, d. h. innerhalb eines Paketes müssen
die Namen der enthaltenen Elemente eindeutig sein. Jedes Modellelement kann
in anderen Paketen referenziert werden, gehört aber zu genau einem (Heimat-)Paket.
Pakete können wiederum Pakete beinhalten. Das oberste Paket beinhaltet
das gesamte System. pattern, design pattern ð
Entwurfsmuster Persistentes Objekt Persistente Objekte (persistent: lat. "anhaltend") sind solche,
deren Lebensdauer über die Laufzeit einer Programmsitzung hinausreicht.
Die Objekte werden hierzu auf nichtflüchtigen Speichermedien (z. B. Datenbanken)
gehalten. Phase Eine Phase ist ein zeitlicher bzw. sachlogischer Gliederungsabschnitt
eines Projektes. Eine Phase faßt eine Menge von Aktivitäten und Ergebnissen
zu einer Planungs- und Kontrolleinheit zusammen. Am Ende jeder Phase steht ein
Meilenstein, der die in der Phase zu erzielenden Inhalte definiert. Pilot, Pilotprojekt Ein Pilot ist ein mit einer bestimmten Verfahrensweise
oder Architektur erstmals erstelltes vollständiges Ergebnis, mit dem gewöhnlich
die Brauchbarkeit nachgewiesen werden soll. Während ðPrototypen
nur ausgewählte Aspekte des endgültiges Produktes repräsentieren,
ist ein Pilot ein vollständiges und rahmenbedingungs-konformes Ergebnis.
Ein Pilotprojekt ist ein Projekt, mit dem ein Pilot erstellt werden soll. Polymorphismus Polymorphismus (Vielgestaltigkeit) heißt, daß gleichlautende
Nachrichten an kompatible Objekte unterschiedlicher Klassen ein unterschiedliches
Verhalten bewirken können. Beim dynamischen Polymorphismus wird eine Nachricht
nicht zur Compilierzeit, sondern erst beim Empfang zur Programmlaufzeit einer
konkreten Operation zugeordnet. Voraussetzung hierfür ist das dynamische
Binden. Problembereich ð
Domäne Anwendungsgebiet bzw. Problembereich, innerhalb dessen die
fachliche Modellierung stattfindet. Als Problembereichsmodell (Domänenmodell)
wird in der Regel der Teil des Gesamtmodells verstanden, der sich auf den eigentlichen
fachlichen Problembereich bezieht (auch fachliches Modell genannt). Technische,
querschnittliche u. ä. Aspekte gehören nicht dazu. Im Kontext von
Anwendungsarchitektur ist zumeist das fachliche Klassenmodell gemeint (d. h.
ohne Framework-, GUI-, Controler- u. ä. Klassen). Produktcontrolling ist das Nachprüfen und die daraus abgeleitete
Prognose qualitiativer Produkteigenschaften. Zu den qualitiativen Produkteigenschaften
zählen neben anderen Qualitätsmaßen die ðFehlerrate
und die ðProduktgröße.
Produktgröße wird entweder intrinsisch, dann in ðLOC,
oder extrinsisch, dann meist in ðFunktionspunkten,
gemessen. Siehe auch ðMaß.
In diesem Buch werden die ðWidgetpunkte
als weiteres extrinsisches Maß für die Produktgröße vorgeschlagen. Produktivität ist der Quotient aus Produktgröße und Herstellungsaufwand.
Da die Produktgröße extrinsisch oder intrinsisch angegeben werden
kann, gibt es auch zwei "Arten" von Produktivität: Die intrinsische oder
LOC-Produktivität und die "richtige" extrinsische Produktivität, die
eine Messung der Produktgröße in Funktionspunkten oder Widgetpunkten
voraussetzt. Projekt Ein Projekt ist ein einmaliges Vorhaben, daß zeitlich,
finanziell und personell begrenzt ist und zur Erreichung eines definierten Zieles
geschaffen wird. Ein Projekt verfügt über eine projektspezifische
Organisation. Projektbesetzung ist eine Kurve über der Zeit, die angibt,
wieviele Personen zur Zeit in einem Projekt arbeiten. Der ðAufwand
eines Projektes, z. B. auch der ðHerstellungsaufwand
eines Produktes, ergibt sich als Integral der Projektbesetzung über die
ðHerstellungszeit. Projektcontrolling ist das Nachprüfen des erbrachten ðAufwands,
der Vergleich mit dem ðFertigstellungsgrad
und die daraus abgeleitete Prognose für den weiteren Verlauf des Projekts.
Es liefert damit sozusagen die Positionsbestimmung des Projektleiters. Projektmanagement Gesamtheit der Aufgaben und Techniken zur Führung und
Organisation eines Projektes. Projektorganisation Gesamtheit der Organisationseinheiten eines Projektes. Gewöhnlich
setzt sich die Projektorganisation aus Bestandteilen der vorhandenen Betriebsorganisation
zusammen. Projektplan Ein Plan der den grundsätzlichen "Fahrplan"
des Projektes darstellt, er enthält ðMeilensteine
und beschreibt die vorgesehenen ðPhasen
und ðIterationen
des Projektes. Protokoll Eine Menge von ðSignaturen. Prototyp Ein Prototyp ist ein vorläufiges oder temporäres
Produkt, mit dem ausgewählte Eigenschaften oder Aspekte des zu entwickelnden
endgültigen Produktes erfahrbar und beurteilbar gemacht werden sollen.
Prototypen können explorativ sein, d. h. zur Erforschung eines Sachverhaltes
dienen, sie können experimentell sein, d. h. zur Überprüfung
der Machbarkeit oder Funktionsfähigkeit dienen, oder evolutionär sein,
d. h. vorab ein Teilprodukt bereitstellen. Prototyping Herstellung eines ðPrototyps. Prozeßmodell ðVorgehensmodell Qualität Grad der Erfüllung von geforderten Leistungen und Eigenschaften. Qualitätssicherung Maßnahmen, die zur Erlangung, Steigerung oder Kontrolle
von Qualität beitragen. Dazu gehören planerische Maßnahmen,
konstruktive Maßnahmen (Werkzeuge, Richtlinien, Konventionen etc.), analytische
Maßnahmen (Test, Validierung, Verfizierung). Ein Rahmenwerk ist eine Menge kooperierender Klassen, die unter
Vorgabe eines Ablaufes ("Don´t call the framework, the framework calls you")
eine generische Lösung für eine Reihe ähnlicher Aufgabenstellungen
bereitstellen. Rational Unified Process (RUP) Ein objektorientiertes, UML-basiertes konkretes Vorgehensmodell,
siehe [Kruchten98]. Kommerzielles Produkt der Fa. Rational Software. Refaktorisierung Umstrukturierung eines Systems zugunsten besserer Wart- oder
Erweiterbarkeit ohne Änderung der Funktionalität. Referentielle Integrität Regel, die die Integrität von Objektbeziehungen beschreibt,
vor allem für den Fall, daß eines der beteiligten Objekte oder die
Objektverbindung selbst gelöscht werden sollen. Regressionstest Hiermit wird die Wiederholung früherer Tests bezeichnet.
Er dient dazu, nachzuweisen, daß bereits zu einem früheren Zeitpunkt
korrekt vorhandene Systemfunktionalität immer noch vorhanden ist, auch
wenn zwischenzeitlich neue Funktionalität hinzugekommen ist. Release Ein ðBuild,
das an externe Anwender ausgeliefert werden kann. Restaufwandsschätzung Die Schätzung des noch verbleibenden ðHerstellungsaufwandes
zu einem fortgeschrittenen Zeitpunkt im Projekt, das ein bestimmtes Produkt
herstellt. Reverse-Engineering ðForward-Engineering,
ðRoundtrip-Engineering Hiermit bezeichnet man einen Vorgang, bei dem aus vorhandenem
Programmiersprachen-Code ein (visuelles) Modell erzeugt werden soll. Review Ein Review ist eine Sitzung zur kritischen Begutachtung des
aktuellen Projektstands auf Basis repräsentativer (Teil-)Ergebnisse mit
dem Ziel, den Status zu ermitteln und mögliche Beiträge zur weiteren
Problemlösung aufzunehmen. Richtlinie Eine Richtlinie ist die Vorgabe eines Handlungsmusters,
daß befolgt, oder einer Qualität, die eingehalten werden sollte.
Sie dient dazu, unabhängig voneinander entstehende ðArtefakte
mit einheitlichen, ähnlichen oder vergleichbaren Eigenschaften oder Qualitäten
herzustellen. Vgl. ðNorm. Roundtrip-Engineering ðForward-Engineering,
ðReverse-Engineering Hiermit bezeichnet man den Versuch, durch abwechselndes Forward-
und Reverse-Engineering Code und Modell permanent oder regelmäßig
konsistent zu halten. RUP ðRational
Unified Process Schätzung ist eine Prognose. Man kann die Größe eines Produktes
schätzen oder mit einer Projektschätzung den erforderlichen Aufwand
zur Herstellung des Produktes. Schnittstelle (UML: interface) ð
Schnittstellenklassen Schnittstellen beschreiben einen ausgewählten
Teil des extern sichtbaren Verhaltens von Modellelementen (hauptsächlich
von Klassen und Komponenten), d. h. eine Menge von ðSignaturen. Schnittstellenklasse Schnittstellenklassen sind ð
abstrakte Klassen (genauer: Typen), die ausschließlich ð
abstrakte Operationen definieren. Schnittstellenklassen sind Klassen, die mit
dem ð Stereotyp
Ğinterfaceğ gekennzeichnet sind. Sie sind Spezifikationen des extern
sichtbaren Verhaltens von Klassen und beinhalten eine Menge von ð
Signaturen für Operationen, die Klassen, die diese Schnittstelle bereitstellen
wollen, implementieren müssen. Schnittstellenvererbung Innerhalb einer ð
Spezialisierungsbeziehung wird lediglich eine ð
Schnittstelle vererbt. Sequenzdiagramm (UML: sequence diagram) Eine Sequenzdiagramm zeigt eine Menge von Interaktionen
zwischen einer Menge ausgewählter Objekte in einer bestimmten begrenzten
Situation (Kontext) unter Betonung der zeitlichen Abfolge. Ähnlich dem
ð Kollaborationsdiagramm.
Sequenzdiagramme können in generischer Form existieren (Beschreibung aller
möglichen Szenarien) oder in Instanzform (Beschreibung genau eines speziellen
ð Szenarios). SEU Software-Entwicklungsumgebung Signatur Die Signatur einer Operation setzt sich zusammen aus dem Namen
der Operation, ihrer Parameterliste und der Angabe eines evtl. Rückgabetyps. Software-Element Ein Software-Element ist die kleinste unteilbar zu behandelnde
und eindeutig zu identifizierende Einheit, die einem Änderungs- und Freigabeverfahren
unterworfen werden kann. Softwareentwicklungsplan Zusammenfassung aller zur Projekt- und Iterationsplanung notwendigen
Unterlagen und Ergebnisse. Spezialisierung, Generalisierung ð
Vererbung Eine Generalisierung (bzw. Spezialisierung) ist
eine taxonomische Beziehung zwischen einem allgemeinen und einem speziellen
Element (bzw. umgekehrt), wobei das speziellere weitere Eigenschaften hinzufügt,
die Semantik erweitert und sich kompatibel zum allgemeinen verhält. Generalisierung
und Spezialisierung sind Abstraktionsprinzipien zur hierarchischen Strukturierung
der Modellsemantik unter einem diskriminierenden Aspekt (ð
Diskriminator). Standard Eine ðRichtlinie
oder Konvention, um bestimmte Mindesteigenschaften sicherzustellen. Standard-Implementierung Konkrete Implementierung einer eigentlich abstrakten Operation,
um für Subklassen ein Standardverhalten bereitzustellen. Stereotyp (UML: stereotype) Stereotypen sind projekt-, unternehmens- oder
methodenspezifische Erweiterungen vorhandener Modellelemente des UML-Metamodells.
Entsprechend der mit der Erweiterung definierten Semantik wird das Modellierungselement,
auf das es angewendet wird, direkt semantisch beeinflußt. In der Praxis
geben Stereotypen vor allem die möglichen Verwendungszusammenhänge
einer Klasse, einer Beziehung oder eines Paketes an. Andere erweiternde Mechanismen
in der UML sind ð
Eigenschaftswerte und ð
Zusicherungen. (Duden: das Stereotyp). Subklasse (UML: subclass) ð
Unterklasse Subsystem ð
Komponente Ein Subsystem ist eine sehr große Komponente oder eine,
die sich aus einer Menge von Einzelkomponenten zusammensetzt. Diese Unterscheidung
ist für die Gliederung sehr großer Systeme hilfreich. Superklasse (UML: superclass) ð
Oberklasse System Bauhaus Das System Bauhaus war ein Netzwerk international bekannter
und im deutschsprachigen Raum tätiger unabhängiger Fachleute für
objektorientierte Systementwicklung. Systemtest ð
Integrationstest Szenario (UML: scenario) Ein Szenario ist eine spezifische Folge von Aktionen.
Beispielsweise ein konkreter Ablaufpfad in einem Anwendungsfall (sozusagen eine
Instanz des Anwendungsfalls). Vgl. ð
Sequenzdiagramm. Test Testen ist eine Tätigkeit mit der Absicht, Fehler zu finden.
Ein Test kann die Existenz eines Fehlers beweisen. Die Abwesenheit von Fehlern
ist nicht beweisbar. Typ (UML: type) Definition einer Menge von Operationen und Attributen.
Andere Elemente sind typkonform, wenn sie über die durch den Typen definierten
Eigenschaften verfügen. Wird in der Praxis häufig gleichgesetzt mit
der Beschreibung von ð
Schnittstellen. UML ð
Unified Modeling Language (UML) Unified Modeling Language (UML) Durch die Object Management Group (OMG) international standardisierte
Notation und Semantik zur Beschreibung von Software-Modellen. Unified Process
Unified Process ð
Unified Software Development Process (USDP) Unterklasse, Subklasse (UML: subclass) Eine Unterklasse ist die Spezialisierung einer Oberklasse und
erbt alle Eigenschaften der Oberklasse. USDP ð
Unified Software Development Process (USDP) Use case ð
Anwendungsfall Validierung Überprüfung, ob das richtige Ergebnis bzw. Produkt
hergestellt wurde. Verifizierung Überprüfung, ob ein Ergebnis bzw. Produkt richtig
ist, d. h. gegebene Anforderungen erfüllt. Vererbung (UML: inheritance)
ð Einfachvererbung,
ð Multiple Vererbung,
ð Multiple Klassifikation,
ð Dynamische Klassifikation Vererbung ist ein Programmiersprachenkonzept
für die Umsetzung einer Relation zwischen einer Ober- und einer Unterklasse,
wodurch Unterklassen die Eigenschaften ihrer Oberklassen mitbenutzen können.
Vererbung implementiert normalerweise ð
Generalisierungs- und Spezialisierungsbeziehungen. Alternativen: ð
Delegation, ð Aggregation,
ð generische Programmierung,
ð generisches Design. Verteilungsdiagramm (UML: deployment diagram) Ein Diagramm, welches die Konfiguration der zur
Laufzeit vorhandenen (eingesetzten) ð
Knoten und ihrer ð
Komponenten, Prozesse und Objekte zeigt. V-Modell Vorgehensmodell. Meistens wird damit das erstmalig
1992 in Form des "Softwareentwicklungsstandard der Bundeswehr" veröffentlichte
Vorgehensmodell bezeichnet. Vorgehensmodell Modellhafte und häufig formale Beschreibung, wie in Projekten
vorgegangen werden soll. Wartung ist derjenige Teil des Software-Lebenszyklus, der nach dem
Ende der Garantiezeit liegt. Hierunter werden auch Tätigkeiten verstanden,
die eine bestehende Anwendung verbessern, optimieren, reparieren oder überprüfen
mit dem Ziel, die Anwendung weiterhin bzw. besser nutzen zu können. Widget Ein Widget ist ein vorgefertigtes Oberflächenelement in
den Programmierumgebungen für moderne grafische Benutzungsoberflächen.
Der Programmierer benutzt es wie ein Bauteil, entweder deklarativ in einem Kompositionseditor
oder durch prozeduralen Aufruf. Widgetpunkte sind ein extrinsisches ðMaß
für den Funktionsumfang und damit die die Größe eines Softwareprodukts.
Widgetpunkte werden in diesem Buch definiert. Siehe auch ðFunktionspunkte. Workflow ð
Geschäftsprozeß Ein Workflow ist die computergestützte Automatisierung
und Unterstützung eines Geschäftsprozesses oder eines Teils davon. Zusicherung (UML: constraint) Eine Zusicherung ist ein Ausdruck, der die möglichen
Inhalte, Zustände oder die Semantik eines Modellelementes einschränkt,
und der stets erfüllt sein muß. Bei dem Ausdruck kann es sich um
ein ð Stereotyp
oder um ð Eigenschaftswerte
handeln, um eine freie Formulierung (ð
Notiz) oder um eine ð
Abhängigkeitsbeziehung. Zusicherungen in Form reiner boolescher Ausdrücke
werden auch ð assertions
genannt. Zustandsdiagramm (UML: state diagram, state machine) Ein Zustandsdiagramm zeigt eine Folge von Zuständen, die
ein Objekt im Laufe seines Lebens einnehmen kann und aufgrund welcher Stimuli
Zustandsänderungen stattfinden. Ein Zustandsdiagramm beschreibt eine hypothetische
Maschine (Endlicher Automat), die sich zu jedem Zeitpunkt in einer Menge endlicher
Zustände befindet.