Softwarequalität Eine Einführung
|
|
- Samuel Böhler
- vor 8 Jahren
- Abrufe
Transkript
1 Softwarequalität Eine Einführung Dr. Florian Deißenböck Seminar Softwarequalität 4. April 2013 Continuous Quality in Software Engineering
2 Agenda Softwarequalität Softwarequalitätsmodelle Software-Wartung»Schlechter Code«Qualitätsverfall Qualitäts-Controlling Werkzeugunterstützung
3 Maintainability Portability Unit-Test Reusability Architecture Reliability Test-Coverage Performance Understandability Dependability Usability Durability CMMI»Quality is a complex and multifaceted concept. It is also the source of great confusion «Conformance SPICE ISO 9000 David A. Garvin, 1984 Code Conventions ISO 9126 FCM McCabe MISRA Safety CMMI Security
4
5
6 CMM Min Avg Max Level 1 0,150 0,750 4, ,120 0,624 3, ,075 0,473 2, ,023 0,228 1, ,002 0,105 0,500 Fehler pro Function Point (Jones 2003)
7 Qualität Sichtweisen Transzendenter Ansatz Qualität ist immanente Güte, sie ist erkennbar aber nicht definierbar Produktorientierter Ansatz Qualitäts-Unterschiede zwischen Produkten spiegeln sich in der unterschiedlichen Ausprägung von Produkt-Attributen wieder Benutzerorientierter Ansatz»Qualität liegt im Auge des Betrachters«Herstellungsorientierter Ansatz Qualität ist definiert durch die Erfüllung der Anforderungen bzw. durch Abweichungen von der Spezifikation Wertorientierter Ansatz Qualität als Tradeoff zwischen Kosten und Nutzen * David A. Garvin, What does»product Quality«Really Mean?, 1984
8 Functionality Portability Reliability ISO 9126 Maintainability Usability Efficiency
9 Analysability Changeability Maintainability Stability Metrics Factor Testability Criteria Maintainability compliance is influenced by
10 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
11 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
12 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
13 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
14 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
15 Relevanz Lebenszyklus-Kosten 100% 80% 60% 40% 20% Hardware Development Maintenance Wartungsfälle 60% 50% 40% 30% 20% 10% 0% % Corrective Adaptive Perfective
16 Quality Costs Conformance Costs Non-Conformance Costs Prevention Costs Appraisal Costs Internal Failure Costs External Failure Costs
17 #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); } }
18 } 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
19 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
20 /* 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); }
21 Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility B. W. Boehm et al., Characteristics of Software Quality, 1978
22 1. Begründung 2. Überprüfung 3. Strukturierung Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility B. W. Boehm et al., Characteristics of Software Quality, 1978
23 1. Begründung 2. Überprüfung 3. Strukturierung Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility B. W. Boehm et al., Characteristics of Software Quality, 1978
24 1. Begründung 2. Überprüfung 3. Strukturierung Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility B. W. Boehm et al., Characteristics of Software Quality, 1978
25 1. Begründung 2. Überprüfung 3. Strukturierung Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility B. W. Boehm et al., Characteristics of Software Quality, 1978
26 Maintainability Modifiability Testability Understandability Augmentability Structuredness Communicativeness Accessibility Self-Descriptiveness Conciseness Legibility
27 Maintenance Structuredness Communicativeness Self-Descriptiveness Conciseness Modification Testing Understanding
28 Maintenance Structuredness Communicativeness Self-Descriptiveness Conciseness Modification Testing Understanding
29 »The effort needed to make specified modifications to a component implementation.«sei Open Systems Glossary Maintenance Structuredness Communicativeness Self-Descriptiveness Conciseness Modification Testing Understanding
30 Wartung Analyse Implementierung Produkt Software Dokumentation Klasse Methode Glossar Kommentar STRUKTURIERTHEIT STRUKTURIERTHEIT REDUNDANZ VOLLSTÄNDIGKEIT PRÄGNANZ Änderung Concept- Location Impact- Analyse Erstellung
31 1. Begründung 2. Überprüfung 3. Strukturierung Wartung Analyse Implementierung Produkt Software Dokumentation Klasse Methode Glossar Kommentar STRUKTURIERTHEIT STRUKTURIERTHEIT REDUNDANZ VOLLSTÄNDIGKEIT PRÄGNANZ Änderung Concept- Location Impact- Analyse Erstellung
32 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??
33
34 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
35 Juergens et al., Do Code Clones Matter?, ICSE 2009
36 >10 Programmiersprachen in einem System Wahl der Sprache auf Basis der Entwicklerverfügbarkeit veraltete Technologien Sprachvermischung
37 <body> <% If Request.QueryString( ID ) <> Then %> <SCRIPT language= JavaScript > function dologin() { X } </script> <% Else %> <SCRIPT language= JavaScript > function dologin() { Y } </script> <% End If %>... </body>
38 35 Trigger entführte Tabellen/verlorene User SQL-Injection Impact-Analyse auf Zuruf
39 Tests, die kontinuierlich fehlschlagen Unit-Tests, die nichts testen Mangelnde Testbarkeit Capture&Replay-Werkzeuge
40 JUnit Samples Core TextUI Runner Extensions Framework Experimental Tests Lib Matchers Hamcrest
41 JUnit Samples Core TextUI Runner Extensions Framework Experimental Tests Lib Matchers Hamcrest
42
43 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
44 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
45 »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
46
47 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Technologie: Hardware, BS, Sprachen, Datenbanken,
48 Anforderungen: Geschäftsprozesse, Fahrzeugfunktionen, Software-Wartung Software-System Kontinuierliches Qualitäts-Controlling Technologie: Hardware, BS, Sprachen, Datenbanken,
49 Änderungen gewünschte Wartbarkeit Abweichung Korrekturen Wartbarkeit Q-Ing. Entwickler System Analyse-Ergebnis (feedback) Qualitäts-Analyse Review Analyse-Tool
50 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
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 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
53 Trugschluss: Messbar == Relevant
54 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 OO Design Metrics Fan-In Fan-Out Coupling Cohesion Stability Depth of Inheritance # Children
55 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 OO Design Metrics Fan-In Fan-Out 4 Coupling Cohesion Stability Depth of Inheritance # Children
56 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
57 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
58 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
59
60 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
61 Messung erfordert Ziele 4 Keine Defizite 1 Egal
62 Messung erfordert Ziele 4 Keine Defizite 2 Keine neue Defizite 1 Egal
63 Messung erfordert Ziele 4 Keine Defizite 3 Keine Defizite in geändertem Code 2 Keine neue Defizite 1 Egal
64 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
65 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
66 ConQAT graphische DSL zur Spezifikation der Analysekonfiguration Prozessoren beschreiben Analyseoperationen Kanten beschreiben Datenfluss Blöcke ermöglichen die Wiederverwendung von Analysefunktionalität
67 ConQAT graphische DSL zur Spezifikation der Analysekonfiguration source modulea Utility.java Main.java Loader.java Prozessoren beschreiben Analyseoperationen Kanten beschreiben Datenfluss Blöcke ermöglichen die Wiederverwendung von Analysefunktionalität
68 ConQAT graphische DSL zur Spezifikation der Analysekonfiguration Prozessoren beschreiben Analyseoperationen source modulea Utility.java Main.java Loader.java source modulea Utility.java 128 Main.java 244 Loader.java 331 Kanten beschreiben Datenfluss Blöcke ermöglichen die Wiederverwendung von Analysefunktionalität
69 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 331
70 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/
71 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/
72 Qualitäts-Dashboards
73 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
74 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
MehrKontinuierliches Qualitäts-Controlling langlebiger Softwaresysteme
Kontinuierliches Qualitäts-Controlling langlebiger Softwaresysteme Dr. Florian Deißenböck msg systems ag 15. März 2013 Continuous Quality in Software Engineering Agenda Software-Wartung»Schlechter Code«Qualitätsverfall
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
MehrQualität und Qualitätsmodelle
1 M. Broy, F. Deißenböck, E. Jürgens, S. Wagner Qualität und Qualitätsmodelle 07. Mai 2007 Software im Automobil Workshop Software-Qualität 2 Maintainability Portability Unit-Test Reusability Architecture
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
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
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
MehrEine wertbasierte Sicht auf Softwarequalität
Florian Deißenböck Eine wertbasierte Sicht auf Softwarequalität 25. Juni 2008 BITKOM AK SQM und PG BE&QM Gemeinsame Arbeiten mit S. Wagner, E. Jürgens, B. Hummel, M. Pizka, M. Broy 2» Quality is a complex
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,
MehrQualitätssicherung. Qualität Qualitätsattribute Die Bedeutung von Qualität Sicherstellen von Qualität Qualität und andere Eigenschaften von Software
sattribute Die von Sicherstellen von und andere Eigenschaften von Software Partner-Diskussion: Diskutieren Sie mit einem Partner Was ist? Wie können Sie die von einem "beliebigen" Produkt bestimmen? Wie
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
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
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
MehrApplying the ISO 9126 Quality Model to Test Specifications
Applying the ISO 9126 Quality Model to Test Specifications Exemplified for TTCN-3 Test Specifications Benjamin Zeiss 1, Diana Vega 2, Ina Schieferdecker 2, Helmut Neukirchen 1, Jens Grabowski 1 1 Gruppe
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
MehrSoftware-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle
Software- und smodelle Software- Klassische Objektorientierte Seminar Moderne Softwareentwicklung SS 2005 Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte
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
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
MehrSoftwaretechnik. Fomuso Ekellem WS 2011/12
WS 2011/12 Inhalt Projektvorstellung Übung 1 Wiederholung zusammengefasst Planungsphase Lernziele Ziele und Inhalt der Planungsphase Anlass und Aufgabestellung(Was ist dabei erförderlich) Requirement Engineering
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
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,
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,
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
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
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.
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
MehrSoftware Engineering. Dokumentation! Kapitel 21
Martin Glinz Thomas Fritz Software Engineering Kapitel 21 Dokumentation 2005-2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch gestattet;
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
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
MehrObjektorientierte 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Ü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?
MehrWieviel Usability Engineering braucht das Software Engineering?
Wieviel Usability Engineering braucht das Software Engineering? Prof. Dr. Institut für Informatik Neuenheimer Feld 348 69120 Heidelberg http://www-swe.uni-heidelberg.de paech@informatik.uni-heidelberg.de
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
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
MehrAgilität auf Unternehmensebene - Was hält uns davon ab?
Agilität auf Unternehmensebene - Was hält uns davon ab? Alexander Birke, Juli 2015 Copyright 2015 Accenture All rights reserved. Wie stellt sich Agilität heute dar? Das Scrum Framework: einfach und mittlerweile
MehrBusiness-Rule-Management als Instrument des Software-Reengineering
Business-Rule-Management als Instrument des Software-Reengineering Olaf Resch Olaf Resch am 4. Mai 2005 in Bad Honnef 1 Agenda Software und Wissen. Verschmelzung als Evolutionshindernis. Business-Rule-Technologie.
MehrRUP Analyse und Design: Überblick
Inhaltsverzeichnis Übersicht [, 2, 8] 3. Vorgehensweise............................... 5 2 Planungsmethoden 37 2. Definitionsphase.............................. 6 3 Rational Unified Process [5, 6] und
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
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrOperationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
MehrDas 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
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
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
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
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
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
Mehr.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
MehrXING und LinkedIn-Integration in das erecruiter-bewerberportal
XING und LinkedIn-Integration in das erecruiter-bewerberportal Sowohl für XING als auch für LinkedIn müssen sog. Keys beantragt werden, die im erecruiter hinterlegt werden. Im Folgenden sind die Schritte
MehrGutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt
Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt 1 David Tanzer Bakk. Techn. (JKU Linz) Certified Scrum Master Freiberufler seit 2006 http://davidtanzer.net business@davidtanzer.net
MehrSilverlight for Windows Embedded. Martin Straumann / 31.08.2010 Stv. Business Unit Leiter Microsoft Technologien / Application developer
Silverlight for Windows Embedded Martin Straumann / 31.08.2010 Stv. Business Unit Leiter Microsoft Technologien / Application developer Inhaltsverzeichnis Windows Embedded Microsoft Roadmap Was ist Silverlight
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:
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrSecure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011
Secure Coding & Live Hacking von Webapplikationen Conect Informunity 8.3.2011 Dr. Ulrich Bayer Security Research Sicherheitsforschung GmbH Motivation Datendiebstahl über (Web)-Applikationen passiert täglich
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrSoftware-Qualität Ausgewählte Kapitel
Institut für Informatik! Martin Glinz Software-Qualität Ausgewählte Kapitel Kapitel 10 Qualitätsnormen" 2009-2011 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen,
MehrSuchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6
Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P
MehrArchitecture of Open Embedded Systems
University of Erlangen-Nuremberg Information Systems I Innovation & Value Creation Forschungsstudie 01.09.2013 Architecture of Open Embedded Systems Worum geht es in der Studie? Zielsetzung der Case Study
MehrAlexander Delater, Barbara Paech RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG
, Barbara Paech Ins$tute of Computer Science Chair of So4ware Engineering Im Neuenheimer Feld 326 69120 Heidelberg, Germany hgp://se.ifi.uni- heidelberg.de delater@informa$k.uni- heidelberg.de RUPRECHT-KARLS-UNIVERSITÄT
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
MehrRequirements-Management Ein praktisches Beispiel
2003 Eurocopter Deutschland GmbH 2003 Requirements-Management Ein praktisches Beispiel a.s.drexler@t-online.de Softwareprozesse in Luft- und Raumfahrtprojekten Workshop der DGLR am 15.10.2003 Der Vortrag
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
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
MehrUse Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004
Use Cases Die Sicht des Nutzers Fortgeschrittenenpraktikum SS 2004 Gunar Fiedler Lehrstuhl für Technologie der Informationssysteme Kontakt: fiedler@is.informatik.uni-kiel.de Use Cases 2 Was ist ein Use
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
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrLINGO: Eine kleine Einführung
LINGO: Eine kleine Einführung Jun.-Prof.Dr. T. Nieberg Lineare und Ganzzahlige Optimierung, WS 2009/10 LINDO/LINGO ist ein Software-Paket, mit dessen Hilfe (ganzzahlige) lineare Programme schnell und einfach
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrSCHNELLEINSTIEG ZUM TOOL NODEBUILDER
Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE
MehrPHP - Projekt Personalverwaltung. Erstellt von James Schüpbach
- Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6
MehrCodeSaver. Vorwort. Seite 1 von 6
CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel
MehrWhiteStarUML Tutorial
WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen
MehrSoftwaretests 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
MehrEclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps
Projekt: Intern Softwareprojekt FH Furtwangen Status: Draft Ersteller: Kai Grabfelder Datum: 11.02.2007 Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps 1 Beschreibung... 2 Semesterprojekt...
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrSPI-Seminar : Interview mit einem Softwaremanager
Erstellung eines Fragenkatalogs der die Beurteilung der Level 2 Key Process Areas in einem ca. einstündigen Interview mit einem Software Manager ermöglicht Vortrag von Matthias Weng 1 Aufbau Geschichte
MehrFolgende Voraussetzungen für die Konfiguration müssen erfüllt sein:
7. Intrusion Prevention System 7.1 Einleitung Sie konfigurieren das Intrusion Prevention System um das Netzwerk vor Angriffen zu schützen. Grundsätzlich soll nicht jeder TFTP Datenverkehr blockiert werden,
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
MehrFussball.de JavaScript
Fussball.de JavaScript - larsp_fussballde_js Fussball.de JavaScript Fussball.de JavaScript Extension Key: larsp_fussballde_js Language: de Keywords: Fussball.de Ergebnisse Tabelle Spielplan Bundesliga
MehrHTML5. Wie funktioniert HTML5? Tags: Attribute:
HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,
Mehrgoalio Documentation Release 1.0.0 goalio UG
goalio Documentation Release 1.0.0 goalio UG 18.11.2014 Inhaltsverzeichnis 1 Erste Schritte mit goalio 1 1.1 Benutzeroberfläche............................................ 1 1.2 Suche...................................................
MehrFragebogen zur Anforderungsanalyse
Fragebogen zur Anforderungsanalyse Geschäftsprozess Datum Mitarbeiter www.seikumu.de Fragebogen zur Anforderungsanalyse Seite 6 Hinweise zur Durchführung der Anforderungsanalyse Bevor Sie beginnen, hier
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrSoftware Systems Engineering
Software : SoSe 08 Prof. Dr. Klaus Schmid Software Produktlinien Ein neues Programm soll erstellt werden. Das habe ich doch schon mal programmiert, oder? Alter Code passt aber nicht ganz! Wird passend
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
MehrAutomatisierte GUI Tests in fachlichen Teststufen. 07.09.2011 Patrick Möller
Automatisierte GUI Tests in fachlichen Teststufen 07.09.2011 Patrick Möller Inhaltsangabe Vorstellung und Situation BITMARCK BITMARCK und iskv_21c Testautomatisierung - warum? Teststufen bei BITMARCK Testautomatisierung
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
MehrIhr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.
Dieses Dokument beschreibt die nötigen Schritte für den Umstieg des von AMS.4 eingesetzten Firebird-Datenbankservers auf die Version 2.5. Beachten Sie dabei, dass diese Schritte nur bei einer Server-Installation
MehrFachdidaktik 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,
MehrATHOS Benutzertreffen
ATHOS Benutzertreffen Report of the Lab Glashütten, 10. November 2010 HighQSoft GmbH, Karst Schaap karst.schaap@highqsoft.de www.highqsoft.de / www.highqsoft.com 10 November 2010-1 Themen Aktueller Stand
MehrRisikomanagement in der Praxis Alles Compliance oder was?! 1. IT-Grundschutz-Tag 2014 13.02.2014
Risikomanagement in der Praxis Alles Compliance oder was?! 1. IT-Grundschutz-Tag 2014 13.02.2014 Risikomanagement Eine Einführung Risikomanagement ist nach der Norm ISO 31000 eine identifiziert, analysiert
MehrNeue Funktionen in Innovator 11 R5
Neue Funktionen in Innovator 11 R5 Innovator for Enterprise Architects, Java Harvester und Prüfassistent 12.11.2013 Agenda 1 2 3 Einführung Was ist neu in Innovator 11 R5? Szenario Enterprise Architektur
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrÜ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
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrFilemaker Module. Einführung in die Vorteile modularer Filemaker Programmierung. Karsten Risseeuw, Kursiv Software
Einführung in die Vorteile modularer Filemaker Programmierung, Kursiv Software karsten@kursiv.com, www.kursiv-software.com Ansatz zu einer modularen Filemaker Programmierung nach Ideen von Todd Geist.
MehrFehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker
Fehlermonitor Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker Das Programm ist problemlos zu installieren auf jedem Windows-PC (XP) mit.net
Mehr