Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Kolloquium Bachelor

Abschlusspräsentation für meine Bachelorarbeit
by

Christian Smolka

on 20 January 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Kolloquium Bachelor

Herzlich willkommen
zu meiner Abschlusspräsentation
mit anschließendem Kolloquium

Titel der Arbeit
Verifikation und Validierung einer
Prozesseinführung zur Qualitätssteigerung
und Homogenisierung von Quellcode in
historisch gewachsenen komplexen
Software-Systemen

Erklärung des Titels
komplexe Software-Systeme
Validierung & Verifikation
Prozesseinführung
Qualitätssteigerung
Homogenisierung
historisch gewachsen
viele Klassen und Pakete
viele Entwickler
mehrere Komponenten
mehrere Schichten mit verteilter Logik
viele Funktionen und Einstellmöglichkeiten
aktuelles Release baut auf den vorhergehenden auf
Funktionen wurden übernommen, aber nicht erneuert
Kernbibliotheken zu alt
verwaiste Funktionen werden nicht mehr genutzt und gepflegt
Daraus resultiert die Gefahr, dass die Geschäftslogik nicht mehr frei von Seiteneffekten ist.
unterschiedliche Quellcodestile sollen angepaßt werden
Angleichung der verwendeten Bibliotheken
individuelle Merkmale sollen eliminiert werden
Das führt nicht zwangsläufig zu einer Verjüngung!
Code ist besser lesbar
enthält weniger Redundanzen und ist expliziter
generische Typen
eindeutigere Bezeichnernamen
einfacherer Algorithmenablauf
klarere Quellcodestruktur
Ist das, was gemacht wurde auch sinnvoll?
Kann das so umgesetzt werden?
Wird es angenommen?
Vorgehensweise
Schritt 1
Analyse des Quellcodes
Schritt 2
Analyse der gefundenen Fehler
Definieren der Veränderung(en)
Schritt 3
Bei Schritt 1 weitermachen
Schritt 4
mit Plug-Ins
händisch
nach Fehlerliste
sortiert nach Wichtigkeit und Schadenspotential
Style-Sachen ignoriert
Einstellungen der Plug-Ins anpassen
Guides erstellen und anpassen
Probleme mit geringster Priorität ignorieren/abschalten
Erkenntnisse
Erfahrung wurde größer
Technik hat sich geändert
Neue Entwickler hatten neue Ideen
Steigende Funktionenvielfalt verlangt komplexeren Code
"Das Wissen ist nicht gleichverteilt."
Ähnliche Entwicklungen dauern unterschiedlich
lange.
Zukunftsvisionen
oder "Warum ich mich so für die Thesis interessiert habe"
"Der Entwickler kann sich ganz auf das Umschreiben seines Problems konzentrieren."
"Man sieht dem Quellcode an, wann und wo er verbessert werden muss."
eine Dokumentation ist nicht mehr notwendig
"Der Quellcode macht genau das, was er vorgibt zu tun."
Und warum das Ganze?
Ich möchte nicht ständig Zeit damit verbringen müssen darüber nachzu-denken (rätseln), was der Code macht.
1396x kommt die Zeichenkette "params.add" vor
Danke für Ihre Aufmerksamkeit.
Fragen?
Bildung von Inselwissen/Spezialisten
Wo hakt es am meisten?
...weil es gibt nicht DEN Schwerpunkt.
nicht entsprechnd verwendete Technik
"Wir müssen mehr
Zeit in den
Quellcode
stecken."
...und das deutlich!
Zu flaches Know-How.
"Das Genie beherrscht das Chaos."
historisch gewachsen
Homogenisierung
Prozesseinführung
Validierung & Verifikation
Qualitätssteigerung
komplexe Software-Systeme
Erkenntnisse
Domänen
Java
JSF
Eclipse
Tomcat
robot5
TSQL
httpd
C#
CSTA
TCP
XML
ISDN
JDK
.NET
SOAP
JSP
HTML
JavaScript
IMAP
Delphi
Pascal
Richfaces
vrfacesextensions
Windows
UDP
SMTP
SVN
SMS
Fax
E-Mail
IVR
Outbound
Voicemail
Inbound
Agenten
Gruppen
Supervisoren
Call-Routing
Medienverteilung
Kontakte
Statistiken
TACs
Archiv
Journal
SSO
Wallboard
Regeln
Router
Mandantenfähigkeit
17.491 LoC
1.483 Methoden
160 Klassen
Java
Datenbank
704 Objekte
27.102 Zeilen SQL-Skript
robot5-Schicht
41 Dialoge
??? Anweisungen
JSP
291 Seiten
Die Homogenisierung der Technik ist nicht ohne Weiteres möglich.
Die des Quellcodes schon.
Geringerer Interpretationsfreiraum ergibt weniger potentielle Fehlerquellen.
Einen guten Prozess erkennt man nicht zwangsläufig daran, dass keiner etwas dagegen hat, wenn er eingeführt wird.
Im Rahmen einer Abschlussarbeit aus zeitlichen Gründen nicht umsetzbar.
Warum kann der Code mir das nicht selbst verraten?
Architektur?
Dokumentation?
Weiterbildungen?
Ähnliche Anforderungen werden oft unterschiedlich umgesetzt.
Daten- und Kontrollfluss meist nicht sofort ersichtlich.
29.805 Zeilen
"Aus dem Quellcode läßt sich das Alter ablesen, wie in den Ringen eines Baumstammes."
Qualität im Quellcode läßt sich nur schwer kontrollieren
"Ein guter Wein reift mit dem Alter.
Quellcode tut
dies nicht."
Komponenten
...auch in den alten Quellcode!
Hundertwasser-Krawani-Haus
Analyse: Wie wird es jetzt gemacht?
Analyse: Wie soll es einmal aussehen?
Analyse: Was muss gemacht werden, um von A nach B zu kommen?
...und sehr, sehr viele mehr
Linux
ca. 25.000 Dateien
ca. 9 Mio. LoC
robot5
502.877 Zeilen
1.172 Dateien
Full transcript