ABSTRACT

Up to this point in the book, we have focused on secure and resilient software development best practices as they apply to traditional Web applications and general-purpose software. Even though specialized software such as embedded software or mobile applications are very similar to traditional programs and are typically developed using the same software development life cycle (SDLC) and programming languages, security considerations and some functional considerations become different or more complex in these applications. Let us use an example: a user playing a game on a mobile device that lacks high-performance processing and complex graphics processing. Should a phone call come in while he is playing the game, the game software must be able to pause itself and hand over priority to the call, then manage to recover from where it left off when the call ends. The phone’s operating system and the game must have capabilities that make this a seamless experience for the user.