Mobile Applications
Design, Development and Optimization
(Sprache: Englisch)
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...
Jetzt vorbestellen
versandkostenfrei
Buch (Gebunden)
Fr. 106.50
inkl. MwSt.
- Kreditkarte, Paypal, Rechnungskauf
- 30 Tage Widerrufsrecht
Produktdetails
Produktinformationen zu „Mobile Applications “
Klappentext zu „Mobile Applications “
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
... mehr
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.
... weniger
Inhaltsverzeichnis zu „Mobile Applications “
Abbreviations and AcronymsList 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
... mehr
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
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
... weniger
Autoren-Porträt von Tejinder S. Randhawa
Tejinder S. Randhawa has worked in the high-tech industry for over 25 years. He is currently leading the research and development of a secure and reliable unified communications and monitoring platform for health care. The platform supports plug-and-play of wireless sensors and dash-boarding of vitals on mobile and embedded platforms; and can also be deployed in environments where no fixed communications infrastructure exists by utilizing WiFi Mesh. Prior to this, he worked with Dyaptive Systems (now JDS Uniphase) on the analysis of Testing Requirements for CDMA2000 cellular data applications and development of data traffic generators for testing such networks. Before joining Dyaptive Systems, he worked with CRC (Communication Research Center), Ottawa on the security aspects of mobile ad hoc networks. Tejinder has a PhD in Engineering Science from the Simon Fraser University where he also held appointments as an Adjunct Professor for several years between 2002 and 2017. He has been a faculty member at BCIT since 1995. He has developed and taught graduate and senior undergraduate level courses in wireless network protocols, data network protocols, software engineering, wireless and mobile applications, database systems, client-server computing and distributed systems.
His R&D activities have covered technical areas of Health Monitoring, Health Information Systems, sensor systems/networks, Wireless Networks, Internet Protocols, Voice Over IP, Multimedia Communication, Network Security, Mobile Applications, Software Engineering and operations research.
Bibliographische Angaben
- Autor: Tejinder S. Randhawa
- 2022, 1st ed. 2022, XVI, 657 Seiten, 68 farbige Abbildungen, Masse: 15,5 x 23,9 cm, Gebunden, Englisch
- Verlag: Springer, Berlin
- ISBN-10: 3030023893
- ISBN-13: 9783030023898
- Erscheinungsdatum: 15.09.2019
Sprache:
Englisch
Kommentar zu "Mobile Applications"
0 Gebrauchte Artikel zu „Mobile Applications“
Zustand | Preis | Porto | Zahlung | Verkäufer | Rating |
---|
Schreiben Sie einen Kommentar zu "Mobile Applications".
Kommentar verfassen