To facilitate project vision, we devised several methods aimed towards software development support. While some of the methods focus on acquisition or upkeep of information base (e.g. information tags describing the source code, user models and activity data), others represent end-user tools consuming the existing data (e.g. artifact visualizations, recommendation). The methods depend on each other in terms of inputs and outputs. We opted for a loose data-based integration. The methods are organized into three groups according to domain of the task they aim to solve.
The first group comprises methods designed primarily for acquisition and upkeep of domain knowledge. The domain knowledge is represented by lightweight information tags model – metadata. The main purpose of these metadata is to describe the characteristics of the underlying resources comprising artifacts commonly found in the typical software project: source codes, documentation, notes, etc. The metadata are acquired primarily by processing these resources and only secondarily by a dedicated human work (which is sometimes necessary for metadata quality assurance). At the same time, these methods are in general unaware of (and thus independent on) the activity and characteristics of software developers that created the resources being processed.
In contrast with the first group, the second group of methods focuses on the user – the software developer. It comprises methods for acquisition of user models – the characteristics, skills and context of software developers (either short-term or long-term), that are afterwards (as well as the available domain knowledge) used by other methods to support the software development tasks through personalization.
The third group of methods is more specifically focused on the domain of automated integration of entities within information systems. These methods depend especially on source code metadata acquired by several methods from the first group.