Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al."— Presentation transcript:

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

2 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

3 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

4 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

5 1: int counter = 0; 2: for (int i=0; i<10; i--) 3: { 4: counter++; 5: } Example Type: Bug Anchor: Ln 2 Body: Cyclic Loop Type: Edited by Anchor: Ln 2 Col 20-23 Body: John; Peter 5/22

6 Data Layers 6/22

7 Data Processing 7/22

8 End User Services 8/22

9 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

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

11 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

12 Tagging: Automatic Rule-based tagger – processes events as stream of RDF graphs Rule: CSPARQL Query + Tagging action Activity Logs AST RCS Stream Generator Stream Processor Info. Tags Rules Rules Processor CSPARQL Queries Actions 12/22

13 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

14 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

15 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

16 Example 1: int counter = 0; 2: for (int i=0; i<10; i--) 3: { 4: counter++; 5: } Type: Bug Anchor: Ln 2 Body: Cyclic Loop 16/22

17 Example 1: int counter = 0; 2: int i=0; 3: for (i=0; i<10; i--) 4: { 5: counter++; 6: } Type: Bug Anchor: Ln 2 Body: Cyclic Loop ? 17/22

18 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

19 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

20 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

21 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

22 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


Download ppt "PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al."

Similar presentations


Ads by Google