Where portability matters

What's a good example of a software solution where portability is a paramount design quality attribute? Tethering software for mobile phones. PDANet, an application developed by June Fabrics, is a good example where designing for portability is a top design concern.

Portability is defined as the ability of a system to run under different computing environments. The environment types can be either hardware or software, but is usually a combination of the two. (Definition source)

PDANet enables PDA owners to convert their device into an Internet connection. It's hard to say if the talented folks at the June Fabrics initially planned to expand their PDANet software to other mobile OS vendors, but this application is a prime example where portability matters.

Currently PDANet supports Android, Palm OS, Windows Mobile, BlackBerry, and iPhone. While the operating systems are fundamentally different and provide different level of services to developers, the architectural drivers (i.e. architecturally significant requirements) and the general purpose of the devices is the same. Therefore the logical allocation of requirements to solution modules should be the same across all operating systems. However physical implementation would be different for each OS.

This is another great example where the benefits of software reuse come not from source code reuse, but from the reuse of software architecture artifacts.

Constantin Kostenko
Firebrand Architect®


Popular posts from this blog

Why we do agile

Quality Attribute Refinement