Sprachübergreifendes, abstraktes Metamodell zur Qualitätsanalyse und Qualitätsverbesserung von OO Systemen
|
|
- Marielies Schreiber
- vor 8 Jahren
- Abrufe
Transkript
1 Peter Szulman Mircea Trifu Sprachübergreifendes, abstraktes zur Qualitätsanalyse und Qualitätsverbesserung von OO Systemen 7 th Workshop Software Reengineering Bad Honnef, 2-4. Mai FZI Forschungszentrum Informatik Programmstrukturen
2 keiten & Kontext Notwendigkeit der Sicherung der inneren Qualität bei der evolutionären SW-Entwicklung Das Projekt : Lösungsstrategie durch Qualitätsanalyse & Qualitätsverbesserung Das System- Die Rolle eines sprachübergreifenden s in Aufbau des s Analyse- Transformations- Zusammenfassung Diskussion 2
3 Softwareentwicklung heute Evolutionäre SW-Entwicklung Software ist kein starres Gebilde, ständige Anpassungen an neue Marktanforderungen notwendig Systeme in der Praxis wachsen oft über mehrere Jahre Neue Anforderungen müssen in bestehendes System integriert werden Oft: Degenerierung der Softwarestruktur Folge: Kosten, Kosten, Kosten... keiten & 3
4 Was heißt das in Zahlen ausgedrückt? keiten & Quelle Zusammenstellung: University of Jyväskylä, Finnland National Institute of Standards and Technology 2002: Software Errors Cost U.S. Economy $59.5 Billion Annually (0,6% des Bruttoinlandproduktes) 4
5 Konsequenzen keiten & Evolutionskosten werden maßgeblich durch die innere Qualität der SW bestimmt Konzentration auf innere Softwarequalität Softwarequalität aus Sicht des Softwareingenieurs Wartbarkeit Erweiterbarkeit Wiederverwendbarkeit Verständlichkeit... Gegenteil: Anwendersicht, äußere Softwarequalität Axiom des Software Engineerings Gute innere Struktur gute äußere Qualität 5
6 Hindernisse zur Sicherung der inneren Qualität Probleme bei der Qualitätsanalyse Qualitätsanalyse ausgehend vom Quelltext schwer Wie findet man Schwachstellen, die zur schlechten Qualität führen? Automatisierung Probleme bei der Qualitätsverbesserung Lücke zwischen Erkennung und Behebung: Schwachstelle gefunden - was nun? Wie wird die Qualitätsverbesserung durch Strukturverbesserung erreicht? Automatisierung keiten & 6
7 Unsere Ziele in Technisches Ziel: ganzheitliche Sicherung innerer Qualität objektorientierter Software Konstruktions- und evolutionsbegleitend Entwicklung und Einsatz von Methoden + Werkzeuge Wirtschaftliches Ziel: Aufwandsenkung bei Softwareentwicklung und -evolution Kostensenkung keiten & 7
8 Unsere Lösungsstrategie in Qbench Quelltext Quelltext Qualitätsmodell Systemmodell Systemmodell Erkennen Beheben keiten & Interne Software- Qualität Technologie- Qualität Architektur- Qualität Design- Qualität Code- Qualität Metriken. Heuristiken Refactorings Entwurfsmuster Erkennungsstrategien Lösungsstrategien 8
9 Die Rolle des System-(Meta)modells in Qbench keiten & Modellierung der Softwarestruktur Notwendigkeit: Qualitätsanalyse auf Quelltextebene schwer, weil Es gibt implizite Querverweise Enthält zu viele Details Umgang mit heterogenen Projekten (Java, C++, C#, Delphi) Basis für eine Vielzahl von Analysen Metrik-basierte Qualitätsanalysen Visualisierung Clusterings.. Basis zur Unterstützung der Strukturverbesserung 9
10 Die Rolle des System-s in Qbench (2) Java C++ Delphi Object Model Export Import Metrics Heuristics Pattern matching Depend. analysis Code duplication Abstractions SQL Database Clustering keiten & C# System Metamodel Visualization Transformation 10
11 Abstraktionen in der Systemmodellierung 3: Abstraktionen / Konzepte 2: Analyse / Transformationsmodell 1: Abstrakter Syntaxbaum 0: Quelltext Abstraktionsgrad keiten & Die Struktur des Systems kann auf 4 Abstraktionsebenen modelliert werden 0: sprachspezifisch, unstrukturiert 1: sprachspezifisch, strukturiert, aber zu viele Details 2: sprachübergreifende Unterstützung von Quelltextanalysen und -Transformationen = System- 3: Entwurfsmodell 11
12 Das Analyse- keiten & Qualitätsanalysen Macht eine sprachübergreifende Implementierung von Qualitätsanalysen möglich Bsp.: Gott-Klasse ist ähnlich in C++/Java/C#/Delphi Enthält alle relevante Modell-Artefakte zu Stand-der-Technik Qualitätsanalysen von OO-Systemen Granularität 3: Abstraktionen / Konzepte 2: Analyse / Transformationsmodell 1: Abstrakter Syntaxbaum 0: Quelltext Geht bis zur Methodenebene Enthält aber auch Statements, daher spezielle Analysen/Transformationen möglich Abstraktionsgrad 12
13 Das Analyse- Struktur 3: Abstraktionen / Konzepte 2: Analyse / Transformationsmodell 1: Abstrakter Syntaxbaum 0: Quelltext Vereinigung von mehreren OO-Sprachen Vereinigt die semantisch gleichen Konzepte von verschiedenen OO-Sprachen Namespace (C++) «--» package (Java) Abstraktionsgrad keiten & 13
14 Analyse- (Überblick) «interface» Referenceable Access Root Field * Statement * Package * Class * * Method * keiten & 14
15 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 15
16 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 16
17 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 17
18 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 18
19 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 19
20 dataentcapviol: Query execute () Beispiel für eine Analyse: Datenkapselaufbruch packs:=getpackages () for(pack in packs) classes:=getclasses () root:root pack:package cls:class fld: Field suspects:list keiten & for(cls in classes) fields:=getfields () for(fls in fields) if (publicflag &&!constflag) publicflag:= ispublic () constflag:= isconst () add(fld) 20
21 Das Transformationsmodell 3: Abstraktionen / Konzepte 2: Analyse / Transformationsmodell 1: Abstrakter Syntaxbaum 0: Quelltext Abstraktionsgrad keiten & Simulation der Transformationen um die Auswirkung der reellen Transformationen auf die innere Qualität der SW vorauszusagen Sprachübergreifende Transformationen Bsp.: Basistransformationen zur Eliminierung einer Gottklasse ist bei allen OO Sprachen ähnlich Abstrakte Beschreibung von Transformationen, ohne syntaktisches Overhead Die reellen Transformationen werden von sprachspezifischen Transformationswerkzeugen ausgeführt (z.b.: Inject/J) 21
22 Das Transformationsmodell 3: Abstraktionen / Konzepte 2: Analyse / Transformationsmodell 1: Abstrakter Syntaxbaum 0: Quelltext Abstraktionsgrad keiten & Transformationsprimitive Löschen eines Modellelementes Verschieben eines Modellelementes Erzeugen eines Modellelementes Eigenschaft eines Modellelementes verändern Minimale Vor/Nachbedingungsprüfung der Transformationsprimitiven 22
23 Beispiel für Transformationsprimitive Class converttointerface () movetopackage (Package p) addfield (Field fld) removefield (Field fld) addmethod (Method m) removemethod (Method m) addconstructor (Constructor c) removeconstructor (Constructor c)... keiten & 23
24 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 24
25 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 25
26 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 26
27 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 27
28 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 28
29 Beispiel für eine Trafo: globale Variable ins Feld gv2fld: Transformation execute (gv, cls) name:=getname () gv: GlobalVariable cls: Class acc: VariableAccess pack: Package typeacc:=gettypedeclaration () «constructor» (name, typeacc) setpublic () addfield (fld) accesses:=referencingaccesses () for (acc in accesses) changetarget (fld) fld: Field keiten & pack:=getsurroundingpackage () removeglobalvariable (gv) X 29
30 Zusammenfassung keiten & Kontext Notwendigkeit der Sicherung der inneren Qualität Lösungsansatz mit Qualitätsanalyse & Qualitätsverbesserung Problemstellung Notwendigkeit eines sprachübergreifenden s Analyse- Macht Stand-der-Technik-Qualitätsanalysen sprachübergreifend möglich Transformations- Simulation der Transformationen Nachher: prüfen der Qualitätsverbesserung Stand der Implementierung Faktenextraktor für Java und C++ fertig, Delphi bald Analyse und Transformationsmodell fertig 30
31 Fragen und Kommentare keiten & 31
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,
MehrDaniel 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
MehrEin 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++,
MehrSome 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
MehrSoftwareentwicklungsprozess im Praktikum. 23. April 2015
Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit
MehrComparison of Software Products using Software Engineering Metrics
Comparison of Software Products using Software Engineering Metrics Alexander Bätz Fakultät EIM Universität Paderborn 23. Juli 2009 1 / 28 Motivation Qualitätsbewertung von Software Vergleichbarkeit von
MehrJ.6 Programmierung eingebetteter Systeme
Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO
MehrDas Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi
Das Metamodell der UML und in FUJABA Vortrag von Alexander Geburzi Gliederung Metamodellierung Metamodell der UML Metamodell in FUJABA Metamodellierung - Metamodell der UML - Metamodell in FUJABA 2/20
MehrVorlesung vom 18.04.2005 - Einführung in die geschäftsprozessorientierte Unternehmensführung
Vorlesung vom 18.04.2005 - Einführung in die geschäftsprozessorientierte Unternehmensführung 08.30 Begrüßung durch Dipl.-Kfm. Björn Simon organisatorische Grundlagen der Veranstaltung (Hinweis auf obligatorische
MehrEinführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012
Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene
MehrKlassenentwurf. 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
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 1. Vorlesung Prof. Dr. Peter Knauber Email: P.Knauber@fh-mannheim.de FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierung Was ist das? Warum
MehrObjektorientierter 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
MehrRessourceneinsatzplanung in der Fertigung
Fakultät Informatik, Institut für Angewandte Informatik, Professur Modellierung und Simulation Ressourceneinsatzplanung in der Fertigung Dr. Christoph Laroque Sommersemester 2012 Dresden, Was war Die im
MehrGrenzen der Formalisierung: zweitbeste Wege?
Software Engineering Requirements Grenzen der Formalisierung: zweitbeste Wege? Wolfgang Henhapl, Andreas Kaminski et al. 02 Übersetzung 2 Wir empfangen die Wahrheit h nicht, wir müssen sie uns selbst entdecken
MehrSEA. Modellgetriebene Softwareentwicklung in der BA
SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA
MehrÜbungsklausur vom 7. Dez. 2007
Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrFAQ 04/2015. Auswirkung der ISO 14119 auf 3SE53/3SF13 Positionsschalter. https://support.industry.siemens.com/cs/ww/de/view/109475921
FAQ 04/2015 Auswirkung der ISO 14119 auf 3SE53/3SF13 Positionsschalter mit https://support.industry.siemens.com/cs/ww/de/view/109475921 Dieser Beitrag stammt aus dem Siemens Industry Online Support. Es
MehrIMS - Learning Design
IMS - Learning Design Ein Vortrag zum Thema Learning Design von Maayan Weiss Inhalt Was ist IMS Learning Design? Kurzer Einblick Welche Lücken gibt es im e-learning? Was hat IMS-LD zu bieten. Wie sieht
MehrDas Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin
Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?
MehrA Domain Specific Language for Project Execution Models
A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche
MehrVortrag von: Ilias Agorakis & Robert Roginer
MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile
MehrHistorical Viewer. zu ETC5000 Benutzerhandbuch 312/15
Historical Viewer zu ETC5000 Benutzerhandbuch 312/15 Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Dokumentation...3 2 Installation... 3 3 Exportieren der Logdatei aus dem ETC 5000... 3 4 Anlegen eines
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrDer Kopf ist rund, damit das Denken die Richtung
Der Kopf ist rund, damit das Denken die Richtung Francis Picabia wechseln kann. Beste Perspektiven für Andersdenker. Erfolgreiche Unternehmen brauchen individuelle IT-Lösungen. Und dafür brauchen wir Sie.
MehrGrundlagen des Software Engineering
Grundlagen des Software Engineering Teil 1: SW-Management Fachrichtung Wirtschaftsinformatik FB Berufsakademie der FHW Berlin Prof. Dr. Gert Faustmann Motivation des Risikomanagements Ungefähr 80 Prozent
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur
MehrMusterlö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
MehrSOMA Reverse Engineering
SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance
MehrSystemdenken und Gestaltungsmethodik System-Modellierung
Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrErstellen und Bearbeiten von Inhalten (Assets)
Wichtig! Beachten Sie die Designrichtlinien im Kapitel Darstellung und Vorgaben zur Erstellung der Inhalte Ein Linkset erstellen Sie, wenn Sie mehrere Links gruppiert ausgeben möchten. Sie sollten diesem
MehrDokumentation, Analyse, Optimierung,
Dokumentation, Analyse, Optimierung, Automatisierung als gemeinsame Sprache für Business, Architektur und Entwicklung DOAG SIG BPM, Folie 1 Vortragende Software Engineer Dr. Projektleiter Folie 2 Zühlke:
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrAusschreiben mit Jobplattformen. Folie 1
Ausschreiben mit Jobplattformen Folie 1 Ausschreiben in umantis Bewerber Management Überblick über Ausschreibungsmöglichkeiten Ausschreibungskanäle Interne Ausschreibung Externe Ausschreibung Interner
MehrUsecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme
Usecase Meta Model Comparison and Model Migration Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme Einführung in den Atlas Model Weaver (AMW) theoretisch und praktisch Anwendungsgebiete Wo
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrSoftware-Evolution im Staged Lifecycle Model
Unterstützung evolutionärer Softwareentwicklung durch Merkmalmodelle und Traceability-Links Matthias Riebisch Technische Universität Ilmenau, matthias.riebisch@tu-ilmenau.de Arbeitsgruppe Software-Wartung
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrIBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung
In dieser Demo verwendet Alex die Visualisierungs- und Modellfunktionen von Rational Software Architect, um die Architektur der Anwendung zu betrachten und festzulegen, wie die Änderung Sofort kaufen bestmöglich
MehrDieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
MehrAllgemeines zu Datenbanken
Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,
MehrSoftware-Wartung Grundbegriffe und Einordnung Der Wartungsprozeß
Software-Wartung Grundbegriffe und Einordnung Der Wartungsprozeß Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068
MehrSicherheitsprofile Software as a Service. Sichere Nutzung von Cloud-Diensten
Sicherheitsprofile Software as a Service Sichere Nutzung von Cloud-Diensten Referat B22 Informationssicherheit und Digitalisierung it-sa 2014, Nürnberg Was ist ein Sicherheitsprofil Das Sicherheitsprofil
MehrVorlesung Donnerstags, 10.00 bis 11.30 Uhr, HS12 Übung Dienstags, 14.00 bis 15.30 Uhr 4-5 ÜbungsbläMer (Programmieraufgaben)
Komponenten Einführung Organisatorisches 2+1 SWS Vorlesung Donnerstags, 10.00 bis 11.30 Uhr, HS12 Übung Dienstags, 14.00 bis 15.30 Uhr 4-5 ÜbungsbläMer (Programmieraufgaben) Klausur 28. Februar 2013 Unterlagen
MehrKapitel 2: Der Software-Entwicklungsprozess
Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrErgebnisse zur Umfrage GC MARKT-BLITZLICHT No. 6 Mitarbeiter gewinnen. 08. August 2014
Ergebnisse zur Umfrage GC MARKT-BLITZLICHT No. 6 Mitarbeiter gewinnen 08. August 2014 1. Haben Sie in den letzten 2 Jahren Schwierigkeiten bei der Gewinnung von neuen Mitarbeitern gehabt?* Helfer Die Suche
MehrFree your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.
Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. 1 Automatische Verifikation von Anforderungen Dr. Guido Dischinger guido.dischinger@liantis.com
MehrObjektorientierte 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
MehrSoftware Product Line Engineering
Software Product Line Engineering Grundlagen, Variabilität, Organisation Sebastian Steger steger@cs.tu-berlin.de WS 2005/2006 SWT: Entwicklung verteilter eingebetteter Systeme Software Product Line Engineering
MehrARCHITEKTUR Speedikon Architektur ist ein leistungsstarkes 2D/3D-CADSystem für das Bauwesen. Verfügbar als Applikation für MicroStation und AutoCAD sowie als eigenständiges Programm für Windows. Speedikon
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrKonsolidierung 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
MehrBenötigen wir einen Certified Maintainer?
Benötigen wir einen Certified Maintainer? Stefan Opferkuch Universität Stuttgart Institut für technologie, Abteilung Engineering Bestehende Qualifizierungsprogramme Qualifizierungsprogramme existieren
MehrSoftware-Engineering
FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrRobot 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
MehrSemantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!
Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph! www.semantic-web-grundlagen.de Ontology Engineering! Dr. Sebastian Rudolph! Semantic Web Architecture
MehrDB Restore mit SQL Server7
DB Restore mit SQL Server7 Dok.-Nr: MO-SQL7-RE Version: 1.2 Datum: 23.11.2001 Status: In Bearbeitung Klassifizierung: Unklassifiziert Autor: R. Peter Verteiler: Alle DB-Admin. & Inf. Verantwortliche Einleitung
MehrEPK Ereignisgesteuerte Prozesskette
Ausarbeitung zum Fachseminar Wintersemester 2008/09 EPK Ereignisgesteuerte Prozesskette Referent: Prof. Dr. Linn Ausarbeitung: Zlatko Tadic e-mail: ztadic@hotmail.com Fachhochschule Wiesbaden Fachbereich
MehrWerkzeuggestützte Softwareprüfungen Statische Analyse und Metriken
Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken Dennis Hardt 21.06.2006 Gliederung Statische Analyse Definition, Arbeitsweise, Werkzeuge Angewandt auf ein Projekt Statische Analyse selbst
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrAbschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrSoftwareentwicklung aus Sicht des Gehirns
Softwareentwicklung aus Sicht Business Unit Manager Folie 1 3. Juli 2008 Ziele Das Ziel ist die Beantwortung der folgenden Fragen: 1. Wie lösen Softwareentwickler Probleme kognitiv? 2. Welche Auswirkungen
MehrResultate GfS-Umfrage November 2006. Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung?
Resultate GfS-Umfrage November 2006 Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung? Frage 1: Kennen Sie das Phänomen, dass Erwachsene fast nicht lesen und schreiben können, obwohl
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrSeminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006
Seminar Informationsintegration und Informationsqualität TU Kaiserslautern 30. Juni 2006 Gliederung Autonomie Verteilung führt zu Autonomie... Intra-Organisation: historisch Inter-Organisation: Internet
MehrErgebnisse des Workshops. IKT und Medien 2017. vom 25.06.2007 beim Forschungszentrum Informatik in Karlsruhe
Ergebnisse des Workshops IKT und Medien 2017 vom 25.06.2007 beim Forschungszentrum Informatik in Karlsruhe Die nachfolgenden Folien basieren auf den aufbereiteten Ergebnissen des moderierten Brainstormings
MehrEinführung in Subversion
Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame
MehrSoftwaretechnik (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
MehrAngepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards -
Angepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards - Anita Herrmann Braunschweig, 10. Nov 2004 Ausgangspunkte Im DLR werden nach vorsichtigen
MehrLernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung
Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung Ein Kunde hat Interesse an einem von Ihrem Unternehmen hergestellten Produkt gezeigt. Es handelt sich dabei um einen batteriebetriebenen tragbaren
MehrErfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank
Turning visions into business Oktober 2010 Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank David Croome Warum Assessments? Ein strategisches Ziel des IT-Bereichs der Großbank
MehrANSPRECHPARTNER. Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme
ANSPRECHPARTNER Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme Hochschule Merseburg axel.kilian@hs-merseburg.de Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) HOCHSCHULE
MehrModellgetriebene Service-Entwicklung
Modellgetriebene Service-Entwicklung Service-orientierte Architekturen (SOA), Prof. Dr. M. Jäger Johannes Tietje 24. Juni 2010 1 / 13 Motivation konkrete Teile eines Dienstes Rahmenimplementierung der
MehrViele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrKulturelle Evolution 12
3.3 Kulturelle Evolution Kulturelle Evolution Kulturelle Evolution 12 Seit die Menschen Erfindungen machen wie z.b. das Rad oder den Pflug, haben sie sich im Körperbau kaum mehr verändert. Dafür war einfach
MehrVerwendung 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
MehrVersionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS 2012. Lehrstuhl i9, Prof. Dr. T.
Versionsverwaltung GIT & SVN Alexander aus der Fünten Proseminar: Methoden und Werkzeuge, SS 2012 Lehrstuhl i9, Prof. Dr. T. Seidl RWTH Aachen Ablauf Was ist Versionsverwaltung? Arbeitsmodelle Lokale,
MehrProjektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)
Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:
MehrModellbasierte Softwareentwicklung
CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution
MehrArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung
Marko Apfel, Team Entwicklung Agenda Was ist COM Was sind die ArcObjects Warum Delphi mit ArcObjects Wie greift man auf die ArcObjects mit Delphi zu Wo gibt es Informationen 2 Agenda Was ist COM Was sind
MehrSemantische Wikis als Informationsdrehscheibe für verteilt arbeitende Softwareprojekte
Semantische Wikis als Informationsdrehscheibe für verteilt arbeitende Softwareprojekte Hans-Jörg Happel, FZI Forschungszentrum Informatik 3. Trendkongress net economy, Karlsruhe, April 2011 1 Das Projekt
MehrGenerative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009
Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG
MehrEmpirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010
Empirische Softwaretechnik Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010 IPD Tichy, Fakultät für Informatik Pflichtlektüre hierzu: Dzidek, Arisholm, Briand, A Realistic Empirical Evaluation
MehrDreamweaver 8 Einführung
Dreamweaver 8 Einführung Die Oberfläche von Dreamweaver Beim Start von Dreamweaver 8 präsentiert sich das Programm mit der folgenden Oberfläche: Menüleiste mit allen verfügbaren Befehlen von Dreamweaver.
MehrReengineering 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?
MehrSchnelle und konsistente Stoffwertberechnung mit Spline Interpolation Arbeiten innerhalb der IAPWS Task Group "CFD Steam Property Formulation"
M. Kunick, H. J. Kretzschmar Hochschule Zittau/Görlitz, Fachgebiet Technische Thermodynamik, Zittau Schnelle und konsistente Stoffwertberechnung mit Spline Interpolation Arbeiten innerhalb der IAPWS Task
MehrBedienungsanleitung - Webtool
Seite 1 Wie erstelle ich eine Anfrage? - Seite 2 Freie Anfrage - Seite 3 Strukturierte Anfrage Seite 4 Wie bestelle ich ein Angebot? Seite 5 Wie storniere ich eine Anfrage? Bedienungsanleitung - Webtool
MehrErfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
MehrVariabilität in Produktlinien und das orthogonale Variabilitätsmodell
Variabilität in Produktlinien und das orthogonale Variabilitätsmodell Vortrag im Rahmen des Proseminars Softwarequalität und -sicherheit von Marion Weber SS 2010 1 Einführung & Motivation Variabilität
MehrGEVITAS Farben-Reaktionstest
GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl
MehrKapitel 10: Dokumentation
Kapitel 10: Dokumentation Inhalt 10.1 Stellenwert der Dokumentation 10.2 Dokumentenlenkung 10.3 Dokumentation des Qualitätsmanagementsystems Schlüsselbegriffe Dokument, Dokumentenlenkung, Qualitätshandbuch
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrAbschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec
Abschlussvortrag Masterarbeit: Operationalizing in an agile Software Projec Freie Universität Berlin, Institut für Informatik February 2, 2015 Übersicht 2 Was ist Softwarearchitektur? Softwarearchitektur
Mehr