Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools

Know How

We will meet at 2007-06-30 9h00 - 18h00 to teach ourselves the required techniques for our lab. Here you find more information.

The topics are:

The idea is, that everyone of you picks two topics he or she is interested in and prepares with a partner1) a presentation of 30 minutes. This presentation can have a tutorial character, so that people can understand the core of the matter.

We will have two projectors and (at least) two laptops available at the session. Since the schedule is quite tight, it is important that everyone sticks to the timeframe. If you have any questions regarding any of the topics, just write a mail at

Here you selected your personal favorites2), so we made the best matching:

<doodle XP-Lab07 Know-How Selection>

SOA/OSGI AOP Refactorings/Design Patterns Prolog Webservices Eclipse/SWT Localization Unit Tests Acceptance Tests Cont. Integr. Planning/Tracking Code Quality


Service Oriented Architecture (OSGI)

Aspect Oriented Programming


Refactoring to Design Patterns

Design Patterns

  • What is a design pattern (SHORT!)
  • Examples from JUnit
  • The classification of the GoF patterns.
  • Pattern quiz (?), “What's the difference between State an Strategy?”


  • Rough overview about Fowlers smells and refactorings.
  • Explanation of the core ideas. (Relation to automated unit tests. Baby steps. Behavior preservation.)
  • Practical exercise!
  • (What is good design?)


  • Fowler
  • Kerievsky

Logic Programming and Prolog


  • Introduction into Logic Programming (how does it work, what's the idea of it)
  • How is it implemented in Prolog?

Here are some links to lectures and examples:


As usual, the slides are only useful with the spoken word.



  • How can we “call” a webservice? You should implement a few simple example and show us how to do it.
  • Do a web search to find public available web services. We could use web services at least for:
    • Weather
    • Amazon
    • Google
    • places of interest
    • landmarks
    • public traffic schedulesWe need a formal as well as an intuitive semantic description of this webservices. It would be great if you colaborated with the webservices technology topic and implement one or two clients for these webservices. Nevertheless your focus should be on building a small catalog of available and useful webservices.



  • Mark Schmatz
  • Julia Kuck

Introduction into Eclipse, SWT and JFace


  • Introduction into the features of the Eclipse Development Suite
    • Coding Environment
    • Logical Structure (Workspaces, Perspectives, Views, ..)
    • Technical Structure (File System Representations)
    • Features, Plugins

Introdutions into SWT

Getting Started with Eclipse and SWT


Viewing HTML pages in SWT Browser

Here are some more tips & tricks how to use swt. Especially how to dispose resource (maybe this helps with the leak)

Localization (GPS, GSM, WLAN)


In the last practical course we did a lot of experiments with a WLAN localization software callged Magic Map. The results in the B-IT building where very disappointing (Ask Tobias, Bernd, Kai, …). We should definitly focus on the other technologies.


Test First: Unit Tests


  • Test-First means the practices to write your tests before the functionality you actually want to implement.
  • Test first is really at the heart of XP although it seems so counter-intuitive at the first sight. Besides a radical turn in your programming attitude, test first also needs some basic skills.
  • We want to use JUnit 4 in our Lab - please make sure that the team is able to handle this framework :)

Test First: Acceptance Tests


Continuous Integration

continuous_integration.pdf (As usual, these quite sparse slides are only useful with the spoken word.)

Planning and Tracking

planning_tracking_xp2007b.ppt (sorry couldn't prepare in pdf format)

  • Your talk will be short and not very complex. The challenge lies in the handling of the (excellent ;-)) excel sheets and the encouragement of your colleagues to carefully supply there tracked values.
  • Story Cards (Color codes), Task Cards; How to handle story and tasks estimates; How produce Burn-Down-Charts and Tasks-Estimation-Feedback. (Planning Game only short as we will introduce it in the usual way.)
  • During the lab you will have to take care that somebody takes care about the tracking and everybody records the time spent on tasks. (Which usually means that you have to do the tracking on your own at the beginning and to train others as soon as possible.)

Extreme Code Quality

extreme_code_quality_xp2007b.ppt (sorry couldn't prepare in pdf format)

* Eliminate duplication, Express all ideas, Minimize entities

  • In earlier labs we called this topic refactoring, but we realized that the students didn't refactor that often. We think the reason was that though everybody knew refactoring is a good thing one should do, we had no clear goal that we wanted to achieve by doing our refactorings. So here are the goals: Eliminate duplication, express all ideas, minimize entities.

* Notes about Code Quality

The partner can (should?) be different for both topics
Ideally more than just two!
teaching/labs/xp/2007b/know-how.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2024