Description

Book Synopsis

Using Android as a reference, this book teaches the development of mobile apps designed to be responsive, trustworthy and robust, and optimized for maintainability. As the share of mission-critical mobile apps continues to increase in the ever-expanding mobile app ecosystem, it has become imperative that processes and procedures to assure their reliance are developed and included in the software life cycle at opportune times. Memory, CPU, battery life and screen size limitations of smartphones coupled with volatility associated with mobile environments underlines that the quality assurance strategies that proved to be successful for desktop applications may no longer be effective in mobile apps. To that effect, this book lays a foundation upon which quality assurance processes and procedures for mobile apps could be devised. This foundation is composed of analytical models, experimental test-beds and software solutions.

Analytical models proposed in the literature to predict software quality are studied and adapted for mobile apps. The efficacy of these analytical models in prejudging the operations of mobile apps under design and development is evaluated. A comprehensive test suite is presented that empirically assesses a mobile app’s compliance to its quality expectations. Test procedures to measure quality attributes such as maintainability, usability, performance, scalability, reliability, availability and security, are detailed. Utilization of test tools provided in Android Studio as well as third-party vendors in constructing the corresponding test-beds is highlighted. An in-depth exploration of utilities, services and frameworks available on Android is conducted, and the results of their parametrization observed through experimentation to construct quality assurance solutions are presented. Experimental development of some example mobile apps is conducted to gauge adoption of process models and determine favorable opportunities for integrating the quality assurance processes and procedures in the mobile app life cycle. The role of automation in testing, integration, deployment and configuration management is demonstrated to offset cost overheads of integrating quality assurance process in the life cycle of mobile apps.




Table of Contents

Abbreviations and Acronyms

List of Figures

List of Tables

Listing

1 Software Life Cycle

1.1 Process Models

1.2 Functional Specifications

1.2.1 User Stories

1.2.2 UML Use Case Diagrams

1.2.3 Software Requirements Specifications

1.3 Non-Functional Requirements

1.4 Test Driven Development

1.4.1 Acceptance Tests

1.4.2 Unit Tests

1.5 Continuous Integration and Delivery

1.5.1 Software Configuration Management

1.5.2 Continuous Integration and Delivery

Summary

EXERCISES

REFERENCES

2 Development Fundamentals

2.1 Graphical User Interface

2.1.1 GUI Objects and Layouts

2.1.2 Event Handling

2.1.3 Redirection

2.2 Data Storage

2.2.1 Key-value Pairs

2.2.2 Files

2.2.3 Database Systems

2.2.4 Personal Data Storage

2.3 Data Connectivity

2.3.1 Web Access

2.3.2 Short Message Service

2.4 Concurrency

2.4.1 Threads and Asynchronous Tasks

2.4.2 Processes

2.5 Location and Sensor APIs

Summary

EXERCISES

REFERENCES

3 Software Quality Assessment

3.1 Functional Requirements Testing

3.1.1 Equivalence Class Partitioning

3.1.2 Boundary Value Analysis

3.1.3 Domain Test Design

3.2 Maintainability

3.2.1 Sub-Characteristics

3.2.2 Maintainability Measures

3.3 Usability and Accessibility

3.3.1 Models

3.3.2 Evaluation

3.4 Performance Testing

3.4.1 Latency Measurement

3.4.2 GUI Performance

3.4.3 Memory Usage

3.4.4 Network Usage

3.4.5 Battery Usage

3.5 Scalability Testing

3.5.1 Scalability Models

3.5.2 Load Test Design

3.6 Reliability Testing

3.6.1 Growth Models

3.6.2 Fault Injection

3.6.3 Operational Profile

3.6.4 Reliability Test Design

3.7 Availability

3.7.1 Availability Models

3.7.2 Stress Testing

3.8 Safety

3.8.1 FMEA

3.8.2 FTA

3.9 Security

3.9.1 Vulnerabilities and Threat Analysis

3.9.2 Security Testing

3.10 Static Code Analysis

Summary

EXERCISES

REFERENCES 151

4 Maintainability and Multi-Platform Development

4.1 Software Patterns

4.1.1 Programming Paradigms

4.1.2 Design Patterns

4.1.3 Architecture Patterns

4.2 Design Description

4.2.1 Structural

4.2.2 Behavioral

4.3 Multi-Platform Development

4.3.1 Native Development

4.3.2 Hybrid

4.3.3 Cross-Platform Development

Summary

EXERCISES

REFERENCES

5 User Interaction Optimization

5.1 Multimodality

5.1.1 Touch Gestures

5.1.2 Motion Gestures

5.1.3 Verbal Gestures

5.1.4 Visual Gestures

5.1.5 Accessibility Frameworks

5.2 Navigation Controls

5.3 Dashboards

5.4 Custom GUI

5.5 Animated GUI

Summary

EXERCISES

REFERENCES

6 Performance Acceleration

6.1 Data Compression

6.1.1 Lossless Compression

6.1.2 Lossy Compression

6.2 Data I/O Optimization

6.2.1 File System I/O

6.2.2 Network I/O

6.3 Rendering Pipelines

6.3.1 Animation Rendering

6.3.2 Video Rendering

6.3.3 Augmented Reality

6.3.4 Hardware Acceleration

6.4 Parallel Programming

6.4.1 Thread Priority

6.4.2 Data Parallel Computation

Summary

EXERCISES

REFERENCES

7 Scalability Provisioning

7.1 Scalable Media Transport

7.2 Scalable Local Storage

7.2.1 Data Models

7.2.2 Data Structures and Query Plan

7.2.3 Location Queries

7.3 Scalable Design Patterns

7.3.1 Data Cache

7.3.2 Event Notifications

7.3.3 Task Scheduling

7.4 GUI Scalability

Summary

EXERCISES

REFERENCES

8 Reliability Assurance

8.1 Thread Safe Patterns

8.1.1 Serializing GUI Updates

8.1.2 Serializing Shared Memory Access

8.1.3 Thread Synchronization

8.2 Memory Leaks

8.3 Reliable Persistent Storage

8.3.1 Isolation and Consistency

8.3.2 Atomicity and Durability

8.3.3 Sharded Persistent Storage

8.4 Data Validation

8.4.1 Input Validation

8.4.2 Integrity Constraints

8.5 Stateful Data Transport

Summary

EXERCISES

REFERENCES

9 Availability and Fault-Tolerance

9.1 Availability Primitives

9.1.1 Design Diversity

9.1.2 Broadcast Primitives

9.2 Critical Communication Availability

9.2.1 Network Fault Tolerance

9.2.2 Design Diverse Emergency Communication Architecture

9.3 Sensor Fusion and Redundancy

9.4 Data Availability

9.4.1 Data Synchronization

9.4.2 Data Sharing

9.5 Battery Power Saving

Summary

EXERCISES

REFERENCES

10 Security and Trust

10.1 Cryptographic Primitives

10.1.1 Symmetric Cryptography

10.1.2 Asymmetric Cryptography

10.1.3 Message Digest

10.1.4 Message Authentication Codes

10.1.5 Digital Signatures

10.2 Secure Web Access

10.2.1 User Authentication

10.2.2 Authentication Delegation and Single Sign On

10.2.3 Access and Authorization Delegation

10.2.4 Peer-Authentication and Confidentiality

10.3 Secure Network Access

10.3.1 Transport Layer Security

10.3.2 Layer 3 Security

10.3.3 Layer 2 Security

10.4 Secure System Access

10.4.1 Mobile Application Authenticity

10.4.2 Securing Inter-Application Communication

10.4.3 Permissions and Access Control

Summary

EXERCISES

REFERENCES


Appendix A

Appendix B

B.1 Compile and Deploy a Servlet

B.2 Compile and Deploy a Web Socket Hub

B.3 Configure Tomcat to Enable SSL

B.4 Install and Configure Jenkins

B.5 Install Metrics Reloaded

Index


Mobile Applications: Design, Development and

    Product form

    £75.99

    Includes FREE delivery

    RRP £79.99 – you save £4.00 (5%)

    Order before 4pm today for delivery by Mon 15 Jun 2026.

    A Hardback by Tejinder S. Randhawa

    15 in stock


      View other formats and editions of Mobile Applications: Design, Development and by Tejinder S. Randhawa

      Publisher: Springer Nature Switzerland AG
      Publication Date: 18/08/2022
      ISBN13: 9783030023898, 978-3030023898
      ISBN10: 3030023893

      Description

      Book Synopsis

      Using Android as a reference, this book teaches the development of mobile apps designed to be responsive, trustworthy and robust, and optimized for maintainability. As the share of mission-critical mobile apps continues to increase in the ever-expanding mobile app ecosystem, it has become imperative that processes and procedures to assure their reliance are developed and included in the software life cycle at opportune times. Memory, CPU, battery life and screen size limitations of smartphones coupled with volatility associated with mobile environments underlines that the quality assurance strategies that proved to be successful for desktop applications may no longer be effective in mobile apps. To that effect, this book lays a foundation upon which quality assurance processes and procedures for mobile apps could be devised. This foundation is composed of analytical models, experimental test-beds and software solutions.

      Analytical models proposed in the literature to predict software quality are studied and adapted for mobile apps. The efficacy of these analytical models in prejudging the operations of mobile apps under design and development is evaluated. A comprehensive test suite is presented that empirically assesses a mobile app’s compliance to its quality expectations. Test procedures to measure quality attributes such as maintainability, usability, performance, scalability, reliability, availability and security, are detailed. Utilization of test tools provided in Android Studio as well as third-party vendors in constructing the corresponding test-beds is highlighted. An in-depth exploration of utilities, services and frameworks available on Android is conducted, and the results of their parametrization observed through experimentation to construct quality assurance solutions are presented. Experimental development of some example mobile apps is conducted to gauge adoption of process models and determine favorable opportunities for integrating the quality assurance processes and procedures in the mobile app life cycle. The role of automation in testing, integration, deployment and configuration management is demonstrated to offset cost overheads of integrating quality assurance process in the life cycle of mobile apps.




      Table of Contents

      Abbreviations and Acronyms

      List of Figures

      List of Tables

      Listing

      1 Software Life Cycle

      1.1 Process Models

      1.2 Functional Specifications

      1.2.1 User Stories

      1.2.2 UML Use Case Diagrams

      1.2.3 Software Requirements Specifications

      1.3 Non-Functional Requirements

      1.4 Test Driven Development

      1.4.1 Acceptance Tests

      1.4.2 Unit Tests

      1.5 Continuous Integration and Delivery

      1.5.1 Software Configuration Management

      1.5.2 Continuous Integration and Delivery

      Summary

      EXERCISES

      REFERENCES

      2 Development Fundamentals

      2.1 Graphical User Interface

      2.1.1 GUI Objects and Layouts

      2.1.2 Event Handling

      2.1.3 Redirection

      2.2 Data Storage

      2.2.1 Key-value Pairs

      2.2.2 Files

      2.2.3 Database Systems

      2.2.4 Personal Data Storage

      2.3 Data Connectivity

      2.3.1 Web Access

      2.3.2 Short Message Service

      2.4 Concurrency

      2.4.1 Threads and Asynchronous Tasks

      2.4.2 Processes

      2.5 Location and Sensor APIs

      Summary

      EXERCISES

      REFERENCES

      3 Software Quality Assessment

      3.1 Functional Requirements Testing

      3.1.1 Equivalence Class Partitioning

      3.1.2 Boundary Value Analysis

      3.1.3 Domain Test Design

      3.2 Maintainability

      3.2.1 Sub-Characteristics

      3.2.2 Maintainability Measures

      3.3 Usability and Accessibility

      3.3.1 Models

      3.3.2 Evaluation

      3.4 Performance Testing

      3.4.1 Latency Measurement

      3.4.2 GUI Performance

      3.4.3 Memory Usage

      3.4.4 Network Usage

      3.4.5 Battery Usage

      3.5 Scalability Testing

      3.5.1 Scalability Models

      3.5.2 Load Test Design

      3.6 Reliability Testing

      3.6.1 Growth Models

      3.6.2 Fault Injection

      3.6.3 Operational Profile

      3.6.4 Reliability Test Design

      3.7 Availability

      3.7.1 Availability Models

      3.7.2 Stress Testing

      3.8 Safety

      3.8.1 FMEA

      3.8.2 FTA

      3.9 Security

      3.9.1 Vulnerabilities and Threat Analysis

      3.9.2 Security Testing

      3.10 Static Code Analysis

      Summary

      EXERCISES

      REFERENCES 151

      4 Maintainability and Multi-Platform Development

      4.1 Software Patterns

      4.1.1 Programming Paradigms

      4.1.2 Design Patterns

      4.1.3 Architecture Patterns

      4.2 Design Description

      4.2.1 Structural

      4.2.2 Behavioral

      4.3 Multi-Platform Development

      4.3.1 Native Development

      4.3.2 Hybrid

      4.3.3 Cross-Platform Development

      Summary

      EXERCISES

      REFERENCES

      5 User Interaction Optimization

      5.1 Multimodality

      5.1.1 Touch Gestures

      5.1.2 Motion Gestures

      5.1.3 Verbal Gestures

      5.1.4 Visual Gestures

      5.1.5 Accessibility Frameworks

      5.2 Navigation Controls

      5.3 Dashboards

      5.4 Custom GUI

      5.5 Animated GUI

      Summary

      EXERCISES

      REFERENCES

      6 Performance Acceleration

      6.1 Data Compression

      6.1.1 Lossless Compression

      6.1.2 Lossy Compression

      6.2 Data I/O Optimization

      6.2.1 File System I/O

      6.2.2 Network I/O

      6.3 Rendering Pipelines

      6.3.1 Animation Rendering

      6.3.2 Video Rendering

      6.3.3 Augmented Reality

      6.3.4 Hardware Acceleration

      6.4 Parallel Programming

      6.4.1 Thread Priority

      6.4.2 Data Parallel Computation

      Summary

      EXERCISES

      REFERENCES

      7 Scalability Provisioning

      7.1 Scalable Media Transport

      7.2 Scalable Local Storage

      7.2.1 Data Models

      7.2.2 Data Structures and Query Plan

      7.2.3 Location Queries

      7.3 Scalable Design Patterns

      7.3.1 Data Cache

      7.3.2 Event Notifications

      7.3.3 Task Scheduling

      7.4 GUI Scalability

      Summary

      EXERCISES

      REFERENCES

      8 Reliability Assurance

      8.1 Thread Safe Patterns

      8.1.1 Serializing GUI Updates

      8.1.2 Serializing Shared Memory Access

      8.1.3 Thread Synchronization

      8.2 Memory Leaks

      8.3 Reliable Persistent Storage

      8.3.1 Isolation and Consistency

      8.3.2 Atomicity and Durability

      8.3.3 Sharded Persistent Storage

      8.4 Data Validation

      8.4.1 Input Validation

      8.4.2 Integrity Constraints

      8.5 Stateful Data Transport

      Summary

      EXERCISES

      REFERENCES

      9 Availability and Fault-Tolerance

      9.1 Availability Primitives

      9.1.1 Design Diversity

      9.1.2 Broadcast Primitives

      9.2 Critical Communication Availability

      9.2.1 Network Fault Tolerance

      9.2.2 Design Diverse Emergency Communication Architecture

      9.3 Sensor Fusion and Redundancy

      9.4 Data Availability

      9.4.1 Data Synchronization

      9.4.2 Data Sharing

      9.5 Battery Power Saving

      Summary

      EXERCISES

      REFERENCES

      10 Security and Trust

      10.1 Cryptographic Primitives

      10.1.1 Symmetric Cryptography

      10.1.2 Asymmetric Cryptography

      10.1.3 Message Digest

      10.1.4 Message Authentication Codes

      10.1.5 Digital Signatures

      10.2 Secure Web Access

      10.2.1 User Authentication

      10.2.2 Authentication Delegation and Single Sign On

      10.2.3 Access and Authorization Delegation

      10.2.4 Peer-Authentication and Confidentiality

      10.3 Secure Network Access

      10.3.1 Transport Layer Security

      10.3.2 Layer 3 Security

      10.3.3 Layer 2 Security

      10.4 Secure System Access

      10.4.1 Mobile Application Authenticity

      10.4.2 Securing Inter-Application Communication

      10.4.3 Permissions and Access Control

      Summary

      EXERCISES

      REFERENCES


      Appendix A

      Appendix B

      B.1 Compile and Deploy a Servlet

      B.2 Compile and Deploy a Web Socket Hub

      B.3 Configure Tomcat to Enable SSL

      B.4 Install and Configure Jenkins

      B.5 Install Metrics Reloaded

      Index


      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account