Department for CASE tools of the Institute for System Programming. The Department was founded in October 1997 from two groups working since 1994 on various projects related to building software engineering tools for telecommunication industry . Since then the Department of CASE tools performs research in reverse engineering methodologies [2,5], development of reverse engineering tools in collaboration with industry , as well as development of forward engineering tools for SDL and MSC languages [3,4,6,8,9,10,11]. Today the Department has 27 members of research and development staff (full-time employees of the Institute as well as part-time contractors), 2 PhD, 7 PhD students. The core members of scientific staff have collectively over 80 years of experience in building software development tools!
Since 1994 the Department for CASE tools performed several joint research and development projects, subcontracted to the Institute for System Programming by Nortel Networks (Canada) and Telelogic AB (Sweden). In 1994-1995 the Department developed a complete programming environment for the ITU standard Specification and Description Language (SDL), including syntax and semantic analysis, code generation into C++ and a proprietary language, and simulation and generation of MSC. In 1999-2001 the Department developed scenario-based methodology for accelerated development software, and the Bridge tools, supporting this methodology. Since 1996 the Department has been involved in developing a toolkit for maintenance of existing large telecommunications software at Nortel Networks (Canada).
Members of staff of the Department are closely involved in the education process at the Moscow State University, Department for Computational Mathematics and Cybernetics. For 5 years staff members of the Department are traditionally teaching a course in formal methods at Moscow State University [12,13]. The Department is the home base for over 10 undergraduate and graduate students from the Moscow State University, Department for Computational Mathematics and Cybernetics. Department for CASE tools is represented at the Moscow State University through the seminar "CASE Technologies" at the Chair for System Programming. Many members of scientific staff are alumni of the Department of Computational Mathematics and Cybernetics of the Moscow State University.
New generation formal methods-based CASE tools aimed at practical improvement of software engineering in telecommunication industry. We define an accelerated development methodology for the specification, design, testing and re-engineering of telecommunications software, based on extensive use of formal methods and formal languages for the description of the software very early in the development process and automated re-engineering of formal models from legacy telecommunications software. Our methodology is based on the most widely accepted telecommunication formal languages, standardized by the International Telecommunications Union (ITU): Specification and Description Language (SDL), scenario description language called Message Sequence Charts (MSC), test description language called Tree and Tabular Combined Notation (TTCN), data description language Abstract Syntax Notation (ASN.1).
The following components are key to our methodology:
- Capture of requirements by use-cases using the executable scenario languages
- High-yield requirements validation using SDL requirement models
- Synthesis of SDL requirements models from approved MSC scenarios
- Seamless refinement of SDL requirement models into design models
- Adaptable code generation from the SDL models
- Automatic recovery of SDL models from legacy software
The main research goals of the Department are to define:
- an accelerated development methodology, composed of a set of methods, for the specification, design, testing and re-engineering of telecommunications software, based on extensive use of formal methods and formal languages for the description of the software very early in the development process and automated re-engineering of formal models from legacy telecommunications software, and
- an open architecture, composed of languages and tools, supporting the methodology and automating it as far as possible, to make the formal methods and languages amendable for human use.
Several factors motivate our research. Modern telecommunications industry hosts highly successful software development organizations, but as new requirements and technologies arrive and more players enter the competition, there is a constant need for improvements . In particular, "time-to-market " is becoming the dominating factor of industrial success. Other goals are more traditional and include higher quality of products, better price/performance and lower development costs [13,21]. It is generally recognized that the use of formal description techniques (FDT’s) supported by computer-aided software engineering (CASE) tools is an important prerequisite for achieving these goals.
A suite of formal languages is standardized by the International Telecommunications Union (ITU): Specification and Description Language (SDL) , scenario description language called Message Sequence Charts (MSC) , test description language called Tree and Tabular Combined Notation (TTCN) , data description language Abstract Syntax Notation (ASN.1) . ITU-T Specification and Description Language (SDL) is one of the most successful telecommunications standard FDT . Industrial-strength commercial tools exist which are able to analyze SDL specifications, perform validation of SDL specifications based on state-exploration algorithms, automatically generate abstract TTCN test cases from SDL specifications and also automatically generate implementations for real-time operating systems . A number of industrial case studies has been recently completed, claiming improved quality, much lower development costs and speedup in time-to-market up to 20-30% due to the use of SDL-based CASE tools . "Success stories" of using SDL in industry mention the phases of system design, detailed design, automatic generation of implementations [3,4,6,9,10,11,29] as well as formal verification and testing [19,20].
However there exist certain barriers in adoption of formal methods in industry. We identify two major barriers – support of early development phases and existence of legacy software. Our research is aimed at lowering these barriers.
There exists a significant gap between mathematical-based formal methods and design practice at the early phases of the software development process . The design of a new system usually starts in a rather tentative, exploratory, and iterative way with a Requirements Capture phase. The problem domain is surveyed, and fragments of a trial solution are sketched. Most of these sketches lead a short life, and are modified frequently. Some of them will survive and will become a permanent part of design documents, as soon as the understanding of the new system has settled sufficiently that such documents can indeed be written. In the initial phases of a design, comprehensive formal specification and verification techniques offer little help to the designer. They appear to require a level of formality and precision that is not available yet. In return, only fairly abstract properties may be established. The initial price to be paid is too high, the initial rewards are far too small .
Instead, the so-called use case based methodologies are becoming predominant in software development [22,30]. Use case based methodologies share the common way of capturing the customer requirements as scenarios . Message Sequence Charts (MSC) or Sequence Diagrams of the Unified Modeling Language (UML)  can be used to model use cases. The MSC language is especially attractive as an FDT for the early phases of the software development process because it is well accepted in the telecommunications industry and also because it has a well-defined formal semantics. However much less support is provided by existing CASE tools for MSC modeling as compared to mathematical-based formal methods, like SDL.
We believe that significant improvements of the time-to-market can be gained by expanding the use of FDT-based CASE tools to the early phases of the software development process. The key idea of the suggested accelerated methodology is to use automatic synthesis of executable SDL specifications from MSC models. Our accelerated development methodology supports formalization of requirements using MSCs extended with data operations. Our Moscow Synthesizer Tool (MOST-SDL) provides a bridge from MSC models to executable SDL specifications . Synthesized SDL specifications can be used for requirements validation and then further refined into design models. Other steps of the methodology include fast test case generation from SDL specifications and automatic code generation from SDL designs .
Apart from the support for the early design phases, there is another important issue which needs to be addressed in order for formal methods-based CASE tools for communications software engineering to become common practice. Formal methodologies are only applicable to the so-called "green-field" projects, in which the system is developed completely from scratch. However, most projects in the industrial context involve the older, "legacy" base software. This software is being maintained, updated by developing new features, or reused in new projects. For the formal methods to be adopted in industry, it is necessary to provide cost-effective methods for integrating CASE-produced components and systems with older, "legacy" base software. Legacy software systems were produced with older development methods, often involving a blend of higher-level code, and system-level code, with heterogeneous languages, architectures, and styles, and often very poorly documented. Up to now, this fact has constituted a "legacy barrier" to the cost effective use of formal methods-based development technologies and tools .
In order to overcome the "legacy barrier", there is an increasing demand for developing automatic (or semi-automatic) re-engineering methods which will significantly reduce the effort involved in creating formal specifications of the base software platforms. Cost-effective methods for producing SDL models of the base software platform will allow the following benefits:
- better understanding of the operation of the legacy software through dynamic simulation of the SDL model, which often produces more intuitive results and does not involve the costly use of the target hardware
- automated generation of regression test cases for the base software platform
- analysis and validation of the formal specifications of the new features built on top of the SDL model of the base software platform
- feature interaction analysis including existing and new features
- automated generation of test cases for new features
- automatic generation of implementations of the new features. Such implementations are retargetable for different implementation languages (e.g. C, C++, CHILL) as well as for different real-time operating systems (e.g. pSOS, VxWorks, etc.)