{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:49:09Z","timestamp":1750308549700,"version":"3.41.0"},"reference-count":50,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2014,10,27]],"date-time":"2014-10-27T00:00:00Z","timestamp":1414368000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Educ."],"published-print":{"date-parts":[[2014,11,3]]},"abstract":"<jats:p>This article presents the use of a model-centric approach to facilitate software development projects conforming to the three-tier architecture in undergraduate software engineering courses. Many instructors intend that such projects create software applications for use by real-world customers. While it is important that the first version of these applications satisfy the customer by providing the functionality the customer expects and perform reliably and efficiently, it is equally important to be able to accommodate the customer's change requests over the period of the product's lifetime. The challenges in achieving these goals include the lack of real-world software development experience among the student developers and the fact that postdeployment change requests will almost certainly have to be handled by students who are not among the original developers. In this article, we describe how a model-centric approach using UML has been effective in enabling students to develop and maintain eight software applications for small businesses over a 9-year period. We discuss the characteristics of our modeling technique, which include the application of modeling patterns and quality check rules that enable students to create a model that can be clearly and consistently mapped to code. We also describe the nature of these mapping-to-code techniques, emphasizing how they reduce coupling among the implementation's classes. We then discuss our experiences in the classroom with these techniques, focusing on how we have improved our teaching over the years based on the analysis of student performance and feedback. Finally, we compare our approach to related work teaching modeling and the development and maintenance of code in software engineering courses with both extensive and minimal modeling.<\/jats:p>","DOI":"10.1145\/2635831","type":"journal-article","created":{"date-parts":[[2014,10,28]],"date-time":"2014-10-28T12:40:29Z","timestamp":1414500029000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Using UML Modeling to Facilitate Three-Tier Architecture Projects in Software Engineering Courses"],"prefix":"10.1145","volume":"14","author":[{"given":"Sandeep","family":"Mitra","sequence":"first","affiliation":[{"name":"The College at Brockport, State University of New York, Brockport, NY"}]}],"member":"320","published-online":{"date-parts":[[2014,10,27]]},"reference":[{"volume-title":"Agile Modeling (AM) Home Page. Effective Practices for Modeling and Documentation. (2001). Retrieved","year":"2014","author":"Ambler Scott","key":"e_1_2_1_1_1"},{"volume-title":"Proceedings of the 13th Conference on Software Engineering Education and Training (CSEET\u201900)","year":"2000","author":"James","key":"e_1_2_1_2_1"},{"key":"e_1_2_1_3_1","first-page":"1","article-title":"Conducting a successful senior capstone course in computing","volume":"19","author":"Beasley Robert E.","year":"2003","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1139922.1139926"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1080\/08993408.2012.665210"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/FIE.2007.4418071"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1352135.1352256"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSEET.2007.22"},{"key":"e_1_2_1_9_1","first-page":"3","article-title":"Using UML to facilitate the teaching of object-oriented systems analysis and design","volume":"19","author":"Burton Philip J.","year":"2004","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSEET.2009.26"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/572139.572179"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1080\/08993408.2011.606118"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/j.2168-9830.1997.tb00260.x"},{"volume-title":"Computer Science Project Work: Principles and Pragmatics","author":"Fincher Sally","key":"e_1_2_1_14_1","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4471-3700-9"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 6th Australasian Conference on Computing Education -","volume":"30","author":"Flint Shayne","year":"2004"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1370731.1370738"},{"volume-title":"Engineering Software as a Service (2nd Beta Edition). Strawberry Canyon","author":"Fox Armando","key":"e_1_2_1_17_1"},{"volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","year":"1995","author":"Gamma Erich","key":"e_1_2_1_18_1"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/794194.794947"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSEET.2009.14"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/AGILE.2007.18"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134285.1134396"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1562877.1562959"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1536274.1536292"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1080\/08993408.2012.692928"},{"edition":"3","volume-title":"Applying UML and Patterns","author":"Larman Craig","key":"e_1_2_1_26_1"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/961511.961523"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/FIE.2005.1612055"},{"key":"e_1_2_1_29_1","first-page":"5","article-title":"Teaching software engineering using a traceability-based development methodology","volume":"20","author":"Mitra Sandeep","year":"2005","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1953163.1953209"},{"key":"e_1_2_1_31_1","first-page":"2","article-title":"A service learning project for a software engineering course","volume":"24","author":"Olsen Anne L.","year":"2008","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1594399.1594401"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/523979.794219"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1352135.1352252"},{"volume-title":"Software Engineering Process with the UPEDU","author":"Robillard Pierre N.","key":"e_1_2_1_35_1"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1227310.1227493"},{"key":"e_1_2_1_37_1","first-page":"3","article-title":"Perspectives concerning the utilization of service learning projects for a computer science course","volume":"25","author":"Scorce Richard A.","year":"2010","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1080\/08993408.2011.630127"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/523979.794218"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2483710.2483713"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1137620.1137625"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2538862.2538965"},{"volume-title":"Proceedings of the 2006 International Conference on Models in Software Engineering (MoDELS\u201906)","year":"2006","author":"Szmurlo Robert","key":"e_1_2_1_43_1"},{"key":"e_1_2_1_44_1","first-page":"4","article-title":"Incorporating service learning into computer science courses","volume":"20","author":"Tan Joo","year":"2005","journal-title":"Journal of Computing Sciences in Colleges"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508865.1508976"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1734263.1734290"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1140124.1140135"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.5555\/785409.785823"},{"key":"e_1_2_1_49_1","first-page":"5","article-title":"A student model for object-oriented design and programming","volume":"20","author":"Wei Fang","year":"2005","journal-title":"Journal of Computing Sciences in Colleges"},{"volume-title":"Retrieved on","year":"2012","key":"e_1_2_1_50_1"}],"container-title":["ACM Transactions on Computing Education"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2635831","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2635831","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:03:44Z","timestamp":1750273424000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2635831"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,10,27]]},"references-count":50,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2014,11,3]]}},"alternative-id":["10.1145\/2635831"],"URL":"https:\/\/doi.org\/10.1145\/2635831","relation":{},"ISSN":["1946-6226"],"issn-type":[{"type":"electronic","value":"1946-6226"}],"subject":[],"published":{"date-parts":[[2014,10,27]]},"assertion":[{"value":"2012-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-10-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}