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