Skip to main content

Teaching Software Design Techniques in University Courses

  • Reference work entry
  • First Online:
Encyclopedia of Education and Information Technologies
  • 253 Accesses

Synonyms

Architectural pattern; Design pattern; Development environment; Framework; Software architectural structures; Software architecture; Software design techniques

Definition

Software design techniques focus on reusable software architectural structures such as frameworks and design patterns used to facilitate software development. Software design techniques go well beyond both programming best practices and software design guidelines like cohesion and coupling.

Introduction

Large scale reuse of software architectures and detailed design are made possible through the use of design patterns and frameworks, respectively. Design patterns support reuse of software architecture and design, while frameworks support reuse of detailed design and code (Crawford et al. 2006).

Any academic program responsible for teaching software design concepts must continually seek approaches by which to improve the ways in which students are prepared for the work force. Software design concepts such as...

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 799.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 999.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  • ACM/IEEE-CS Joint Task Force on Computing Curricula (2013) Computer Science Curricula 2013. ACM Press and IEEE Computer Society Press. https://doi.org/10.1145/2534860

  • Alexander C, Ishikawa S, Silverstein M (1977) A pattern language. Oxford University Press, Oxford

    Google Scholar 

  • Ali Z, Bolinger J, Herold M, Lynch T, Ramanathan J, Ramnath, R (2011) Teaching object-oriented software design within the context of software frameworks. In: Proceedings of the 41st annual ASEE/IEEE frontiers in education conference, pp 1–5. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.300.7477&rep=rep1&type=pdf

  • Astrachan O, Berry G, Cox L, Mitchener G (1998) Design patterns: An essential component of CS curricula. In: Proceedings of the twenty-ninth SIGCSE Technical symposium on Computer science education, pp 153–160. http://www.cs.duke.edu/~ola/papers/patterns.pdf

  • Caspersen ME, Christensen HB (2008) Frameworks in teaching. In: Bennedsen J, Caspersen ME, Kölling M (eds) Reflections on the teaching of programming methods and implementations. Springer-Verlag, Heidelberg, pp 190–205

    Chapter  Google Scholar 

  • Chao JC, Parker KR, Davey B (2013) Navigating the framework jungle for teaching web application development. J Issues Inf Sci Inf Technol 10:95–109. https://doi.org/10.28945/1798. http://iisit.org/Vol10/IISITv10p095-109Chao0092.pdf

    Article  Google Scholar 

  • Christensen HB (2004) Frameworks: putting design patterns into perspective. In: Proceedings of the 9th annual SIGCSE conference on innovation and technology in Computer science education, pp 142–145. http://www.daimi.au.dk/~hbc/publication/iticse2004.pdf

  • Christensen HB, Caspersen ME (2002) Frameworks in CS1 – a different way of introducing event-driven programming. In: Proceedings of the 7th annual conference on innovation and technology in Computer science education, pp 75–79. http://cs.au.dk/~mec/publications/conference/03%2D%2Diticse2002.pdf

    Google Scholar 

  • Colesky M, Futcher L, Van Niekerk J (2013) Design patterns for secure software development: demonstrating security through the MVC pattern. In: Proceedings of the 15th annual conference on WWW applications. Cape Town, pp 10–13

    Google Scholar 

  • Crawford B, Castro C, Monfroy E (2006) Knowledge management in different software development approaches. In: Yakhno T, Neuhold EJ (eds) Advances in information systems. ADVIS 2006. Lecture notes in computer science, vol 4243. Springer, Berlin, pp 304–313

    Google Scholar 

  • Cunningham W, Beck K (1988) Using a pattern language for programming. Addendum to the Proceedings of OOPSLA’87, ACM SIGPLAN Notices, 23, 5

    Google Scholar 

  • Esakia A, McCrickard DS (2016) An adaptable model for teaching mobile app development. 2016 IEEE frontiers in education conference. Erie, 2016, pp 1–9. https://doi.org/10.1109/FIE.2016.7757478

  • Gacimartín C, Hernández J, Larrabeiti D (2011) A middleware architecture for designing TV-based adapted applications for the elderly. In: Jacko J (ed) Human-computer interaction. Design and development approaches, vol 6761. Springer-Verlag, Heidelberg, pp 443–449

    Chapter  Google Scholar 

  • Gamma E, Helm R, Johnson R, Vlissides J (1993) Design patterns: abstraction and reuse of object-oriented design. In: Proceedings of the 7th European conference on object-oriented programming, pp 406–431. http://www.cs.pitt.edu/~mock/cs1530/lectures2/ecoop93-patterns.pdf

  • Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional, Indianapolis

    MATH  Google Scholar 

  • Gravino C, Risi M (2017) How the use of design patterns affects the quality of software systems: a preliminary investigation. In: 2017 43rd Euromicro conference on software engineering and advanced applications (SEAA) IEEE, pp 274–277. https://doi.org/10.1109/SEAA.2017.32

  • Hanson S, Fossum TV (2005) Refactoring model-view-controller. J Comput Sci Coll 21(1):120–129. http://www.cs.uwp.edu/staff/hansen/publications/StopWatch/mvc.ccsc.pdf

    Google Scholar 

  • Hundley J (2008) A review of using design patterns in CS1. In: Proceedings of the 46th. Annual southeast regional conference on XX, pp 30–33

    Google Scholar 

  • Hussain S, Keuung J, Khan AA (2017) The effect of Gang-of-Four design patterns usage on design quality attributes. In: 2017 IEEE international conference on software quality, reliability and security (QRS). IEEE, pp 263–273. https://doi.org/10.1109/QRS.2017.37

  • IEEE (1986) IEEE standard for software unit testing. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=27763

  • Kasik V, Stankus M (2010) Graphical development system design for creating the FPGA-based applications in biomedicine. In: Bamidis PD, Pallikarakis N (eds) XII Mediterranean conference on medical and biological engineering and computing 2010, vol 29. Springer-Verlag, Heidelberg, pp 879–882

    Chapter  Google Scholar 

  • Khwaja S, Alshayeb M (2015) Survey on software design-pattern specification languages. ACM Comput Surv 49(1):1–35. https://doi.org/10.1145/2926966

    Article  Google Scholar 

  • Morse SF, Anderson CL (2004) Introducing application design and software engineering principles in introductory CS courses: model-view-controller Java application framework. J Comput Sci Coll 20(2):190–201. http://www.wou.edu/~andersc/pubs/CCSC-NW_2004.pdf

    Google Scholar 

  • Prabhakar NP, Rani D, Hari Narayanan AG, Judy MV (2017) Analyzing the impact of software design patterns in data mining application. In: Dash S, Vijayakumar K, Panigrahi B, Das S (eds) Artificial intelligence and evolutionary computations in engineering systems. advances in intelligent systems and computing, vol 517. Springer, Singapore. https://doi.org/10.1007/978-981-10-3174-8_7

    Chapter  Google Scholar 

  • Reiss SP (1999) A practical introduction to software design with C++. Wiley, Hoboken

    Google Scholar 

  • Suphakul T, Senivongse T (2017) Development of privacy design patterns based on privacy principles and UML. In: 2017 18th IEEE/ACIS international conference on software engineering, artificial intelligence, networking and parallel/distributed computing (SNPD). IEEE, pp 369–375. https://doi.org/10.1109/SEAA.2017.32

  • Tao Y (2002) Component- vs. application-level MVC architecture. Frontiers in Education, T2G-7-T2G-10. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.20.5508&rep=rep1&type=pdf

  • Tao Y, Liu G, Mottok J, Hackenberg R, Hagel G (2015) Just-in-time-teaching experience in a software design pattern course. In: 2015 IEEE global engineering education conference (EDUCON), pp 915–919. https://doi.org/10.1109/EDUCON.2015.7096082

  • Topi H et al (2010) IS 2010: Curriculum guidelines for undergraduate degree programs in information systems. Report from the joint IS 2010 curriculum task force. https://www.acm.org/binaries/content/assets/education/curricula-recommendations/is-2010-acm-final.pdf

  • Van Niekerk J, Futcher L (2015) The use of software design patterns to teach secure software design: an integrated approach. In: Bishop M, Miloslavskaya N, Theocharidou M (eds) Information security education across the curriculum. WISE 2015. IFIP advances in information and communication technology, vol 453. Springer, Cham, pp 75–83. https://doi.org/10.1007/978-3-319-18500-2

    Chapter  Google Scholar 

  • Vuksanovic IP, Sudarevic B (2011) Use of web application frameworks in the development of small applications. In: Proceedings of the 34th international convention on information and communication technology, electronics and microelectronics (MIPRO), pp 458–462

    Google Scholar 

  • Wallingford E (2002) Functional programming patterns and their role in instruction. In: Proceedings of the international conference on functional programming, pp 151–163. http://www.cs.uni.edu/~wallingf/patterns/papers/fdpe2002/fdpe2002.pdf

  • Wick MR (2001) Kaleidoscope: using design patterns in CS1. In: Proceedings of the 32nd SIGCSE technical symposium on computer science education, pp 258–262

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kevin R. Parker .

Editor information

Editors and Affiliations

Section Editor information

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this entry

Check for updates. Verify currency and authenticity via CrossMark

Cite this entry

Holmes, J.D., Parker, K.R., Davey, ., Chao, J.T. (2020). Teaching Software Design Techniques in University Courses. In: Tatnall, A. (eds) Encyclopedia of Education and Information Technologies. Springer, Cham. https://doi.org/10.1007/978-3-030-10576-1_132

Download citation

Publish with us

Policies and ethics