Skip to main content

Partial Specifications of Libraries: Applications in Software Engineering

  • 221 Accesses

Part of the Communications in Computer and Information Science book series (CCIS,volume 1288)

Abstract

The article presents a comprehensive approach to solving a number of problems that arise during the design, development, debugging and maintenance of multicomponent applications. The approach is based on a created formalism that allows specifying the structure and visible behavior of the component external to the application. At the same time, the mathematical approach used in the formalism is based on the system of extended finite state machine, which allows analyzing specifications in an acceptable time. For a programmer to set formal descriptions of the components, the LibSL specification language is developed. It allows the programmer to describe the specification of a component or a library in the form that is understandable to the programmer, without going into the mathematical basics of formalism. In this case, the interface of the library and its behavior, which is visible from the outside, are set. The implementation details are not included in the specification.

The presented formalism and language are used to solve a group of topical software engineering problems: automated application porting, cross-language integration of applications and libraries, detection of software errors in multicomponent projects, detection of integration errors, automated testing of multi-component applications, etc.

The paper demonstrates the use of formalism and language to solve these problems, as well as shows other areas in which the approach can be effectively applied.

Keywords

  • Partial specification of libraries
  • Library Specification Language
  • Software integration
  • Analysis of program

This research work was supported by the Academic Excellence Project 5–100 proposed by Peter the Great St. Petersburg Polytechnic University.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-71472-7_1
  • Chapter length: 23 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   79.99
Price excludes VAT (USA)
  • ISBN: 978-3-030-71472-7
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   99.99
Price excludes VAT (USA)
Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.
Fig. 5.
Fig. 6.

References

  1. Barros-Justo, J.L., Benitti, F.B.V., Matalonga, S.: Trends in software reuse research: a tertiary study. Comput. Stand. Interfaces 66 (2019)

    Google Scholar 

  2. Capiluppi, A., Stol, K.J., Boldyreff, C.: Software reuse in open source a case study. In: Koch, S. (ed.) Open Source Software Dynamics, Processes, and Applications, pp. 151–176 (2013). https://doi.org/10.4018/978-1-4666-2937-0.ch008. Accessed 23 Mar 2020

  3. Alagar, V.S., Periyasamy, K.: Extended finite state machine. In: Alagar, V.S., Periyasamy, K. (eds.) Specification of Software Systems. Texts in Computer Science, pp. 105–128. Springer, London (2011). https://doi.org/10.1007/978-0-85729-277-3_7

    CrossRef  MATH  Google Scholar 

  4. Meyer, B.: Design by contract: making object-oriented programs that work. In: Proceedings of the Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No. 97TB100239), Melbourne, Victoria, Australia, pp. 360–361 (1997)

    Google Scholar 

  5. Itsykson, V.M.: Formalism and language tools for specification of the semantics of software libraries. Aut. Control Comp. Sci. 51(7), 531–538 (2017). https://doi.org/10.3103/S0146411617070100

  6. Itsykson, V.: LibSL: a language for software components specification. Softw. Eng. 5, 209–220 (2018). (in Russian). https://doi.org/10.17587/prin.9.209-220

  7. Cossette, B.E., Walker, R.J.: Seeking the ground truth: a retroactive study on the evolution and migration of software libraries. In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE 2012), Article 55, pp. 1–11. Association for Computing Machinery, New York (2012). https://doi.org/10.1145/2393596.2393661

  8. Itsykson. V., Zozulya, A.: Automated program transformation for migration to new libraries. In: 2011 7th Central and Eastern European Software Engineering Conference (CEE-SECR), Moscow, Russia, pp. 1–7 (2011). https://doi.org/10.1109/CEE-SECR.2011.6188463

  9. Aleksyuk, A.O., Itsykson, V.M.: Semantics-driven migration of java programs: a practical application. Aut. Control Comp. Sci. 52(7), 581–588 (2018). https://doi.org/10.3103/S0146411618070027

  10. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, 2nd edn, p. 452. Springer, Heidelberg (2005)

    MATH  Google Scholar 

  11. Biere, A., Cimatti, A., Clarke, E.M., Strichman, O., Zhu, Y.: Bounded Model Checking. Advances in Computers. Academic Press (2003)

    Google Scholar 

  12. Akhin, M., Belyaev, M., Itsykson, V.: Borealis bounded model checker: the coming of age story. In: Mazzara, M., Meyer, B. (eds.) Present and Ulterior Software Engineering, pp. 119–137. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_8

    CrossRef  Google Scholar 

  13. de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78800-3_24

    CrossRef  Google Scholar 

  14. Brummayer, R., Biere, A.: Boolector: an efficient SMT solver for bit-vectors and arrays. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 174–177. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00768-2_16

    CrossRef  MATH  Google Scholar 

  15. Nelson, B.J.: Remote Procedure Call. PARC CSL-81-9. Xerox Palo Alto Research Center. Ph.D. thesis (1981)

    Google Scholar 

  16. Itsykson, V., Gusev, M.: Automation of library usage correctness detection. In: Proceedings of SEIM Conference, St. Petersburg (2018)

    Google Scholar 

  17. Dallmeier, V., Knopp, N., Mallon, C., Fraser, G., Hack, S., Zeller, A.: Automatically generating test cases for specification mining. IEEE Trans. Softw. Eng. (TSE) 38(2), 243–257 (2012)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vladimir Itsykson .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Itsykson, V. (2021). Partial Specifications of Libraries: Applications in Software Engineering. In: Kalenkova, A., Lozano, J.A., Yavorskiy, R. (eds) Tools and Methods of Program Analysis. TMPA 2019. Communications in Computer and Information Science, vol 1288. Springer, Cham. https://doi.org/10.1007/978-3-030-71472-7_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-71472-7_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-71471-0

  • Online ISBN: 978-3-030-71472-7

  • eBook Packages: Computer ScienceComputer Science (R0)