Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N5 2018 year

DOI: 10.17587/prin.9.209-220
LibSL: Language for Specification of Software Libraries
V. M. Itsykson, vlad@icc.spbstu.ru, Peter the Great St. Petersburg Polytechnic University, Saint-Petersburg, 195251, Russian Federation
Corresponding author: Itsykson Vladimir M., Chair of Computer Systems & Software Engineering department, Peter the Great St. Petersburg Polytechnic University, Saint-Petersburg, 195251, Russian Federation, E-mail: vlad@icc.spbstu.ru
Received on February 04, 2018
Accepted on February 20, 2018

Most of modern software applications widely use third-party components and libraries. It can simplify design and development and can reduce cost and time to market. The main problem of using third-party components is a lack of acceptable documentation. This lack is a cause of low quality of such multicomponent projects and leads to different program defects. The article reviews modern approaches to formal language-based specification of software libraries. Such language-based specifications can be used for automation of some class of software engineering tasks related to multicomponent projects when source code of components is unavailable. Based on formulated requirements syntax and semantics of new language LibSL for partial specification of libraries were developed. LibSL is based on formalism of interacting extended finite state machines which was created by author before. The created language can specify library interface and its visible behavior. Each public function from library API is described by its signature and high-level behavior. Interacted extended finite state machines are defined explicitly by means of states and shifts descriptions. Such specifications can help automate several actual tasks of software engineering such as defect detection of software which uses external libraries, library access protocol correctness verification, libraries compatibility check, software reengineering etc.

Keywords: software library, component of software, partial specification, behavior specification language
pp. 209–220
For citation:
Itsykson V. M. LibSL: Language for Specification of Software Libraries, Programmnaya Ingeneria, 2018, vol. 9, no. 5, pp. 209—220.