Portability
Quality Attribute · Chapter 4
Portability
Section titled “Portability”Portability is how efficiently and effectively a system can be moved from one environment to another. Main influencing factors: adaptability, installability, and replaceability.
Adaptability
Section titled “Adaptability”The degree to which the system can be adapted to different environments (hardware, OS, other operational characteristics). Verify with functional testing across every target environment.
Installability
Section titled “Installability”The ease of installing/uninstalling in a target environment. Considerations:
- Install process should be understandable and may offer configuration (install location, DB connection info, etc.).
- Update/upgrade should be friendly and should clean up the old version (often by uninstalling it first).
- Uninstall should remove the system and its related components entirely, including now-unneeded folders.
- Let users cancel an install/update/uninstall midway, cleaning up properly on abort or failure.
- Installability testing must cover install/update/uninstall correctness, configuration options, and edge cases such as insufficient disk space.
Replaceability
Section titled “Replaceability”The capability to replace another system (or one or more components) serving the same purpose in the same environment — commonly seen during upgrades, where customers want smooth old→new transitions. Test that the system still works fully after any replacement.
Internationalization (i18n) and localization
Section titled “Internationalization (i18n) and localization”Adapting the system for different languages, cultures, and locales. Architects must know whether i18n/L10n is required — even absent current requirements, design for it up front if international expansion is a business goal, because retrofitting is harder later.
- Internationalization (i18n) — designing so localization is possible without code changes. Put all translatable strings (captions, messages, tooltips, content) in resource files the code references. (Sometimes called globalization / g11n.)
- Use Unicode as the character set — it supports every written language and a single encoding per character keeps sorting, searching, and manipulation uniform.
- Localization concerns include: translating content; UI accommodating translated word lengths/wrapping; spelling variants within the same language; culturally sensitive rewrites; reading direction (LTR/RTL); phone-number, weights-and-measures, and date/time format differences (e.g. 6/1/2019 ambiguity); time zones (UTC); number formatting (decimal marks, digit grouping); currencies (symbols and placement); and any legal requirements.
Maintaining portability
Section titled “Maintaining portability”Portability can be broken by later maintenance. When changing the software, consider the impact on portability and verify during testing that changes did not degrade any portability requirements. Cloud migration is a common portability driver — see Migrating to the cloud.
Citations
Section titled “Citations”- Software Architect’s Handbook (Packt, 2018), Ch.4 “Portability”, pp. 238-244.