
will be based on the work defined in figures 4 and 5 
of this report and the specific pedagogical topics 
covered are influenced from the experience on the 
aforementioned projects.  Specifically, students will 
be introduced to the relationship between forward and 
reverse engineering, as illustrated in Figure 5.  
Reverse engineering topics to be covered in the 
revised curriculum include, but are not limited to the 
following: 
•  Use of CASE tools in reverse engineering.  
Specifically, open source tools will be used, 
example StarUML, so that students can work 
on their one computers. 
•  Reverse engineering techniques for object-
oriented programming versus procedural 
programming. 
•  Techniques to manually reverse engineer 
program codes that include: identifying 
methods’ names, methods’ inputs and outputs, 
and call sequences between methods. 
•  Techniques to identify programming 
constructs, such as: assignments, iterations, 
decisions, selections, etc. 
•  Techniques for transforming programming 
code into pseudo-code. 
•  Techniques for transforming pseudo-code into 
graphical models, namely UML models. 
The teaching strategy applied in the revised 
curriculum will have the students working in teams to 
develop a moderately complex system as a forward 
engineering exercise.  Concurrently, the teams will 
work on reverse engineering the code of a well-
known simple textbook system, such as the library 
management system (Singh 2010).  Both project will 
be preceded by lectures on the fundamental principles 
of software engineering, and concurrent lectures on 
detailed and supplemental software engineering 
topics.  Pre-  and post-surveys to determine the 
students’ comprehension of the relationship between 
academia and professional software engineering 
learning and practices will be conducted.  The data 
from these surveys will aid in improving the 
curriculum. 
5  CONCLUSIONS 
This report documents the experience gained from a 
collaborative project between academia and industry 
for developing a mission-critical software system, 
albeit, the system was assessed as a safety-critical 
application for educational purposes.  The project was 
conducted by teams of USA academic faculty and 
student researchers, in difference spheres of focus.  
One team conducted a reverse engineering exercise in 
order to develop a set of graphical UML models, from 
the program code of the system.  These models 
formed the main artefacts of documentation and 
verification of the software system.  This team had an 
adjacent project goal of identifying aspects of the 
project that would be incorporated in the curricula of 
software engineering courses. 
The project successfully achieved the established 
goal by providing a software system to the 
stakeholders that was introduced into production 
within the specified timeframe.  The adjacent project 
goals of identifying pedagogical benefits from the 
project were realized, as the hypothesis of a 
knowledge gap existence between the curricula of 
some USA undergraduate and graduate tertiary 
software engineering education and industrial 
practices was exemplified and data collected to 
address this issue.  The outcome is that the curricula 
of these aforementioned courses have been revised to 
include the teaching of reverse engineering as a first-
class topic of the courses under review.  Future work 
will seek to evaluate the benefits of this revised 
pedagogy to the productivity of the graduates from 
the courses.  Future alumni surveys will include 
specific questions to assess these benefits. 
REFERENCES 
Coad, P., Yourdon, E., 1991. Object-Oriented Design, 
Prentice Hall, Inc. New Jersey, USA. 
Shlaer, S., Mellor, S. J., 1988. Object Oriented Systems 
Analysis: Modeling the World in Data, 1
st
 ed., Prentice 
Hall, New Jersey, USA. 
Glass, R. L., 1997. The Software-Research Crisis, IEEE 
Software, IEEE Computer Society Press, California, 
USA, vol. 11. No. 6, pp, 42-47. 
Booch, G., Rumbaugh, J., Jacobson, I., 1997. The Unified 
Modeling Language, Rational Software Corporation, 
Addison-Wesley, Indiana, USA. 
Kruchten, P. 2003 The Rational Unified Process: An 
Introduction, 3
rd
  ed., Addison-Wesley Object 
Technologies Series, Indiana, USA. 
Leveson, N. G., Turner, C. S., 1993. An Investigation of the 
Therac-25 Accidents, IEEE Computer, IEEE Computer 
Society, vol. 26, No. 7, pp 18-41. 
Lions, J., 1996 ARIANE 5, Flight 501 Failure, Report by 
the Inquiry Board,  European Space Agency, Paris, 
France. 
Bureau d’Enquêtes et d’Analyses, 2012, Final Report on 
the Accident on 1st June 2009 to the Airbus A330-203 
Registered F-GZCP operated by Air France flight AF 
447 Rio de Janeiro –  Paris, Bureau d'Enquetes et 
d'Analyses France (BEA), Paris, France. 
Pedagogical Benefits from an Exercise in Reverse Engineering for an Aviation Software Systems
187