Kontinuierliches Qualitäts-Controlling langlebiger Softwaresysteme
|
|
- Erich Engel
- vor 8 Jahren
- Abrufe
Transkript
1 Kontinuierliches Qualitäts-Controlling langlebiger Softwaresysteme Dr. Florian Deißenböck msg systems ag 15. März 2013 Continuous Quality in Software Engineering
2 Agenda Software-Wartung»Schlechter Code«Qualitätsverfall Qualitäts-Controlling Werkzeugunterstützung
3 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
4 Relevanz Lebenszyklus-Kosten 100% 80% 60% 40% 20% Hardware Development Maintenance Wartungsfälle 60% 50% 40% 30% 20% 10% 0% % Corrective Adaptive Perfective
5 Fehleinschätzungen Wartung ist reaktiv, unkreativ Wartung erfordert keine spezielle Qualifikation Wartungs-Schulungen 80% 70% 60% 50% 40% 30% 20% 10% Prüfung der Wartbarkeit 80% 70% 60% 50% 40% 30% 20% 10% 0% ja nein Katrin Katheder, Studie zur Software-Wartung, Bachelor Thesis, TU München, % ja nein
6 Einflussfaktoren H. Sneed, Estimating the Costs of Software Maintenance Tasks, ICSM, 1995
7 #include <math.h> #include <sys/time.h> #include <X11/Xlib.h> #include <X11/keysym.h> double L,o,P,_=dt,T,Z,D=1,d, s[999],e,h= 8,I, J,K,w[999],M,m,O,n[999],j=33e-3,i= 1E3,r,t, u,v,w,s= 74.5,l=221,X=7.26, a,b,a=32.2,c, F,H; int N,q, C, y,p,u; Window z; char f[52] ; GC k; main(){ Display*e= XOpenDisplay( 0); z=rootwindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),blackpixel(e,0)) ; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400, 0,0,WhitePixel(e,0) ),KeyPressMask); for(xmapwindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6} ; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=e*k; W=cos( O); m=k*w; H=K*T; O+=D*_*F/ K+d/K*E*_; B= sin(j); a=b*t*d-e*w; XClearWindow(e,z); t=t*e+ D*B*W; j+=d*_*d-_*f*e; P=W*E*B-T*D; for (o+=(i=d*w+e *T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s ]== 0 K <fabs(w=t*r-i*e +D*P) fabs(d=t *D+Z *T-a *E)> K)N=1e4; else{ q=w/k *4E2+2e2; C= 2E2+4e2/ K *D; N-1E4&& XDrawLine(e,z,k,N,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+m *M; XDrawString(e,z,k,20,380,f,17); D=v/l*15; i+=(b *l-m*r -X*Z)*_; for(; XPending(e); u *=CS!=N){ XEvent z; XNextEvent(e,&z); ++*((N=XLookupKeysym (&z.xkey,0))-it? N-LT? UP-N?& E:& J:& u: &h); --*( DN -N? N-DT?N== RT?&u: & W:&h:&J ); } m=15*f/l; c+=(i=m/ l,l*h +I*M+a*X)*_; H =A*r+v*X-F*l+( E=.1+X*4.9/l,t =T*m/32-I*T/24 )/S; K=F*M+( h* 1e4/l-(T+ E*5*T*E)/3e2 )/S-X*d-B*A; a=2.63 /l*d; X+=( d*l-t/s *(.19*E +a *.64+J/1e3 )-M* v +A* Z)*_; l += K *_; W=d; sprintf(f, "%5d %3d" "%7d",p =l /1.7,(C=9E3+ O*57.3)%0550,(int)i); d+=t*(.45-14/l* X-a*130-J*.14)*_/125e2+F*_*v; P=(T*(47 *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W* 179*v)/2312; select(p=0,0,0,0,&g); v-=( W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u )/107e2)*_; D=cos(o); E=sin(o); } }
8 } for (const_iterator<permission> permission = permissions.begin(); permission!= permissions.end(); ++permission) { if (!permission->isinternal()) { if (user->haspermission (permission)) { cout << " " << permission << endl; } } } } } } /* bezieht sich auf if in Zeile 172 */ Zeilen C# in einer Klasse Zeilen C# in einer Methode Schachtelungstiefe Parameter
9 Bezeichner Anzahl S0 810 S1 612 r1 490 I1 423 S2 362 i1 248 S3 211 SQL 199 CM 193 I2 155 Type # % chars % Keywords % % Delimiters % % Operators % % Identifiers % % Literals % % Total % % Eclipse 3.0: Bezeichner bestehend aus Wörtern Identifikatoren sind das Vokabular eines Programms (ca. 70%) Synonyme & Homonyme Limitierung durch Programmiersprachen F. Deißenböck, M. Pizka, Concise and Consistent Naming, IWPC, 2005
10 /* if-else-kaskade */ if (GlobalSettings::mayPrintToConsole ()) { if (!user->isadmin()) { if (!permission->isinternal()) { if (user->haspermission int search (String s, String[] strings) { //strings = tolowercase(strings); strings = sort(strings); List<String> l = aslist(strings); return search(s, strings); }
11 TODO: ist das wirklich Okay, einem QWidget einen QObject Parent zu geben? TODO: Soll das so sein? Jetzt echt? Alle alten Sachen in die Tonne? TODO: WEG MIT DIESEM DRECK - RK SOLLTE FÜR JEDEN INDEX IMMER TODO: Nicht benutzen, hat hier überhaupt nix verloren FIXME: solve timeout problem FIXME: REFACTOREN! ich habe das jetzt einfache rüberkopiert, ist Müll so TODO: remove this hack TODO: Worin unterscheidet sich dieser Test vom vorherigen?? CQSE GmbH 2013
12
13 public double calc (double d1, double 2) { if (d1 == d2) { return 0; }... public double comp (String s1, String s2) { if (s1 == s2) { return 0; }... if (condition); { code_in_if (); } if (a<1 && a>5) { code_in_if (); } Socket s = new Socket (" ", 8080); return valid? true : false; Redundante Literale Magic Numbers GOTO Ausgerollte Schleifen public int find (String[] strings) { prepare(strings); int result = findprep(strings); Logger.debug(sort(strings)); return result; }
14 private static class Dir extends PathEntry { private String dir; Dir(String d) { dir = d; } ClassFile getclassfile(string name, String suffix) throws IOException { final File file = new File(dir + File.separatorChar + name.replace('.', File.separatorChar) + suffix); return file.exists()? new ClassFile() { public InputStream getinputstream() throws IOException { return new FileInputStream(file); } public String getpath() { try { return file.getcanonicalpath(); } catch(ioexception e) { return null; } } public long gettime() { return file.lastmodified(); } public long getsize() { return file.length(); } public String getbase() { return dir; } } : null; }...
15 try {... } catch (Throwable t) {} try {... } catch (Exception ex) { ex.printstracktrace(); } try {... } catch (Exception ex) { throw new RuntimeException(ex); } ungenügende/keine Behandlung von Ausnahmen inkonsistente Verwendung von Ausnahmen Ausnahmen vs Rückgabewerte Java: Checked vs Unchecked Exceptions
16 Juergens et al., Do Code Clones Matter?, ICSE 2009
17
18
19
20 Studie Identifikation von über 100 Fehlern in produktiver Software Kritisch Nutzersichtbar Nicht nutzersichtbar Juergens et al., Do Code Clones Matter?, ICSE 2009
21 DEMO CQSE GmbH 2013
22 >10 Programmiersprachen in einem System Wahl der Sprache auf Basis der Entwicklerverfügbarkeit veraltete Technologien Sprachvermischung
23 <body> <% If Request.QueryString( ID ) <> Then %> <SCRIPT language= JavaScript > function dologin() { X } </script> <% Else %> <SCRIPT language= JavaScript > function dologin() { Y } </script> <% End If %>... </body> CQSE GmbH 2013
24 35 Trigger entführte Tabellen/verlorene User SQL-Injection Impact-Analyse auf Zuruf
25 Tests, die kontinuierlich fehlschlagen Unit-Tests, die nichts testen Mangelnde Testbarkeit Capture&Replay-Werkzeuge
26 JUnit Samples Core TextUI Runner Extensions Framework Experimental Tests Lib Matchers Hamcrest
27
28 Studie Projekt Alter kloc #Beziehungen #Abweichungen Doku. Probleme Architektur- Verletzungen A ~90% ~10% B ~88% ~12% C ~72% ~28% Erkenntnisse Dokumentation typischerweise veraltet Vielzahl relevanter Verletzungen aufgedeckt (inkl. Bugs) gemeinsames Architekturverständnis ist nötig M. Feilkas et al., The Loss of Architectural Knowledge during System Evolution, ICPC 2009
29 DEMO CQSE GmbH 2013
30 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
31 »Programs, like people, get old«*»software aging in all successful products«ursachen: mangelnde Bewegung unkundige Behandlung Symptome: Gewichtszunahme sinkende Performance und Zuverlässigkeit Prävention: Vorausplanen (Qualität, Flexibles Design) Aufzeichnung aufbewahren (Dokumentation) zweite Meinung einholen (Review) Heilkunde: Alterungsprozess aufhalten, Nachdokumentation Restrukturieren, Amputation * D. L. Parnas, Software Aging, ICSE, 1994
32 Beispiel Bell Labs: 100Mloc, Module, 15 Jahre, Entwickler S. G. Eick et al., Does Code Decay?, IEEE Trans. Softw. Eng., 2001 Phänomen: Änderungsaufwand/Fehlerpotential zunehmend Symptome:»bloated«Code, Behelfslösungen, Ursachen: Zeitdruck, Werkzeuge, Umfeld, Team, Architektur, Proportional zur Anzahl Änderungen
33 LoC Clone LoC Aug. 04 Okt. 04 Dez. 04 Feb. 05 Apr. 05 Jun. 05 Aug. 05 Okt. 05 Dez. 05 Feb. 06 Apr. 06 Jun. 06 Aug. 06 Okt. 06 Dez. 06
34 CQSE GmbH 2013
35 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Kontinuierliches Qualitäts-Controlling Technologie: Hardware, BS, Sprachen, Datenbanken,
36 Änderungen gewünschte Wartbarkeit Abweichung Korrekturen Wartbarkeit Q-Ing. Entwickler System Analyse-Ergebnis (feedback) Qualitäts-Analyse Review Analyse-Tool
37 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
38 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
39 Trugschluss: Messbar == Relevant CQSE GmbH 2013
40 org.junit.runners.enclosed org.junit.experimental.theories.theories org.junit.internal.runners.testclassrunne r org.junit.tests.parameterizedtestmethodtest org.junit.tests.alltests org.junit.tests.testmethodtest org.junit.internal.requests.classrequest org.junit.tests.enclosedtest org.junit.tests.singlemethodtes t org.junit.experimental.results.resultmatchers org.junit.tests.parameterizedtesttest org.junit.tests.suitemethodtest org.junit.tests.suitetes t org.junit.tests.testlistenertest org.junit.tests.timeouttest org.junit.tests.allteststest org.junit.tests.ignoreclasstest org.junit.tests.prejunit4testcaserunnertest org.junit.tests.listenertest org.junit.tests.runnertest org.junit.tests.commandlinetest org.junit.experimental.theories.theor y org.junit.experimental.theories.parametersignature org.junit.experimental.theories.parameterssuppliedby org.junit.experimental.theories.suppliers.testedonsupplier org.junit.experimental.theories.suppliers.testedon org.junit.experimental.theories.datapoint org.junit.experimental.theories.potentialparametervalu e org.junit.experimental.theories.parametersupplier org.junit.experimental.theories.internal.theorymethod org.junit.tests.anotherpackage.super org.junit.experimental.theories.internal.parameterizedassertionerror org.junit.internal.runners.initializationerror org.junit.runners.parameterized org.junit.tests.anotherpackage.sub org.junit.runners.suite org.junit.tests.inaccessiblebaseclasstest org.junit.internal.runners.methodvalidator org.junit.beforeclass org.junit.afterclass org.junit.internal.runners.testclass org.junit.test org.junit.before org.junit.after org.junit.internal.runners.testmethod org.junit.internal.runners.junit4classrunner org.junit.internal.runners.classroadie org.junit.internal.runners.failedbefore org.junit.runner.manipulation.filterable org.junit.internal.runners.methodroadie org.junit.internal.runners.compositerunne r org.junit.runner.manipulation.notestsremainexception org.junit.runner.manipulation.filter org.junit.internal.requests.filterrequest org.junit.ignore org.junit.runner.runwith org.junit.tests.validationtest org.junit.internal.requests.classesrequest org.junit.runner.manipulation.sorter org.junit.runner.manipulation.sortable org.junit.internal.requests.ignoredclassrunner org.junit.runner.request org.junit.internal.requests.errorreportingrequest org.junit.runner.notification.runnotifier org.junit.runner.notification.stoppedbyuserexception org.junit.tests.annotateddescriptiontes t org.junit.internal.runners.errorreportingrunner org.junit.tests.userstoptest org.junit.internal.requests.sortingreques t org.junit.tests.classrequesttest org.junit.runner.runner org.junit.runners.alltests org.junit.runner.description org.junit.internal.runners.oldtestclassrunner org.junit.internal.runners.junit38classrunner junit.framework.junit4testadapter org.junit.tests.oldtestclassadaptinglistenertes t org.junit.samples.simpletest org.junit.tests.suitedescriptiontest junit.framework.junit4testadaptercache junit.framework.junit4testcasefacade org.junit.tests.testdescriptiontest org.junit.tests.junitcoretest org.junit.assume org.junit.runner.junitcore org.junit.assert org.junit.internal.arraycomparisonfailure org.junit.tests.runwithtest org.junit.samples.listtes t org.junit.tests.testclassmethodsrunnertes t org.junit.runner.result org.junit.comparisonfailure org.junit.runner.notification.failure org.junit.experimental.results.printableresul t org.hamcrest.stringdescription org.hamcrest.basedescription org.hamcrest.internal.arrayiterator org.junit.tests.failedconstructiontest org.junit.runner.notification.runlistener org.hamcrest.core.issame org.hamcrest.selfdescribing org.junit.experimental.results.failurelist org.hamcrest.core.isinstanceof org.hamcrest.internal.selfdescribingvalueiterator org.hamcrest.internal.selfdescribingvalue org.junit.tests.assumptiontest org.junit.tests.expectedtest org.hamcrest.core.isanything org.junit.internal.textlistener org.hamcrest.description org.hamcrest.core.is org.junit.tests.assertiontes t org.hamcrest.core.isequal org.junit.tests.textlistenertest org.hamcrest.corematchers org.hamcrest.core.isnu l org.hamcrest.core.isnot org.hamcrest.basematcher org.junit.tests.oldtestclassrunnertest org.hamcrest.core.anyof org.hamcrest.matcher org.junit.tests.assumptionviolatedexceptiontest org.junit.matchers.each org.junit.matchers.iscollectioncontaining org.hamcrest.core.describedas org.junit.tests.annotationtes t org.junit.matchers.combinablematcher org.junit.tests.eachtes t org.junit.matchers.junitmatchers org.hamcrest.core.allof org.junit.matchers.stringcontains org.junit.matchers.substringmatcher org.junit.tests.bothtes t org.junit.matchers.typesafematcher org.junit.tests.initializationerrorforwardcompatibilitytest org.junit.tests.forwardcompatibilitytes t junit.framework.test org.junit.tests.forwardcompatibilityprintingtest junit.framework.testfailure junit.runner.version junit.samples.simpletes t junit.tests.runner.textrunnertes t junit.framework.testsuit e junit.framework.testresult junit.framework.protectabl e junit.textui.resultprinter junit.framework.testlistene r junit.tests.runner.textfeedbacktes t junit.textui.testrunner junit.runner.basetestrunner junit.extensions.testsetup junit.extensions.testdecorator junit.extensions.repeatedtest junit.tests.runner.textrunnersinglemethodtest junit.tests.runner.stackfiltertest org.junit.tests.oldtests junit.tests.alltest s junit.tests.runner.alltest s junit.extensions.activetestsuite junit.tests.runner.basetestrunnertes t junit.tests.framework.success junit.samples.alltests junit.tests.extensions.repeatedtesttest junit.tests.framework.failure org.hamcrest.factory junit.tests.extensions.alltest s junit.tests.framework.notestcaseclass junit.samples.listtest junit.tests.extensions.extensiontest junit.framework.testcase junit.tests.wasrun org.junit.tests.sortabletest junit.tests.extensions.activetesttes t junit.runner.testrunlistene r junit.tests.framework.testimplementortest junit.tests.framework.notvoidtestcase junit.tests.framework.notestcases junit.tests.framework.notpublictestcas e junit.tests.framework.testcasetest junit.tests.framework.alltest s junit.tests.framework.suitetes t junit.tests.framework.overridetestcase junit.tests.framework.floatasserttes t junit.tests.framework.noargtestcasetest junit.tests.framework.onetestcase junit.tests.framework.testlistenertest junit.tests.framework.asserttest junit.tests.framework.comparisonfailuretes t junit.tests.framework.comparisoncompactortest junit.framework.assert junit.framework.assertionfailederror junit.tests.framework.inheritedtestcas e junit.framework.comparisonfailure junit.framework.comparisoncompactor junit.tests.framework.doubleprecisionasserttest org.junit.samples.money.moneytest junit.samples.money.moneybag junit.samples.money.money junit.samples.money.moneytes t junit.samples.money.imoney CQSE GmbH 2013 OO Design Metrics Fan-In Fan-Out 4 Coupling Cohesion Stability Depth of Inheritance # Children
41 Trugschluss: Messung == Bewertung Messung Bewertung
42
43
44 Trugschluss: Messung == Bewertung Messung Bewertung Kontext
45 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
46 Manuelle Reviews viele relevante Qualitätseigenschaften sind nicht automatisch analysierbar Bezeichner Kommentare sinnvolle Verwendung von Datenstrukturen und Algorithmen Konsistenz der Fehlerbehandlung logische Redundanz diese Eigenschaften bedürfen der manuelle Analyse manuelle Analysen werden in der Praxis nur spärlich eingesetzt manuelle Analysen sollten soweit möglich durch automatische Analysen unterstüzt werden
47 Reviews bei der ConQAT-Entwicklung flächendeckendes Review aller Änderungen auf Basis des Ampelzustands der angepassten Dateien Sammlung der Issues als TODO-Tags im Code review creation release review RED YELLOW GREEN deletion modification
48
49 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
50 Messung erfordert Ziele 4 Keine Defizite 3 Keine Defizite in geändertem Code 2 Keine neue Defizite 1 Egal
51 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
52 Quality Indicator Stability of Regular Team Builds Architecture Conformance Full Assessment Build is stable. There are zero violations. Delta Assessment At the time of the last report, there was no automated build at all. Architecture specification was completed and is now fully adhered to. Stability of Unit Tests 75 unit tests are passing but many tests have been disabled. Unit tests are now executed automatically. Code Coverage Cover coverage measurement is not yet enabled. is working on this. Compiler Warnings The code exhibits 7 compiler warnings. However, it is questionable if their removal is worthwhile. The number of warnings was significantly reduced but not all fixes actually improve the code quality. Coding Guidelines Violations Duplicated Code The threshold of for types with any FxCop warning is violated. With a clone coverage of the threshold ofi s slightly violated. The amount of files with at least one FxCop warning increased. Clone coverage did not change significantly. File Size The threshold regarding files > LOC is violated. Use of partial classes improves the metric values but does not improve code quality. Nesting Depth Both thresholds are satisfied. All nestings deeper than have been removed. Length of Longest Method The threshold regarding methods > LOC is violated. The amount of types with methods longer than decreased significantly. LoCM
53 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
54 »Die Sau wird vom Wiegen nicht fett«messung Bewertung Aktion Task-Liste Qualitäts- Verbesserung
55 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
56 ConQAT graphische DSL zur Spezifikation der Analysekonfiguration Prozessoren beschreiben Analyseoperationen Kanten beschreiben Datenfluss Blöcke ermöglichen die Wiederverwendung von Analysefunktionalität source modulea Utility.java Main.java Loader.java source modulea Utility.java 128 Main.java 244 Loader.java 331 source 703 modulea 703 Utility.java 128 Main.java 244 Loader.java /04/ /04/ /03/ /06/
57 Qualitäts-Dashboards CQSE GmbH 2013
58 Eingabe Quelltext (Ada, ABAP, C/C++, Cobol, C#, Java, JavaScript, VB, PL/I, ) Textdokumente (Plain, CSV, Word, PDF) Modelle (Simulink/Stateflow) Respositories (Subversion, TFS, Bugzilla, Redmine) Analyse Basis-Metriken (# Files, LOC, SLOC, # Methods, Nesting Depth, ) Clone-Detection Architektur-Analyse Tool-Integration (PMD, Findbugs, JUnit, Cobertura, Klocwork, FxCop, ) Basis-Metriken (# Files, LOC, SLOC, # Methods, Nesting Depth, ) Historisierung Ausgabe verschiedene Formate (HTML, PDF, Text, ) Tabellen Diagramme (Balken, Linie, Radar, Fläche, Scatter, Torte, ) Tree-Maps (Plain & Cushion)
59
60 Teamscale SVN Incremental Analysis Engine Web Client Scheduler TFS NoSQL Store REST Service Layer Eclipse Worker 1 Worker N Visual Studio File System
61 DEMO CQSE GmbH 2013
62 DEMO CQSE GmbH 2013
63 DEMO CQSE GmbH 2013
64 DEMO CQSE GmbH 2013
65 DEMO CQSE GmbH 2013
66 LoC Clone LoC Aug. 04 Okt. 04 Dez. 04 Feb. 05 Apr. 05 Jun. 05 Aug. 05 Okt. 05 Dez. 05 Feb. 06 Apr. 06 Jun. 06 Aug. 06 Okt. 06 Dez. 06 Feb. 07 Apr. 07 Jun. 07 Aug. 07 Okt. 07 Dez. 07 Feb. 08 Apr. 08 Jun. 08 Aug. 08 Okt. 08 Dez. 08 Feb. 09 Apr. 09
67
68
69 Quality Dashboard Quality Control Project Manager interprets Quality Reports creates interprets Quality Engineer defines configures reviews triggers/educates implements analyzes generates Teamscale Analysis Tool accesses Software System Data Sources respects interprets Guidelines Developer
70 Kontakt Dr. Florian Deißenböck CQSE GmbH Lichtenbergstraße Garching bei
ConQAT Software-Qualitäts-Analyse aus dem Baukasten
ConQAT Software-Qualitäts-Analyse aus dem Baukasten Dr. Florian Deißenböck 6. März 2012 Universität Stuttgart Continuous Quality in Software Engineering Änderungen gewünschte Wartbarkeit Abweichung Korrekturen
MehrVertrauen ist gut. Dr. Florian Deißenböck. BITKOM Arbeitskreis Software Engineering. 8. Oktober 2014. Continuous Quality in Software Engineering
Vertrauen ist gut Dr. Florian Deißenböck BITKOM Arbeitskreis Software Engineering 8. Oktober 2014 Continuous Quality in Software Engineering Software Engineering Governance is the set of structures, processes
MehrSoftwarequalität Eine Einführung
Softwarequalität Eine Einführung Dr. Florian Deißenböck Seminar Softwarequalität 4. April 2013 Continuous Quality in Software Engineering Agenda Softwarequalität Softwarequalitätsmodelle Software-Wartung»Schlechter
MehrSchlechter Code Beispiele, Gründe, Gegenmaßnahmen
Schlechter Code Beispiele, Gründe, Gegenmaßnahmen Dr. Florian Deißenböck GI Regionalgruppe München 11. Juni 2012 Continuous Quality in Software Engineering Agenda Schlechter Code Code-Reviews Werkzeuge
MehrCode-Qualität. Dr. Florian Deißenböck. AE-Kolloquium Versicherungskammer Bayern. 27. Oktober 2011. Continuous Quality in Software Engineering
Code-Qualität Dr. Florian Deißenböck AE-Kolloquium Versicherungskammer Bayern 27. Oktober 2011 Continuous Quality in Software Engineering Agenda Schlechter Code Code-Reviews Werkzeuge Qualitätsverfall
MehrCQSE GmbH Software-Qualität. Dr. Florian Deißenböck 26. Januar Continuous Quality in Software Engineering
CQSE GmbH 2017 Software-Qualität Dr. Florian Deißenböck 26. Januar 2017 Continuous Quality in Software Engineering CQSE GmbH 2017 Warum ist Software- Qualität wichtig? Welche Probleme gibt es? Warum wird
MehrSchlechter Code Beispiele, Gründe, Gegenmaßnahmen
Schlechter Code Beispiele, Gründe, Gegenmaßnahmen Dr. Florian Deißenböck GI Regionalgruppe Hamburg 26. Oktober 2012 Continuous Quality in Software Engineering Agenda Schlechter Code Code-Reviews Werkzeuge
MehrSoftware Intelligence
Software Intelligence Dr. Florian Deißenböck 9. Februar 2017 Alle Logos sind von Wikipedia. Die Rechte daran hält die jeweilige Organisation. Continuous Quality in Software Engineering Anforderungen: Geschäftsprozesse,
MehrWas kann man aus der Versionshistorie eines Softwaresystems lernen?
Was kann man aus der Versionshistorie eines Softwaresystems lernen? JUG Darmstadt - 13. Oktober 2016 Dr. Dennis Pagano @dennispagano Über Mich Forschung Analyse von Open Source Communities Historie von
MehrWas kann man aus der Versionshistorie eines Softwareprojekts lernen? Dr. Dennis
Was kann man aus der Versionshistorie eines Softwareprojekts lernen? Dr. Dennis Pagano @dennispagano Über Mich Forschung Analyse von Open Source Communities Historie von Code und Kommunikationsartefakten
MehrDon't look back in anger
Don't look back in anger Wie uns Historienanalyse dabei hilft, unsere Entwicklung zu verbessern Java Forum Stuttgart - 6. Juli 2017 Dr. Dennis Pagano @dennispagano Ausschnitt aus meiner Historie Forschung
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrTest-Gap-Analyse. Wie erkennen wir ungetestete Änderungen, bevor sie ins Release gehen? Dr. Andreas Göb XP Days Germany 2015
Test-Gap-Analyse Wie erkennen wir ungetestete Änderungen, bevor sie ins Release gehen? Dr. Andreas Göb XP Days Germany 2015 Über mich Forschung Modellierung von Softwarequalität Wartbarkeit, Software-Architektur
MehrEcholot Qualitätssicherung mit Sonar
Echolot Qualitätssicherung mit Sonar Thomas Haug thomas.haug@mathema.de www.mathema.de Motivation Sonar Überblick Demo Fazit Motivation Sonar Überblick Demo Fazit Sometimes the developers manage to maintain
MehrErweiterbare Architekturen
1 Florian Deißenböck Erweiterbare Architekturen 23. September 2005 Architektenworkshop 2 Gliederung Hintergrund Persönliches, Software-Qualität, Wartbarkeit ConQATs Architektur Entwurf, Prototypen, Konfiguration
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrAutomatisiertes UI Testing. Mark Allibone, 18.04.2013, #2
Coded UI Testing Automatisiertes UI Testing Mark Allibone, 18.04.2013, #2 Eine klassische Applikations Architektur Grafische Oberfläche Business Logik Datenzugriff (Datenbank, Cloud, etc) Mark Allibone,
MehrEntwicklungswerkzeuge
Entwicklungswerkzeuge Werner Struckmann & Tim Winkelmann 10. Oktober 2012 Gliederung Anforderungen Projekte Debugging Versionsverwaltung Frameworks Pattern Integrated development environment (IDE) Werner
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrPrüfung Software Engineering II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 4 A Sommersemester 2015 Prüfung Software Engineering II (IB) Datum : 20.07.2015, 12:30 Uhr Bearbeitungszeit
MehrUnit Tests und Fehlersuche
Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrDevOps bei den ID Build-Automatisierung statt Silo-Betrieb
DevOps bei den ID Build-Automatisierung statt Silo-Betrieb SWS Entwicklertreffen vom 1.10.2015 Benno Luthiger 1.10.2015 1 Ausgangslage Kundenwunsch: Stabiles System, das schnell reagiert ( Betrieb) Neue
MehrSource Code Konverter... 2. Online: (VB.net <-> C#)... 3. Kommerzielle Produkte (VB, C#, C++, Java)... 3. Code Nachbearbeitung in der Praxis...
Autor: Thomas Reinwart 2008-05-05 office@reinwart.com Inhalt Source Code Konverter... 2 Online: (VB.net C#)... 3 Kommerzielle Produkte (VB, C#, C++, Java)... 3 Code Nachbearbeitung in der Praxis...
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
MehrDie Kunst des Programmierens...
Die Kunst des Programmierens... Wo die Kosten anfallen Der Mythos Wiederverwendung: Design für Wartung als eigentliches Ziel, Objekt Spektrum 4/2009 software maintainers sped 45 percent of their time seeking
MehrPragmatik von Programmiersprachen
Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software
MehrBeispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
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
MehrTest Driven Development
Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)
MehrRequirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit
IBM Software Group IBM Rational mit RequisitePro Hubert Biskup hubert.biskup@de.ibm.com Agenda Rational in der IBM Software Group Der Rational Unified Process als Basis für die Projektarbeit mit Rational
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrInhalt. 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,
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrLog Parser 2.0 HackerScan.js. Beschreibung. Anforderungen. Unterstützte Plattformen. Script-Code. Zurück zur Übersichtsseite
Zurück zur Übersichtsseite Log Parser 2.0 HackerScan.js (Engl. Originaltitel: HackerScan.js) Beschreibung Dieses Script sucht in allen IIS-Protokolldateien (IIS-, HTTPError- und UrlScan-Protokolldateien)
MehrUwe Baumann artiso Solutions ubaumann@artiso.com
Uwe Baumann artiso Solutions ubaumann@artiso.com Upgrade Strategien Data/Application Tier Anpassung von Process Templates Build Test/Lab Performance TFS Version Control Workitem Tracking Build Verwaltung
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrAutomatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH
Automatisierte Akzeptanztests für ios-apps Sven Günther it-agile GmbH Wer entwickelt native Apps? Wer testet die Apps selbst? Wer hat externe Testdienstleister? Wer hat Unit-Tests? Wer hat Akzeptanztests?
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrSERVICE SUCHE ZUR UNTERSTÜTZUNG
SERVICE SUCHE ZUR UNTERSTÜTZUNG VON ANFORDERUNGSERMITTLUNG IM ERP BEREICH MARKUS NÖBAUER NORBERT SEYFF ERP SYSTEME Begriffsbestimmung: Enterprise Resource Planning / Business Management Solution Integrierte
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrJUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1
JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen
MehrTorsten Flatter inovex GmbH. "Git.NET" gibt's nicht?
Torsten Flatter inovex GmbH "Git.NET" gibt's nicht? Vorstellung Torsten Flatter inovex GmbH.NET / C# seit 2004 VSS, CVS, SVN, TFS, hq, git Enterprise-Umfeld Agenda Überblick Grundlagen Einsatzbereiche
MehrLösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrNCDiff Testmanagement leicht gemacht
Testmanagement leicht gemacht Nagler & Company Thomas Gebhard & Anton Garra Complexity Die stetige Anpassung an neue Anforderungen der IT und das Bestreben Marktgegebenheiten zu folgen oder voraus zu sein,
MehrEinreichung zum Call for Papers
Internet: www.aitag.com Email: info@aitag.com Einreichung zum Call for Papers Kontaktinformationen Sven Hubert AIT AG Leitzstr. 45 70469 Stuttgart Deutschland http://www.aitag.com bzw. http://tfsblog.de
MehrABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker
ABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker MOTIVATION Fahrzeug-Software wird modellbasiert mit Simulink/TargetLink entwickelt & DO331/DO-178C ermöglicht modellbasierte
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
MehrÜbersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.
Eclipse WSDL-Editor Übersicht Eclipse Foundation Eclipse Plugins & Projects Eclipse Ganymede Simultaneous Release Web Tools Platform Projekt WSDL Editor Bug #237918 Eclipse Foundation Was ist Eclipse?
MehrSoftware Intelligence
Software Intelligence Dr. Florian Deißenböck 27. Oktober 2016 Alle Logos sind von Wikipedia. Die Rechte daran hält die jeweilige Organisation. Continuous Quality in Software Engineering 1968 1998 2004
MehrIterativ. Inkrementell
Iterativ Inkrementell Build Release Test Qualität Architektur & Documentation Distributed Version Control Continuous Integration TDD Design Agile Architektur Dependency Feature Branches Mocks
MehrGELEBTE ENTWICKLUNGSRICHTLINIEN
GELEBTE ENTWICKLUNGSRICHTLINIEN VOM VERSTAUBTEM PAPIERSTAPEL ZUM SPICKZETTEL FÜR ENTWICKLER BORIS WEHRLE ENTWICKLUNGSRICHTLINIEN Ein Programmierstil (engl. code conventions, coding conventions, coding
MehrEs wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.
Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder
MehrHow To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform
How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform 0. Benötigt werden folgende Softwarepakete:.NET Framework Software Development Kit (http://www.microsoft.com/downloads/details.aspx?familyid=4fe5bdb5-c7a7-4505-9927-2213868a325b&displaylang=en)
MehrValue Delivery and Customer Feedback
Value Delivery and Customer Feedback Managing Continuous Flow of Value Michael Reisinger Microsoft & ANECON Praxisupdate 2014 ANECON Software Design und Beratung G.m.b.H. Alser Str. 4/Hof 1 A-1090 Wien
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
MehrEEX Kundeninformation 2007-09-05
EEX Eurex Release 10.0: Dokumentation Windows Server 2003 auf Workstations; Windows Server 2003 Service Pack 2: Information bezüglich Support Sehr geehrte Handelsteilnehmer, Im Rahmen von Eurex Release
MehrSummenbildung in Bauteiltabellen mit If Then Abfrage
Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrWEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?
WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)
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
MehrSpock und Geb: Übersichtlich und nachvollziehbar Testen für alle!
Spock und Geb: Übersichtlich und nachvollziehbar Testen für alle! Entwicklertag Karlsruhe, 20.05.2015 Ralf D. Müller, Freelancer Tobias Kraft, exensio GmbH Meine Software wird durch automatisierte Tests
MehrVerfügbarkeit von Applikationen und Failover Szenarien. Winfried Wojtenek. wojtenek@mac.com
Verfügbarkeit von Applikationen und Failover Szenarien Winfried Wojtenek wojtenek@mac.com Verfügbarkeit % Tage Stunden Minuten 99.000 3 16 36 99.500 1 20 48 99.900 0 9 46 99.990 0 0 53 99.999 0 0 5 Tabelle
MehrSoftwarequalität sicherstellen mit Sonar
Softwarequalität sicherstellen mit Sonar Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Hochschule München Michaela Lutz München, den 07. Juni 2013 1 Gliederung Was ist Sonar? Komponenten
MehrEvaluation of Database Design and Reverse Engineering Tools for a Large Software System
Evaluation of Database Design and Reverse Engineering Tools for a Large Software System Anne Thomas TU Dresden Dr. B. Demuth Pre Press GmbH (Dresden) T. Reuter Gliederung Einleitung Vorgehensweise Kontext
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrPython SVN-Revision 12
Python SVN-Revision 12 Uwe Ziegenhagen 7. Januar 2012 Vorwort Dieses Skript erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit. Es wird geschrieben, um mir als Gedächtnisstütze für den Umgang
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrGuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH
GuiXT und mysap ERP Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH Hinweis: Einige Aussagen und Diagramme zu den SAP Produkten in dieser Präsentation stammen aus den von SAP im Internet zur Verfügung
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrHauptseminar AOSD. Design-by-Contract
Hauptseminar AOSD Seite 1 Entstehung Was ist das? Java Annotations und AOP ConceptJ Zusammenfassung Seite 2 Entstehung Entwickelt von Bertrand Meyer Heute Prof. an der ETH Zürich Erstmals in Programmiersprache
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012
Testen Tutorial im Rahmen des Software(technik)praktikums SS 2012 Grundlagen (1) Software ist ein fundamentales Element in der Softwarequalitätssicherung Software wird am häufigsten eingesetzt Viele Organisationen
MehrTesten von graphischen Benutzeroberflächen. 24. Juni 2015
Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode
MehrErfahrungsbreicht... Von der Auswahl bis zur Verwendung von Contour im Grossunternehmen.
Stefan Topp Honeywell International SARL 16. Februar 2012 Erfahrungsbreicht... Von der Auswahl bis zur Verwendung von Contour im Grossunternehmen. 1 Agenda Hintergruende Der Auswahlprozess Ausrollen von
MehrWeb-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen
Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen Klaus-Dieter Walter SSV Software Systems GmbH Dünenweg 5 D-30419 Hannover www.ssv-embedded.de kdw@ssv-embedded.de
MehrEnd-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at
End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at www.celix.at September 2015 celix Solutions GmbH Spezialist für Team Collaboration und IT Prozess Management Agile
MehrProjektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern
Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern phone: +49 631/3724-5329 http://www.hs-kl.de/~amueller
MehrBest Prac*ces for Scien*fic Compu*ng. Von Marc Grimpo
Best Prac*ces for Scien*fic Compu*ng Von Marc Grimpo 1 Zugrunde liegende Paper Best Prac*ces for Scien*fic Compu*ng, Wilson et al. A survey of the Prac*ce of Computa*onal Science, Prabhu et al. So;ware
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
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrDie Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006
Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006 Oliver Böhm MKS GmbH Agenda Überblick Der Entwicklungsprozess: Requirements
MehrScriptbasierte Testautomatisierung. für Web-Anwendungen
Scriptbasierte Testautomatisierung für Web-Anwendungen Scriptbasierte Testautomatisierung + Web-Anwendung: Erstes Einsatzgebiet, Ergebnisse aber allgemein übertragbar + Test aus Benutzersicht - Nicht Unit-Test,
MehrQuelltextähnlichkeit
Quelltextähnlichkeit String autor = Tobias Jamin ; String projekt = Arte-Fakt ; String seminar = Transformationen ; Date termin = new Date(3, // Tag 2, // Monat 2006); Presentation praesentation = new
MehrAGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM
AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM 09.07.2015 NATALIE WENZ JAN GERTGENS Vorstellung Natalie Wenz Studium Medieninformatik an der Hochschule Reutlingen mit Abschluss als Master
Mehrphp Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrKampf dem Fehlerteufel PMD, Findbugs und Checkstyle in großen Projekten
main {GRUPPE} Seite 1 Jürgen Nicolai Geschäftsführender Gesellschafter Liebknechtstrasse 33 70565 Stuttgart Tel : 07 11/7 81 19 90 Fax : 07 11/ 7 81 19 91 Mail : j.nicolai@main-gruppe.de Web: www.main-gruppe.de
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrWer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.
Copyright 2010, MATHEMA Software GmbH 1 Wer bin ich > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.Net > Schwerpunkte Software
MehrNico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH. 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
Nico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht Übersicht Gründe und Zeitpunkt für Lasttests Lasttests on Premise
Mehr