1 / 22

Platform Independent software development monitoring

Platform Independent software development monitoring. M ária Bieliková, Karol Rástočný , Eduard Kuric , et. al. { name.surname }@stuba.sk www.fiit.stuba.sk. Motivation. Discovering problems in software development process Source code metrics [ Kothapalli , C., et al. 11]

vic
Download Presentation

Platform Independent software development monitoring

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

  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

  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.

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

  6. Data Layers

  7. Data Processing

  8. End User Services

  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

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

  11. Tagging: Manual • Structured commentaries • Written directly in source code by developers • Developers are not disturbed from writing source codes • Supported by IDE plugins

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

  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

  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

  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]

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

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

  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

  19. Location Descriptor: Example foreach (var x in Set) x.Add(45); Indexes: 22, 27 Context before: in Set ) Tagged text: x . Add Context after: ( 45 ) foreach ( var x in Set ) x . Add ( 45 ) ;

  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, Cyclomaticcomplexity, …) • Used technologies

  21. Search in Source Code [SOFSEM2013] • Based on developers’ karma and source code concepts (bags of keywords describing source code artifacts) • Query is reformulated to bag of words • Find information tags with concepts similar to the query and mark tagged artifacts as results • Load information tags with karmas of results’ authors • Order results by concepts similarity to query and developers’ karmas

  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, …

More Related