Module 5
Module 5
PROGRAMMING
Module – 5
SOFTWARE METHODOLOGY
Introduction
• An Overview of the Mobile Development Process
• Choosing an appropriate software methodology
• Understanding how target devices dictate the functionality of your application
• Performing thorough, accurate, and ongoing feasibility analyses
• Mitigating the risks associated with preproduction devices
• Keeping track of device functionality through configuration management
• Designing a responsive, stable application on a memory-restrictive system
• Designing user interfaces for a variety of devices with different user experiences
• Testing the application thoroughly on the target devices
• Incorporating third-party requirements that affect where you can sell your
application
• Deploying and maintaining a mobile application
• Reviewing user feedback, crash reports, and ratings, and deploying timely
application updates
Choosing a Software Methodology
• Understanding the Dangers of Waterfall Approaches
• The short development cycle might tempt some to use a waterfall
approach, but developers should beware of the inflexibility that
comes with this choice
• Changes to target devices (especially preproduction models, though
sometimes shipping devices can have substantial software changes),
ongoing feasibility, and performance concerns and the need for
quality assurance (QA) to test early and often on the target devices
themselves
• Understanding the Value of Iteration
• Because of the speed at which mobile projects tend to progress,
iterative methods have been the most successful strategies adapted
to mobile development
Gathering Application Requirements
• Despite the relative simplicity of a mobile application’s feature set
compared to a traditional desktop application, requirements analyses
for a mobile application can be more complex
• The mobile user interface must be elegant and the application must
be fault tolerant, not to mention responsive in a resource-
constrained environment
• Having great variation in target platforms can make development
assumptions tricky
• It’s not unlike the differences Web developers might need to
accommodate when developing for different Web browsers
Determining Project Requirements
• Each approach has its benefits and its drawbacks.
• There are two main approaches they are
• The lowest common denominator method
• The customization method
• Taking Advantage of the Best of Both Methods
In truth, mobile development teams usually use a hybrid approach,
incorporating some aspects from both methods
Determining Project Requirements
• Developing Use Cases for Mobile Applications
• Incorporating Third-Party Requirements and Recommendations
Assessing Project Risks
• Mobile projects need to be aware of the outside influences that can
affect their project schedule
Identifying Target Devices
• Each device has different capabilities, a different user interface, and
unique limitations
• There’s a popular “killer” device you want to develop for
your initial target device (or class of devices) figured out. In the second
instance, you want to look at the available (and soon-to-be-available)
devices on the market and adjust your application specifications to
cover as many as is reasonably feasible
• You want to develop an application for maximum coverage
• In this case, your application would probably not be use ful for a
smartphone or tablet; on the other hand, if your application is more
general, such as a game, you should make every effort to determine
the different targets and types of devices your application will work
on, such as smartphones, phablets, tablets, and TV
• Understanding How Manufacturers and Operators Fit In
• Understanding How Devices Come and Go over Time
• Acquiring Target Devices
Determining the Feasibility of Application
Requirements
• Mobile developers are at the mercy of the device limitations, which
vary in terms of memory and processing power, screen type, and
platform version
• Android devices have some hardware flexibility, such as the ability to
use external storage devices such as SD cards
Understanding Quality Assurance Risks
Testing Early, Testing Often
Testing on the Device
Mitigating the Risk of Limited Real-World Testing Opportunities
Configuration Management Systems
• Choosing a Source Control System
• Mobile development considerations impose no surprise
requirements for source control systems
• Ability to keep track of source code (Java) and binaries (Android
packages and so on)
• Ability to keep track of application resources by device configuration
(graphics and so on)
• Integration with the developer’s chosen development environment
(the Android IDE, Android Studio, or Eclipse)
Implementing an Application Version System
That Works
• Developers should also make an early decision on a versioning
scheme that takes into account the device particulars and the
software build
• Mobile developers often combine the traditional versioning scheme
with the target device configuration or device class supported
Designing Mobile Applications
• Understanding Mobile Device Limitations
Applications are expected to be fast, responsive, and stable, but
developers must work with limited resources
Exploring Common Mobile Application Architectures
Mobile applications have traditionally come in two basic models:
standalone applications
Standalone applications are packaged with everything they require and
rely on the device to do all the heavy lifting. All processing is done
locally, in memory, and is subject to the limitations of the device
Network-driven applications
Network-driven applications provide a lightweight client on the device
but rely on the network (or the cloud) to provide a good portion of
their content and functionality
Designing for Extensibility and Maintenance