Latest issue: June

Sister website

Sister website

Website rate card

Features

Developing mobile applications with variant management

Written by Mark Dalgarno, Consultant, Software Acumen

Fifty percent of the development budget for a mobile game can go on porting and testing the game for different devices. Variant management is an emerging approach that promises to reduce this cost significantly through explicitly managing information about what is common and what is different for each device. What’s more the techniques are applicable in other embedded domains.

Challenges of Mobile Device Development

Developers of mobile device software face many of the same challenges as other embedded software developers such as developing for constrained devices to meet tight deadlines. Also, like other embedded developers, there can be significant variability in the target device platforms and this can increase development costs. This is particularly true in the mobile games sector where it has been estimated that roughly 50% of the development cost for each game goes towards porting and testing the game on all target devices.

Target platforms differ for many reasons; for example, mobile developers have to develop applications that run hundreds of device types. These differ in operating system type, screen size, keypad layout, memory size, processor capability etc.. Other significant sources of variability include differences in operator or game publisher requirements and differences between different countries e.g. different languages or different laws relating to gambling or portrayal of violent acts in games.

When faced with these issues, the response of many developers has been to take a Lowest Common Denominator approach – a single game is developed for all platforms using the characteristics of the least functional platform as guiding constraints. In some cases devices may be grouped into functionally similar clusters – multiple games are then developed, one for each cluster, using a Lowest Common Denominator within the cluster approach. Games in different clusters may or may not share code or other assets depending on the specific development arrangements.

There are problems with this approach other than the high proportion of development costs associated with porting and testing each target device. Producing a single variant for all devices means that the game cannot take advantage of any device-specific characteristics, this leads to a less-compelling game-play experience and so less market share. Also, guidance on what device capabilities affect development are often written up as a text document or at best encoded in a custom-database. This can make adherence to lowest-common denominator guidelines problematic and so errors can creep into the development process thereby increasing development costs, increasing time-to-market and possibly leading to customer rejection if problems only emerge once software has been deployed.

Variant Management

Variant management is an emerging solution to these types of problem that has been successfully adopted in a number of embedded domains.

The basic idea of variant management is to identify and manage what is common to the products in your product line and what varies between them and to support this commonality and variability in a set of reusable, configurable, core assets. Using this approach addresses the problems of the lowest-common denominator approach by making it easier and more reliable to produce individual product variants.

Figure 1 shows part of a simple, feature model for a set of mobile device variants.

Feature Modelling

Commonalities and variabilities are often managed using an approach known as Feature Modelling. Feature modelling captures the knowledge of what is common to each target platform and what varies in each target platform in a formal model. Figure 1 shows part of a simple, feature model for a set of mobile device variants.

In this figure Mandatory features that are common to all product variants are shown with an exclamation mark. Alternative features – one of which must be present for every variant – are shown with double-headed arrows. Optional features – which may, but need not be present in a variant, are shown with a question mark. Other relationships between features may also be captured e.g. mutual exclusivity, dependency etc.

Another model, sometimes known as a Family Model, is created to describe the relationships between the different reusable (software) assets from which individual variants are built. This Family Model is then tied to the Feature model through rules e.g. only include Sprite images if the variant has Sprite Support.

Producing Product Variants

In order to produce a specific variant, values have to be supplied for each variation point in the Feature Model. So, for example, a choice has to be made between Small, Medium and Large TextDisplayCapacity. A variant is only completely specified once all such choices have been made.

Variants are produced from a completed specification by combining some or all core, reusable assets with some variant-specific assets. Core assets are configured using the variant-specific bindings for their associated variation points e.g. by specifying the values for any parameters. Any variant-specific assets, such as additional source files, are then added to the mix and the variant is built, tested etc.

Specialist tools and code generation techniques allow new, high-quality product variants to be produced very rapidly, typically supporting the product production process.

Variant Management in the Mobile Games Domain

Recent research that applied variant management to mobile games development has shown benefits such as significantly reduced development cost for new variants, better performance of new variants and smaller executable size of new variants. These benefits arise partly through the gradual development of high-quality, configurable, reusable core assets at the heart of the product line and partly through improved productivity and reliability with tool support and code generation approaches. Similar results have been reported in other embedded domains such as the automotive, telecomms, industrial control and consumer electronics sectors.

However, some aspects of the mobile games marketplace are acting to hold back introduction of variant management. Investment in reusable assets implies a longer-term focus than may be possible for some organisations. The issue of intellectual property is also important – it is not generally in an organisation’s interest to develop a large base of reusable assets if it then loses control of ownership of these assets to a games publisher who has commissioned the game. Games Developers that can tackle or avoid these structural issues stand to reap the full benefits of systematic variant management and reuse.

mark@software-acumen.com