Teaching Concurrent Software Design: A Case Study Using Android

In this article, we explore various parallel and distributed computing topics from a user-centric software engineering perspective. Specifically, in the context of mobile application development, we study the basic building blocks of interactive applications in the form of events, timers, and asynchronous activities, along with related software modeling, architecture, and design topics.

[1]  Jason H. Christensen,et al.  Using RESTful web-services and cloud computing to create next generation mobile applications , 2009, OOPSLA Companion.

[2]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[3]  David Holmes,et al.  Java Concurrency in Practice , 2006 .

[4]  Gerard Meszaros,et al.  xUnit Test Patterns: Refactoring Test Code , 2007 .

[5]  Brad A. Myers,et al.  A brief history of human-computer interaction technology , 1998, INTR.

[6]  William F. Gilreath,et al.  Concurrency State Models and Java Programs , 2000, Parallel Distributed Comput. Pract..

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[9]  Kevin Ashton,et al.  That ‘Internet of Things’ Thing , 1999 .

[10]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[11]  Robert C. Martin,et al.  Agile Principles, Patterns, and Practices in C# (Robert C. Martin) , 2006 .

[12]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[13]  George K. Thiruvathukal,et al.  High Performance Java Platform Computing , 2000 .

[14]  Ivar Jacobson,et al.  Unified Modeling Language Reference Manual, The (2nd Edition) , 2004 .

[15]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .