1. DEveloper COmpanion for Documented and annotatEd code Reference
The DECODER project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 824231.
DECODER:
a toolbox for exploring, understanding and
verifying software
Virgile Prevosto
CEA, List
FOSDEM'21
2021-02-06
2. DEveloper COmpanion for Documented and annotatEd
code Reference
Project at a glance
I https://www.decoder-project.eu/
I Started in January 2019, for 36 months
I Provide a unified platform for
managing all kinds of information on a
given codebase.
I Target all stakeholders in software
development life cycle:
I developers
I reviewers
I maintainers
Use-cases
Methodology
UX
Natural
Language
Processing
Software
Engineering
Tools
Coordination:
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
2
3. Persistent Knowledge Monitor - PKM
I Database storing all relevant
documents for a software project
I documentation (manuals,
comments, bug tracker, ...)
I formal specifications
I source code
I analysis and testing results
I and evolutions (e.g. commits)
I Tools for feeding the database
I Tools for querying the database
I Common Json schema to ease
interactions
PKM
Augmented
IDE
Documentation
Generator
UML Eclipse
plugin
NLP
Knowledge
Formalizer
NLP
Knowledge
Extractor
Specification
Synthesis
Frama-C
OpenJML
Testar
Tool
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
3
4. PKM Architecture
Node.js
PKM cli
PKM
over TCP
MongoDB driver
PKM util PKM core
PKM RESTful
HTTP server
Bash scripts
User’s console JS SDK UI and tools
over
https
PKM
API
I Use docker containers
I REST server uses
OpenAPI
I AGPL and Apache
licenses
I https://gitlab.ow2.
org/decoder/pkm-api
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
4
5. Informal documents and Formal Specification
Natural Language Processing
I Knowledge extraction from informal
documents and correspondance with
relevant code pieces
I Knowledge extraction from code and
semi-automated documentation
generation
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
5
6. Information Extraction
Dataset Gathering
I Collect existing datasets (code and documents) outside Decoder
I DeepAPI training corpus for natural language/call sequences correspondance
I Also consider use cases (MyThaiStar and OpenCV)
Initial experiments
I Code to NL:
I Features extraction and grouping tokens
I Application to the detection of identifier mismatch (either in code or in comments)
I NL to Code:
I Consider programming language as a foreign language
I Neural Machine Translation
I Compute semantic similarity between source code and informal description
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
6
7. Abstract Semi-Formal Models
At a glance
I Graphical language to describe effects of a function on the data structures involved
I Semi-automated generation of ASFM diagrams
I Animation of the diagrams (graphical debugging)
Current status
I Initial version available
I Common part understood by all tools
I Extensible with tool-specific content
I Provide an abstraction layer on top of PKM’s lower-level documents
I Conversion tools to ASFM (doc-to-asfm) available as prototypes
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
7
8. Next steps
Beta-testing PKM Server
I Internally
I Add functionalities to the API
I Integrate more tools (NLP)
I Develop client
I Externally
I Interface with existing tools
I Use https://www.reachout-project.eu/
I first beta campaign on doc-to-asfm for the end of the year
I beta-campaign for the whole PKM stack in 2021
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
8
9. Thank You!
The DECODER project has received funding from the European Union’s Horizon 2020 research and innovation programme under
grant agreement number 824231.
If you need further information, please contact the coordinator: TECHNIKON Forschungs- und Planungsgesellschaft mbH, Burgplatz
3a, 9500 Villach, AUSTRIA, Tel: +43 4242 233 55, Fax: +43 4242 233 55 77, E-Mail: coordination@DECODER.eu
The information in this document is provided “as is”, and no guarantee or warranty is given that the information is fit for any particular purpose. The content of
this document reflects only the author`s view – the European Commission is not responsible for any use that may be made of the information it contains.
The users use the information at their sole risk and liability.
Icons designed by ultimatearm, eucalyp and pixel-perfect from Flaticon
GLOBE https://www.decoder-project.eu/
@ https://www.decoder-project.eu/view/Main/Contacts
TWITTER decoderproject
LINKEDIN Decoder H2020
Slideshare DecoderProject
2021 DEveloper COmpanion for Documented and annotatEd code Reference 2021-02-06
9