Software-Metriken. Moderne Softwareentwicklung SS Software-Metriken. Wolfgang Globke. Betreuer: Olaf Seng. 18. Juni 2005

Größe: px
Ab Seite anzeigen:

Download "Software-Metriken. Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Betreuer: Olaf Seng. 18. Juni 2005"

Transkript

1 Seminar Moderne Softwareentwicklung SS 2005 Software-Metriken Wolfgang Globke Betreuer: Olaf Seng 18. Juni 2005 Zusammenfassung Software-Metriken liefern Kennzahlen von Programmelementen oder Systemen, die bei der Beurteilung der inneren Qualität eines Software-Produktes helfen sollen, also derjenigen Qualitätsaspekte, die für den Software-Entwickler relevant sind. Da eine Metrik nur eine ganz bestimmte Eigenschaft des Produktes misst, muss man ihren Wert geeignet interpretieren, um Aussagen über die Qualität machen zu können. Für eine Metrik ist also experimentell nachzuweisen, dass sie in zuverlässiger Weise das misst, was sie messen soll. Wir werden hier einige der klassischen Metriken und einige Metriken für objektorientierte Systeme kennenlernen. Insbesondere bei letzteren werden wir sehen, dass sie dann besonders mächtig sein können, wenn man sie geschickt kombiniert und in einem geeigneten Qualitätsmodell auswertet. 1

2 Inhaltsverzeichnis 1 Einführung 3 2 Metriken in der Qualitätssicherung Qualität in der Softwaretechnik Qualitätsmodelle und Metriken Eigenschaften von Metriken Axiomensysteme für Metriken Klassifikation von Metriken Schwierigkeiten beim Einsatz von Metriken Einige klassische Metriken Lines-Of-Code Die Halstead-Metrik Die McCabe-Metrik Objektorientierte Metriken Kopplung Kohäsion Vererbung Größe und strukturelle Komplexität Anwendung: Erkennen von Problemen im objektorientierten Entwurf Strategien Das Factor-Strategy-Modell Ausblick und Zusammenfassung 15 2

3 1 Einführung Eines der Ziele jeglicher Software-Entwicklung muss es sein, möglichst fehlerfreie und qualitativ hochwertige Produkte zu entwickeln. Es ist die Aufgabe der Qualitätssicherung, die wünschenswerten Qualitätsziele zu ermitteln und geeignete Maßnahmen zu treffen, um diese Ziele zu erreichen. Dies umfasst insbesondere das Prüfen von Produkten und Zwischenergebnissen auf vorher festgelegte Qualitätsmerkmale. Software-Metriken stellen dabei ein wichtiges Hilfsmittel der Qualitätssicherung dar. Sie ermöglichen das Auffinden kritischer Teile des entwickelten Systems und können sogar konkrete Hinweise auf Verbesserungsansätze liefern, wenn sie nur in einem geeigneten Rahmen zur Anwendung kommen. In Kapitel 2 werden wir zunächt in sehr allgemeiner Form erklären, was wir unter Metriken verstehen und welche Eigenschaften sie haben können. Anschließen betrachten wir in den Kapiteln 3 und 4 einige Beispiele von verbreiteten Metriken. In Kapitel 5 werden wir sehen, wie man zu einem konkreten System von Metriken kommt, das es ermöglicht, Schwächen im Entwurf eines objektorientierten Systems aufzuspüren. 2 Metriken in der Qualitätssicherung In diesem Abschnitt werden wir Metriken einführen, ihre Rolle bei der Qualitätssicherung von Software erläutern und einige Eigenschaften von Metriken betrachten. Wenn wir im Folgenden von (Programm-)Elementen sprechen, so meinen wir damit die grundlegenden Strukturen einer Programmiersprache, etwa Klassen bei objektorientierten Sprachen oder Funktionen und Module bei imperativen Sprachen. Wir identifizieren dabei ein Programmelement stets mit seinem Quellprogramm. Das System entspricht der Gesamtheit aller Programmelemente. 2.1 Qualität in der Softwaretechnik In der Qualitätsicherung ist man naturgemäß daran interessiert, die Qualität eines Software- Produktes in irgendeiner Weise greifbar zu machen. Eine formale Definition scheint wenig sinnvoll, da dieser Begriff sehr abstrakt ist und es viele verschiedene Auffassungen darüber gibt, was Qualität ist. So ist es etwa denkbar, dass ein Programm technisch hervorragend umgesetzt ist, aber seine Funktionalität nicht den Ansprüchen des Kunden genügt. Die Entwickler und die Abnehmer des Programms würden seine Qualität dementsprechend unterschiedlich einschätzen. In dieser Arbeit betrachten wir die innere Qualität, d.h. die Qualität vom Standpunkt des Entwicklers aus gesehen. Die zentrale Frage ist dabei, wie leicht sich die Entwicklungsarbeit an dem Software-Produkt heute und zukünftig gestaltet. Es geht also beispielsweise um Aspekte wie Verständlichkeit und Wiederverwendbarkeit der einzelnen Teile des Systems. 3

4 2.2 Qualitätsmodelle und Metriken Um die Qualität eines Software-Produktes beurteilen zu können, benötigt man ein Qualitätsmodell, in dem die einzelnen Aspekte der Qualität greifbar gemacht werden. Ein solches Qualitätsmodell ist das Factors-Criteria-Metrics-Modell, kurz FCM- Modell. Hierbei werden einzelne relevante Qualitätsmerkmale (engl. factors) herausgearbeitet, die widerspiegeln sollen, wie die Qualität vom Benutzer empfunden wird. Die Qualitätsmerkmale sollen sich wiederum in leichter zu messenden Teilmerkmale (engl. criteria) aufteilen lassen. Die einzelnen Qualitätsmerkmale und ihre Teilmerkmale kann man sich dabei in einer baumähnlichen Struktur angeordnet vorstellen. Die Teilmerkmale sollen dabei in Beziehung zu gewissen messbaren Eigenschaften eines Programmelementes stehen. Metriken sind Funktionen, die bestimmten Eigenschaften eines Programmelementes, das in Form seiner Quelldatei vorliegt, numerische Werte zuweisen. Die folgende Grafik aus [Mar02] zeigt dies exemplarisch für das Qualitätskriterium Maintainability. Factor Maintainability Criteria Analyzability Changeability Stability Testability Metrics WMC NBC DepMeth FanIn FanOut COMF Encap Usable Special Autonom NOC COBC CDUsers Testab CDUsed Bei der Auswertung wird man zuerst für jedes Teilmerkmal einen Wert berechnen, der sich als Funktion aus den von den Metriken gemessenen Werten ergibt. Beim Aufstellen dieser Funktion muss man sich auf die Erfahrung der Entwickler verlassen. Diese müssen die gemessenen Werte interpretieren können, um Schlüsse daraus zu ziehen, in welcher Weise ein Teilmerkmal ausgeprägt ist. Daraus leitet man eine heuristische Bewertungsfunktion für das entsprechende Merkmal ab. Anhand der Werte dieser Funktion kann man dann ein Qualitätsurteil für das Teilmerkmal bestimmen. In analoger Weise errechnet man aus den Bewertungen der Teilmerkmale eine Bewertung des übergeordneten Qualitätsmerkmals. 4

5 Die Ergebnisse für die einzelnen Qualitätsmerkmale können in einem Bericht zusammengefasst werden, aus dem zu entnehmen ist, in welchen Bereichen die Qualität zu wünschen übrig lässt und welche Elemente dafür verantwortlich sind. In Abschnitt 5.2 werden wir ein modifiziertes FCM-Modell kennenlernen, das zusätzlich noch Informationen über Verbesserungsansätze liefert. 2.3 Eigenschaften von Metriken Unsere Definition einer Metrik ist recht vage. Dies kommt daher, dass wir Metriken nicht durch ihre Eigenschaften definiert haben, sondern durch die Aufgabe, die sie bei der Qualitätsbeurteilung erfüllen sollen. Wir betrachten nun einige Eigenschaften, die Metriken idealerweise erfüllen sollten, um ihrer Aufgabe gerecht zu werden. Will man eine bestimmte Eigenschaft E messen, so ist ein intuitives Verständnis dieser Eigenschaft notwendig, um eine empirische Ordnung zu erhalten, die das Verhältnis zweier (vergleichbarer) Programmelemente P 1 und P 2 bezüglich dieser Eigenschaft beschreibt. Ist die gemessene Eigenschaft beispielsweise Länge des Programms in Codezeilen (LOC, siehe Abschnitt 3.1), so würde man als empirische Ordnung ist länger als erhalten. Ist m eine Metrik, die E misst, so ist es wünschenswert, dass die gemessenen numerischen Werte m(p 1 ) und m(p 2 ) die empirische Ordnung zwischen P 1 und P 2 wiedergeben, oder formal ausgedrückt m(p 1 ) < m(p 2 ) P 1 P 2. Dies ist die sogenannte Darstellungsbedingung, weitere Ausführungen dazu finden sich in [Fen94]. Die Validierung von m ist die empirische Überprüfung, ob m die Darstellungbedingung erfüllt. Das genaue Vorgehen bei der Validierung hängt nicht zuletzt davon ab, welchen Zweck die Metrik erfüllen soll. Eine angemessene Erläuterung wäre hier zu umfangreich, weswegen wir dafür auf [BBM95], [Fen90] und [KC85] verweisen. Viele gängige Software-Metriken erfüllen die Darstellungsbedingung jedoch nicht. Dies bedeutet keineswegs, dass diese Metriken unbrauchbar sind, jedoch sind die von ihnen gelieferten Messungen oft nur als grobe Anhaltspunkte zu sehen. Beispiele hierfür sind die Metriken aus Kapitel 3. Da diese Metriken aber oft sehr einfach umzusetzen und für den praktischen Bedarf hinreichend genau sind, erfreuen sie sich dennoch großer Beliebtheit. In [Bal98] werden weitere wünschenswerte Eigenschaften von Metriken aufgezählt. Objektivität Die Metrik sollten unabhängig von subjektiven Einflüssen des Messenden sein. Zuverlässigkeit Die Metrik liefert bei gleichen Voraussetzungen immer das gleiche Ergebnis. Normierung Die Metrik bildet auf eine Skala ab, die den Vergleich verschiedener Messergebnisse erlaubt. 5

6 Wirtschaftlichkeit Die Messung sollte mit möglichst geringem Aufwand durchzuführen sein. Nützlichkeit Die gemessene Eigenschaft sollte in einem Zusammenhang mit einem Qualitätsmerkmal stehen und es sollte (heuristische) Regeln dafür geben, wie man aus dem Messwert auf die Qualität zurückschließt. Wie stark eine dieser Eigenschaften für eine Metrik ausgeprägt sein muss, ist auch vom Verwendungszweck abhängig. 2.4 Axiomensysteme für Metriken Mehrere Autoren haben versucht, die Ansprüche, die man an Metriken hat, durch ein Axiomensystem zu formalisieren. Das attraktive an diesem Ansatz ist, dass man logisch überprüfbare Kriterien erhält, eine Metrik zu validieren (und sich im bequemsten Fall die experimentelle Validierung ersparen kann). Am bekanntesten davon sind wohl die von Weyuker in [Wey88] vorgeschlagenen Axiome. Diese Axiomensysteme beschreiben aber bestenfalls notwendige und keine hinreichenden Bedingungen für Metriken, so dass sie in der Regel weder bei der Bestimmung neuer Metriken noch bei der Validierung bereits bekannter Metriken hilfreich sind. Die meisten nichttrivialen Axiomensysteme haben sich auch als in sich widersprüchlich herausgestellt, siehe [Fen94] und [KS97]. 2.5 Klassifikation von Metriken Es gibt verschiedene Dimensionen, nach denen sich Metriken klassifizieren lassen. 1. Eine direkte Metrik m dir berechnet einen Wert m dir (P) für eine zu untersuchende Eigenschaft eines Programmelementes P. Eine indirekte Metrik m ind ergibt sich als Funktion m ind = f(m dir 1,..., m dir ) von direkten Metriken. k So ist beispielsweise die Anzahl der Fehler in einem Programm ist eine direkte Metrik, aus der man die Anzahl der Fehler pro tausend Quellcodezeilen als indirekte Metrik berechnen kann. 2. Die Metriken unterscheiden sich durch ihren Abstraktionsgrad. Welche Stufen es dabei im einzelnen gibt, hängt von dem konkreten Software-Produkt ab bzw. davon, wie es entwickelt wird. So könnte man beispielsweise beim objektorientierten Entwurf folgende Stufen unterscheiden: Systemebene: Diese Metriken berücksichtigen die Gesamtheit aller Klassen oder auch Module. Sie sind in der Regel indirekte Metriken, die sich aus Metriken von niederen Abstraktionsstufen berechnen lassen. Modulebene: Lässt sich das ganze System in Module aufteilen, so kann man Teile davon betrachten, die logisch zusammenhängen. 6

7 Klassenebene: Auf dieser Ebene werden Zusammenhänge, wie etwa die Vererbungsstrukturen, zwischen den Klassen innerhalb eines Moduls betrachtet. Methodenebene: Auf dieser Ebene werden Funktionalität, Umfang und Komplexität einer einzelnen Klasse untersucht. 2.6 Schwierigkeiten beim Einsatz von Metriken Beim Einsatz von Metriken gibt es eine Reihe von Schwierigkeiten, die teilweise durch unsachgemäße Anwendung zustandekommen, teilweise aber auch fundamentale Probleme sind. Das erste ist sicherlich der Fall, wenn man ungenau definierte Metriken verwendet oder nicht in der Lage ist, ein Messergebnis sinnvoll zu interpretieren. Wie in [Jon94] beschrieben ist es beispielsweise sinnlos, die Lines-Of-Code-Metrik (Abschnitt 3.1) zur Beurteilung zweier Software-Produkte heranzuziehen, die in sehr unterschiedlichen Programmiersprachen wie Assembler und Ada entwickelt wurden. Zu den fundamentalen Problemen gehört beispielsweise, dass man für eine bestimmte Eigenschaft, die man messen will, keine sinnvolle (berechenbare) Metrik finden kann. So gibt es keine bekannte Metrik, die die Komplexität eines Programms misst und dabei sämtliche Aspekte dieses Begriffs berücksichtigt. Vielmehr gibt es viele Metriken, die nur einen ganz bestimmten Aspekt der Komplexität messen, wie etwa die Metriken aus 3. 3 Einige klassische Metriken Den sehr allgemein gehaltenen Begriffen aus Abschnitt 2 soll nun durch einige Beispiele Leben eingehaucht werden. 3.1 Lines-Of-Code Die Lines-Of-Code-Metrik, kurz LOC, misst die Anzahl der Zeilen im Quellcode eines Programms. Dabei liegt die Annahme zugrunde, dass die Unübersichtlichkeit des Quellcodes mit seiner Länge ansteigt. Es liegt auf der Hand, dass diese Annahme nur eine sehr grobe Näherung der Realität darstellt. Zwei Zeilen Quellcode können sich beispielweise in ihrer Übersichtlichkeit stark unterscheiden, oder eine zusätzliche Kommentarzeile kann die Übersichtlichkeit fördern, zu viele nichtssagende Kommentarzeilen jedoch können kontraproduktiv sein. Von LOC gibt es daher mehrere Varianten, in denen etwa die Kommentarzeilen nicht berücksichtigt werden oder anstelle der Zeilen die Anweisungen im Quellcode gezählt werden. Vergleicht man also Programmelemente, die mit LOC gemessen wurden, so muss man stets darauf achten, dass die selbe Variante von LOC gemeint ist. Es ist offensichtlich, dass LOC nur in sehr eingeschränktem Maße dafür geeignet ist, Quellcode in verschiedenen Programmiersprachen zu vergleichen. Jones zeigt in [Jon94] an einen Beispiel, dass die erwarteten Kosten pro Codezeile beim Umstieg von Assembler 7

8 auf Ada83 ansteigen, wenn man LOC als Grundlage der Berechnung nimmt, obwohl die Produktivität in Wirklichkeit um ein Vielfaches erhöht wird. 3.2 Die Halstead-Metrik Unter dem Namen Halstead-Metrik fasst man eine Reihe von Kennzahlen zusammen, die Größe und Komplexität des Codes widerspiegeln sollen. Diese Kennzahlen basieren auf der Anzahl der unterschiedlichen im Quellcode verwendeten Operanden und Operatoren und auf der Gesamtzahl der verwendeten Operanden und Operatoren. Als Operator wird jedes Symbol oder Schlüsselwort bezeichnet, dass eine Aktion kennzeichnet, z.b. +, if, (. Operanden sind alle übrigen Symbole, also Variable, Sprungmarken, Konstanten usw. Zur Verdeutlichung betrachten wir ein kleines Programm, das Fakultäten berechnet. Die Operatoren sind fett gedruckt, die Operanden unterstrichen. int fak(int n) { if (n == 0) return 1; return n * fak(n - 1); } Zur Halstead-Metrik gehören folgende Kennzahlen: n = Anzahl der unterschiedlichen Operatoren m = Anzahl der unterschiedlichen Operanden N = Gesamtzahl der verwendeten Operatoren M = Gesamtzahl der verwendeten Operanden Daraus ergeben sich weitere Kennzahlen: M +N ist die Länge der Implementierung, m+n entspricht der Größe des verwendeten Vokabulars. Als Schwierigkeit, ein Programm zu lesen, ist S = n 1 2 M m zu verstehen. Der Quotient M beschreibt, wie oft ein Operand im Mittel verwendet wird. m Die Halstead-Metrik hat den Vorteil, dass sie sehr leicht zu ermitteln ist. Allerdings gibt es hier ähnliche Probleme wie bei LOC: Die Vergleichbarkeit von Software, die in verschiedenen Programmiersprachen geschrieben wurde, ist im Allgemeinen nicht gegeben, und die Interpretation der Größe S als Schwierigkeit setzt die grob vereinfachende Annahme voraus, dass diese nur von n, m und M abhängt. Dabei wird nur der lineare Aufbau des Quellcodes berücksichtigt, nicht aber Verschachtelungen oder Verzweigungen beim Programmablauf. 8

9 3.3 Die McCabe-Metrik Mit der McCabe-Metrik will man die strukturelle Komplexität eines Programmes ermitteln, d.h. man will insbesondere auch Verzweigungen beim Programmablauf berücksichtigen. Dabei orientiert man sich an einem Kontrollflussgraphen G und drückt die Komplexität durch die sogenannte zyklomatische Zahl zyk(g) = e v + 2c, wobei e die Anzahl der Kanten von G ist, v die Anzahl der Knoten und c die Anzahl der verbundenen Programmelemente ist. Ein verbundenes Programmelement ist hierbei ein einzelner (Teil-)Kontrollflussgraph, der eine Prozedur oder Funktion darstellen kann. Ein Programm, das ohne Aufruf von Prozeduren oder Funktionen abläuft, würde demnach aus einem einzigen verbundenen Element bestehen (also c = 1). In diesem Fall kann man die zyklomatische Zahl allein durch die Anzahl b der Verzweigungen im Graphen bestimmen: zyk(g) = b + 1. Schleife Auswahl zyk(schleife) = = 2 zyk(auswahl) = = 2 Auch die McCabe-Metrik zeichnet sich durch ihre leichte Berechenbarkeit aus. Aber auch hier stellt die Reduktion der Komplexität auf eine einzige Zahl eine grobe Vereinfachung dar. Jede Verzweigung im Quellcode trägt im gleichen Maße zur gemessenen Komplexität bei, obwohl sicher nicht jede Verzweigung im gleichen Maße zur intuitiv empfundenen Komplexität des Programms beiträgt. 4 Objektorientierte Metriken Die klassischen Metriken aus Abschnitt 3 entspringen einer funktionsorientierten Sichtweise der Programmierung. Bei der objektorientierten Entwicklung kommen aber einige neue Freiheitsgrade hinzu, die die Komplexität eines Systems beeinflussen, wie etwa die Abstraktion in Klassen, 9

10 Vererbung, Kapselung und Polymorphismus. Diese Aspekte werden von den klassischen Metriken nur unzulänglich berücksichtigt. Wendet man etwa die McCabe-Metrik auf die Methoden einer Klasse an, so wird man häufig den minimalen Wert zyk(g) = 1 erhalten, da die meisten Methoden nur wenige und einfach strukturierte Anweisungen enthalten. Die Komplexität ergibt sich vielmehr aus der Anzahl und dem Zusammenspiel der Klassen und Methoden. Um der veränderten Lage Herr zu werden, wurde eine Vielzahl von auf objektorientierte Systeme spezialisierten Metriken vorgeschlagen. Diese Metriken sind in der Regel einfache Zählmetriken, die bei geeigneter Kombination für verschiedene Messziele von Nutzen sein können. Solche Ziele könnten etwa sein, gegebenen Code besser zu verstehen, wiederverwendbare Elemente zu identifizieren oder Schwächen im objektorientierten Entwurf aufzudecken. Bei der Auswahl der in den folgenden Abschnitten vorgestellten Metriken orientieren wir uns an [Mar02] und den dort zitierten Quellen. Wir ordnen die Metriken denjenigen Aspekten der Objektorientierung zu, die die Komplexität maßgeblich beeinflussen: Kopplung, Kohäsion, Vererbung und strukturelle Komplexität. 4.1 Kopplung Die Kopplung beschreibt die Verbundenheit der Elemente (etwa Klassen oder Pakete) eines Systems. Eine starke Kopplung entspricht starken Abhängigkeiten zwischen den Elementen, was die Wiederverwendung erschwert. Auch die Verständlichkeit wird beeinträchtigt, da für das Verständnis einer Klasse das Verständnis vieler anderer Klassen vorausgesetzt wird. Daher ist eine niedrige Kopplung wünschenswert. Coupling Between Objects (CBO) zählt die Anzahl der Klassen, auf deren Dienst eine bestimmte Klasse zugreift. Dies ist unabhängig davon, wie oft auf eine andere Klasse zugegriffen wird. Number Of Services (NOS) zählt die Anzahl der Dienste (d.h. der verschiedenen aufgerufenen Methoden) die eine bestimmte Klasse von anderen Klassen in Anspruch nimmt. Number Of Accesses (NOA) zählt alle Zugriffe einer bestimmten Klasse auf andere Klassen. 4.2 Kohäsion Unter Kohäsion oder Bindung verstehen wie den Grad an Verknüpfung zwischen den einzelnen Teilen eines Programmelements (also in der Regel einer Klasse). Eine niedrige Kohäsion lässt erfahrungsgemäß darauf schließen, dass in einer Klasse mehrere Funktionalitäten implementiert wurden. Solche Klassen enthalten in der Regel viele Methoden, die semantisch nicht zusammenhängen. Dies erschwert einerseits das Verständnis der 10

11 Klasse, andererseits aber auch die Wiederverwendbarkeit. Daher ist eine hohe Kohäsion wünschenswert. Lack Of Cohesion in Methods (LCOM) soll ein Maß für den Mangel an Kohäsion sein. Es ist definiert durch die Differenz zwischen der Anzahl der Paare von Methoden einer Klasse, die eine gemeinsame Instanzvariable verwenden, und der Anzahl der Paare, die das nicht tun. Wie sich herausstellt, ist diese Definition nicht ganz zufriedenstellend, weshalb inzwischen mehrere Verbesserungen für diese Metrik vorgeschlagen wurden. Eine dieser Verbesserung legt den Begriff einer perfekten Kohäsion zugrunde und misst LCOM als prozentualen Anteil an der perfekten Kohäsion. Tight Class Cohesion (TCC) ist die Anzahl derjenigen Methoden einer Klasse, die mindestens eine gemeinsame Instanzvariable verwenden. Loose Class Cohesion (LCC) ist die Anzahl derjenigen Methoden einer Klasse, die mindestens eine gemeinsame Instanzvariable verwenden oder die durch Aufruf anderer Methoden indirekt eine gemeinsame Instanzvariable verwenden. 4.3 Vererbung Es ist wichtig, die Vererbungsstruktur zu untersuchen, wobei man die Tiefe der Vererbungshirarchie und die Anzahl der Knoten misst. Eine Idee dahinter ist, dass eine gut strukturierte Klassenhierarchie eher ein Wald von Vererbungsbäumen ist, als eine lange Kette von erbenden Klassen. Anders ausgedrückt hat eine Klasse, die in der Vererbungshierarchie sehr tief steht, eine größere Chance, fehlerhaft zu sein, weil sie viel Funktionalität von ihren Vorgängern erbt. Die Messung der Vererbungsstruktur kann sowohl auf der Klassenals auch auf der Systemebene sinnvoll sein. Depth Of Inheritance (DIT) ist die Anzahl der Oberklassen einer bestimmten Klasse. Auf Systemebene kann man eine gemittelte DIT bestimmen. Number Of Descendants (NOD) ist die Anzahl aller Klassen, die eine bestimmte Klasse als Oberklasse haben. Reuse Ratio ist auf der Systemebene das Verhältnis der Anzahl der Oberklassen zur Gesamtzahl aller Klassen. Ein Wert nahe bei 1 deutet auf einen lineare Vererbungskette und folglich auf schlechtes Design hin. Ein Wert nahe bei 0 lässt auf eine sehr flache Vererbungshierarchie schließen. Specialization Ratio ist das Verhältnis der Anzahl aller Unterklassen zur Anzahl aller Oberklassen. 4.4 Größe und strukturelle Komplexität Anhand dieser Metriken lassen sich einerseits Klassen ausfindig machen, die eine wichtige Rolle im Entwurf spielen, aber auch Klassen, die überdimensioniert oder zu komplex sind. 11

12 Weighted Methods per Class (WMC) misst die Komplexität einer Klasse K mit n Methoden, indem jeder Methode ein Gewicht κ i zugeordnet und über die Methoden summiert wird: n WMC(K) = κ i. Dabei soll für die Bestimmung von κ i ein je nach Anwendung sinnvolles Komplexitätsmaß verwendet werden. Number Of... Metriken, die Anzahl und Umfang von bestimmten Elementen des Systems messen, sind immer nützlich. Man kann auf der Systemebene etwa die Anzahl der Klassen in Relation zur Anzahl der abstrakten und nicht-abstrakten Klassen bestimmen, auf der Methodenebene kann man die Länge von Methoden messen um herauszufinden, ob eine Klasse zu große Methoden hat, um noch hinreichend objektorientiert zu sein. Eine zu große oder zu niedrige Zahl an Methoden in einer Klasse kann ein Hinweis darauf sein, dass gewissen Klassen aufgeteilt bzw. mit anderen Klassen zusammengelegt werden sollten. i=1 5 Anwendung: Erkennen von Problemen im objektorientierten Entwurf In diesem Abschnitt wollen wir eine Vorgehensweise für den praktischen, zielorientierten Einsatz von Metriken betrachten. Wir wählen als instruktives Beispiel das Vorgehen, das Marinescu in seiner Dissertation [Mar02] beschreibt. Sein Vorgehen hat zum Ziel, in einem objektorientierten System durch geschickte Kombination von Metriken zu sogenannten Erkennungsstrategien (Abschnitt 5.1) die Schwächen im Entwurf ausfindig zu machen. Dabei liefert eine Strategie eine Menge von Elementen des Systems, die ein bestimmtes Defizit aufweisen. Das zugrundeliegende Qualitätsmodell soll darüberhinaus noch Ansätze für Verbesserungen liefern. Unter einem Entwurfsproblem verstehen wir im Folgenden eine strukturelle Eigenschaft eines Programmelementes, die abweicht von gewissen Kriterien, die eine Regel für den guten Entwurf charakterisieren. Eine Fülle von konkreten Beispielen findet sich in [Mar02]. 5.1 Strategien Eine der wesentlichen Schwierigkeiten bei der Anwendung von Metriken ist die Interpretation der Messergebnisse im Hinblick auf ein bestimmtes Messziel, in unserem konkreten Fall das Erkennen von Entwurfsproblemen. Da eine einzelne Metrik für sich genommen in der Regel nur eine geringe Aussagekraft hat, stellt sich die Frage, wie Metriken geeignet zu kombinieren sind, um relevante Informationen zu liefern. 12

13 Unter einer Erkennungsstrategie s zur Aufdeckung eines bestimmten Entwurfsproblems verstehen wir hier eine Liste m 1,..., m n von Metriken mit jeweils einem zugehörigen Datenfilter F i und eine Verknüpfungsvorschrift für die Metriken. Dies soll im Folgenden genauer erläutert werden. Dazu sei K die Menge der Programmelemente auf einer bestimmten Abstraktionsebene des zu untersuchenden Systems (wir können uns K als die Menge der Klassen des Systems vorstellen, aber das Vorgehen ist auch auf jeder anderen Abstraktionsebene denkbar). Der zur Metrik m i gehörige Filter F i liefert diejenigen Elemente F i (K) K, die außergewöhnliche Werte hinsichtlich m i aufweisen. Ein Filter kann beispielsweise die Elemente mit den größten bzw. kleinsten Werten für m i liefern ( Higher Than, Bottom Values usw.), oder Elemente, deren Werte in einem vorgegebenen Intervall liegen ( Between(x,y) ). Damit die Metriken in ihrer Kombination die Eigenschaften einer Entwurfsregel (bzw. ihrer mangelhaften Anwendung) wiedergeben können, benötigen wir zusätzlich eine Verknüpfungsregel für die gefilterten Mengen F 1 (K),..., F n (K), nach deren Anwendung wir die Menge s(k) derjenigen Elemente erhalten, die gegen die Entwurfsregel verstoßen. Als grundlegende Verknüpfungen verwendet man and (d.h. ), or (d.h. ) und butnot (d.h. \ ). Wir wollen diese recht abstrakte Beschreibung durch ein Beispiel verdeutlichen. Dazu betrachten wir eine Erkennungsstrategie, die sogenannte Gott-Klassen aufspüren soll. Dabei handelt es sich um Klassen, die einen großen Teil der Funktionalität des Systems in sich vereinigen, und anderen Klassen nur kleinere Details überlassen. Dies wirkt sich nachteilhaft auf Verständlichkeit und Wiederverwendbarkeit aus. Wir machen die folgenden Eigenschaften von Gott-Klassen aus: Sie greifen auf viele leichtgewichtige Klassen zu, sie sind groß und haben eine niedrige Kohäsion. Für die Strategie verwenden wir die Metriken Access To Foreign Data (ATFD), Weighted Method Count (WMC) und Tight Class Cohesion (TCC). Kleine und stark gebundene Klassen sollen dabei ignoriert werden. Das ergibt folgende Verknüpfungsregel: s Gott-Klassen :=( ATFD, TopValues(20%) ATFD, HigherThan(4) ) ( WMC, HigherThan(20) TCC, LowerThan(0.33) ) Ein umfangreicher Katalog weiterer Entwurfsprobleme und der zugehörigen Erkennungsstrategien findet sich in [Mar02]. Beim Anwenden einer Strategie s geht man wie folgt vor: 1. Man wendet die Strategie auf alle Elemente K K an und erhält eine Menge s(k) von verdächtigen Elementen. 2. Man untersucht die Elemente aus s(k), ob sie wirklich an dem entsprechenden Entwurfsmangel leiden, oder die Strategie s womöglich zu ungenau definiert wurde, um den Mangel aufzuspüren. Bei der Definition von Strategien sind natürlich auch subjektive Einflüsse enthalten, da für das genaue Festlegen der Parameter von s Erfahrung und Augenmaß der Tester bzw. Entwickler vonnöten sind. 13

14 5.2 Das Factor-Strategy-Modell Das in Abschnitt 2.2 vorgestellte FCM-Modell ist in der Lage, Qualitätsmängel zu erkennen und die verantwortlichen Programmelemente zu identifizieren. Es ermöglicht aber in der Regel nicht, Ursachen für die Probleme zu finden. Dies kommt daher, dass der Zusammenhang von Qualitäts(teil)merkmalen zu Entwurfsregeln (und somit auch zu konkreten Entwurfsproblemen) nicht explizit im Modell vorhanden ist, d.h. es ist nicht oder nur schwer möglich, Schlüsse darüber zu ziehen, gegen welche Entwurfsregel verstoßen wurde. Als Folge davon kann das FCM-Modell auch keine Hinweise darauf liefern, wie der Entwurf verbessert werden kann. Marinescu schlägt daher folgende Modifikation des FCM-Modells vor: Die übergeordneten Qualitätsmerkmale werden nicht in Teilmerkmale zerlegt, sondern ihnen werden Erkennungsstrategien zugeordnet, die jeweils zur Aufdeckung eines bestimmten Entwurfsproblems geeignet sind, das dem entsprechenden Qualitätsmerkmal abträglich ist: Factor Strategy Metric Q-Merkmal 1 Q-Merkmal 2. Q-Merkmal n s 1 s 2. s k m 1 m 2. m l Da jede Strategie einem konkreten, klar umrissenen Entwurfsproblem entspricht, kann man die mindere Qualität unmittelbar an diesem festmachen und weiß somit auch, wo man bei der Verbesserung des Entwurfs ansetzen muss. Man beachte, dass das FS-Modell, obwohl es im objektorientierten Kontext definiert wurde, sich im Prinzip auf jedes Entwicklungsmodell übertragen ließe. Wir skizzieren nun, wie die Auswertung der Messergebnisse im FS-Modell erfolgt. 1. Bewertung der Qualitätsmerkmale: Einem bestimmten Qualitätsmerkmal Q seien im FS-Modell die Strategien s 1,...,s m zugeordnet. Zuerst wird eine Teilbewertung für jede einzelne Strategie s j ermittelt. Man könnte beispielsweise die Anzahl s j (K) der mängelbehafteten Programmelemente im Verhältnis zu Gesamtzahl K aller Programmelemente als Bewertung zu wählen. Denkbar ist auch eine unterschiedliche Gewichtung der einzelnen Metriken von s j. Sind alle Strategien bewertet, so kann man aus den einzelnen Bewertungen eine Gesamtbewertung für Q bestimmen. Dabei kann man die Teilbewertungen nach der Wichtigkeit der jeweiligen Strategie (also der Bedeutung des zugehörigen Entwurfsproblems) gewichten. Hieraus erhält man durch eine vorgegebene Tabelle eine qualitative Bewertung von Q. 14

15 2. Ursachen für Entwurfsprobleme identifizieren: Wie bereits erwähnt entspricht jede Erkennungsstrategie s j einem Entwurfsproblem und ihre Anwendung liefert eine Menge s j (K) von Elementen, bei denen dieses Problem auftritt. Ist also s j (K) für ein j, so tritt dieses Problem im System K auf, und die Elemente von s j (K) sind gerade die Elemente, die man verändern muss, um das Problem zu beseitigen. 6 Ausblick und Zusammenfassung Metriken stellen ein nützliches Hilfsmittel der Qualitätssicherung dar. Dabei ist es wichtig, die von den Metriken gelieferten Daten sinnvoll zu interpretieren. Wie man sich anhand des FS-Modells klarmachen kann, sind Metriken dann besonders mächtig, wenn sie in geeigneter Weise kombiniert werden, da sie dann sehr konkrete Hinweise auf Schwächen im Software-Entwurf liefern können. Es gibt eine Vielzahl von Metriken, insbesondere für objektorientierte Systeme. Wichtig ist die Konstruktion und Implementierung von Systemen, die diese Metriken kombinieren können, um zu leistungsfähigen Hilfsmitteln beim Aufdecken von Entwurfsproblemen zu werden. In Kapitel 5 haben wir ein solches System kurz kennengelernt. Von Interesse sind dabei Möglichkeiten, das System noch flexibler zu gestalten, und die Integration in kommerzielle Entwicklungsumgebungen. In dieser Arbeit haben wir unsere Betrachtungen auf Metriken beschränkt, die die statische Struktur eines Software-Produktes im Hinblick auf die innere Qualität untersuchen. Ebenso gibt es aber auch Metriken, die verwendet werden, um die Prozesse bei der Software-Entwicklung zu beurteilen. Solche Metriken sind vorrangig von betriebswirtschaftlichem Interesse, man findet einiges dazu in [Bal98] und [Pre99]. 15

16 Literatur [Bal98] Helmut Balzert. Lehrbuch der Software-Technik (Bd. 2): Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung. Spektrum Akademischer Verlag, [BBM95] Victor Basili, Lionel Briand, and Walcelio Melo. A Validation of Object-Oriented Desing Metrics as Quality Indicators. Technical Report, University of Maryland, Department of Computer Science, [Fen90] [Fen94] Norman Fenton. Software metrics: theory, tools and validation. Software Engineering Journal, Norman Fenton. Software Measurement: A Neccessary Scientific Basis. IEEE Transactions of Software Engineering vol 20 no 3, [Jon94] Capers Jones. Software metrics: Good, bad and missing [KC85] [KS97] Dennis Kafura and James Canning. A Validation of Software Metrics Using Many Metrics and Two Resources Barbara Kitchenham and J.G. Stell. The danger of using axioms in software metrics. IEE Proceedings no , [Mar02] Radu Marinescu. Measurement and Quality in Object-Oriented Design. radum/papers.html, [Pre99] Lutz Prechelt. Ausgewählte Kapitel der Softwaretechnik. prechelt/swt2/skript.html, [Wey88] Elaine Weyuker. Evaluating software complexity measures. IEEE Transactions on Software Engineering vol 14 no 9,

17 Index Abstraktionsgrad, 6 Axiome, 6 Bindung, 10 criteria, 4 Darstellungsbedingung, 5 direkt, 6 Element, 3 empirische Ordnung, 5 Entwurfsproblem, 12 Erkennungsstrategie, 12 factor, 4 Factors-Criteria-Metrics, 4 Filter, 13 Programmelement, 3 Qualität, 3 innere, 3 Qualitätsmerkmal, 4 Qualitätsmodell, 4 System, 3 Teilmerkmale, 4 Validierung, 5 Verknüpfungsregel, 13 Wirtschaftlichkeit, 6 Zuverlässigkeit, 5 zyklomatische Zahl, 9 Halstead-Metrik, 8 indirekt, 6 innere Qualität, 3 Klassifikation, 6 Kohäsion, 10 Kopplung, 10 Lines-Of-Code, 7 LOC, 7 McCabe-Metrik, 9 Metrik, 4 Halstead-, 8 LOC, 7 McCabe-, 9 objektorientierte, 10 Nützlichkeit, 6 Normierung, 5 Objektivität, 5 Operand, 8 Operator, 8 Ordnung empirische, 5 17

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle Software- und smodelle Software- Klassische Objektorientierte Seminar Moderne Softwareentwicklung SS 2005 Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte

Mehr

SWE12 Übungen Software-Engineering

SWE12 Übungen Software-Engineering 1 Übungen Software-Engineering Software-Qualitätssicherung / Software-Qualitätsmanagement 2 Aufgabe 1 Ordnen Sie die folgenden Zitate dem entsprechenden Ansatz zum Qualitätsbegriff zu und begründen Sie

Mehr

Verwendung von OO-Metriken zur Vorhersage

Verwendung von OO-Metriken zur Vorhersage Verwendung von OO-Metriken zur Vorhersage Tobias Angermayr Übersicht 1. Definitionen 2. Gründe, Anforderungen, Ziele 3. Die CK-Metriken 4. Beobachtungen 5. Studie 6. Zusammenfassung Folie 2 Definitionen

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 26 Software-Metriken Josef Adersberger Marc Spisländer Lehrstuhl für Software Engineering

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Qualitätsmanagement im Projekt

Qualitätsmanagement im Projekt Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert <email@henningsievert.de> Seminar Software-Entwurf WS 2004/05

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert <email@henningsievert.de> Seminar Software-Entwurf WS 2004/05 Software-Metriken Dipl.-Ing.(BA) Henning Sievert Seminar Software-Entwurf WS 2004/05 Gliederung Einordnung in den Seminar-Kontext Grundlegende Definitionen Klassifikation von

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

QM: Prüfen -1- KN16.08.2010

QM: Prüfen -1- KN16.08.2010 QM: Prüfen -1- KN16.08.2010 2.4 Prüfen 2.4.1 Begriffe, Definitionen Ein wesentlicher Bestandteil der Qualitätssicherung ist das Prüfen. Sie wird aber nicht wie früher nach der Fertigung durch einen Prüfer,

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition LinguLab GmbH Bedienungsanleitung Allgemeine Definition LinguLab GmbH T: +49.711.49030.370 Maybachstr. 50 F: +49.711.49030.22.370 70469 Stuttgart E: mba@lingulab.de I: www.lingulab.de Inhaltsverzeichnis

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Hinweise: Bearbeitungszeit: 90 Minuten Erlaubte Hilfsmittel: im Anhang, sonst keine Bitte notieren Sie Ihre Antworten ausschließlich auf dem Aufgabenblatt!

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN) 1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN) D A S S O L L T E N N A C H E U R E M R E F E R A T A L L E K Ö N N E N : Kostenfunktion, Erlösfunktion und Gewinnfunktion aufstellen, graphisch

Mehr

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Forschen - Schreiben - Lehren

Forschen - Schreiben - Lehren Forschen - Schreiben - Lehren Kontakt: Mareike Gronich mgronich@uni-bielefeld.de Fach/Fachgebiet: Germanistik Art der Lehrveranstaltung: Seminar Ausgangspunkt Geschütztes konstruktives Peer-Feedback in

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Bilanz und GuV. Einrichtung: Tips, Empfehlungen und Fehlerbeseitigung

Bilanz und GuV. Einrichtung: Tips, Empfehlungen und Fehlerbeseitigung ...durch Wissen zum Erfolg Bilanz und GuV Einrichtung: Tips, Empfehlungen und Fehlerbeseitigung Mit der BUSINESSLINE -Fibu haben Sie ein sehr leistungsfähiges Fibu-Programm erworben, das Ihnen nicht nur

Mehr

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten Outsourcing Advisor Bewerten Sie Ihre Unternehmensanwendungen auf Global Sourcing Eignung, Wirtschaftlichkeit und wählen Sie den idealen Dienstleister aus. OUTSOURCING ADVISOR Der Outsourcing Advisor ist

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 2010 Mit Folienmastern arbeiten PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die

Mehr

Alle gehören dazu. Vorwort

Alle gehören dazu. Vorwort Alle gehören dazu Alle sollen zusammen Sport machen können. In diesem Text steht: Wie wir dafür sorgen wollen. Wir sind: Der Deutsche Olympische Sport-Bund und die Deutsche Sport-Jugend. Zu uns gehören

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Korrelation. Übungsbeispiel 1. Übungsbeispiel 4. Übungsbeispiel 2. Übungsbeispiel 3. Korrel.dtp Seite 1

Korrelation. Übungsbeispiel 1. Übungsbeispiel 4. Übungsbeispiel 2. Übungsbeispiel 3. Korrel.dtp Seite 1 Korrelation Die Korrelationsanalyse zeigt Zusammenhänge auf und macht Vorhersagen möglich Was ist Korrelation? Was sagt die Korrelationszahl aus? Wie geht man vor? Korrelation ist eine eindeutige Beziehung

Mehr

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Meet the Germans Lerntipp zur Schulung der Fertigkeit des Sprechens Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten Handreichungen für die Kursleitung Seite 2, Meet the Germans 2. Lerntipp

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Physik & Musik. Stimmgabeln. 1 Auftrag

Physik & Musik. Stimmgabeln. 1 Auftrag Physik & Musik 5 Stimmgabeln 1 Auftrag Physik & Musik Stimmgabeln Seite 1 Stimmgabeln Bearbeitungszeit: 30 Minuten Sozialform: Einzel- oder Partnerarbeit Voraussetzung: Posten 1: "Wie funktioniert ein

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ

DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ Kurzfassung DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ Mag. Klaus Grabler 9. Oktober 2002 OITAF Seminar 2002 Kongresshaus Innsbruck K ennzahlen sind ein wesentliches Instrument

Mehr

Simulation (vormals Feldversuch) Cico im Gelenkbus

Simulation (vormals Feldversuch) Cico im Gelenkbus Simulation (vormals Feldversuch) Cico im Gelenkbus Projekt Cico im VRR / Smart Via 3.0 Auswertung 1 Inhalt 1.1 Inhaltsverzeichnis Kapitel Seite 1 Inhalt... 2 1.1 Inhaltsverzeichnis... 2 2 Vorbemerkungen...

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Gestaltung wissenschaftlicher Poster

Gestaltung wissenschaftlicher Poster Gestaltung wissenschaftlicher Poster Andreas Schoknecht INSTITUT FÜR ANGEWANDTE INFORMATIK UND FORMALE BESCHREIBUNGSVERFAHREN (AIFB) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Fragebogen: Abschlussbefragung

Fragebogen: Abschlussbefragung Fragebogen: Abschlussbefragung Vielen Dank, dass Sie die Ameise - Schulung durchgeführt haben. Abschließend möchten wir Ihnen noch einige Fragen zu Ihrer subjektiven Einschätzung unseres Simulationssystems,

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Korrigenda Handbuch der Bewertung

Korrigenda Handbuch der Bewertung Korrigenda Handbuch der Bewertung Kapitel 3 Abschnitt 3.5 Seite(n) 104-109 Titel Der Terminvertrag: Ein Beispiel für den Einsatz von Future Values Änderungen In den Beispielen 21 und 22 ist der Halbjahressatz

Mehr

Insiderwissen 2013. Hintergrund

Insiderwissen 2013. Hintergrund Insiderwissen 213 XING EVENTS mit der Eventmanagement-Software für Online Eventregistrierung &Ticketing amiando, hat es sich erneut zur Aufgabe gemacht zu analysieren, wie Eventveranstalter ihre Veranstaltungen

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

A1.7: Entropie natürlicher Texte

A1.7: Entropie natürlicher Texte A1.7: Entropie natürlicher Texte Anfang der 1950er Jahre hat Claude E. Shannon die Entropie H der englischen Sprache mit einem bit pro Zeichen abgeschätzt. Kurz darauf kam Karl Küpfmüller bei einer empirischen

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Was bringt TDD wirklich?

Was bringt TDD wirklich? Was bringt TDD wirklich? Wissensspritze vom 6..2009, Christian Federspiel Catalysts GmbH McCabe Metrik CCN Die Cyclomatic Complexity Number, misst die Anzahl der möglichen Pfade durch einen Code. Die Metrik

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Dokumentation für Inventur

Dokumentation für Inventur Dokumentation für Inventur dvc Computing, Software Service GmbH Kapitel 1 - Lagerstand merken Allgemein: Die Inventur wird im Programm AFL Lager Inventurprogramme aufgerufen. Für die Durchführung der Inventur

Mehr

Werte und Grundsätze des Berufskodexes für interkulturell Dolmetschende. Ethische Überlegungen: Was ist richtig? Wie soll ich mich verhalten?

Werte und Grundsätze des Berufskodexes für interkulturell Dolmetschende. Ethische Überlegungen: Was ist richtig? Wie soll ich mich verhalten? Werte und Grundsätze des Berufskodexes für interkulturell Dolmetschende Ethische Überlegungen: Was ist richtig? Wie soll ich mich verhalten? 1 Was ist «Moral»? «ETHIK» und «MORAL» Moralische Grundsätze

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint Bilingual konkret Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint Moderner Unterricht ist ohne die Unterstützung durch Computer und das Internet fast

Mehr

Daten sammeln, darstellen, auswerten

Daten sammeln, darstellen, auswerten Vertiefen 1 Daten sammeln, darstellen, auswerten zu Aufgabe 1 Schulbuch, Seite 22 1 Haustiere zählen In der Tabelle rechts stehen die Haustiere der Kinder aus der Klasse 5b. a) Wie oft wurden die Haustiere

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr