Development of an approach to using a style in software engineering

Authors

DOI:

https://doi.org/10.15587/1729-4061.2019.175665

Keywords:

software engineering, style template, ontology, descriptive logic, programming style

Abstract

An ontology-driven approach to applying styles in software engineering is developed in the study. The essence of the approach is to use ontology not only to represent styles but also to control the use of styles when creating and maintaining software. For such purposes, appropriate ontology and developer support tools are provided to represent a style, and tools (reasoners) are created on the ground of the ontological knowledge base to control the application of the style in work products of the software lifecycle phases. Based on descriptive logic, the knowledge base contains two components – terminological (TBox) and factual (ABox). The first component was created in advance by performing a domain analysis. The second component was created when analysing the representation of the corresponding work product.

For the purpose of           typification in the context of the developed approach, templates for the kernel ontology of the software engineering style were created by analysing the concept of style in different domains. The basic characteristics of style as a domain-independent concept, which are presented in the templates, are formulated in the article. In this case, the Work Product Pattern Application pattern of the Unified Foundational Ontology is used to select the number of templates needed to represent the style. The pattern describes actions that may exist regarding the Work Product style.

An example of using the approach is considered by investigating the proposed ontology-driven method for programming style application in software engineering and building the architecture of the tool that implements it. Protégé use shows how to build the ontology of a programming style and programmer support. The architecture of the tool for controlling the application of style is developed and implemented in a work product of the design phase – a programme text. The basis of the architecture is the knowledge base of the corresponding style. The terminological component of the knowledge base contains information regarding programming languages and styles, and it is created in advance by the ontology developer. The actual component is created by the reasoner for each representation of the work product – the programme text.

The tools developed in the context of the proposed approach automate the processes that take place when applying styles to work products of the software lifecycle phases.

Author Biographies

Nikolay Sydorov, Interregional Academy of Personnel Management Frometivska str., 2, Kyiv, Ukraine, 03039

Doctor of Technical Sciences, Professor, Head of Department

Department of Computer and Information Technologies

Nika Sydorova, Interregional Academy of Personnel Management Frometivska str., 2, Kyiv, Ukraine, 03039

PhD, Associate Professor

Department of Computer and Information Technologies

Evgeny Sydorov, P&S Integrated Media Enterprise Avid Development GmbH Paul-Heyse-Straße, 29, München, Germany, 80336

PhD, Associate Professor, Senior Principal Software Engineer

Olha Cholyshkina, Interregional Academy of Personnel Management Frometivska str., 2, Kyiv, Ukraine, 03039

PhD, Dean

Ilona Batsurovska, Interregional Academy of Personnel Management Frometivska str., 2, Kyiv, Ukraine, 03039

Doctor of Pedagogical Sciences, Associate Professor

Department of Information Security

References

  1. Sidorov, N. (2006). Software stylistic. Problems of programming, 2-3, 245–254.
  2. Sidorova, N. (2015). Programming style ontologies and automated reasoning – systematic mapping study. Software Engineering, 3, 38–44.
  3. Boehm, B. (2007). Software Engineering. John Wiley & Sons, 832.
  4. Hazzan, O., Dubinsky, Y. (2009). Agile Software Engineering. Springer. doi: https://doi.org/10.1007/978-1-84800-198-5
  5. Behera, C. K., Bhaskari, D. L. (2015). Different Obfuscation Techniques for Code Protection. Procedia Computer Science, 70, 757–763. doi: https://doi.org/10.1016/j.procs.2015.10.114
  6. Weinberg, G. (1971). The Psychology of Computer Programming. Van Nostrand Reinhold, 276.
  7. Raijlich, V., Wilde, N., Buckellew, M., Page, H. (2001). Software cultures and evolution. Computer, 34 (9), 24–28. doi: https://doi.org/10.1109/2.947084
  8. Holovatyi, M. (2014). Multiculturalism as a means of nations and countries interethnic unity achieving. Economic Annals-XXI, 11-12, 15–18.
  9. Calero, C., Ruiz, F., Piattini, M. (Eds.) (2006). Ontologies for Software Engineering and Software Technology. Berlin, 343. doi: https://doi.org/10.1007/3-540-34518-3
  10. Pahl, C., Giesecke, S., Hasselbring, W. (2009). Ontology-based modelling of architectural styles. Information and Software Technology, 51 (12), 1739–1749. doi: https://doi.org/10.1016/j.infsof.2009.06.001
  11. Abuhassan, I., AlMashaykhi, A. (2012). Domain Ontology for Programming Languages. Journal of Computations & Modelling, 2 (4), 75–91.
  12. Sydorov, N. A., Sydorova, N. N., Mendzebryovsky, I. B. (2018). Software engineering ontologies categorization. Problems in Programming, 1, 55–64. doi: https://doi.org/10.15407/pp2018.01.055
  13. Suárez-Figueroa, M. C., Gómez-Pérez, A., Motta, E., Gangemi, A. (Eds.) (2012). Ontology Engineering in a Networked World. Berlin, 446. doi: https://doi.org/10.1007/978-3-642-24794-1
  14. Ghosh, M. E., Naja, H., Abdulrab, H., Khalil, M. (2016). Towards a Middle-out Approach for Building Legal Domain Reference Ontology. International Journal of Knowledge Engineering, 2 (3), 109–114. doi: https://doi.org/10.18178/ijke.2016.2.3.063
  15. Clark, P., Thompson, J., Porter, B. (2000). Knowledge patterns. KR, 591–600.
  16. Guizzardi, G., Wagner, G., Almeida, J. P. A., Guizzardi, R. S. S. (2015). Towards ontological foundations for conceptual modeling: The unified foundational ontology (UFO) story. Applied Ontology, 10 (3-4), 259–271. doi: https://doi.org/10.3233/ao-150157
  17. Skjæveland, M., Forssell, H., Klüwer, J., Lupp, D. (2017) Pattern-Based Ontology Design and Instantiation with Reasonable Ontology Templates. Workshop on Ontology Design and Patterns (WODP2017), 15.
  18. Department of Defense (2011). Data modelling guide (DMG) for an enterprise logical data model (ELDM). Version 2.3, USA, 184.
  19. Calvanese, D. (2003). Description logic for conceptual data modelling in UML. ESSLLI, 23.
  20. Sidorova, N. (2015). Ontology-Drived Method Using Programming Styles. Software Engineering, 2 (22), 19–28.
  21. Sidorova, N. (2015). Ontology-Driven Programming Style Assistant. Software Engineering, 2 (24), 10–19.
  22. Sidorov, N., Sidorova, N., Pirog, A. (2017). Ontology-driven tool for utilizing programming styles. Proceedings of the National Aviation University, 71 (2), 84–92. doi: https://doi.org/10.18372/2306-1472.71.11751
  23. Basili, V., Caldiera, G. (1994). Goal Question Metric Paradigm. Maryland, 60.
  24. Sidorov, N., Chomenko, V., Sidorov, E. (2008). Reengineering of the Legacy Software: the air simulator case study. Proceedings of the third world Congress "Aviation in the XXI–ST century, Safety in a aviation and space technology", 2, 33.88.–33.96.

Downloads

Published

2019-08-12

How to Cite

Sydorov, N., Sydorova, N., Sydorov, E., Cholyshkina, O., & Batsurovska, I. (2019). Development of an approach to using a style in software engineering. Eastern-European Journal of Enterprise Technologies, 4(2 (100), 41–51. https://doi.org/10.15587/1729-4061.2019.175665