Encyclopedia of Education and Information Technologies

Living Edition
| Editors: Arthur Tatnall

Applying Software Engineering Principles in Android Development

  • Alexander Chatzigeorgiou
  • Stelios XinogalosEmail author
  • Τryfon L. Theodorou
  • George E. Violettas
Living reference work entry
DOI: https://doi.org/10.1007/978-3-319-60013-0_232-1



The tremendous popularity of mobile computing and Android in particular has attracted millions of developers who see opportunities for building their own start-ups. As a consequence computer science students express an increasing interest into the related technology of Java development for Android applications. Android projects are complex by nature and relatively large software products, while their development calls for the application of established software engineering practices and tools.

Computer science and information technology curricula include software engineering as a key knowledge area (ACM 2013), and as a result, most computer science-related departments offer at least one “conventional” software engineering course. By conventional we mean that in most cases, the introduced concepts are exemplified on either desktop applications standing individually on a...

This is a preview of subscription content, log in to check access.


  1. ACM (2013) Curriculum guidelines for undergraduate programs in computer science. Retrieved 15 Dec 2014, from www.acm.org/education/CS2013-final-report.pdf
  2. Akopian D, Melkonyan A, Golgani S, Yuen T, Saygin C (2013) A template-based short course concept on Android application development. J Inf Technol Educ Innov Pract 12:13–28Google Scholar
  3. Android Developers (2013) Creating Unit Tests. Retrieved February 21, 2014 from https://developer.android.com/training/activity-testing/activity-unit-testing.html#testcase
  4. Biggs J, Tang C (2011) Teaching for quality learning at University, 4th edn. Open University Press, MaidenheadGoogle Scholar
  5. Chatzigeorgiou A, Theodorou T, Violettas G, Xinogalos S (2016) Blending an Android development course with software engineering concepts. Educ Inf Technol 21(6):147–1875.  https://doi.org/10.1007/s10639-015-9423-3. Springer Sciece+Business Media, New York, 2015CrossRefGoogle Scholar
  6. Cunningham W (1992) The WyCash portfolio management system. In: Proceedings of the 7th ACM SIGPLAN Conference on Systems, Programming Languages and Applications (OOPSLA’92). (Addendum). ACM Press, New York, pp 29–30.  https://doi.org/10.1145/157709.157715
  7. Dahl OJ, Dijkstra EW, Hoare CAR (1972) Structured programming. Academic, LondonzbMATHGoogle Scholar
  8. Dewey J (1938) Education and experience. Macmillan, New YorkGoogle Scholar
  9. Fowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, BostonzbMATHGoogle Scholar
  10. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, ReadingzbMATHGoogle Scholar
  11. Ghezzi C, Jazayeri M, Mandrioli D (2002) Fundamentals of software engineering. Prentice Hall PTR, Upper Saddle RiverzbMATHGoogle Scholar
  12. Heckman S, Horton TB Sherriff M (2011) Teaching second-level Java and software engineering with Android. In: Proceedings of 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T’11). IEEE Press, New York, pp 540–542,  https://doi.org/10.1109/CSEET.2011.5876144
  13. Herbert N, de Salas K, Lewis I, Cameron-Jones, M., Chinthammit, W., Dermoudy, J., Ellis, L. Springer, M. (2013, January) Identifying career outcomes as the first step in ICT curricula development. In: Proceedings of the Fifteenth Australasian Computing Education Conference-Volume 136. Australian Computer Society, Inc., pp 31–40Google Scholar
  14. Hu W, Chen T, Shi Q Lou X (2010) Smartphone software development course design based on Android. In: Proceedings of the 10th IEEE Conference on Computer and Information Technology (CIT’10). IEEE Press, New York, pp 2180–2184.  https://doi.org/10.1109/CIT.2010.374
  15. Keller JM (1983) Motivational design of instruction. In: Riegeluth C (ed) Instructional design theories and models. Erlbaum, Hillsdale, pp 383–434Google Scholar
  16. Kennedy D, Áine H, Norma R (2006) Writing and using learning outcomes: a practical guide. In: EUA Bologna handbook – making Bologna work. Raabe Verlag, BerlinGoogle Scholar
  17. Krathwohl DR (2002) A revision of Bloom’s taxonomy: an overview. Theory Pract 41(4):212–218CrossRefGoogle Scholar
  18. LeBlanc R, Sobel A (2004) Software engineering 2004: curriculum guidelines for undergraduate degree programs in software engineering. IEEE Computer Society Press, Los Alamitos (CA)Google Scholar
  19. Liskov BH, Wing JM (1994) A behavioral notion of subtyping. ACM Trans Program Lang Syst 16(1994):1811–1841CrossRefGoogle Scholar
  20. Mahmoud Q H (2008) Integrating mobile devices into the computer science curriculum. In: Proceedings of the 38th Annual Conference on Frontiers in Education Conference (FIE’08). pp S3E-17–S3E-22.  https://doi.org/10.1109/FIE.2008.4720686
  21. Martin RC (2003) Agile software development: principles, patterns, and practices. Prentice Hall PTR, Upped Saddle RiverGoogle Scholar
  22. Mednieks Z, Dornin L, Meike GB, Nakamura M (2012) Programming Android: Java programming for the new generation of mobile devices. O’Reilly Media, SebastopolGoogle Scholar
  23. Murphy-Hill E, Parnin C, Black AP (2009) How we refactor, and how we know it. In: Proceedings of the 31st IEEE International Conference on Software Engineering (ICSE ‘09). IEEE Computer Society, Washington, DC, pp 287–297.  https://doi.org/10.1109/ICSE.2009.5070529
  24. Parker KR, Chao JT (2007) Wiki as a teaching tool. Interdisc J Knowl Learn Objects 3(2007):57–72Google Scholar
  25. Parnas DL (1994) Software aging. In: Proceedings of the 16th IEEE International Conference on Software Engineering (ICSE’94). IEEE Computer Society Press, Los Alamitos, pp 279–287Google Scholar
  26. Petkovic D, Thompson G Todtenhoefer R (2006) Teaching practical software engineering and global software engineering: evaluation and comparison. In: Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, (ITICSE ’06). ACM, New York, pp 294–298.  https://doi.org/10.1145/1140124.1140202
  27. Schwartz L, Clark S, Cossarin M, Rudolph J (2004) Educational wikis: features and selection criteria. Int Rev Res Open Distance Learn 5:1Google Scholar
  28. SFIA Foundation (2015) Skills framework for the information age. http://www.sfia-online.org/. Accessed 26 June 2015
  29. Spinellis D (2003) Code reading: the open source perspective. Addison-Wesley Professional, BostonGoogle Scholar
  30. Tenenberg JD (1995) Using cooperative learning in the undergraduate computer science classroom. J Computing Small Coll 11(2):38–49Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  • Alexander Chatzigeorgiou
    • 1
  • Stelios Xinogalos
    • 1
    Email author
  • Τryfon L. Theodorou
    • 2
  • George E. Violettas
    • 2
  1. 1.Department of Applied Informatics, School of Information SciencesUniversity of MacedoniaThessalonikiGreece
  2. 2.Department of Information & Communication TechnologyTechnical Trainers CollegeRiyadhSaudi Arabia

Section editors and affiliations

  • Bill Davey
    • 1
  1. 1.RMIT UniversityMelbourneAustralia