Dr. Jörg Rech

Entrepreneur / Computer Scientist / Software Engineer

I'm an entrepreneur and computer scientist from Germany interested in the startup scene, building lean startups, developing new interesting software, and conducting academic research. To satisfy my curiosity, I'm also keen to learn about new startups, new technologies, as well as research results on startups and the rapid but systematic development of software.

This site is a collection of information about my projects, work, and research activities. If you want to get more information about me, please consult the sections below or send me an email.

Following the lean startup & agile development ideas, I'm involved in several projects that might become full-fledged startups sometime. The main projects I'm working on or worked on are listed below - please note that academic prototypes are presented in the research section.

Active Projects

Startoholics.com is a social network for founders, startups, investors, designers, and programmers focused on helping startups in early phases. Startoholics mission is to motivate, connect, and enable people to realize their ideas and start new companies.
 
CrowdYell.com is a location based chat system for you and your friends, your family, your colleagues, concerts, conferences, etc. that will help you connect to like-minded people around you. (Under development)
xomni is a social network platform with the goal to help users in creating and managing a presentation of themself to foster the communication among all participants. The platform is based on semantic technologies in order to help to describe relations between people, things, and organizations using freely definable relations.

Dormant Projects

Musicclip.tv is a personal music video channel, which extracts your Facebook music likes and finds similar artists that are used to construct a playlist with music you like. The playlist is then used to feed a Youtube player in order to play personalized music videos to you. As a Startup Weekend project we build it 54 hours! (Screenshot)
Klivi is a Climate Data visualization app for the iPad (sadly not on Apple's Appstore), which uses data from the Potsdam Institute for Climate Impact Research (PIK). Data about 13 indicators from over 2342 Stations in Germany were used to generate a browsable map that enabled the user to view very local climate data. (Screenshot)

Back to top

Entrepreneurial Activities

I'm always driven to create new things - either in form of academic research or usable software. To support my entrepreneurial activities I founded the following company that acts as a shelter for my projects and future startups.

Founder and CEO of Semantic Technologies: Semantic Technologies is working on web applications and technologies in the area of Web 2.0, Web 3.0 and the Semantic Web. Core technology is our social semantic network xomni, which is used to build modern social networks for other companies, organizations, or societies. My tasks are the development of the business, the marketing campaigns for the initial product xomni, and the technical development of the plattform xomni.

Jobs

After university I was interested in research (esp. software engineering) and worked for several research organizations in Germany. My jobs were mostly concerned with researching and managing research projects I wrote and acquired from funding organizations such as the EU, the BMBF (Germany), or Fraunhofer.

Project Manager and Senior Scientist at SAP Research: SAP Research is the global technology research and innovation unit of SAP, with a network of 19 research locations worldwide. By exploring emerging IT trends, SAP Research significantly drives innovation for SAP and its ecosystem. Activities span from collaborative research with academic partners to co-innovation with industry partners and customers. The best validated results and technologies are further developed into prototypes and potential business opportunities within SAP.

Project Manager and Senior Scientist at Fraunhofer IESE: The Fraunhofer Institute for Experimental Software Engineering (IESE) is involved in research and development in all areas related to the systematic engineering of software. The IESE is a bridge between basic research and the practice with the main objective to support industrial partners in making quality improvement a part of everyday practice. My tasks were concerned with research in the range software engineering, quality assurance, experience management and knowledge management under the direction of Professor Klaus-Dieter Althoff und Dr. Markus Nick.

Junior Scientist at University of Kaiserslautern: The research group "Software Engineering" (AGSE) of Prof. Dieter Rombach at the Technical University of Kaiserslautern is doing basic research in key software engineering areas. My responsibilities were the support and execution of exercises and seminars related to the course "software engineering" as well as the support of student work (practical lectures and theses). Parallel to the work with the research group I cooperated with the department of "Systematic Learning and Improvement" (SLI) of the Fraunhofer Institute for Experimental Software Engineering (IESE).

Teaching Activities

In my work at the University of Kaiserslautern I had the opportunity to teach in the following lectures:

  • Stand-in for several hours of the lecture "Experience Management" ("Erfahrungsmanagement - Entwicklung und Einführung"), lead by Dr. Klaus-Dieter Althoff at the University of Kaiserslautern, Summer 2002
  • Support of the lecture "Software Engineering 1: Fundamentals" and execution of exercises, of Prof. Dieter Rombach and Prof. Colin Atkinson at the University of Kaiserslautern, Winter 2001/2002.
  • Supervision of the practical course on software engineering ("Weiterentwicklung eines reaktiven eingebetten Systems"), at the University of Kaiserslautern, Summer 2001
  • Supervision of the Seminar: "Research Methods in Software Engineering" at the University of Kaiserslautern, Winter 2000/2001.

Back to top

Academic Studies

Ph.D.

Ph.D. (Ger: "Dr. rer. nat.") in Software Engineering about the "Context-sensitive Diagnosis of Quality Defects in Object-Oriented Software System". My research was conducted at Fraunhofer IESE and the Research Group Prof. Klaus-Dieter Althoff of the University of Hildesheim, Germany. I was awarded with a magna cum laude.

Master of Computer Science

Master of Computer Science (Ger.: Diplom-Informatiker) with a minor electrical engineering from the Technical University of Kaiserslautern, Germany.

Abitur

Diploma (Ger: "Abitur") from the German secondary school qualifying for university admission from the "Berufsbildenden Schule Technik 1" in Ludwigshafen, Germany.

Training

Scrum

Four-day seminar on Scrum of SAP including an introduction to lean, Scrum basics, and a two-day special on the Scrum Master role (2011).

Project Management

Nine-day seminar on project management of SAP including stakeholder management, starting projects, project planning, project communication, project monitoring, risc management, negotiation, team management, closing projects, and inter-cultural projects (2010).

Entrepreneurship

One-day seminar on entrepeneurship (Ger: "Existenzgründerseminar") of BIC Kaiserslautern including an introduction to business plans, financing, legal and marketing (2008).

Entrepreneurial Management

Three-day seminar on entrepreneurial management (Ger: "Aufbauseminar für unternehmerische Führungskräfte") of [LP]Group including an introduction to benchmarking, financial controlling, negotiation, leadership, and strategic repositioning (2007).

Project Management

Four-day seminar on the management of IT projects (Ger: "IT-Projekt Management") of Fraunhofer and PC Plus including an introduction to IT projects, project organization, controlling projects, and leadership (2005).

Eclipse Plugins

Four-day seminar on developing eclipse plugins (Ger: "Eclipse Plugin Entwicklung") of Innoopract including an introduction to the structure of plugins and feature, extension points, editors, views, wizards, marker, and code assist (2003).

Back to top

With more than ten years experience from several jobs as well as three years of continuous software development activities, I have acquired in-depth understanding of different technologies and methodologies for the rapid but systematic engineering of software. This knowledge helped me to become more proficient in accomplishing projects in a lean and agile way.

Backend Development

Web Applications

Development of Web applications using Grails, Groovy, and Java. Typical technologies used are Spring Security (Acegi), Spring Social, Facebook Graph, Twitter, Mail, LiquiBase, and log4j. Usage of libraries for Data Mining (such as WEKA or KEA) and Information Retrieval / Search (such as Lucene).

Database Development

Usage of databases such as MySQL, PostgreSQL, hSQLdb and Derby with SQL via JDBC, Hibernate, or GORM.

Hosting

Hosting and Deployment of Web applications on Servers using Apache and Tomcat as well as Cloud-Hostern such as Amazon AWS and Cloudfoundry.

Misc

Development of plug-ins for the IDE eclipse (OSGI).

Frontend Development

Client Development

Development of clients using Javascript, jQuery, GSP, JSP, HTML and CSS. Integration of AJAX (XML, JSON) into clients against APIs of Web-services (e.g. REST based APIs). Usage of libraries for Data Visualization (ProtoVis, InfoVis) and CSS Frameworks such as Bootstrap. GUI development for desktop apps using SWT;

Mobile Applications

Development of mobile apps with Objective-C for iOS (iPad, iPhone) as well as mobile web apps (jQuery Mobile, HTML5 and PhoneGap) and mobile apps with Java for Android.

Used APIs

Usage of the Facebook API, Google Maps API, Youtube API, Hunch API

Development Methods & Tools

Methods & Tools

Agile Software Engineering with rapid prototyping and fast evaluation cycles using Scrum, the development environment eclipse, SpringSource Tool Suite, and Netbeans, the test environment jUnit, the task management with JIRA and Wikis, the modelling with UML (z.B. Topcased) and the versioning systems Subversion and CVS.

Software Documentation

Documentation of source code, scripts, and style sheets using CSSDoc, JavaDoc, and Doxygen.

Information Processing

Documentation of data, information, and knowledge using OWL, RDF, and XML. Data Processing of CSV and vCard. Microformats like hCards and hResume.

Software

Office Software

Microsoft Word, Excel, Powerpoint, Project, Visio, Outlook, MindManager

Business Software

SugarCRM

Graphic Software

Photoshop CS4, Illustrator CS4

Screencast Software

Jing, Wink, Snag It

Misc Software

Protege (Ontology Editor)

General

Languages

German (first language), English (fluent)

Soft Skills

Solution-oriented, creative problem solver, reliable, self-motivated, independent worker, hard-working, flexible, team player, strategic thinker,with the ability to abstract.

Back to top

My research interests focus on the fields Software Engineering and Data Mining (applied to software-documents). In particular I'm interested in software diagnostics (quality assurance), refactoring (software evolution), experience-based resp. pattern-based Software Engineering and model-driven software development (MDSD). More specific I'm working on the diagnosis of quality defects (Antipatterns, Code Smells, Design flaws, etc.), the quality assurance in MDSD, plug-in based software development as well as knowledge discovery in code and defect repositories.

Quality Defects & Software Quality Assurance

This area of research is concerned with problems in software systems (esp. software products) that have a negative effect on the software quality. Today, a vast number of these defects are known and documented in various communities under various names. Typically, they are collected and described by practitioners and consult-ants and represent condensed experiences from multiple projects they were involved in. A systematic literature review conducted in 2007 revealed 43 different names that were used in the literature to describe these kind of problems - 22 of them with larger collections of quality defects.

The term "quality defect" is used as an umbrella term for the concepts antipattern, smell, flaw, pitfall, bug pattern, defect pattern, negative pattern, (bad) heuristic, (bad) characteristic, antiidiom, (design) problem, (design) defect, refactoring candidate, puzzlers, traps, anomalies, and many more (typically with an additional focus on a quality aspect, development phase, or abstraction level, e.g., performance antipatterns, test smells, or architectural anomalies) that have a negative effect on a quality aspect (e.g., maintainability, efficiency, or reusability).

DoctorQ: An extensible plugin-system for the eclipse IDE to enable the analysis of software systems for the diagnosis of Quality Defects. The system is designed to diagnose quality defects during programming in order to assist the software developer directly in his work. This helps to prevent larger amount of work that might be necessary if the quality defects were diagnosed after programming (or an iteration in agile development) when more components are based on the flawed system and needed to be changed.
The VIDE Defect Detector: An extensible plugin-system for the Topcased IDE to enable the analysis of software models for the diagnosis of Quality Defects. (Click the picture or this link to see the screencast (~3 MB))
SQuaRE - The Software Quality Reference Architecture: An extensible reference architecture for in-situ quality defect diagnosis and handling tools as realized by DoctorQ and VIDE-DD.
SQuaD: The Software Quality Defect Ontology represents a systematic categorization of quality defects and associated concepts such as techniques for the diagnosis of defects and the indication of treatments (e.g., refactorings).
 
Quality Defect Formalization: One main part of the research is the unambiguous description of quality defects in order to apply them in knowledge based diagnosis systems as well as to support the sometimes ambiguous descriptions found in the literature.
 
Quality Defect Diagnosis & Prioritization The focus of this part of the research is the diagnosis of quality defects based on static, dynamic, and historic (e.g., versions in CVS) information as well as the systematic reduction of the amount of quality defects presented to the user (e.g., developer or maintainer).
Quality Defect Handling After quality defects are discovery in a software system they need to be properly handled. This includes either the treatment and consequently the removal of the quality defect or the marking of the location and a decision that it was not applicable. Furthermore, this includes research on the context-specific contra-diagnosis based on specific locations (e.g., pattern roles and stereotypes). The persistent storage of these decisions can be supported by the annotation language RAL that was developed to record information about quality defects and their history in source code.
 
Refactoring configuration & Quality Defect Removal If multiple quality defects are found at on location (e.g., a method) are diagnosed this has an effect on the indication of an optimal treatment plan (e.g., a sequence of refactorings).

Software Patterns & Anti-Patterns

AKAEM (Arbeitskreis Architektur- und Entwurfsmuster in der Fachgruppe Software-Architektur der GI): Der Arbeitskreis AKAEM dient der Diskussion und Erarbeitung von Prinzipien, Grundlagen, Methoden, Techniken, Werkzeugen für und Anwendungen von Mustern und Anti-patterns im Bereich der Software-Architektur. Der AK arbeitet aktuell schwerpunktmäßig an der Erstellung eines Musterkatalogs.
Pattern Aggregation: An approach to systematically develop or "grow" software pattern based on experiences stored by developers in an Experience Management System (e.g., an Experience Factory) or a Defect Management Systems (e.g., bugzilla).

Model Driven Software Development & Software Architecture

Model-driven software development (MDSD) focuses on the idea of constructing software systems not by programming in a specific programming language but by designing models that are translated into executable software systems by generators. In theory, this process makes it unnecessary to care for an executable system's quality, as it is "optimized" by the generators. However, the designed models are also a work product that requires a minimal set of quality aspects (e.g., the maintainability of models over a longer life-time).

The goals of quality assurance for model-driven software development are diverse and include the improvement of quality aspects such as maintainability, reusability, security, or performance. Quality assurance for model-driven software development will play an important role for the future wide-spread usage of model-driven architectures in general, as well as in specific application domains.

SAE3D: Software Architecture Editor 3D (using PhysX and OpenGL)
Quality Defect Visualization in PIMs and PSMs

Intelligent Assistance

Intelligent assistance in software engineering is a relatively old research field that is nevertheless of high interest for software engineers today. Giving support to the software engineers in programming, design, requirements, or other software-related environments is necessary, as the work product is typically very complex, large, and influenced by many persons. The core objective of intelligent assistance is to enable and improve the automation, insight, and interaction with a software system through an IDE. One main topic for intelligent assistance was the context-specific diagnosis of quality defects during development.

Intelligent Assistance for Software Engineering
 
Semantic Work Environments
SOP: The Software Organization Plattform is a plattform for software development organizations that is based on Mediawiki (http://www.mediawiki.org), a free software wiki package originally written for Wikipedia.

Information and Software Visualization

Codigator: Source Code Visualization and Navigation. The visualization of information enables the faster assimilation of information by an observer. Therefore, the ad-hoc or post-hoc visualization of defect information during development or maintenance activities results in the easier comprehension by the software engineers. A first approach for visualization and visual navigation in source code together with quality defects was realized in the Codigator system. This prototype for a ad-hoc approach indicated that the visualization helps but the amount of information needs to be compressed or otherwise summarized.
 
Architecture Visualization in Model-driven Software Development
 
Quality Defect Visualization

Code Mining & Code Retrieval

Object oriented source code occurs in diverse programming languages with documentation using miscellaneous standards, comments in individual styles, or associated test cases that are hard to exploit through information retrieval or knowledge discovery techniques. Typically, the information about object-oriented source code for a software system is distributed across several different sources, which makes processing complex.

This area of research is concerned with problems regarding the retrieval, mining, and interconnection of all information concerning a software system.

COWA (Code Warehouse): The code warehouse acts as the repository for source code from several software systems for further processing. Source code in several versions from source versioning systems (e.g., CVS) of OSS projects is extracted, transformed (i.e., parsed), and loaded (i.e., stored) in the code warehouse. Currently only JAVA from CVS systems are parsed and stored in the code warehouse.
 
CORE (Code Retrieval Engine): The code retrieval engine is an application of the data from the code warehouse. It offers a search on the source code within the COWA using the lucene search engine. The index to be searched is build upon information from the code itself (e.g., class and method names) as well as information from the documentation (i.e., javadoc) and additional comments.
 
COAE (Code Analysis Engine): The code analysis engine is used to calculate metrics (and other countable characteristics) about the source code and its different versions for further analysis or mining purposes. Currently, only few metrics are calculated.
 
COME (Code Mining Engine): The code mining engine will be used to discover previously unknown knowledge about the source code using techniques from data, text, and web mining. Work in progress is using clustering techniques in order to discover library candidates from similar projects.

Biography for use in publications

Ultra-Short Biography (less than 25 words)

Jörg Rech is an entrepreneur as well as project manager and senior scientist at SAP Research Karlsruhe, Germany. Contact him at Joerg.Rech@sap.com.

Short Biography (less than 100 words)

Jörg Rech is an entrepreneur and founder of the company Semantic Technologies, which is working on systems in the area of Web 2.0, Web 3.0 and the Semantic Web. Currently, he works as a senior scientist and project manager at SAP Research Karlsruhe, after managing several research projects at Fraunhofer IESE and the University of Kaiserslautern. He received a Ph.D. in Quality Defect Diagnosis from the University of Hildesheim and a M.S. (Diplom) in computer science from the University of Kaiserslautern. His research mainly concerned software engineering, semantic technologies, knowledge management, and data mining, where he published over fourty papers. Contact him at Joerg.Rech@sap.com.

Medium Biography (less than 200 words)

Jörg Rech is a senior scientist and project manager at SAP Research Karlsruhe, Germany. He was a scientist and project manager at Fraunhofer IESE in Kaiserslautern and a research assistant at the software engineering research group (AGSE) of Prof. Dieter Rombach. Jörg received his Ph.D from the University of Hildesheim, Germany and his BSc (Vordiplom) his MSc (Diplom) in computer science with a minor in electrical science from the University of Kaiserslautern, Germany. His research mainly concerns context-sensitive diagnosis of quality-defects, their refactoring and treatment, semantic technologies in software organizations, experience and knowledge management, knowledge patterns, and software engineering, with a focus on model-driven software engineering. Previously he also researched code mining and code retrieval. Jörg authored over 40 international journal articles, book chapters, and refereed conference papers, mainly on software engineering and knowledge management, edited several books in the domain of software engineering and knowledge management, was the speaker of the GI working group on architectural and design patterns, and is a member of the German Computer Society (Gesellschaft für Informatik, GI).

Contact him at Joerg.Rech@sap.com.
Long Biography (less than 300 words)

Dr. Jörg Rech is a senior scientist and project manager at SAP Research Karlsruhe, the global technology research and innovation unit of SAP, in Germany. Previously, he worked for Fraunhofer IESE in Kaiserslautern and the University of Kaiserslautern, Germany. Dr. Rech worked on different German and European research projects in the areas of software engineering and knowledge management. In several industrial projects he was engaged with analyzing, evaluating, and improving the software development process and product for the diagnosis of defects and the indications of improvements. He has consulted for various European companies, including T-Com, empolis, and brainbot. Dr. Rech received his Ph.D from the University of Hildesheim, Germany and his BSc (Vordiplom) his MSc (Diplom) in computer science with a minor in electrical science from the University of Kaiserslautern, Germany. His research mainly concerns the context-sensitive diagnosis of quality-defects, their refactoring and treatment, semantic technologies in software organizations, experience and knowledge management, knowledge patterns, and software engineering, with a focus on model-driven software engineering. Previously he also researched code mining and code retrieval. Dr. Rech authored over 40 international journal articles, book chapters, and refereed conference papers, mainly on software engineering and knowledge management, edited several books in the domain of software engineering and knowledge management, was the speaker of the GI working group on architectural and design patterns, and is a member of the German Computer Society (Gesellschaft für Informatik, GI). Contact him at Joerg.Rech@sap.com.

Back to top

Edited Books

Jörg Rech, Christian Bunse (Editors),
"Emerging Technologies for the Evolution and Maintenance of Software Models",
IGI Global, USA, ISBN 978-1-61350-438-3, 2011.
Jörg Rech, Christian Bunse (Editors),
"Model Driven Software Development: Integrating Quality Assurance",
IGI Global, USA, ISBN 978-1-60566-006-6, 2009.
Jörg Rech, Björn Decker, Eric Ras (Editors),
"Emerging Technologies for Semantic Work Environments: Techniques, Methods, Applications",
IGI Global, USA, ISBN 978-1-59904-877-2, 2008.

Book chapter

Journal Papers

Journal Papers (Reviewed)
Journal Papers (Non-Reviewed)

Conference Papers

Workshop Papers

Technical Reports

Academic Theses

Jörg Rech,
"Context-sensitive Diagnosis of Quality Defects in Object-Oriented Software System", Dissertation, Universität Hildesheim, Research Group Prof. Klaus-Dieter Althoff, 2009.

Book Reviews

Jörg Rech,
"Review of the Book 'Knowledge Discovery in Databases: Techniken und Anwendungen' (in German)," Künstliche Intelligenz, vol. 15, no. 3, pp. 70, 2001.

Lists of My Publications

Back to top

Address

Dr. Jörg Rech
Kriegsstr. 164
76133 Karlsruhe

Telephone: +49-721-46711415
eMail: joerg.rech (at) semantictechnologies.de
Website: Semantic Technologies

Back to top