Software Knowledge Representation to Understand Software Systems. A Profes 2019 presentation by Victoria Torres, Miriam Gil and Vicente Pelechano, from UPV (Valencia University).
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.
Software Knowledge Representation to
Understand Software Systems
Victoria Torres, Miriam Gil and Vicente Pelechano
PROFES
Barcelona, 27-29 November, 2019
2. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
1. Introduction
2. Knowledge Sources to Populate the PKM
3. Meta-models for Software Knowledge Representation
4. The PKM Meta-model
5. Conclusions and Further Work
3. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Introduction
Too much time wasted during software
development projects
Wrong decisions taken
Amount of information for stakeholders
Lack of proper documentation
Lack of effective tools to support software
production
Lack of systematic approach for the
development and reuse of components
Lack of knowledge about components
Required interactions between different
stakeholders
Each one at different level of abstraction
Dealing with ambiguous and incomplete
documents
Software engineers need help. They
need software project intelligence!!!
4. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Introduction :: PKM and Tools Interaction to extract Knowledge
5. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Introducction :: Encompassing the whole Development Lifecycle
Requirements
Preliminary Design
Detailed
Design
Unit
Checking
Integration
Checking
System
Validation
NLP
Spec generation
Modeling
Doc generation
IDE queries
Invariant
generation
Doc generation
PKM
Impact analysis
Maintenance/Evolution
Implementation
6. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
PKM exploited along the whole Development Lifecycle
7. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
KDM
ASTM
FAMIX
LLVM
IL
SARIF
SMM PADL
DMM
Cha-Q
Meta-models for Software Knowledge Representation
KDM
ASTM
FAMIX
LLVM
IL
SARIF
SMM PADL
DMM
Cha-Q
High Medium Low
Abstraction level
8. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Meta-models for Software Knowledge Representation
KDM
ASTM
FAMIX
LLVM
IL
SARIF
SMM PADL
DMM
Cha-Q
Source code SW system artefacts Changes
Targeted to represent
Analysis Motifs
9. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
The PKM Meta-model
Formal specification describing, by
means of pre, post and invariants, the
behavior of an associated source
code.
Artefacts that list human-readable
instructions written by a
programmer with the objective of
being executed in a computing
device.
abstract representations of a specific
aspect from a given domain (e.g., a
uml class model)
artefacts that store data structures
and that are usually used as
interchange format.
Information produced by static source
code analysis, by optimization passes
of compilers, by natural language
processing or by machine learning
techniques.
Artefacts containing a structured
content in natural language,
related to some particular chunk of
source code or of a global nature.
Artefacts describing, in plain text,
the parameters that define or
execute a specific software
program.
Represents the concept of artefact
and its related concepts:
• Project use case
• Tools
• Development phases
• Stakeholders
10. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
The PKM Meta-model (excerpt)
11. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
The PKM Meta-model (excerpt)
12. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
How to exploit the PKM Meta-model
API offering Post, Put, and Get operations to:
Store artefacts (code, documentation,
models, annotations, tests, verification, etc.)
Update/restore artefacts
Retrieve artefacts for analysis or
visualization
13. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Conclusions and Further Work
PKM Meta-model inspired from common representations found in the literature
PKM organized in packages to be easily extensible
Living repository that can be queried and enriched by the actors and tools
Maintains consistency and the most updated and precise information about the project
It should support stakeholders along the whole development lifecycle
14. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
Conclusions and Further Work
Implement the PKM as a non-relational DB
Validate the PKM with use cases developed by industrial partners of DECODER
Linux Drivers: Quickly and accurately assess the quality of an external Linux driver for inclusion in
embedded systems (SYSGO, Germany)
OpenCV: Build a better knowledge of OpenCV API and its usage in some applications (Tree, Spain)
MyThaiStar: UI/UX design and verification (CAPGEMINI, Spain)
Java: Usage of Decoder toolset on selected Open Source Java projects (OW2, France)
15. 2019 DEveloper COmpanion for Documented and annotatEd code Reference
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.