22
PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný , Eduard Kuric, et. al. {name.surname}@stuba.sk www.fiit.stuba.sk

PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Embed Size (px)

Citation preview

Page 1: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORINGMária Bieliková, Karol Rástočný, Eduard Kuric, et. al.

{name.surname}@stuba.sk

www.fiit.stuba.sk

Page 2: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Motivation

• Discovering problems in software development process• Source code metrics [Kothapalli, C., et al. 11]

• Monitoring developers’ activities [Fritz, T., et al. 07]

• Source code visualization [Bohnet, J., Dӧllner, J. 11]

• Combination of multiple approaches• Sharing partial results/metrics about software and developers

• Different languages and IDEs

2/22

Page 3: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

PerConIK (perconik.fiit.stuba.sk)

• Personalized Conveying Information and Knowledge

• Dynamic data space of a software house• Source code files• Project documentations• User activity logs

• Descriptive metadata: Information Tags• Shared space of descriptive information• Decrease redundancy of data processing• Support inference over preprocessed information

3/22

Page 4: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Information Tags

• Descriptive metadata with a semantic relation to a tagged content, defined by:• Type – defines a type and a meaning of the information tag;

• Anchoring – identifies a tagged information artefact (resource);

• Body – represents a structured information, a structure of which corresponds to the type of the information tag.

4/22

Page 5: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

1: int counter = 0;2: for (int i=0; i<10; i--)3: {4: counter++;5: }

Example

Type: BugAnchor: Ln 2Body: Cyclic Loop

Type: Edited byAnchor: Ln 2 Col 20-23Body: John; Peter

5/22

Page 6: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Data Layers

6/22

Page 7: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Data Processing

Activity Logs

Documents (source code, web pages)

DataChange

sets

ActivitiesUser

Model

Document Model

Model updates

Information Tags

MonitoringServices

ModelingServices

TaggingServices

7/22

Page 8: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

End User Services

Developer

Management Supporting Data

User Model

Document Model

User Metadata

Information Tags

Document Metadata

Development Supporting Data

Developer Oriented Services

Management Oriented Services

Team Leader

Documents

8/22

Page 9: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Documents

• Types• Source code files• Web pages (Q&A sites, community forums, …)• Documentations (specifications, API, tutorials, …)

• Document models• Abstract syntax trees• Nodes are mapped across versions

9/22

Page 10: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Activity Logs

• IDE: copy/paste/open/edit/find/check in …• Browser: visit/search/find/copy/tabs …• OS: running applications/office tools …

10/22

Page 11: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Tagging: Manual

• Structured commentaries• Written directly in source code by developers• Developers are not disturbed from writing source codes

• Supported by IDE plugins

11/22

Page 12: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Tagging: Automatic

• Rule-based tagger – processes events as stream of RDF graphs

• Rule: CSPARQL Query + Tagging action

Activity Logs

ASTRCS

Stream Generator

Stream Processor

Info.Tags

Rules

Rules Processor

CSPARQLQueries

Actions12/22

Page 13: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Case Study: PerConIK

• Software House (1 year)• Developers: 6• Source Codes: 6,517 (in 17,330 versions)• Activity logs: 769,080• Information Tags: 431,160

• University: Team Project (1 semester)• Developers: 40• Source Codes: 6,791 (in 12,724 versions)• Activity logs: 886,465• Information Tags: 155,868

13/22

Page 14: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Information Tags Repository [WISM12]

• Based on MongoDB• Fast data access • Horizontally scalable

• Information tag model• Based on W3C Open Annotation Model• Free form model

• SPARQL endpoint• Query processing based on MapReduce

14/22

Page 15: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Information Tags Maintenance

• Maintenance tasks• Generating missing information tags• Repairing affected information tags• Removing invalid information tags

• Maintained information• Body – tagging services; add/modify/remove rules

• Anchoring – robust location descriptor [DEXA13]

15/22

Page 16: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Example

1: int counter = 0;2: for (int i=0; i<10; i--)3: {4: counter++;5: }

Type: BugAnchor: Ln 2Body: Cyclic Loop

16/22

Page 17: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Example

1: int counter = 0;2: int i=0;3: for (i=0; i<10; i--)4: {5: counter++;6: } Type: Bug

Anchor: Ln 2Body: Cyclic Loop?

17/22

Page 18: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Robust Location Descriptor [DEXA13]

• Source code – sequence of comparable textual elements

• Index-based location descriptor• Indexes of the first and the last letter• Simple, fast, straight position comparison• Error-prone

• Context-based location descriptor• Tagged text, context after and before• Robust, adds context to information tag• Time and memory complexity

18/22

Page 19: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Location Descriptor: Example

Indexes: 22, 27

Context before: in Set )

Tagged text: x . Add

Context after: ( 45 )

foreach (var x in Set) x.Add(45);

foreach ( var x in Set ) x . Add ( 45 ) ;

19/22

Page 20: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Developers’ Karma

• Measure of programmers’ experiences• Calculated from information tags anchored to source code written by a programmer• Interaction with source code (copy/pase, degree of written and committed lines of code)

• Component complexity (LLOC, Cyclomatic complexity, …)

• Used technologies

20/22

Page 21: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Search in Source Code [SOFSEM2013]

• Based on developers’ karma and source code concepts (bags of keywords describing source code artifacts)1. Query is reformulated to bag of words

2. Find information tags with concepts similar to the query and mark tagged artifacts as results

3. Load information tags with karmas of results’ authors

4. Order results by concepts similarity to query and developers’ karmas

21/22

Page 22: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk

Conclusions and Future Work

• Environment for development monitoring• Information tags

• Describe resources in an information space• Enhance information processing

• Software metrics based on developers’ activity• Future work

• Deployment on larger projects of the software house• Evaluation (qualitative – eye tracking, interviews;

quantitative – manually annotated source code)• Additional supporting services, metrics, …

22/22