Seattle, Washington
June 14, 2015
June 14, 2015
June 17, 2015
978-0-692-50180-1
2153-5965
Software Engineering Constituent Committee Technical Session 2
Software Engineering Constituent Committee
16
26.1487.1 - 26.1487.16
10.18260/p.24824
https://peer.asee.org/24824
623
Dr. Temesghen Kahsai is a research scientist at Carnegie Mellon University Silicon Valley. His research expertise is in the intersection of formal methods and software engineering, with an emphasis on automated reasoning about software systems. He has extensive experience in the development of formal foundations and tools for the analysis of complex critical systems. He is currently leading three projects on contract-based verification of flight critical systems, analysis of heterogeneous software protocols stacks and credible auto-coding of embedded systems. These projects are funded by NASA and NSF.
Liam O’Reilly is a Senior Tutor at the department of Computer Science at Swansea University who specializes in Formal Methods, specifically verification using algebraic specification and processes algebra. O'Reilly currently develops and delivers various courses as part of the undergraduate program and an innovative work-based learning degree.
Markus Roggenbach is an Associate Professor in Computer Science at Swansea University, who specializes in Formal Methods in Software Engineering. His area of expertise is verification of software designs, including tool support, specification languages, and testing. He is a member of the IFIP WG 1.3 “Foundations of System Specification.” He has significant experience of technology transfer through regular co-operations with industry, including Siemens, Rolls-Royce, and McAfee.
Teaching software-engineering concepts through industrially used tools early in the undergraduate curriculumThis paper reports on an established course, running successfully for five years at a UKuniversity. In this course carefully selected software engineering concepts (SECs) are taughtto first year undergraduate students whose programming background consists of only oneintroductory course on programming (in Java). This course is also part of a work-basedlearning programme aimed at industry and is being taken by full-time employees from privatecompanies. Due to the students’ limited programming background in both programmes, theselected SECs need to be demonstrable in a programming-in-the-small setting [1]. Challengesto teaching SECs at such an early stage include: Challenge C1: due to the students’ limited ability to think abstractly, students need hands-on experience to understand SECs. Challenge C2: due to the students’ limited programming experience, students are critical of SECs and require convincing arguments that the taught SECs are relevant.Our pedagogical approach to address these challenges is (a) to run a lab-centered course and(b) to let students see the “real thing” as often as possible. To (a): Lectures introduce concepts and ideas that can later be experienced in carefullydesigned lab sessions. In the labs, we focus on SECs rather than programming by providingstudents with Java programs to be manipulated with tools. Topics covered include: codecommenting with Javadoc, coding standards with Checkstyle, debugging in Eclipse,automated testing with JUnit, test coverage with Emma, automated GUI testing usingsoftware robots, and extreme programming applied to game development. This providesstudents with many concrete and accessible examples illustrating the selected SECs.To (b): All of the tools mentioned above are used in industry: e.g., CheckStyle is standard inmajor companies, including the car manufacturer Daimler, Germany. The coding standarddiscussed is the 1997 Sun “Java Code Conventions”. Extreme programming was developed to serve software needs at Chrysler, US. Lab examples are grounded in reality, e.g., testing of a “next date” function is motivated by presenting a bug report on German credit cards not working as they “can’t recognize the year 2010” [2]. This evidence convinces students of relevance and applicability of the selected SECs. The positive outcomes of our approach are demonstrated using various methods of assessment (MOAs) for evaluating the success of our course: • After the course students understand formatting/commenting/documenting program code and how these help with maintenance; know how SECs are supported by tools; are able to explain extreme programming; and can develop test-‐suites using both white-‐box and black-‐box testing. (MOA: Exam results) • The course has 100% student retention (MOA: over 5 years, no student failed the first year due to this course). • Students engage with the lab classes (MOA: ~80% of the students reliably participate in the labs); enjoy the course (MOA: student feedback, interaction in the labs); and are SE-‐tool literate (MOA: time to get new tools working in the labs reduces significantly over the course). 1. Frank DeRemer and Hans Kron. 1975. Programming-in-the large versus programming-in-the-small. In Proceedings of the international conference on Reliable software. ACM, New York, NY, USA, 114-121. DOI=10.1145/800027.808431 http://doi.acm.org/10.1145/800027. 2. Time Inc Network, The Year 2010 Bug Strikes German Bank Cards By Tristana Moore / Berlin Thursday, Jan. 07, 2010 http://www.time.com/time/business/article/0,8599,1952305,00.html Last accessed October 2014. Slide from the lectures on code commenting: Part of MR’s rule book Task from the lab classes: Commenting a Stack program.
Kahsai , T., & O'Reilly, L., & Roggenbach, M. (2015, June), Teaching Software-engineering Concepts through Industrially Used Tools Early in the Undergraduate Curriculum Paper presented at 2015 ASEE Annual Conference & Exposition, Seattle, Washington. 10.18260/p.24824
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2015 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015