Title: TEAM System
1TEAM System
2The need for TEAM system
- Software development is a collective, complex,
and creative effort - Usually, developers rely on personal knowledge
and experience, on their gut feeling - But as software development projects grow larger,
it becomes a group activity where individuals
need to communicate and coordinate - Individual knowledge has to be shared and
leveraged at a project and organization level
2
3What is the TEAM system?
- The goal of the TEAM project is to develop a
knowledge management system that supports
software developers in coding activities - The TEAM system makes a contribution to the
solution of concrete problems in coding, namely
error handling and component reuse - It enables distributed teams to become more
effective by reusing/learning from each others
experiences
3
4What is the TEAM system?
- The real power of the TEAM system lies in
supporting the whole knowledge management process - TEAM can be considered as integrated collection
of services that facilitate software development
activities by - capturing
- storing
- disseminating
- reusing knowledge
- created during software development
4
5Knowledge Management Cycle
Probst et al.
The general purpose of KM is to make knowledge
usable for more than one individual, e.g. for an
organisation as a whole that is, to share it
6Knowledge Goals
- Knowledge goals point the way for knowledge
management activities - The building block deals with the creation of a
knowledge-sensitive corporate culture, in which
sharing and development of know-how create the
preconditions for effective knowledge management - It also ensures that knowledge goals will be
translated into action
6
7Knowledge Goals in TEAM
- Based on the as-is analysis and the input
provided by the industrial partners, it was
decided that the TEAM project will support two
areas - error-handling
- re-use of components
- This has been done by
- exploiting and integrating existing information
and collecting new knowledge - providing easy, rapid access to distributed
knowledge - eliminating time and space constraints in
communications through automatic provision of
knowledge relevant for a given user context - stimulating people to share knowledge and to use
shared knowledge
7
8Knowledge Goals in TEAM
- To gain developer acceptance, the TEAM system has
been integrated into the software development
process - This allows collecting and storing relevant
knowledge as it is generated in the work - The main advantage of integrating TEAM into an
IDE is that KM is put into software engineers
work - Coding activities occur inside the computational
environment rather than in the external world - While TEAM develops a general framework for
knowledge-sharing in IDEs, its prototype
implementation has been done for the Eclipse IDE
8
9TEAM in Eclipse
- With TEAM system tightly integrated into Eclipse
development environment, it is easier for
software developers to create, use, share, etc.
knowledge - Its actions, menus and preferences are located in
the respective locations within the working
environment - Several buttons in Toolbar
- TeamWeaver menu in the Eclipse menu
- Eclipse Preferences dialog
- Eclipse Search dialog
- Eclipse Help
DEMO! Installation process.avi
9
10Knowledge Identification
- Knowledge is information combined with
experience, context interpretation and reflection - It is a high-value form of information that is
ready to be applied in decisions and actions - Knowledge management seeks to turn data into
information, and information into knowledge - Formal knowledge can be expressed in a structured
form, and easily communicated and shared - E.g. software engineering methods, document
templates, components, software artefacts - Informal knowledge is highly personal and hard to
formalize, making it difficult to share with
others - E.g. lessons learned that are gained as a result
of the work of the organization itself and that
describe both successful reports and problems
10
11Knowledge Identification in TEAM
- Knowledge management requires both a shared
language and a good fit with concepts that
already exist in the organization - TEAM ontologies define the shared vocabulary that
are used to facilitate annotation, communication,
search, storage, and representation of
information - Knowledge artefacts are interlinked, combined and
referenced - TEAM ontologies constitute the glue that binds
the TEAM components together
11
12Initial TEAM Ontologies
13Refinement of TEAM Ontologies
- Methodology used
- Comparison of TEAM Ontologies with gold
standard ontologies from the bibliography - Evaluation through their useage and feedback from
end-users - Refinement and tests for correctness and logical
consistency
13
14Refinement of TEAM Ontologies
- Annotation Ontology
- Several classes were imported to support the
annotation process - Refinement done in existing classes in order to
be aligned with the new annotation hierarchy
15Refinement of TEAM Ontologies
- Knowledge Artefact Ontology
- Renamed as Artefact
- A major refinement was performed in order to
align it with the Interaction Ontology
16Refinement of TEAM Ontologies
- Problem Solution Ontology
- A number of classes were inserted following
end-user feedback - Additional Properties were also defined
17Refinement of TEAM Ontologies
- Interaction Ontology
- Refinement lead to a more extended, rich taxonomy
in both general (Read, Change, etc) as well as SW
development interactions (InvocateMethod,
changeParameter, etc.)
18Refinement of TEAM Ontologies
- Organisation Ontology
- Classes added to represent clearly the
organisation structure of end-users
19Refinement of TEAM Ontologies
- Ontologies produced by the TEAM capture the
concepts and the definitions as understood by a
variety of diverse end-users and experts - Ontology creation and refinement is a rather
time-consuming, error-prone procedure. - There is no panacea, not a single method to
evaluate and refine an ontology but a combination
of several methods should be employed in order to
achieve good results - Ontologies are living artifacts which are subject
to change. New information which was previously
unknown may be discovered or different features
of the domain may become known or important - Ontology development is an ongoing process and
the refinement task will permit TEAM ontologies
to evolve
20Knowledge Acquisition
- Knowledge acquisition denotes the satisfaction of
organizational knowledge needs from internal or
external sources - Knowledge acquisition is treated as
- an investment in the present, since new, directly
usable knowledge will be captured - an investment in the future, since potential
useful knowledge already available in existing
systems will be made accessible
20
21Knowledge Acquisition in TEAM
- Knowledge acquisition of new knowledge has been
done in two modes - off-line acquisition of learning rules that help
in detecting problems encountered by developers - Eureka study
- on-line acquisition of knowledge through
interpretation of an aggregated sequence of
interaction data based on - developers interaction with IDE (capturing of
context) - the application of learned rules (processing of
context) - This is not directly visible to software
developers but has an extraordinary effect on the
effectiveness and efficiency
DEMO! Context Preferences.avi
21
22Knowledge Acquisition in TEAM
- Knowledge acquisition has been realized by
enriching already existing artefacts (e.g. source
code, issue tracking systems, etc.) - TEAM system does not replicate existing
information, but provides explicit model - It has been done by creating
- Integrated index
- Initial knowledge base
- Extracting metadata
- from structured content (e.g. code structure) and
from natural language text (e.g. comment in code
or knowledge documents) - Linking metadata
- generated metadata for various kinds of sources
are related semantically (e.g. function names
that are likely to appear in issue/bug reports
are linked to the code that is involved in
producing the bug)
DEMO! Repository crawling.avi
22
23Knowledge Development
- Knowledge development consists of all the
management activities intended to produce new
internal or external knowledge on both the
individual and the collective level
23
24Knowledge Development in TEAM
- The TEAM system provides a powerful user
interface for developing knowledge - Several modes of putting knowledge into knowledge
base are supported - Manual creation of knowledge items based on
entities from the TEAM ontologies - Annotation creation
- An important aspect of the TEAM system is
- the ability to annotate semantically source
code - Semi-automatic annotation creation
- The TEAM system uses information extraction
- techniques to propose annotation
- Wiki-based knowledge creation
- Wiki provides lightweight and flexible mechanisms
as well as semantics
DEMO! Knowlege Development.avi
DEMO! Manual Anotation.avi Automatic
annotations.avi
DEMO! Wiki.avi
24
25Knowledge Distribution
- Knowledge sharing/distribution deals with the
efficient allocation of knowledge - i.e. how
isolated knowledge can be made fruitful for the
overall organization - In making knowledge available and usable across
the whole organization, the critical questions
are - Who should know what, to what level of detail,
and how can the organization support these
processes of knowledge distribution? - Not everyone needs to know everything!
- Technical knowledge distribution infrastructure
should support efficient knowledge exchange and
connect formerly separated experts through an
electronic network - P2P infrastructures make it possible for
different participants (organizations,
developers, or departments) to maintain their own
knowledge structure while exchanging information
25
26Knowledge Distribution in TEAM
- The TEAM system fosters knowledge sharing
- Knowledge is managed in the local machine and
shared only with those peers that should get this
knowledge - This is indeed analogous to the everyday
practice, where developers share their
experiences to others in mails or in informal
discussions - A P2P architecture also encourages
- the informal sharing aspects
DEMO! Network connect-policy-publish-search.avi Ne
twork setup-policy-publishing.avi Secure publish
of data and search.avi
26
27Knowledge Preservation
- After knowledge has been acquired or created, it
must be carefully preserved and managed - Knowledge preservation is a process of
maintaining knowledge important to an
organizations mission that stores knowledge over
time and provides the possibility of recall for
the future
27
28Knowledge Preservation in TEAM
- The TEAM system distinguishes between
- local (private) knowledge, which is not available
to others and - public (distributed) knowledge, which is
available to others via the TEAM P2P network - Knowledge is represented formally and explicitly
based on the TEAM ontologies - TEAM system addresses issues of managing (i.e.
adding, deleting, modifying, exporting/importing)
of knowledge - knowledge items
- annotations
- wikis
DEMO! Preservation.avi
28
29Knowledge Use
- Knowledge use is the purpose of KM
- It is the productive deployment of organizational
knowledge in the working process - The successful identification and distribution of
critical knowledge does not ensure its daily use - Without consistent use, there is a high
probability that new knowledge systems will decay
in quality, and the investment will be wasted - The potential user of knowledge has to see a real
advantage in order to change his or her behaviour
and adopt the knowledge
29
30Knowledge Use in TEAM
- The TEAM system supports knowledge use by
providing services for - Visualisation
- Searching
- Recommendation
- Browsing
- Visualisation
- The TEAM system combines transparently and
intuitively the metadata with the TEAM ontologies - It enables the representation of different
aspects of the underlying information and allows
for easy and flexible presentations of the same
information in two ways - tree-based representation
- graph-based representation
DEMO! Knowledge Visualisation.avi
30
31Knowledge Use in TEAM
- The TEAM system supports many advanced methods
for knowledge search by - taking into account three different types of
search, namely keyword, structured and semantic
search - integrating results from different repositories
- (i.e. local and P2P storage)
- ranking based on context-related information
DEMO! Search.avi Search in entire network
for public data.avi
- Recommendation
- Knowledge pull Developers may ask explicitly
for support - Knowledge push - Since developers are often too
busy to look for information or do not even know
that relevant information exists, proactive
services are provided
DEMO! Recommendation.avi
- Experience use
- Experience on component reuse and error
DEMO! Reuse of experience.mov
31
32Knowledge Use in TEAM
- Views
- In the TEAM system developers are not only
contributors of knowledge but also consumers - It is therefore crucial to provide them with
means for interacting with this knowledge - The TEAM system allows navigation through
- search results
- recommendation results
- existing annotations
- WIKIs
DEMO! Views.avi
32
33Knowledge Measurement (in TEAM)
- The value and potential of the TEAM system as KM
system (e.g. improving quality of the software,
reducing time-to-market, increasing productivity,
etc.) resides in the long-term human action and
usage - TEAM will pursue the proof of concept through
an initial measurement of the systems
knowledge capabilities and impact on work
practices during in the summative evaluation - Knowledge measurement is beyond the projects but
NOT TEAMs scope
33
34TEAM as a KM system
- The goal of the TEAM is to collect knowledge the
developers gain during software development in
order to avoid mistakes and leverage successes in
future projects - Although benefits can be derived from individual
tools addressing separate software development
activities, the real power of the TEAM system
lies in supporting the whole knowledge management
process - TEAM can be considered as integrated collections
of services that facilitate software development
activities by applying knowledge management
paradigm in capturing, storing, disseminating,
and reusing knowledge created during software
process as well as in integrating existing
sources
34
35TEAM as a KM system
- The expected advantages of TEAM system are
- With TEAM system integrated into an IDE, it will
be easier for developers to create new knowledge. - The TEAM system will be actively integrated into
the work process which enables capturing
information/knowledge during the software
development process without developers extra
effort - The users of TEAM system will not be passive
receivers of knowledge, but rather active
constructors of knowledge. Knowledge will be
constructed in the context of the work - The TEAM system will support many advanced
methods for knowledge search by - taking into account three different types of
search - integrating results from different repositories
(i.e. local and P2P storage) - ranking based on context
35
36TEAM as a KM system
- The expected advantages of TEAM system are
- The TEAM system will allow developers not only to
share their knowledge with other peers but also
to suggest developers what to share - Since knowledge management system must provide
the information that developers need when they
need it, the TEAM system will play an active role
in knowledge dissemination - By monitoring the actions of developers as they
work, and informing them about potentially
relevant knowledge for the task at hand, the
right knowledge will be shared in the right
moment - The TEAM system could be also used to better
support management activities, such as software
process definition, people allocation and
estimation, etc. - This is out of the scope of the TEAM project
36
37TEAM as a KM system
Phases of the knowledge management cycle
TEAM components
37
38TEAM Components
KD provides knowledge articulation facilities,
semi-automatic metadata creation and UI for
accessing the system functionality
CS observes and interprets the developers
interaction with the developing environment
SR provides search functionality and
recommendations to solve problems the developer
encounters
MR stores schema information and metadata
and handles the connection and information
exchange with other TEAM systems in the TEAM
network