Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Typ: Hauptseminar
Semesterwochenstunden: 2+0

Hauptseminar: Knowledge Management in Software Engineering

Die Vorbesprechung fand am Donnerstag den 18.01.2007 um 15:00 Seminarraum 01.07.14 statt.
Bitte senden Sie Ihre 3 ersten Themenpräferenzen bis zum 26.01.2007 an walid(DOT)maalej(AT)CDTM(DOT)de


Knowledge Management refers to a range of practices used by organisations to identify, create, represent, and distribute knowledge for reuse, awareness and learning across the organisation. On the other hand, Software Engineering is the design, development, and documentation of software by applying technologies and practices from computer science, project management, engineering and other fields. The nature of Software Engineering is rather complex since it involves many people working in different phases and activities. It is a field where constant technology changes take place rendering the work of the involved people extremely dynamic, in the sense of discovery and solution of new problems on a daily basis. The knowledge in Software Engineering is diverse and its proportions immense and continuously expanding. Thus, a structured way of managing the knowledge and treating the knowledge and its owners as valuable assets could help organisations leverage the knowledge they possess. The most important needs that drive the use of KM in SE are: * Capturing and sharing process and product knowledge. * Acquiring knowledge about the application domain. * Acquiring knowledge about new technologies. * Knowing who knows what. * Distance collaboration. This seminar discusses the state of the research and practice in the areas of Knowledge Management (KM) in Software Engineering (SE). Special emphasis is laid upon specific knowledge representation and reasoning requirements coming from the open-source communities and outsourced software development.


Knowledge Management Approaches in Software Engineering

There exist several methodical approaches that deal with managing knowledge in Software Engineering environments. The most important ones consist of:

  • The Experience Factory.
  • The Knowledge Dust to Pearls approach.
  • The Personal Software Process.
  • The Team Software Process.
  • The formation of Software Engineering Consortia such as the Software Experience Center (SEC) Consortium and the Consortium for Software Engineering Research (CSER).
  • Initiatives for standards such as the Software Engineering Body of Knowledge (SWEBOK) and the Center for Empirically-Based Software Engineering (CeBASE?).
  • Process-based Knowledge Management support for Software Engineering.

Knowledge Management Tools in Software Engineering

In addition, there exists a number of representative KM tools for assisting Software Engineering tasks, such as:

  • Document management tools
  • Competence management tools
  • Intelligent requirements assistants
  • Knowledge-based program designers
  • Knowledge-based code generators and recommendation systems
  • Smart code analysis tools
  • Software maintenance tools
  • Wikis
  • Collaborative tools

Knowledge representation

Knowledge representation is a key issue in successfully applying any KM program in an organisation. For representing knowledge about software systems, well known modelling approaches such as UML as well as the emerging ontology-based software development are both complementary and most adequate to the nature of software. Modelling is a perfect toolkit for externalising, formalising and communicating knowledge about complex and manifold software systems, even if the Software Engineering communities do not explicitly consider it as a knowledge representation method. Moreover, researches showed similarities between models and ontologies and how they can be brought together to tap the full potential of smart Software Engineering processes and environments. First researches in ontology-based Software Engineering are promising. However, this field is still in an early experimentation phase but is expected to become one of the most agile in the near future.

In addition, another facet of knowledge representation is rationale and the way rationale has to be represented. Rationale management addresses development and collaboration knowledge mostly resulting from debates and argumentation. Investigating the most relevant rationale representation approaches (Issue-Based Information System, Question, Option and Criteria, Decision Representation Language and NFR Framework) we show the clear similarities between all these methods. Recent researches in this field extended the focus of rationale from the design phase to all software life cycle activities and show how rationale can be useful for all decisions during these activities.


  • Vorbesprechung:
    • Termin 18.01.2007 um 15:00
    • Seminarraum 01.07.14
  • Einführungveranstaltung:
    • tba
  • Präsentationen:
    • Dieses Seminar findet als Blockveranstaltung und nicht wöchentlich statt. Der Termin wird mit den Teilnehmern festgelegt.


Die Erteilung eines Scheins und die Note sind von den folgenden Punkte abhängig:

  • Selbständige Recherche
  • AKTIVE Teilnahme an allen Terminen
  • 40-45 minutigen Vortrag
  • Vortragsfolien (mindestens 10 Inhaltsfolien)
  • Jeweils eine Halbe-Seite Text-Kommentar zu jeder Folie

Vorläufige Themen

Nr.ThemaBearbeiterPflicht-LiteraturZusatz Literatur
1 Knowledge Management Approaches for Software Organizations: Introduction Krzysztof Groehl tba tba
2 Knowledge Management Tools in SE - tba tba
3 Wikis in Software Engineering Özlem Özsoy tba tba
4 Modeling Knowledge in Software: Rationale Nikolaos Tsanakas tba tba
5 Case Based Reasoning and Software Engineering Antoaneta Kondeva tba tba
6 Introduction to Ontologies and Semantic Networks Dominik Stengel tba tba
7 Using the Semantic Web to Construct an Ontology-Based Repository for Software Patterns - tba tba
8 Ontologies vs. Modeling Languages Tom Schreiber tba tba
9 Using Ontologies to describe software artifacts - Semantic Web Services Irena Gnetova tba tba
10 Ontologies and Development Processes - tba tba
11 Ontology-based Software Engineering Quirin Fürgut tba tba



Bernd Bruegge Prof. Bernd Brügge, Ph.D.
Walid Maalej Walid Maalej