Bernd Oestereich (Hrsg) / P. Hruschka / N. Josuttis / H. Kocher / H. Krasemann / M. Reinhold

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).

Rahmenwerk (UML: framework)

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.