IF Computer > IF/Prolog > Applications based on IF/Prolog > Configuring Your Nokia Mobile Phone

Configuring Your Nokia Mobile Phone

IF/Prolog by Siemens
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

Nokia Mobile Phones (NMP) is Europes largest and the world's second largest mobile telephone manufacturer. Systematic improvement of NMP's software development processes have been made since 1987. Focus started with software development practices and moved on to quality and software process monitoring, achieving ISO 9001 in 1992.

This document has been updated in April, 1996 from an original document which was written for the ASTAP seminar ``Advanced Software Solutions in Telecommunications'', held in Stockholm in June 21, 1995. The figures concerning the NMP as a company follow the current status.

Nokia Mobile Phones is:

  • a worldwide company delivering mobile telephones to all commonly used cellular systems.
  • Europe's largest and the world's second largest mobile telephone manufacturer.
  • a forerunner in products and technology in the rapidly growing digital cellular data markets.
  • net sales in 1995 over FIM 16 052 million (in 1994 FIM 10 702 million)
  • personnel 11 800

Nokia Mobile Phones is part of Nokia, a global telecommunications and electronics group headquartered in Helsinki, Finland. Nokia employs nearly 34 000 people in 45 countries and had net sales of USD 8.4 billion in 1995.

Background to NMP SW development

Systematic improvement of NMP's software development processes has been done since 1987. At the beginning the focus was on the software product and the software development practices. During this period software development tools and methods, such as design tools, code generators, testing environments etc. were selected and taken into use.

Then, the focus was set on quality and software process development. The improvement areas were identified by analyzing the problems and comparing the process with ISO 9000-3 guidelines. Several iterative actions took place to improve both SW process and organization. As a result of this development the NMP's software process achieved ISO 9001 certificate in 1992.

The current focus in software process improvement is on continuous improvement. As the number of product versions and revisions grows and the software development time shortens, reuse and customization become important. NMP's products cover a large scale of user groups which have different kinds of needs and requirements for the product and the most cost effective method for product customization is parallel software versions. Present SW process improvement areas are therefore advanced technologies for producing reusable SW components and SW customization.

Prolog tools

Inspired by Artificial Intelligence boom in late 80's the rule based systems were studied also in NMP and some minor experiences were made using Prolog. The software development environment was VAX-VMS, where the first 'real Prolog' IF/Prolog v.3.2.4 was installed. At the same time various tools for structured analysis and design (SA/SD) became commercially available, and Prosa Structured Analysis and Design Environment was selected for NMP's CASE tool. This tool was one of the first tools that could save the graphical model information also in Prolog format!

As SW development became more complicated due to the increasing volume and diversity of the products, there became needs (and possibilities) to automate the SW production and to reuse existing software as much as possible. Some Prolog applications were developed mainly in VAX-VMS for example for:

  • getting quantitative information from source codes
  • configuring part of mobile phone software
  • generating code automatically from design documents

These tools are still in everyday use in different NMP sites and in different types of platforms. In addition to VAX-VMS also HP-UX work stations are used for SW development. During the past few years also the Prolog language has developed quite much from the early Edinburgh standard to the latest ISO Prolog standard and thus in NMP three different IF/Prolog versions are now in use in different types of platforms. In spite of this development most of our Prolog applications can still be run in any of them!

CASE 1: Configuring software

Problem:

Different market areas and user groups need different kind of mobile phones. How to configure general purpose software to market area and user group specific software? The software has been written in C language and for configurable parts of the code the specific C compilation flags are used.

Solution:

It is possible to specify rules for which parts of software must be included in different phones. The rules are used for selecting/un-selecting the compilation flags, which then cause some parts of code included in or left out from the final SW product. These rules are defined in different Prolog files according to mobile phone's:

  • functionality
  • user interface

The configuration tool is implemented in Prolog. It selects all the relevant source code files from database and produces a required set of header files for conditional compiling.

Prolog formatted configuration files are used as an input for the tool. This kind of configuration can be done only for a part of the mobile phone's software.

CASE 2: Generating code automatically

Problems:

Some parts of the mobile phone software are designed using SA/SD tool and structured design method (Ward \& Mellor with applied notation). This applies only to state machine based applications e.g. such parts of SW which can be modeled using state machines. A typical model consists of several state transition diagrams, which are bound together with so called 'hierarchy model'. How to guarantee the consistency between the code and the actual design documents and how to implement the designs to produce fast and compact code?

Solution:

A graphical SA/SD tool is used, which saves diagrams also in Prolog format. This Prolog interface can be used to:

  • analyze model notation
  • configure software design
  • generate code automatically

The code generator is implemented in Prolog and it produces highly optimized code, which is then included in other source code files. At first the state transition diagrams are read automatically into internal Prolog database and before the actual code generation takes place the consistency of the database (and the design documents) is checked. It is also possible to configure the designs according to preselected product features during the code generation.

Why Prolog?

The Prolog language was selected to be used in these two case applications for a number of reasons:

  • solutions could easily be written in rule form
  • rules could be written using target area terms
  • rule based user interface could easily be modified to follow natural language structures
  • Prolog rules does not need special parsers
  • recursion and backtracking together with lists and internal database allow effective programming
  • C language interface allows versatile applications to be developed
  • fast prototyping and program development

It has been a great advantage for NMP that our Prolog applications can easily be ported to different platforms (and IF/Prolog versions). Once the tools have been developed only some minor modifications have been required when porting the tools in different environments. Also the development times have been rather short due to the nature of Prolog language and good visual debugging facilities. However a couple of disadvantages have been identified: only a few people are able to understand and write Prolog code effectively and runtime/development licenses are needed to be able to run applications in different sites and platforms (stand alone Prolog applications should be needed).

Achieved Benefits

In effective SW development process it is always the question of high SW quality, minimum SW production costs and maximum SW re-use. For example the Prolog tools described above profit NMP by:

  • making the software development faster and easier to manage
  • improving the software quality (less manual coding)
  • producing optimized code
  • helping to reuse SW code
  • decreasing time used for SW development

So far the Prolog has been a good choice for us. In the future when the SW process improvement goes on, there will be needs for the 'second generation' in-house tools for supporting the SW development process. These tools will be for optimizing code reuse, SW quality and process effectiveness.

We have had successful Prolog experiments in the past. Thus the Prolog language will still remain as a strong candidate in NMP's in-house tool development.

Countries

Finland, Denmark, Germany, Great Britain and USA

Hardware

HP 9000/700 series UNIX Workstations DEC VaxStations, VMS DEC AlphaStations, VMS

Software

IF/Prolog, C.

document: http://www.ifcomputer.co.jp/IFProlog/Applications/MobilePhoneConfig/print_en.html
published 2008/6/30 update 1996/12/16 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 info@ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS