Lehrstuhl für Angewandte Softwaretechnik
Chair for Applied Software Engineering

Hauptseminar: Knowledge Management in Modern Software Development

Typ: Hauptseminar
Semesterwochenstunden: 2+0
ECTS: 4 Credits
Time: Blockseminar
Contact: Walid Maalej

The introduction and registration session will take place on the 28th of January 2008 in room 01.07.14

Summary

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, distributed software development and agile development teams.

The seminar consists of two components, presentations and exercises. The seminar component focuses on the presentation of recent advances in management and technology with respect to the knowledge management of large software development projects. The topics for the presentations are selected from the current literature. The goal of the exercise component is to deepen the understanding of the concepts discussed in the seminar component. Each seminar participant has to design and lead an empirical experiment involving knowledge management techniques which is performed by the other seminar participants.

Content

This is a primarily list of topic. The exact list will be finalized based on student preferences and number of participants. Knowledge Management Approaches in Software Engineering

There exist several methodical approaches that deal with managing knowledge in Software Engineering environment:

  • The Experience Factory.
  • The Knowledge Dust to Pearls approach.
  • Empirical software engineering
  • Collaborative software development

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
  • Competence management
  • Intelligent assistants
  • Recommendation systems
  • Wikis

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.

Organizational

  • Introduction and registration session (Vorbesprechung):
    • Date 28.01.2008 um 15:00
    • Room 01.07.14
  • Introduction:
    • tba
  • Presentations:
    • This will be a block seminar. The exact dates will be fixed with the participants.

Participation: If you are interested in taking part in the seminar please send an e-mail to maalejw (at) in.tum.de. Please include last and first name, matriculation number, current semester, discipline (diploma, master, bachelor) including major, and a desired topic.

Modalities

You will get a certificate with a grade based on the following criteria:

  • Ability to do independent research
  • Oral presentation about the selecte topic, including the performance of an exercise
  • Quality of the annotated presentation slides (about 10-20 slides, commentary for each slide)
  • Attendance and ACTIVE participation at all the other presentations


Subject (will be updated based on preferences. Topics can be also proposed)

Nr.ThemaBearbeiterPflicht-LiteraturZusatz Literatur
1 Knowledge Management Approaches for Software Organizations: Introduction - tba tba
2 Semantic Wikis in Software Engineering - tba tba
3 Modeling the "why" in Software Development: Rationale Management - tba tba
4 Case-Based Reasoning in Software Engineering - tba tba
5 Ontologies in Software Engineering - tba tba
6 Semantic Web for Sharing Design Experience - tba tba
7 OWL or UML - tba tba
8 Using Ontologies to Describe Software Systems - tba tba
9 Heuristics and Best Practices in Software Development - tba tba
10 Recommendation Systems - tba tba
11 Knowledge Discovery and Data Mining - tba tba
12 Reuse, re-engineering, reverse engineering - tba tba
13 Annotating source code - tba tba

 

Links

Supervisor

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