Architekturanalyse mit Sotograph

Größe: px
Ab Seite anzeigen:

Download "Architekturanalyse mit Sotograph"

Transkript

1 Westfälische Wilhelms-Universität Münster Ausarbeitung Architekturanalyse mit Sotograph im Rahmen des Seminars Qualitätssicherung in der Software-Entwicklung Jan P. Heck Themensteller / Betreuer: Prof. Dr. Herbert Kuchen Institut für Wirtschaftsinformatik Praktische Informatik in der Wirtschaft

2 Inhaltsverzeichnis 1 Motivation der Architekturanalyse Grundlagen der Architekturanalyse Ziel und Funktionsweise des Sotographen Konzept der Abstraktionsebenen Definition der Subsystem- und Architekturmodelle Werkzeuge des Sotographen Werkzeuggestützte Architekturanalyse mit Sotograph Architektur-Smells Architektur-Smells in Delegations- / Vererbungsbeziehungen Architektur-Smells auf Package-Ebene Architektur-Smells auf Subsystem-Ebene Architektur-Smells zwischen Schichten Werkzeuggestützte Architekturanalyse Metrikbasierte Architekturanalyse Zyklenbasierte Architekturanalyse Trendanalyse der Architektur Zusammenfassung und Ausblick Anhang A Software-Qualität Anhang B Architekturmodell Literaturverzeichnis II

3 Kapitel 1: Motivation der Architekturanalyse 1 Motivation der Architekturanalyse In der Praxis steht meist im Mittelpunkt einer Software-Entwicklung, dass die Software nach Fertigstellung funktionsfähig ist. Die zugrunde liegende Architektur rückt dabei oftmals in den Hintergrund. Ein wesentliches Merkmal für die Qualität einer Software ist jedoch die Software-Architektur, da sie das Grundgerüst dieser darstellt. Dabei reicht die zweckmäßige Definition einer den Anforderungen entsprechenden Architektur indes nicht aus, weil auch die Realisierung dieser Architektur im Entwicklungsprozess und ihr Erhalt bei Wartungsarbeiten im Evolutionsverlauf der Software geprüft werden muss. Ziel dieser Ausarbeitung ist es, die im Rahmen der Software-Entwicklung auftretenden Architekturprobleme zu beschreiben und den vom Software-Produkts Sotograph geleisteten Beitrag zur Qualitätssicherung im Rahmen der Realisierung von Software- Architekturen darzustellen. Dazu sollen die verschiedenen Analysemöglichkeiten erläutert und deren Möglichkeiten zur Verbesserung der Software-Qualität dargestellt werden. Im Folgenden werden zunächst die Grundlagen der Architekturanalyse und die hierzu notwendigen Konzepte eingeführt. Dabei wird auch der dieser Arbeit zugrunde liegende Qualitätsbegriff erarbeitet und insbesondere eine Abgrenzung der unterschiedlichen Arten der Qualitätsbetrachtung vorgenommen. Im anschließenden Kapitel werden häufig auftretende Architekturprobleme dargestellt und in Bezug dazu die wesentlichen - durch den Sotographen realisierbaren - Möglichkeiten zur Lokalisierung von Qualitätsproblemen im Hinblick auf die Software-Architektur erläutert und an Analysebeispielen veranschaulicht. Abschließend wird zu den Möglichkeiten einer Verbesserung der Qualitätssicherung durch die Verwendung des Sotographen Stellung genommen und dieser bewertet werden. 2 Grundlagen der Architekturanalyse Bei der Betrachtung von Software gilt es im Rahmen dieser Ausarbeitung in Anlehnung an [Ba00] zwischen dem Software-System, das die innere Sichtweise eines Software- Entwicklers beschreibt und dem Software-Produkt, das die Software aus Sicht des Kunden oder Auftraggebers von außen betrachtet und den Funktionsumfang beschreibt, zu differenzieren. [Ba00, S. 24] Das Grundgerüst eines Software-Systems bildet dabei eine Software-Architektur, die allgemein betrachtet die Strukturen eines Software-Systems 3

4 Kapitel 2: Grundlagen der Architekturanalyse durch Systemkomponenten und deren Beziehungen zueinander beschreibt. [Ba00, S.696] Die Software-Architektur ist, nach in der Literatur (z.b. [Si04], [Bo00]) verbreiteter Definition, im Anschluss an [BCK03, S. 3] folgendermaßen definiert: The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationship among them. Im Zuge der Software-Entwicklung treten verschiedene Situationen auf, die eine qualitative Überprüfung der Software-Architektur notwendig machen: Überprüfung der Qualität eines (Teil-) Software-Systems, das zur Weiterentwicklung oder zur Integration in ein Gesamtsystem verwendet werden soll; Prüfung der Auswirkungen einer Veränderung (What-If-Analyse) im Zusammenhang mit dem Refactoring eines Software-Systems; [LR04, S. 253] Kontinuierliche Qualitätsprüfung im Entwicklungsprozess im Hinblick darauf, ob die Architekturvorgaben eingehalten worden sind. [SM06a, S. 1] Die Software-Qualität ist nach DIN ISO 9126 definiert als [ ] die Gesamtheit der Merkmale und Merkmalswerte eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. [Ba98, S. 257] Folgende Qualitätsmerkmale sind hierbei festgelegt: Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit und Übertragbarkeit. [Ba98, S. 257 f.] Zu differenzieren ist bei der Betrachtung der Software-Qualität zwischen der - hier im Kern betrachteten - Architektur- und der Codequalität. Die Architekturqualität - beschrieben durch die konzeptionelle Integrität der Bestandteile, die Fehlerfreiheit und Vollständigkeit des Modells sowie dessen Realisierbarkeit - spielt insbesondere für die Zuverlässigkeit, Effizienz, Änderbarkeit und Übertragbarkeit eines Software-Produkts eine zentrale Rolle. [BCK03, S. 96 f.] Hierbei wird die Software-Architektur mit zunehmender Größe und Evolution der Software komplexer und unübersichtlicher, gewinnt zugleich aber für die Qualität der Software an Bedeutung. Von der Architekturqualität abzugrenzen ist die Codequalität, welche die Umsetzung der geforderten Funktionalität im Quellcode angibt und demzufolge die Funktionalität und Benutzbarkeit der Software determiniert. (Zur Veranschaulichung der Software-Qualität vgl. Anhang A.) Der Sotograph ist ein kommerzielles Produkt der Software Tomography GmbH [ST06], der das Ziel verfolgt, Anwendungen automatisiert hinsichtlich der Software-Qualität zu 4

5 Kapitel 2: Grundlagen der Architekturanalyse analysieren. Dabei werden Anwendungen die auf Basis von Java oder C/C++ entwickelt wurden - beziehungsweise werden - unterstützt. Auf diese Weise soll hinsichtlich der inneren Code- und Architekturqualität Transparenz für den Nutzer entstehen. [BBS03, S. 22] Bei der Überprüfung der Zweckmäßigkeit der Architekturvorgabe bezüglich der Erfüllung der fachlichen Anforderungen ist eine Automatisierung nur bedingt möglich, weshalb diese Aufgabe dem Modellierer der Architektur obliegt. Jedoch lässt sich im Rahmen eines Soll-Ist-Vergleiches ermitteln, inwieweit eine Architekturvorgabe in der Entwicklung eingehalten wird. Dadurch wird bei einer den Anforderungen entsprechenden, zweckmäßigen Architekturvorgabe die Software-Qualität automatisiert quantifizierbar. Im Weiteren wird von einem Software-System auf Basis der Programmiersprache Java ausgegangen; die einzelnen Analysen lassen sich analog auch auf anderen Systemen, die in einer der durch den Sotographen unterstützten, objektorientierten Programmiersprache realisiert sind, durchführen. Vollständige Analysen zur Qualitätssicherung der Architektur von Software-Systemen lassen sich nicht mit Hilfe der durch eine integrierte Entwicklungsumgebung - wie etwa Eclipse oder Visual Studio.NET - bereitgestellten Werkzeuge realisieren. Deren Analysemöglichkeiten (z.b. Ermittlung nicht verwendeter Methoden oder Informationen darüber, welche Systemteile beim Umbenennen einer Klasse betroffen sind) bewegen sich auf Ebene des Quellcodes. Architekturvorgaben werden auf höheren Abstraktionsebenen definiert. Zur Erzeugung aussagekräftiger Informationen über die Qualität der Software-Architektur ist es notwendig, die definierte Architekturvorgabe möglichst automatisiert - mit der realisierten Software-Architektur zu vergleichen. Die Definition einer Architekturvorgabe wird vom Sotographen unterstützt und in den Abschnitten 2.2 und 2.3 detailliert erläutert. Die mit dem Sotographen hinsichtlich der Code- und Architekturqualität erstellten Analysen lassen sich durch die Erweiterungen Sotoweb und Sotoreport direkt in den Entwicklungsprozess einbinden. Die hiermit erstellten Berichte ermöglichen es, die Mächtigkeit des Sotographen [bezüglich der Analysemöglichkeiten] auf eine einfache Darstellungsebene zu reduzieren [ST06], wodurch dem individuellen Informationsbedarf des jeweiligen Analysten Rechnung getragen werden kann. 5

6 Kapitel 2: Grundlagen der Architekturanalyse 2.1 Ziel und Funktionsweise des Sotographen Ziel des Sotographen in Hinblick auf die Architekturqualität ist es nicht, die Qualität der Architekturvorgabe hinsichtlich ihrer Erfüllung der fachlichen und technischen Anforderungen zu prüfen, sondern einen Vergleich zwischen der Architekturvorgabe und deren Realisierung im Software-System zu erstellen, um so die realisierte Architekturqualität analysieren zu können. [BCK03, S. 6-14] Bei der Durchführung einer Analyse mit dem Sotographen wird - wie Abbildung 1 veranschaulicht - in einem ersten Schritt das zentrale Repository des Sotographen durch Angabe der entsprechenden Pfade bzw. JAR-Dateien des zu analysierenden Software- Systems mit den im Byte- oder Quellcode enthaltenen Informationen gefüllt (Extraktion). Dabei kommen verschiedene Quellcodeparser zur Extraktion der für die Analyse notwendigen Fakten zum Einsatz. Abbildung 1: Ablauf einer Software-Architektur im Sotographen Ist der Quellcode nicht nur der Bytecode - des analysierten Systems bekannt bzw. wird die Analyse direkt auf Basis des Quellcodes durchgeführt, kann die Ursache für die gefundene Architekturabweichung bei den einzelnen Analysen direkt im Quellcode angezeigt werden. Beim Einlesen werden die verschiedenen Typen von Artefakten (z.b. Klassen, Packages, etc.) sowie verschiedene Arten von Referenzen (Methodenaufruf, Attributbenutzung, Vererbungsbeziehung) zwischen den Artefakten erkannt und in der Datenbank gespeichert. [SM06b, S. 3-5; BW04, S. 242] Zentraler Ausgangspunkt bei jeder Analyse ist die MySQL- Datenbank (Daten- Repository), in der alle notwendigen Informationen über das zu analysierende Software- System enthalten sind (Speicherung). Eine Datenbank bietet neben der Möglichkeit der dauerhaften, zuverlässigen Speicherung von integrierten großen Datenmengen [Ba00, S. 6

7 Kapitel 2: Grundlagen der Architekturanalyse 743] den Vorteil, dass der Anwender mittels der Structured Query Language (SQL) individuelle Abfragen erstellen kann, über welche die durch den Sotographen mitgelieferten Metriken erweitert oder verändert werden können und somit individuelle Analysen realisierbar sind. Zu diesem Zweck ist das zugrunde liegende Datenmodell für den Benutzer des Sotographen zugänglich. Die mit dem Sotographen durchgeführten Architekturanalysen sind statisch: Es findet zu einem fixen Zeitpunkt ein Vergleich zwischen einem Ist- und Soll-Modell statt. Diese Soll-Vorgabe muss neben der Extraktion von Informationen aus dem Quellcode in Form eines Subsystems - und darauf aufbauend eines Architekturmodells - manuell definiert werden (Abschnitt 2.3). Auf Basis dieser Angaben werden die in der Umsetzung auftretenden Soll-Ist-Abweichungen analysiert. [BBS03, S. 22] Die durch eine Analyse auf Basis der verschiedenen Werkzeuge (Abschnitt 2.4) gewonnenen Ergebnisse werden in tabellarischer oder grafischer Form aufbereitet, wobei die Resultate verschiedener Analysen in grafischen Darstellungen kombiniert werden können (Bericht). Neben den Ergebnisberichten der einzelnen Version eines Software- Produktes kann im Rahmen einer Trendanalyse (Abschnitt 3.2.3) auch ein Vergleich zwischen den verschiedenen Versionen zur Betrachtung der Veränderungen im zeitlichen Verlauf erstellt werden. 2.2 Konzept der Abstraktionsebenen Eine Verletzung der Architekturvorgabe entsteht auf Befehlsebene, da jeder Methodenaufruf, jede Attributverwendung oder sonstige Nutzung eines anderen Artefaktes nonkonform zur vorgegebenen Architektur sein kann. Eine Interpretation der Analyseergebnisse auf Befehlsebene dagegen würde eine vollkommene Informationsüberflutung für den Analysten bedeuten. Zwar muss die Analyse jeden einzelnen Programmbefehl in Bezug auf die Konformität mit der Architekturvorgabe überprüfen, für den Benutzer sind die Ergebnisse jedoch strukturiert zusammenzufassen, ohne dass dabei ein Informationsverlust entsteht. Programmiersprachen stellen bereits unterschiedliche Konzepte zur Aggregation von Teilelementen zur Verfügung, die es zu vereinheitlichen gilt. In Java werden Methoden, Klassen und Packages als Abstraktionsebenen bereitgestellt. Nicht alle objektorientierten Programmiersprachen stellen jedoch die Abstraktionsebene der Packages zur Verfügung, weshalb bei der Analyse von Software-Systemen auf Basis solcher Sprachen beim Einlesen des Quellcodes alle in einem Ordner liegenden Da- 7

8 Kapitel 2: Grundlagen der Architekturanalyse teien zu einem Artefakt der Abstraktionsebene Package zusammengefasst werden. [BW04, S. 242] Für eine aussagekräftige Architekturanalyse ist die Package-Ebene noch zu feingranular, weshalb der Sotograph es ermöglicht, mehrere Packages zu einem logischen Subsystem zusammen zu fassen. [BKL04, S. 1; SH06 S. 9] Die Möglichkeiten zur Definition solcher Subsysteme werden im folgenden Abschnitt detailliert erläutert. Zur vollständigen Abbildung der Soll-Architektur können ein oder mehrere Architekturmodelle hinterlegt werden. Diese geben die Beziehung sowie die Art der erlaubten Zugriffe zwischen den definierten Subsystemen an. Entlang der somit gebildeten Abstraktionsebenen (Methode, Klasse, Package, Subsystem, Architekturmodell) werden die aus der Analyse entstandenen Ergebnisse zusammengefasst. Dies erhöht den Informationswert der Analyse, da für eine z.b. auf Klassenebene durchgeführte Analyse die Ergebnisse für den Analysten auf einer höheren Abstraktionsebene aggregiert werden können. Hierdurch ist es möglich, in einem ersten Schritt einen groben Überblick über den Zustand des Systems zu bekommen und problematische Bereiche für eine darauf folgende Bearbeitung zu lokalisieren. 2.3 Definition der Subsystem- und Architekturmodelle Da durch das Einlesen des Quellcodes nur Artefakte auf Package-Ebene definiert sind, müssen Subsystem- und Architekturmodell manuell vom Benutzer definiert werden. Zur Vereinfachung der Definition der Modelle stehen Bildschirmdialoge zur Verfügung, welche die Definition der Modelle durch die Generierung regulärer Ausdrücke oder die Auflistung der vom Subsystem umfassten Packages auf Grundlage der vom Benutzer eingegebenen Informationen definieren. Dabei kann bei einem Subsystem im Sinne des Sotographen nach [LR04] zwischen einer öffentlichen Schnittstelle und der eigentlichen Implementierung unterschieden werden. Diese Trennung zwischen Schnittstelle und Implementierung ist in der Entwicklung zumeist nur durch eine Konvention des Entwicklerteams erreichbar, da gängige Programmiersprachen hierfür ohne den Einsatz spezieller Werkzeuge keine Möglichkeiten bereitstellen. Zur Prüfung der Einhaltung kann zusätzlich der Pfad des Application Programming Interface (API), über das auf das Subsystem zugegriffen werden soll, angegeben werden. Ähnliches gilt für die Berücksichtigung einer Schichtenarchitektur: Diese lässt sich in einer Entwicklung nur über eine Konvention einhalten und wird durch sinnvolle Benennung von Packages unterstützt. Bei der Prüfung der Einhaltung dieser Vorgaben unterstützen die Modelle 8

9 Kapitel 2: Grundlagen der Architekturanalyse des Sotographen sowohl schichtenbasierte als auch graphenförmige Architekturmodelle. Im Rahmen einer Architektur, die mit Hilfe von Schichten strukturiert wird, werden die einzelnen Subsysteme explizit einer Schicht zugeordnet, wobei höher liegende Schichten von Inhalten der darunter liegenden abstrahieren. Bei einer Strukturierung in Form eines Graphen wird jeweils für ein Paar von Subsystemen angegeben, ob Beziehungen zwischen diesen erlaubt sind oder nicht. [BW04, S. 242; BKL04, S. 2] Die Unified Modeling Language (UML) stellt als allgemein verwendbare Modellierungssprache einen Standard für die Beschreibung von Software-Architekturen im Rahmen von Software-Entwicklungen dar und wird in den meisten Entwicklungen großer Software-Produkte eingesetzt. [Ke05, S.15] Ein Import der vorliegenden UML- Modelle als Basis für die Definition einer Soll-Architektur in den Sotographen ist dennoch nicht möglich, wodurch ein Medienbruch bei der Modellierung der Software- Architektur entsteht. Aufgabe des Sotographen ist dabei nicht die Prüfung der Qualität der vorliegenden Architektur des Software-Systems, sondern vielmehr die Prüfung, ob in Bezug auf die definierte Soll-Architektur architektur-verletzende Referenzen im Quellcode enthalten sind. [SH06, S.14] Die Interpretation der Ergebnisse sowie die Beseitigung dieser Problembereiche und die somit ggf. notwendige Anpassung der Architekturvorgabe obliegen dem jeweiligen Analysten. Die Definition des Subsystemmodells des Sotographen erfolgt in einer Java-kompatiblen Beschreibungssprache und wird auf Grundlage der vom Benutzer angegebenen Informationen generiert: public void generatesubsystemmodel(imodelfactory f, ISubsystemModel sm){ ISubsystem sub; sm.createsubsystemgroupbyregexp("hotelverwaltung", "de.hotelverwaltung.'.*'", sm.chasinterface,sm.crootpackageisinterface); } Vorstehendes Beispiel zeigt die Definition eines Subsystemmodells auf Basis eines regulären Ausdrucks, die für jedes Package unterhalb von de.hotelverwaltung je ein logisches Subsystem erstellt. Der Name der aus dieser Definition resultierenden Subsysteme setzt sich aus einem explizit angegebenen Präfix ( hotelverwaltung ) sowie dem Namen des Packages zusammen. Wird davon ausgegangen, dass im Package de.hotelverwaltung die Packages beans, utils, jdbc und gui liegen, würde für 9

10 Kapitel 2: Grundlagen der Architekturanalyse jedes dieser Packages ein eigenes Subsystem erstellt. Diese würden nach erfolgter Speicherung des Subsystemmodells in der Datenbank in allen Werkzeugen des Sotographen für Analysen zur Verfügung stehen. Im Architekturmodell für eine schichtenbasierte Architektur wird neben der Definition der einzelnen Schichten hinterlegt, welche Subsysteme zu einer Schicht gehören und welche Zugriffe innerhalb und zwischen den Schichten zulässig sind. Die Schichten werden hierbei entsprechend ihres Abstraktionsniveaus angeordnet (vgl. Anhang B). 2.4 Werkzeuge des Sotographen Der Sotograph umfasst verschiedene Analyse- und Administrationswerkzeuge, die im Rahmen der Analyse integriert zum Einsatz kommen. Die wesentlichen Werkzeuge für eine Architekturanalyse werden im Folgenden vorgestellt. Der GraphScope visualisiert den strukturellen Aufbau eines Software-Systems sowie die Ergebnisse von Analysen anderer Werkzeuge. Neben der Option, die zu visualisierenden Referenzarten (Methodenaufruf, Attributzugriff, Vererbung) individuell auf den Analysezweck hin anzupassen, ist es ferner möglich, das Layout der ausgegebenen Graphen zur Hervorhebung bestimmter Aspekte zu verändern und die Analyseergebnisse unterschiedlicher Analysen zu verknüpfen bzw. in die strukturelle Abbildung des Software-Systems zu integrieren. Mit dem ResultScope werden Analyseergebnisse in tabellarischer Form angezeigt und eine gezielte Filterung der Ergebnisse ermöglicht. Die gesamte (oder Teile der) Ergebnisliste kann als neuer Graph des GraphScope angezeigt oder farblich gekennzeichnet in einen bestehenden Graphen eingefügt werden. Von einer Analyse auf z.b. Subsystem- Ebene lassen sich die aggregierten Ergebnisse auf Quellcode-Ebene verfeinern und die verursachenden Stellen im Quellcode finden. Das Administrationswerkzeug ModelManager ist die Grundlage für die Definition der Subsystem-/Architekturmodelle, die zur Festlegung der höheren Abstraktionsebenen benötigt werden (vgl. Abschnitt 2.3). Mit Hilfe des MetricScope bzw. im Rahmen der Trendanalyse mit dem TrendMetric- Scope lassen sich vordefinierte Metriken auf einzelne Artefakte anwenden oder die Artefakte verschiedener Versionen der Software miteinander vergleichen (vgl. Abschnitt 3.2.3). 10

11 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph 3 Werkzeuggestützte Architekturanalyse mit Sotograph 3.1 Architektur-Smells Betrachtet ein erfahrener Entwickler ein Software-System, bekommt er meist ein Gefühl dafür, an welchen Stellen das System Schwächen hat. Solche Schwachstellen sind Auffälligkeiten, die nicht unbedingt zu Problemen führen müssen, oftmals jedoch ein Indiz für problematische Bereiche sind, die es zu überprüfen gilt. Man bezeichnet diese Auffälligkeiten - in der Anlehnung daran, dass ein System nach Problemen riecht - als Smells. Dabei unterscheidet man je nach Art in Code-Smells, wie z.b. die Duplizierung von Quellcode zu sehr ähnlichen Methoden, und Architektur-Smells, wie z.b. die Aufwärtsreferenzierung in einer Schichtenarchitektur. [LR04, S. 33] Auf die verschiedenen Architektur-Smells und die daraus resultierenden Probleme für die Qualität der Software-Architektur wird im Folgenden eingegangen Architektur-Smells in Delegations- / Vererbungsbeziehungen Delegation und Vererbung stellen Beziehungen zwischen Klassen dar, auf deren Basis es zu verschiedenen Verletzungen der vorgegebenen Architektur kommen kann, wenn die Beziehungen nicht konform mit der Soll-Architektur sind. Ein Indikator für eine zu überarbeitende Vererbungsstruktur ist die Verwendung von Typabfragen (instanceof). Diese sind ein Hinweis darauf, dass die Vererbungsbeziehung nicht nur in den Klassen, sondern auch im darauf zugreifenden Client ausgedrückt wird, was bei einer Veränderung der Vererbungshierarchie auch zu Anpassungsaufwand im Client führen würde. [LR04, S. 45] Der Einsatz von Vererbung macht nur Sinn, wenn es dabei auch zur Verwendung von polymorphen Zuweisungen kommt. Wird lediglich eine Generalisierung geschaffen, ohne dass für die generalisierten Klassen auch Zuweisungen existieren, kann die Vererbungshierarchie aufgelöst werden. Smells dieser Art lassen sich nicht unmittelbar mit dem Sotographen aufdecken: Es können lediglich Indizien - wie eine große Anzahl von Instanziierungen von Objekten der Unterklassen, die einer deutlich geringeren Anzahl von Objekt-Instanziierungen der Oberklasse gegenübersteht - gesammelt werden. Eine Vererbungsstruktur ist dann kritisch zu prüfen, wenn Unterklassen keine Methoden ü- 11

12 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph berschreiben, sondern lediglich Funktionalität hinzufügen, da sich in diesem Fall die Vererbungsbeziehung durch eine flexiblere Delegationsbeziehung ersetzen lässt. Darüber hinaus kann es unbenutzte Artefakte geben, die dadurch entstehen, dass von Entwicklern Funktionalität implementiert wird, die später nicht zum Einsatz kommt oder diese Klassen im Rahmen eines Refactoring-Prozesses irrelevant geworden sind. Ein Beispiel dafür sind auf Grundlage einer Webservice Description Language (WSDL)-Datei erzeugte Zugriffsklassen, bei denen der Webservice im Entwicklungsverlauf durch einen anderen ersetzt wurde und die Zugriffsklassen nicht weiter genutzt werden. Diese Artefakte belasten ein Software-System unnötig und können somit entfernt werden. Parallele Vererbungshierarchien, bei denen - wie in Abbildung 2 gezeigt - z.b. analog zur Hierarchie der Datenobjekte auch die passende Vererbungshierarchie der Anzeigeobjekte erzeugt wird, sorgen bei einer Veränderung für eine Vervielfachung des Modifikationsaufwandes, da an zwei Stellen dieselbe Entwurfsentscheidung getroffen wurde und in der Konsequenz auch beide Stellen zu modifizieren sind. [LR04, S.50] Abbildung 2: Parallele Vererbungshierarchien (in Anlehnung an [LR04, S. 50]) Eine solche Struktur kann dadurch aufgelöst werden, indem eine der Vererbungshierarchien bestehen bleibt und die verwendeten Klassen durch flexiblere Delegationsstrukturen angebunden werden. Zyklische Beziehungen zwischen Artefakten führen dazu, dass die einzelnen Systemteile enger gekoppelt werden. Diese gekoppelten Elemente können nur gemeinsam als Konstrukt betrachtet werden, was einerseits das Verständnis erschwert, andererseits die Wiederverwendung und Testbarkeit des Gesamtsystems aufwändiger gestaltet, da das gesamte Geflecht von Artefakten verwendet oder getestet werden muss. Zudem ist kaum zu verhindern, dass durch die enge Kopplung mit anderen Artefakten Veränderungen im Rahmen von Wartungsarbeiten ungewollte Auswirkungen auf andere Teilbereiche nach sich ziehen. [LR04, S.40,53; BBS03, S. 25] Dabei ist zu beobachten, dass 12

13 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph ein längerer Zyklus - ein Zyklus, in dem mehr Artefakte enthalten sind - schwerwiegendere Probleme nach sich zieht als ein kürzerer Zyklus, da die daraus resultierenden monolithischen Einheiten größer und damit schwerer zu handhaben sind. Dies gilt insbesondere, wenn die Zyklen über Subsystemgrenzen hinausgehen. [LR04, S. 41] Architektur-Smells auf Package-Ebene Die Strukturierung eines Software-Systems durch Packages ist nur zweckmäßig, wenn diese möglichst selbsterklärend benannt sind und überschneidungsfrei definiert wurden. Die überschneidungsfreie Definition ist im Evolutionsprozess einer Software schwierig einzuhalten, da bei Wartungsarbeiten oder dem Hinzufügen von neuen Funktionalitäten oftmals nicht eindeutig ist, wo diese anzufügen sind. Die Größe der Packages - definiert durch die Anzahl der darin enthaltenen Klassen - spielt eine Rolle für den Grad des Nutzens, der durch das Package erreicht wird. Dabei muss zwischen der durch die Einführung eines Packages entstehenden zusätzlichen Komplexität und der dadurch gewonnenen Strukturierung abgewogen werden. [LR04, S.55] Eine allgemeine Vorgabe für die optimale Große der Packages gibt es ebenso wenig wie eine Möglichkeit zur automatisierten Überprüfung der zweckmäßigen Benennung. Hier gilt es im Entwicklerteam, Grenzwerte für die maximale und minimale Anzahl der Klassen pro Package zu definieren und die Einhaltung dieser Werte mit entsprechenden Metriken zu prüfen. Benennung sowie Struktur der Packages lassen sich über den GraphScope mit Hilfe von Package-Graphen visualisieren und anhand dessen Problembereiche identifizieren Architektur-Smells auf Subsystem-Ebene Die Strukturierung eines Systems in verschiedene Subsysteme hat nach [LR04] die folgenden Vorteile: 1. Erlernbarkeit: Das System ist durch die Untergliederung schneller und einfacher zu verstehen, da ein grobes Verständnis des Software-Systems durch die Zerlegung des Systems in Komponenten sowie in Beziehungen ermöglicht wird. 2. Wartbarkeit: Durch die Trennung von Implementierung und öffentlicher Schnittstelle ist es möglich, die interne Realisierung eines Subsystems zu verbessern oder zu verändern, ohne dass andere Subsysteme betroffen sind. 3. Multiprojektentwicklung: Die Entwicklung eines einzelnen Subsystems kann in individuellen Teams erfolgen, da für die Verwendung des Subsystems keinerlei 13

14 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph Information über die Implementierung notwendig ist. Durch die Möglichkeit der parallelen Entwicklung wird der Entwicklungsprozess erheblich beschleunigt. 4. Deployment: Anstelle des Komplettsystems können im Deployment-Prozess auch einzelne Teilkomponenten ausgetauscht werden. 5. Testbarkeit: Ein Subsystem kann unabhängig von anderen Subsystemen in sich abgeschlossen getestet werden. Probleme in Bezug auf die Missachtung der Architekturvorgaben auf der Ebene der Subsysteme entstehen hauptsächlich dadurch, dass die gängigen objektorientierten Programmiersprachen keine Konzepte für die Realisierung von Subsystemen bereitstellen. Daher wird hinsichtlich der Unterteilung des Systems in Subsysteme mit Konventionen innerhalb des Entwicklerteams gearbeitet, deren Einhaltung es zu prüfen gilt. Des Weiteren spielt die Größe der Subsysteme für die optimale Strukturierung eine wichtige Rolle, da bei einer zu kleinen Dimensionierung zu viele Subsysteme definiert werden müssen. Hierdurch wird die Erlernbarkeit eingeschränkt, da die Strukturierung, die durch die Subsysteme erreicht werden soll, verloren geht. Eine zu große Dimensionierung der Subsysteme, die im Extremfall mit einem Verzicht auf die Definition von Subsystemen gleichzusetzen ist, führt dazu, dass es nicht zu einer Zerlegung in Komponenten kommt und die damit verbundenen Vorteile verloren gehen Architektur-Smells zwischen Schichten Eine Schichtenarchitektur ist dadurch gekennzeichnet, dass Subsysteme einer Schicht beliebig aufeinander zugreifen können, schichten-übergreifende Zugriffe indes nur bedingt zulässig sind. Im Rahmen einer strikten Schichtenarchitektur sind Zugriffe auf alle Schichten mit niedrigerem Abstraktionsniveau erlaubt. Abbildung 3: Architekturverletzungen in einer Schichtenarchitektur (in Anlehnung an [BW, S. 243; Ba00, S.297]) 14

15 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph In der restriktiveren, linearen Schichtenarchitektur sind indes nur Referenzen auf die direkt darunter liegende Schicht zulässig. [Ba00, S. 697] Abbildung 3 zeigt die verschiedenen Zugriffsarten zwischen Artefakten, von denen die architektur-verletzenden im Folgenden erläutert werden: 1. Aufwärtsreferenz: Eine höher liegende Schicht abstrahiert von Sachverhalten der darunter liegenden, wobei das allgemeine Ziel eines Schichtenmodells ist, die Austauschbarkeit von einzelnen Schichten ohne eine Beeinflussung anderer Schichten zu gewährleisten. Verwendet ein Subsystem einer unteren Schicht eine Komponente aus einer höher liegenden Schicht, wird dieses Prinzip durchbrochen und es kommt zu einer engeren Kopplung zwischen den Schichten, indem Zyklen zwischen diesen entstehen. [LR04, S.66; Ba00, S.697] 2. Umgehung der Subsystem-API: Eine Umgehung der öffentlichen Schnittstelle stellt eine Architekturverletzung dar, da ein direkter Zugriff auf die Implementierung nicht zulässig ist. Zur Überprüfung von Architekturverletzungen dieses Typs kann im Subsystemmodell der Pfad der API-Schnittstelle definiert werden. 3. Durchbrechen der strikten Schichtung: Diese entsteht z.b. durch direktes Verwenden der Datenschicht von der Oberfläche. Das Architekturmodell des Sotographen ist individueller gestaltbar als die in [Ba00] getroffene Unterscheidung zwischen strikter und linearer Schichtung, da für jede Schicht individuell angegeben werden kann, auf wie viele darunter liegende Schichten zugegriffen werden darf. 3.2 Werkzeuggestützte Architekturanalyse Metrikbasierte Architekturanalyse Allgemein nach [Ba98, S. 225] und in Bezug auf den Sotographen nach [SM06a, S. 3] definiert eine Software-Metrik, wie die Kenngröße eines Software-Produkts oder eines Software-Prozesses gemessen wird. Ziel einer Metrik ist es, im Software- Qualitätsmanagement quantitative Angaben über den Software-Entwicklungsprozess zu generieren. [SM06a, S.3] Als Informationsbasis für die metrikbasierte Architekturanalyse stehen einerseits Informationen wie Referenzen zwischen Artefakten zur Verfügung, die im Rahmen des Extraktionsprozesses ermittelt wurden. Andererseits werden durch 15

16 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph die Definition des Subsystem- und Architekturmodells angegebene Strukturinformationen berücksichtigt. [SM06a, S. 5] Der Sotograph unterstützt grundsätzlich drei verschiedene Arten der Metrikberechnung: 1. Berechnungen von Metrikwerten auf Basis von Informationen, die in der Datenbank vorliegen: Diese Metriken werden durch SQL-Abfragen erstellt. [SM06a, S. 6] Ein Beispiel hierfür stellt die Ermittlung von duplizierten Code-Blocks dar, die beim Einlesen des Quellcodes in der Tabelle DuplicatedCodeBlocks gespeichert werden: SELECT COUNT( DISTINCT d1.blockid ) FROM DuplicatedCodeBlocks d1 WHERE d1.fileid = f.fileid ; 2. Ein regulärer Ausdruck wird zur Berechnung der Anzahl an Fundstellen für einen bestimmten Begriff in den Quellcode-Dateien des zugrunde liegenden Software-Systems verwendet. [SM06a, S. 6] Die Metrik FileToDo nutzt einen regulären Ausdruck zur Ermittlung der Existenz von todo im Quellcode. file_regex_metric ( FileToDo := #[tt][oo] *[dd][oo]# ) 3. Der Sotograph kann durch Plugins erweitert werden, die beliebige Werte auf Basis des Quellcodes ausrechnen können. Die Definition der Metrik selbst enthält in diesem Fall nur den Klassennamen der Plugin-Klasse: file_plugin_metric ( FileCommentedOutCodeLines := com.sotogra.soto.plugins.impl.basiccounts ) Ein Hauptproblem der metrikbasierten Architekturanalyse ist die Vielzahl an Metriken und die daraus resultierende Menge an Ergebnissen, die den Benutzer schnell den Blick für das Wesentliche verliert lässt. Zur Vermeidung dessen und zur Anzeige der lediglich relevanten Werte für den Benutzer stellt der Sotograph im Rahmen des MetricScope verschiedene Funktionalitäten zur Einschränkung der Ergebnismenge zur Verfügung: Aggregierte Ausgabe der Ergebnisse: Die Ergebnisse der Metriken werden auf der o- bersten Abstraktionsebene ausgegeben, die betrachtet wird. Dadurch kann der Benutzer in einem ersten Schritt die betroffenen Bereiche lokalisieren. Abbildung 4 zeigt das Ergebnis der Metrik SysArchViol, die alle im System vorhandenen Architekturverletzungen auf Grundlage der betroffenen Subsysteme zusammengefasst auflistet. Zu erkennen ist, dass es im Gesamtsystem in der Summe (letzte Spalte) 51 Architekturverletzungen 16

17 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph gibt, die durch Zugriffe der drei Subsysteme (transaction, jdbc, remoting) auf andere Subsysteme verursacht werden. Abbildung 4: Subsysteme mit Architekturverletzungen (SysArchViol) Zur detaillierten Analyse der Entstehung von Architekturverletzungen kann eine der Ergebniszeilen ausgewählt und die entsprechende Liste aller unzulässigen Referenzen, die in diesem Subsystem vorhanden sind, unter Angabe des jeweiligen Referenztyps (Abbildung 5) angezeigt werden. Abbildung 5: Architekturverletzende Referenzen eines Subsystems Dadurch ist es dem Benutzer möglich, das Zustandekommen der aggregierten Analyseergebnisse durch Angabe der entsprechenden Quellcodestelle - welche die Architekturverletzung hervorruft - erklären zu lassen. Der Befehl, welcher die Architekturverletzung hervorruft, lässt sich im Quellcodeeditor des Sotographen anzeigen. Vordefinition von Grenzwerten: Im Sotographen gibt es als Spezialfall der Metrik Regeln, mit denen es möglich ist, explizite numerische Grenzwerte zu definieren. Infolgedessen ist es dem Benutzer möglich, nur die Ergebnisse zu betrachten, die außerhalb dieser Grenzwerte liegen, wodurch die Ergebnismenge eingeschränkt wird. Die vorgegebenen Grenzwerte können individuell angepasst werden. Typisierung der Metriken: Metriken sind einem Typ (Architecture Metrics, Cycle Metrics, Duplicated Code Metrics, Measures, Rules) zugeordnet, wodurch der Benutzer die Metrikauswahl auf eine bestimmte Art der Analyse beschränken kann. Ein Software-Architekt wird beispielsweise vermehrt an der Einhaltung seiner Architektur interessiert sein, wohingegen einen Entwickler interessieren könnte, ob seine Implementierungen korrekt über die Schnittstellen auf eine Subsystem-Funktionalität zugreifen. Ausblenden von Teilsystemen: Teilsysteme (z.b. ein Subsystem oder ein Package), die bereits als grundlegend problematisch erkannt wurden oder im Zuge der Architektur- 17

18 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph analyse nicht betrachtet werden sollen, lassen sich mittels der Definition regulärer Ausdrücke aus den Ergebnislisten filtern. Diese Filter können einerseits kurzfristig (für eine Analyse) angewendet oder zum Erhalt der Filterinformationen - auch über einen Neustart des Sotographen hinaus - in der Datenbank gespeichert werden. Zum Auffinden der zuvor beschriebenen Architektur-Smells werden durch den Sotographen Metriken zur hierzu notwendigen Informationsgenerierung bereitgestellt: Zur Prüfung der Verwendung der definierten Schnittstelle beim Zugriff auf ein Subsystem gibt die Metrik SubsysIFViol eine Liste von Subsystemen an. Eine hohe Anzahl von Umgehungen der Schnittestelle eines Subsystems deutet darauf hin, dass diese Schnittstelle zu eng definiert ist und zu wenig Funktionalität nach außen bereitstellt. Abbildung 6: Auszug aus der Ergebnisliste SysViol Soll im Zuge des Refactorings eines Software-Systems die Schnittstelle eines Subsystems zur Vermeidung dieser Umgehung erweitert werden, können mit Hilfe der Metrik SubsysInboundIFViolSubsys alle Subsysteme ermittelt werden, deren Schnittstelle umgangen wird und folglich der durch das Refactoring entstehende Aufwand abgeschätzt werden kann. Zusammengefasst lassen sich alle in Abschnitt angesprochenen Architektur-Smells durch die Metrik SysViol ermitteln, welche diese unter Angabe des Typs der Architekturverletzung auflistet (Abbildung 6). Die in Abschnitt angesprochene Problematik der Typabfragen lässt sich mit Hilfe der Metrik FileInstanceOf aufdecken. Diese gibt auf Basis eines entsprechenden regulären Ausdrucks alle Dateien an, in denen der instanceof-befehl zur Abfrage des Datentyps verwendet wird. Werden die Ergebnisse dieser Metrik in einen Graphen, der die Vererbungsbeziehungen zwischen Klassen darlegt, integriert, lassen sich die zu überarbeitenden Vererbungsstrukturen ermitteln. Um unbenutzte Artefakte aufdecken zu können, gibt es auf den entsprechenden Abstraktionsebenen unterschiedliche Metriken: Eine Liste der nicht verwendeten Methoden wird durch die Metrik ClassMethodsNotUsed erzeugt. Eine Abstraktionsebene höher werden mit Hilfe der Metrik PckgClassNotUsed die Klassen aufgelistet, die im System weder durch einen Methodenaufruf noch eine Attributverwendung genutzt werden. 18

19 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph Zyklenbasierte Architekturanalyse Abbildung 7: Subsystem-Graph mit eingezeichneten Referenzen Eine zyklische Kopplung zwischen Artefakten auf den verschiedenen Abstraktionsebenen liegt vor, wenn Artefakte sich gegenseitig benutzen. Abbildung 7 veranschaulicht die Zugriffe zwischen den Subsystemen des Java-Frameworks Spring, wobei die Dicke der Verbindungen zwischen den Subsystemen die Anzahl der Referenzen zwischen diesen Subsystemen anzeigt. Durch eine kombinierte Analyse farblich hervorgehoben sind die drei Subsysteme, von denen Architekturverletzungen (Metrik: SysViol) ausgehen, sowie die zwei Paare von Subsystemen, zwischen denen Zyklen bestehen (Metrik: SubsysCyclicRefSubsys). Eine Problematik der Analyse von Zyklen eines Software-Systems ist die hohe Menge der gefundenen Zyklen; insbesondere wenn man gleichzeitig Zyklen unterschiedlicher Längen - d.h. Zyklen, in die unterschiedlich viele Elemente gekoppelt sind - betrachtet. Mit dem Sotographen ist eine schrittweise Analyse der Zyklen in der Form möglich, dass zunächst nur Zyklen zwischen zwei Artefakten betrachtet werden, diese im nächsten Schritt aus der Menge der Analyseergebnisse eliminiert und dann längere Zyklen betrachtet werden. Somit ist es möglich, sukzessive Zyklen mit mehr Artefakten analysieren zu können. [BW04, S. 249] Ein Zyklus zwischen verschiedenen Artefakten eines Systems muss nicht in allen Fällen negative Auswirkungen haben. Bei dem Verhaltensentwurfsmuster Iterator, mit Hilfe 19

20 Kapitel 3: Werkzeuggestützte Architekturanalyse mit Sotograph dessen auf Datenstrukturen zugegriffen werden kann, ohne dass deren innere Struktur bekannt ist, wird bewusst ein Zyklus zwischen zwei Klassen erzeugt. [GHJV94] In den meisten anderen Fällen ist eine zyklische Verbindung ein Indiz für eine zu enge Kopplung verschiedener Komponenten, die es aufzulösen gilt Trendanalyse der Architektur Die Erstanalyse eines Systems ist mit hohem Aufwand verbunden und würde sowohl für Entwickler als auch für Projektleiter im laufenden Entwicklungsprozess bei regelmäßiger Anwendung zuviel Zeit in Anspruch nehmen. Zur Betrachtung der Entwicklung eines Software-Systems im zeitlichen Verlauf bietet der Sotograph die Möglichkeit, verschiedene Versionsstände zu vergleichen und ggf. nur die Veränderungen zum vorherigen Stand zu betrachten. Dadurch wird es möglich, einer architekturellen Degeneration im Evolutionsprozess der Software entgegen zu wirken. Zur Durchführung einer Trendanalyse müssen im Sotographen folgende Vorarbeiten getroffen werden: 1. Quellcodeinformationen extrahieren: Für jede betrachtete Version muss der in Abschnitt 2.1 beschriebene Extraktionsprozess vollzogen werden. Dabei wird für jeden Versionsstand eine eigene Datenbank im Sotographen angelegt. 2. Migration des Architekturmodells: Zur Durchführung von Vergleichen über hinzu gefügte Artefakte ist es notwendig, das Architekturmodell, welches für die erste Version erstellt wurde, auf die anderen betrachteten Versionen zu migrieren und dort sukzessiv entsprechend den Veränderungen anzupassen. 3. Definition der Versionsfolge: Die Zusammengehörigkeit sowie die zeitliche Abfolge der Versionen müssen im Sotographen definiert werden. Einen ersten Überblick über die Veränderungen zwischen den Versionen bietet der Trend System Metrics Overview, in welchem eine Reihe von Metriken zusammengefasst ist. Hieraus lassen sich erste Informationen über die Entwicklung der Größe des Gesamtsystems auf Basis der Anzahl der Klassen (SysClasses) sowie die Entwicklung der Architekturverletzungen (SysArchViol) ablesen. Detaillierte Analysen lassen sich mit Hilfe des TrendMetricScope durchführen, in dem alle Metriken des Sotographen auf mehrere Versionsstände vergleichend angewendet werden können. Durch Filter ist es möglich, die Verbesserungen und Verschlechterungen einzelner Metrikwerte hervorzuheben. 20

21 Kapitel 4: Zusammenfassung und Ausblick Abbildung 8: Grafische Darstellung der Metrik SysViol im Trend über drei Versionen Abbildung 8 stellt die grafische Auswertung der Entwicklung der systemweit gefundenen Architekturverletzungen inklusive der Umgehung von Subsystem-Schnittstellen dar. Diese wurden mit Hilfe der Metrik SysViol für die letzten drei Versionen eines Software-Systems ermittelt. Es ist zu erkennen, dass die Anzahl der Architekturverletzungen von Version m1 auf Version m3 um circa 7% angestiegen ist. 4 Zusammenfassung und Ausblick Der Sotograph stellt für die Architekturanalyse sehr mächtige Werkzeuge zur Verfügung, von denen im Rahmen dieser Ausarbeitung nur die Wesentlichen vorgestellt werden können. Mit deren Hilfe lässt sich eine detaillierte Qualitätsanalyse eines Software- Systems durchführen. Besonders hervorzuheben sind dabei die ausgereiften Möglichkeiten der integrierten Visualisierung der Analyseergebnisse sowie des strukturellen Aufbaus der Software, durch die der Benutzer Problembereiche schneller als auf manuelle Art lokalisieren kann. Hinzu kommt die durchgehende Konzeption der verschiedenen Abstraktionsebenen, die nach einer einmaligen Definition dauerhaft in allen Teilwerkzeugen verfügbar sind. Die Aggregation der Ergebnisse entlang der Abstraktionsebenen strukturiert die Interpretation der Analyseergebnisse, ohne sie dabei einzuschränken, und ermöglicht dem Benutzer somit eine konsequente Bearbeitung der Problembereiche. Für die Effizienz und die Genauigkeit der Analyse spielt diese Möglichkeit eine zentrale Rolle. Als nachteilig ist neben den hohen Anschaffungskosten für den Sotographen die lange Einarbeitungszeit aufgrund des Funktionsumfangs anzusehen, die für eine praktische Anwendung nach einer einmaligen Erstanalyse durch die Möglichkeit der Betrachtung 21

22 Kapitel 4: Zusammenfassung und Ausblick von Veränderungen im zeitlichen Verlauf - insbesondere bei Großprojekten - relativiert wird. Für die Realisierung kleinerer Software-Produkte ist der Sotograph überdimensioniert, da viele Teilaspekte wie die Visualisierung von zyklischen Beziehungen zwischen Artefakten durch frei verfügbare Software - etwa das Opensource-Programm ClassCycle - ebenso wie Ansätze einer metrikbasierten Analyse mittels des Eclipse- Metics Plugins realisiert werden können. Zur Durchführung einer integrierten Gesamtanalyse hat der Sotograph besonders in Großprojekten den entscheidenden Vorteil, dass die Analysewerkzeuge stark integriert und einmal definierte Konstrukte - etwa die Subsystem- und Architekturmodelle oder Grenzwerte für Metriken in der Gesamtanalyse - verfügbar sind. Speziell die Verwendung der Trendanalyse ist für einen Einsatz in der Praxis sinnvoll: Hier können sowohl Entwickler, Software-Architekten wie auch Projektleiter ihren individuellen Informationsbedarf decken, indem die Veränderungen in Bezug auf die Software-Qualität in dem für sie jeweils relevanten Bereich und auf dem für sie notwendigen Abstraktionsniveau angegeben werden. In zukünftigen Versionen des Sotographen wird das Spektrum der unterstützten objektorientierten Sprachen der von Microsoft entwickelten Sprache C# auf den NET-Bereich ausgeweitet. Dennoch ist ein für den praktischen Einsatz nicht zu unterschätzender Nachteil des Sotographen die fehlende Möglichkeit der Transformation bestehender UML-Modelle in die Subsystem-/Architekturmodelle des Sotographen. Sind im Rahmen eines Software-Entwicklungsprozesses UML-Modelle auf hohen Abstraktionsebenen (Schichten und Subsysteme) durchgängig, d.h. mit Zuordnung der jeweiligen Packages und Klassen vorhanden, entsteht durch das Fehlen der Transformationsmöglichkeit ein Medienbruch und ergibt sich zudem ein höheres Fehlerpotenzial durch die Notwendigkeit der doppelten Erstellung und Anpassung der unterschiedlichen Modelle. 22

23 Anhang A: Software-Qualität Anhang A Software-Qualität 23

24 Anhang B: Architekturmodell Anhang B Architekturmodell public IArchitectureModel generatearchitecturemodel(imodelfactory f, String name){ //Einlesen des verwendeten Subsystemmodells ISubsystemModel sm= f.getsubsystemmodel("default"); //Erzeugen eines neuen Architekturmodells ILayeredArchitectureModel am = f.createlayeredarchitecturemodel( f.getcurrentmodelscriptname(), sm); IArchitectureLayer al; //Erzeugen einer neuer Architekturschicht "Frontend" //Intra-Schicht-Referenzen sind erlaubt //Frontend darf nur auf die direkt darunter liegende Schicht zugreifen (linear) al= am.createarchitecturelayer("frontend", am.callowintralayerreferences, 1); //Hinzufügen der entsprechenden Subsysteme zu Frontend al.addsubsystem("hotelverwaltung.gui"); //Erzeugen einer neuer Architekturschicht "Logik" al= am.createarchitecturelayer("logik", am.callowintralayerreferences, am.caccessalllowerlayers); al.addsubsystem("hotelverwaltung"); //Erzeugen einer neuer Architekturschicht "Backend" al= am.createarchitecturelayer("backend", am.callowintralayerreferences, am.caccessalllowerlayers); al.addsubsystem("hotelverwaltung.beans"); al.addsubsystem("hotelverwaltung.jdbc"); return am; } 24

25 5 Literaturverzeichnis [Ba00] Helmut Balzert: Lehrbuch der Software-Technik, Bd.1 Software- Entwicklung, 2.Auflage, Spektrum Akademischer Verlag, [Ba98] Helmut Balzert: Lehrbuch der Software-Technik, Software-Management Software-Qualitätssicherung Unternehmensmodellierung, Spektrum Akademischer Verlag, [BCK03] Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, 2. Auflage, Addison-Wesley Pearson Education, [BBS03] Marcel Bennicke, Walter Bischofberger, Frank Simon: Eclipse auf dem Prüfstand: Eine Fallstudie zur statischen Programmanalyse, Objektspektrum 9(5), S , SIGS-DATACOM GmbH, [BKL04] Walter Bischofberger, Jan Kühl, Silvio Löffler: Sotograph: A pragmatic approach to source code architecture conformance checking, Lectures Notes in Computer Science (3047), S. 1-9, Springer, [Bo00] [BW04] Jan Bosch: Design and Use of Software Architectures. Adopting and evolving a product-line approach, Addison-Wesley Professional, Walter Bischofberger, Henning Wolf: Werkzeugbasiertes Erkennen und Vermeiden von Architektur-Smells. In: Refactoring in großen Softwareprojekten, Hrsg.: Martin Lippert, Stefan Roock, dpunkt.verlag, [GHJV94] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Elements of Reusable Object-Oriented Softwarem, Addison-Wesley, [Ke05] [LR04] [SC06] [SH06] [Si04] [SM06a] [SM06b] Christoph Kecher: UML 2.0. Das umfassende Handbuch, Galileo Computing, Martin Lippert, Stefan Roock: Refactoring in großen Softwareprojekten. Komplexe Restrukturierungen erfolgreich durchführen, dpunkt.verlag, Sotograph 2.4 Code Comprehension Tutorial. Sotograph Hands-On Overview. Johannes Siedersleben: Moderne Software-Architektur: Umsichtig planen, robust bauen mit Quasar, dpunkt.verlag, Sotograph 2.4 Metrics Tutorial. Sotograph 2.4 Modeling Tutorial. [ST06] Software-Tomography GmbH: Abrufdatum:

Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen

Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen ...we make the invisible visible... Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen 1 Inhalt Qualitätsbegriff und Qualitätsmodelle Abstraktion Analysen und deren Anwendung Erfahrungen

Mehr

Reengineering und Refactoring von Softwarearchitekturen

Reengineering und Refactoring von Softwarearchitekturen Methodische und Praktische Grundlagen der Informatik 3 Reengineering und Refactoring von Softwarearchitekturen Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik WS 2008/2009 Lernziele?

Mehr

...we make the invisible visible...

...we make the invisible visible... ...we make the invisible visible... 1 Inhalt Qualitätsbegriff Fragestellungen im Zusammenhang mit innerer Softwarequalität Analysen und deren Anwendung Erfahrungen 2 Ausfallsicherheit Datensicherheit Zuverlässigkeit

Mehr

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen ...we make the invisible visible... 1 Inhalt Fragestellungen Analysen und deren Anwendung Erfahrungen 2 Projektleiter Hat unsere Software eine klare, verständliche Struktur? Gibt es problematischen Code,

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

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

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

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

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Ziel- und Qualitätsorientierung. Fortbildung für die Begutachtung in Verbindung mit dem Gesamtplanverfahren nach 58 SGB XII

Ziel- und Qualitätsorientierung. Fortbildung für die Begutachtung in Verbindung mit dem Gesamtplanverfahren nach 58 SGB XII Ziel- und Qualitätsorientierung Fortbildung für die Begutachtung in Verbindung mit dem Gesamtplanverfahren nach 58 SGB XII Qualität? In der Alltagssprache ist Qualität oft ein Ausdruck für die Güte einer

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

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

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

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

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Some Software Engineering Principles

Some Software Engineering Principles David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

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

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

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

Langlebige Softwarearchitekturen

Langlebige Softwarearchitekturen Langlebige Softwarearchitekturen Dr. Carola Lilienthal Carola.Lilienthal@wps.de www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Die zwei Architekturziele für diesen Vortrag Architekturziel 1:

Mehr

BIF/SWE - Übungsbeispiel

BIF/SWE - Übungsbeispiel BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung

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

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003 Software Engineering Softwaretechnik Softwaretechnologie, Software Engineering (engl.) das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Bedienungsanleitung GYMplus

Bedienungsanleitung GYMplus Bedienungsanleitung GYMplus SOFTplus Entwicklungen GmbH GYMplus allgemein GYMplus ist ein Computerprogramm, mit welchem Sie individuell angepasste Übungen und Verhaltensanweisungen für Patienten zusammenstellen

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

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

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Konsolidierung und Neuimplementierung von VIT Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Inhaltsverzeichnis 1 Was ist der Kontext?... 1 2 VIT: Ein sehr erfolgreiches

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

Fragebogen ISONORM 9241/110-S

Fragebogen ISONORM 9241/110-S Fragebogen ISONORM 9241/110-S Beurteilung von Software auf Grundlage der Internationalen Ergonomie-Norm DIN EN ISO 9241-110 von Prof. Dr. Jochen Prümper www.seikumu.de Fragebogen ISONORM 9241/110-S Seite

Mehr

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April 2009. 1 Zielbestimmungen 2. 2 Produkteinsatz 2

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April 2009. 1 Zielbestimmungen 2. 2 Produkteinsatz 2 Lastenheft Inhaltsverzeichnis 1 Zielbestimmungen 2 2 Produkteinsatz 2 3 Produktübersicht 3 4 Produktfunktionen 4 4.1 Muss-Funktionen................................. 4 4.1.1 Benutzerfunktionen...........................

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

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

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

.. für Ihre Business-Lösung

.. für Ihre Business-Lösung .. für Ihre Business-Lösung Ist Ihre Informatik fit für die Zukunft? Flexibilität Das wirtschaftliche Umfeld ist stärker den je im Umbruch (z.b. Stichwort: Globalisierung). Daraus resultierenden Anforderungen,

Mehr

Arbeitshilfen zur Auftragsdatenverarbeitung

Arbeitshilfen zur Auftragsdatenverarbeitung Arbeitshilfen zur Auftragsdatenverarbeitung 1 Abgrenzung Die vorliegenden Excel-Tabellen dienen nur als Beispiel, wie anhand von Checklisten die datenschutzrechtlichen Voraussetzungen für die Vergabe einer

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Schulberichtssystem. Inhaltsverzeichnis

Schulberichtssystem. Inhaltsverzeichnis Schulberichtssystem Inhaltsverzeichnis 1. Erfassen der Schüler im SBS...2 2. Erzeugen der Export-Datei im SBS...3 3. Die SBS-Datei ins FuxMedia-Programm einlesen...4 4. Daten von FuxMedia ins SBS übertragen...6

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Druckvorlagen Als Druckvorlagen sind dafür vorhanden:!liste1.ken (Kennzahlen)!Liste2.KEN (Kontennachweis)

Druckvorlagen Als Druckvorlagen sind dafür vorhanden:!liste1.ken (Kennzahlen)!Liste2.KEN (Kontennachweis) Kennzahlen und Kennzeichen Dieses Dokument zeigt Ihnen in wenigen kurzen Schritten die Logik und Vorgehensweise der Definition der Kennzahlen und Kennzeichen und deren Auswertung in eigens dafür vorhandenen

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Professionelle Diagramme mit Excel 2010 erstellen. Peter Wies. 1. Ausgabe, 2. Aktualisierung, März 2014. Themen-Special W-EX2010DI

Professionelle Diagramme mit Excel 2010 erstellen. Peter Wies. 1. Ausgabe, 2. Aktualisierung, März 2014. Themen-Special W-EX2010DI Peter Wies 1. Ausgabe, 2. Aktualisierung, März 2014 Professionelle Diagramme mit Excel 2010 erstellen Themen-Special W-EX2010DI 2 Professionelle Diagramme mit Excel 2010 erstellen - Themen-Special 2 Wichtige

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

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

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

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

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

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

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

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

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

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Feb-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

Leitfaden #1a. zanox Publisher-Statistik (next generation) Leitfaden #1a "zanox Publisher-Statistik" (next generation) Thema: Sortieren von Leads und Sales nach dem Bearbeitungsdatum (inklusive Abschnitt "Filterung nach Transaktionsstatus") 1/8 Leitfaden "Sortieren

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

UpToNet Workflow Workflow-Designer und WebClient Anwendung

UpToNet Workflow Workflow-Designer und WebClient Anwendung UpToNet Workflow Workflow-Designer und WebClient Anwendung Grafische Erstellung im Workflow-Designer 1 Grafische Erstellung im Workflow-Designer Bilden Sie Ihre Arbeitsvorgänge im Workflow-Designer von

Mehr

Toleranzschema. ArtemiS SUITE

Toleranzschema. ArtemiS SUITE Anzeige von Referenz- und Grenzwertkurven Überprüfung von Analyseergebnissen auf Über- bzw. Unterschreitungen der definierten Grenzwertkurven HEARING IS A FASCINATING SENSATION ArtemiS SUITE Motivation

Mehr

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet. 1 TimeTrack! TimeTrack! Ist ein Softwareprodukt von The Project Group, welches der Erfassung von Ist- Aufwänden von Projekten dient. Voraussetzung hierfür ist allerdings, dass das Projekt vorher mit Microsoft

Mehr

Die Lernumgebung des Projekts Informationskompetenz

Die Lernumgebung des Projekts Informationskompetenz Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

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

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Mandant in den einzelnen Anwendungen löschen

Mandant in den einzelnen Anwendungen löschen Mandant in den einzelnen Anwendungen löschen Bereich: ALLGEMEIN - Info für Anwender Nr. 6056 Inhaltsverzeichnis 1. Allgemein 2. FIBU/ANLAG/ZAHLUNG/BILANZ/LOHN/BELEGTRANSFER 3. DMS 4. STEUERN 5. FRISTEN

Mehr

Die Standardsoftware, die Sie bei der Zertifizierung nach DIN EN 16001 und ISO 50001 unterstützt

Die Standardsoftware, die Sie bei der Zertifizierung nach DIN EN 16001 und ISO 50001 unterstützt Die Standardsoftware, die Sie bei der Zertifizierung nach DIN EN 16001 und ISO 50001 unterstützt Zur umweltbewussten Unternehmensführung Der Klimawandel und die daraus resultierenden negativen Folgen führten

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell (Auszug) Im Rahmen des EU-Projekts AnaFact wurde diese Umfrage von Frauenhofer IAO im Frühjahr 1999 ausgewählten

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

Prozessoptimierung. und. Prozessmanagement

Prozessoptimierung. und. Prozessmanagement Prozessoptimierung und Prozessmanagement Prozessmanagement & Prozessoptimierung Die Prozesslandschaft eines Unternehmens orientiert sich genau wie die Aufbauorganisation an den vorhandenen Aufgaben. Mit

Mehr

Änderung der ISO/IEC 17025 Anpassung an ISO 9001: 2000

Änderung der ISO/IEC 17025 Anpassung an ISO 9001: 2000 Änderung der ISO/IEC 17025 Anpassung an ISO 9001: 2000 Dr. Martin Czaske Sitzung der DKD-FA HF & Optik, GS & NF am 11. bzw. 13. Mai 2004 Änderung der ISO/IEC 17025 Anpassung der ISO/IEC 17025 an ISO 9001:

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

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung. StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige

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

Plugins. Stefan Salich (sallo@gmx.de) Stand 2008-11-21

Plugins. Stefan Salich (sallo@gmx.de) Stand 2008-11-21 Plugins Stefan Salich (sallo@gmx.de) Stand 2008-11-21 Inhaltsverzeichnis 0 Einleitung...3 0.1 Sinn und Zweck...3 0.2 Änderungsübersicht...3 0.3 Abkürzungsverzeichnis...3 1 Einfügen eines Plugins...4 1.1

Mehr