Static analysis of Lyee requirements

https://doi.org/10.1016/j.knosys.2003.08.002Get rights and content

Abstract

Software development has been suffering, for many decades, from the lack of simple and powerful methodologies and tools. Despite the tremendous advances in this research field, the crisis has still not been overcome and the proposed remedies are far from resolving the problems of software development and maintenance. Lately, a new and very promising methodology, called Lyee, has been proposed. It aims to automatically generate programs from simple user requirements.

The purpose of this paper is, on the one hand, to provide a short and technical introduction to the Lyee methodology, and on the other hand, to show how some classical static analysis techniques (execution time and memory space optimization, typing, slicing, etc.) can considerably improve many aspects of this new methodology.

Introduction

Software development and maintenance have become activities at major importance to our economy. As software comes into widespread use, this activity involves a large industry. Hundreds of billions of dollars are spent every year in order to develop and maintain software. Today, competition between actors is the software development field is fiercer than ever. To remain in the race, these actors (companies) must keep productivity at its peak and costs low. They must also deliver products (software) at high quality and deliver them on time. However, an important question is whether the available tools and methodologies for software development suit company needs.

Basically, the goal of software development research is to find ways how to build better software easily and quickly. A large variety of methodologies and techniques has been proposed and elaborated on, over the last 10 years, to improve one or more steps in the software development life cycle. Despite their considerable contributions, they have had difficulty to finding their way into widespread use. In fact, almost all of them fail to produce clearly understood and modifiable systems and their use is still considered to be an activity accessible only to specialists with a large array of competencies, skills, and knowledge. This, in turn, leads to highly paid personal, high maintenance costs, and extensive checks need to be performed on the software. For these reasons, companies are likely to welcome any new methodology promising demonstrable improvement in the software development cycle.

Lyee [1], [2], [3], [4] (governementaL methodologY for softwarE providencE) is specific new and promising methodology. Intended to deal efficiently with a wide range of software problems related to different fields, Lyee allows the development of software by simply defining its requirements. More precisely, a developer has only to provide words, calculation formulae, calculation conditions (preconditions) and layout of screens and printouts, and then leaves in the hands of the computer all subsequent troublesome programming process (e.g. control logic aspects). Despite its recency, the results of the use of Lyee have shown tremendous potential. In fact, compared to conventional methodologies, development time, maintenance time and documentation volume can be considerably reduced by using Lyee (as much as 70–80%) [2]. Up to now, a primitive supporting tool called LyeeAll2 has been available to developers allowing the automatic generation of code from requirements.

Nevertheless, as with any new methodology, further research is needed on Lyee to investigate its efficiency, to discover and eliminate its drawbacks, and to improve its good qualities. Furthermore, the LyeeAll2 tool has to be further developed to make it more user-friendly.

In this paper, we show how classical static analysis techniques can considerably contribute the analysis of Lyee requirements (a set of words within their definitions, their calculation conditions and their attributes) in order to help their users understand them, discover their inconsistencies and incomplete or erroneous parts, and generate codes of better qualities (consuming less memory and execution time). Basically, the static analysis techniques we investigate are:

  • Optimization techniques (constant propagation, commun subexpression detection, etc.) to generate better Lyee programs.

  • Slicing techniques to abstract requirements to their relevant part needed for some analysis.

  • Typing techniques to automatically generate types and to discover typing errors.

The remainder of this paper is organized as follows. In Section 2, we give a short and technical introduction to the Lyee methodology. Section 3 shows how static analysis techniques can contribute to the enhancement of this methodology. Section 4 introduces LyeeAnalyzer, a prototype that we have developed to implement some static analysis techniques. Finally, Section 5 provides concluding remarks on this work, and discusses future research.

Section snippets

The Lyee methodology

Most people who have been seriously engaged in the study and development of software systems agree that one of the most problematic tasks in this process is that of understanding requirements and correctly transforming them. To solve this problem, the Lyee methodology proposes a simple method for to generating programs from requirements.

With the Lyee methodology, requirements are given as a set of statements containing words together with their definitions, their calculation conditions and

Static analysis of Lyee requirements

Software static analysis [5], [6] generally means the examination of the code of a program without running it. Experience has shown that many quality attributes of specifications and codes can be controlled and improved by static analysis techniques. In particular, static analysis techniques can make programs run faster and use less memory, and they can help locate faults. Applied on requirements, static analysis find logic errors and omissions before the code is generated and consequently

LyeeAnalyzer

The LyeeAnalyzer prototype was developed to demonstrate the static analysis techniques presented in this paper.

Conclusion and future work

We have reported in this paper the use of static analysis techniques on the Lyee requirements and their impacts. First, we have shown how classical optimization techniques such as constant propagation and commun subexpression detection can be used to improve the execution time of the Lyee programs. We have also shown how to discover errors in requirements (dead definition, cyclic definition, incomplete or superfluous definitions). Second, we have shown how slicing techniques can potentially

Acknowledgements

Special thanks are due to Mr Fumio Negoro, all the members of his group and those of Catena company for their assistance and numerous comments and suggestions. They generously gave us their time and help to improve the quality of this research.

References (13)

  • F Negoro

    Principle of Lyee Software, 2000 International Conference on Information Society in 21st Century (IS2000)

    (2000)
  • F Negoro

    Introduction to Lyee

    (2001)
  • F. Negoro, I. Hamid, A proposal for intention engineering, Fifth East-European Conference Advances in Databases and...
  • F. Negoro, I. Hamid, A proposal for intention engineering, International Conference on Advances in Infrastructure for...
  • M Bozga et al.

    Using Static Analysis to Improve Automatic Test Generation

    (2000)
  • S Muchnick

    Compiler Design Implantation

    (1999)
There are more references available in the full text version of this article.

Cited by (0)

View full text