Methoden zur Absicherung des IT-Know-How im

Werbung
Methoden zur Absicherung des
IT-Know-How im Unternehmen
Ralf Lämmel
Arbeitsgruppe Softwaresprachen
Fachbereich 4: Informatik
Universität Koblenz-Landau
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
1
Das Problem der „Technologienfülle“
XPATH
Jena
TXL
Rose
jDOM JAXB
Jersey
UML
Stratego
xerces
OCL
XSD
sax
JPA
EMF.gen
RDF(S)
UTF8
MOF
VLDB
BNF
OWL
Rest
JMI
JDBC
XText
Jena
JeanBeans
?
n
u
t
Ecore
s
a
W
ORACLE
SQL DDL
Dragan
RDF
XLST
grep
sed
Awk
Hibernate
ASCII
Jean
LALR
ATOM
SQL
DTD
Ralf
OMG
XSD ArgoUML
XQuery
TENEO
Teneo
saxon OWL
JMF
xalan
RDFa
ODBC SparQL
Yacc
XMLSpy
XSLT
JAXP
Protegé
SBVR DOM
Java
CFG
EMF
ODM
Json
GWT
RDFS
MySQL XMI
Sesame
Prolog
ER
Antlr
QVT
TCS
Saxon
XSD
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
2
Welche Sprachen …
und Technologien …
… verwenden Sie in Ihrem Unternehmen?
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
3
Interessantere Fragen
1.Wer spricht welche Sprachen im Unternehmen?
2.Wer meistert welche Technologien im Unternehmen?
3.Was sind die Sprachdialekte, welche in Projekten vorkommen?
4.Was sind die Technologiemuster, welche in Projekten vorkommen?
5.Hat das Projekt genug Expertise in …?
6.Wem weist man einen Bug oder ein Feature in der Entwicklung zu?
7.Wie bereiten wir die Belegschaft auf einen Umstieg von … nach … vor?
8.Wie kann das Team eine Technologieauswahl erörtern?
9.Wie kartiert man das Projekt technologisch für Einsteiger?
10.Wie analysiert man Repositories systematisch?
11.Wie oder woraus bereitet man Inhalte für eine Schulung vor?
12.…
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
4
Techniken der AG Softwaresprachen
•
Lehrorientierte, semantisch reiche Beispielsammlungen
•
Ausführbare, semantisch reiche Modelle von Technologien (“Megamodelle”)
•
Software-Ontologien
•
Mining Software Data
•
Analyse der API-Verwendung
•
Erfahrungskartierung von Entwicklern
•
Verwendung von Programmierdomänen oder konkreten APIs
•
Verschiedene Aspekte von Frameworks etwa für Web App Development
•
Allgemeinere Softwaretechnikaspekte (wie Testen versus Migration)
•
Qualitätsaspekte (etwa Verursachung bzw. Abstellung von Fehlern)
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
5
Lehrorientierte, semantisch
reiche Beispielsammlungen
im Projekt 101
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
6
Was ist 101?
Company X:
Swing + JDBC
Ein Gemeinschaftsprojekt zur Schaffung
Company Y:
SWT + Hibernate
Company Z:
GWT + MongoDB
...
einer Wissensbasis über
Softwaretechnologien und -sprachen
sowie -konzepten auf der Basis (u.a.)
der wiederkehrenden Implementation
eines Systems für das Personalwesen.
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
7
Wie benutzen wir 101?
Moderne und praxisrelevante Kurskonzepte an der Universität:
•
Fortgeschrittene Programmierung
•
Einführung in die Funktionale Programmierung
Material für IT-Schulungen
•
Einführung in die Objektorientierte Programmierung
•
Einführung in relationale Datenbanken
•
NoSQL-Technologien
•
Web-Programmierung
Wissensbasis und Korpus für wissenschaftliche Untersuchungen
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
8
Modelle von Technologien
(“Megamodelle”)
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
9
Eine Python/Django-basierte Web App
•
•
db_sqlite3 : File ∈ SL3IMG (a language we made up)
mysite : Folder
• __init__.py : File ∈ Python
• manage.py : File ∈ Python
• media : Folder
Das ist doch noch nicht
• polls : Folder
sehr interessant!?
• __init__.py : File ∈ Python
• admin.py : File ∈ Python
• models.py : File ∈ Python
• tests.py : File ∈ Python
• views.py : File ∈ Python
• settings.py : File ∈ Python
• templates : Folder
• admin : Folder
• polls : Folder
• detail.html : File ∈ HTML
Ist das wirklich HTML?
• index.html : File ∈ HTML
• results.html : File ∈ HTML
• urls.py : File ∈ Python
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
10
Ein erster Teil eines Technologiemodells:
Entitäten und Relationen
•
Web application < System
•
Web application framework < Technology
•
Interpreter < Technology
•
webapp : Web application
•
Django : Web application framework
•
Python : Language
•
Python interpreter : Interpreter
•
webapp uses Python
•
webapp uses Django
•
Django uses Python
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
11
Mining Software Data
Information
Retrieval (IR)
Machine
Learning
Mining
Software Data
Mining Software
Repositories
Natural Language
Processing
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
12
JHotDraw’s
API
Cocktail
Analyse der
Verwendung von APIs
API-Cocktail in einem Open-Source-Projekt (JHotDraw)
AWT!!Swing!!java.io java.lang
java.util
JavaBeans java.text java.lang.reflect!!DOM!!java.net
java.util.regex!!Java Print Service!!java.util.zip!!java.lang.annotation
java.math java.lang.ref java.util.concurrent Java security!!javax.imageio!!SAX
Fig. 8.
The API Cocktail of JHotDraw (cloud of API tags).
Package
org.jhotdraw.undo
Umso größer umso mehr Ver
wendung
der API.
!!java.lang!!JavaBeans!!java.io!!AWT!!java.util
Swing
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
13
APIs versus Domänen
API-Domänen in einem Projekt und in einem Paket
Coupling in JHotDraw
Project jhotdraw
GUI
!!Data!!Basics!!
for the interface org.jhotdraw.app.View
IO!!Format!!Component!!Meta!!
XML!!Distribution!!Parsing!!Control!!Math!!Output!!Security!!Concurrency
GUI!!Basics!!Component!!IO
Package org.jhotdraw.undo
APIs
Abstraktion
von
den
konkreten
APIs.
Fig. 9. Cocktail of domains for JHotDraw.
Betrachtung verschiedener Projektausschnitte.
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
14
Erfahrungskartierung von Entwicklern
hinsichtlich der Verwendung von
Programmierdomänen oder konkreten APIs
Die Entwickler über die Zeit
(Commits in einem Projekt)
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
15
Die Domänen und APIs und
Entwickler hinsichtlich der Beiträge
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
16
Vergleich #API-Referenzen
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
17
Erfahrungskartierung hinsichtlich
von Frameworkaspekten für
Django (Web App-Entwicklung)
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
18
Erfahrungen eines bestimmten
Entwicklers in einem Projekt
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
19
Die AG Softwaresprachen
•
Ralf Lämmel
•
Hakan Aksu — Mining Software Repositories
•
Marcel Heinz — Megamodelle und Ontologien
•
Martin Leinberger — Semantische Daten
•
Kevin Klein — Client/Server development und Cloud Deployment
•
Lukas & Johannes Härtel — Megamodellierung
•
Frederik Ruether — Web App Frameworks
•
Wojciech Kwasnik — Visualisierung und Projektmanagement
•
Andreas Schmidt — Linked Data and Restful Web APIs
•
Simon Schauß — Technologien für die Sprachentwicklung
•
Michael Monschau / Maximilian Meffert — 101 u.v.a.
•
Thomas Bernau — Mining Software Repositories
•
…
© 2016, Software Languages Team Ralf Lämmel, http://www.softlang.org/
20
Herunterladen