platform independent software development monitoring mária bieliková, karol rástočný, eduard...
TRANSCRIPT
![Page 1: PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al. {name.surname}@stuba.sk](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062519/56649e755503460f94b765f2/html5/thumbnails/22.jpg)
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