Applied Mathematical Sciences, Vol. 6, 2012, no. 108, 5369 - 5382
Reverse Engineering Approach in a
Development of a Decision Support System
for Forensic DNA Analysis
Noor Maizura Mohamad Noor
Department of Computer Science
Faculty of Science and Technology
Universiti Malaysia Terengganu (UMT)
Kuala Terengganu, Terengganu, Malaysia
Ahmad Faiz Ghazali
Department of Computer Science
Faculty of Science and Technology
Universiti Malaysia Terengganu (UMT)
Kuala Terengganu, Terengganu, Malaysia
Md Yazid Mohamad Saman
Department of Computer Science
Faculty of Science and Technology
Universiti Malaysia Terengganu (UMT)
Kuala Terengganu, Terengganu, Malaysia
Zafarina Zainuddin
School of Health Science, Health Campus
Universiti Sains Malaysia (USM)
Kubang Kerian, Kelantan, Malaysia
5370 Noor Maizura Mohamad Noor et al
Abstract
In getting software requirement and specification based on existing system,
reverse engineering (RE) can be done by creating abstraction views of a system in
order to help software engineer maintain and re-engineer it. Requirement
engineering and specification in a development of a decision support system (DSS)
presented in this paper is replaced by RE approach. Before that, software engineer
needs to identify the pattern of design used in an existing system’s
implementation, including programming details. RE can extract information of
software design from source code, but the level of abstraction and documentation
is yet to be discovered. RE can be done at least in three stages; RE of user
interfaces, RE to understand internal process of a system and RE of database.
Keywords: Decision Support System, Forensic DNA Analysis, Reverse
Engineering
1 Introduction
Generally, software is computer programs. Ian Sommerville [23] defined
software not only computer programs but also all the required documentation and
required configuration for computer programs to operate. According to Ian
Sommerville [23], software engineering (SE) is a process of software production,
beginning from software specification until software deployment and testing. As a
program evolves, it becomes increasingly difficult to understand and reason about
changes in the source code. Eventually, if enough changes are made, reverse
engineering (RE) techniques must be used in order to understand the current
behavior of a system. Roger S. Pressman [20] mentioned about the abstraction in
RE;
“Ideally, the abstraction level should be as high as possible. That is, the RE
process should be capable of deriving procedural design representations (a
low-level abstraction), data and control flow models (a relatively high level
of abstraction), and entity relationship models (a high level of abstraction).
As the abstraction level increases, the software engineer is provided with
information that will allow easier understanding of the program”.
Decision support system (DSS) is a concept of application that aims to help
decision-making processes [29]. DSS can means different thing to different
people, hence there is no universally accepted definition of DSS [29]. Turban and
Aronson [29] mentioned that “DSS is also sometimes used as an umbrella terms
to describe any computerized system that supports decision-making in an
organization.”. Today, DSS are being applied in multiple domains, including
forensic, medical, military, financial and engineering [22, 25, 29, 31].
In field SE, RE is a method of design recovery as mentioned a lot by Roger S.
Reverse engineering approach 5371
Pressman [20, 19] but not Ian Sommerville [23]. Using concept RE, where based
only on user interfaces, designs of internal and external data processing in a
system flow can be recovered. Besides, from further analysis, processes,
components, and its relationships among each other can be identified. After that,
the representation of the system is created at a higher level of abstraction or in
another form. In this research, a RE approach has been practiced to study Forensic
DNA Databank of Malaysia (FDDM) used at Royal Malaysian Police (RMP).
User interfaces of the software have been studied. Then, rapid prototype is built in
a platform of Web to ease accessibility. What is the problem encountered during
this design recovery processes? Information provided is very limited, due to
national security issue. The information that initially cannot be recovered
including:
i) Programming languages and technologies used to build the
application.
ii) Source codes
iii) Mathematical equations used for analysis.
iv) The meaning and purposes of the available information and menus
RE can reduce certain costs. In SE, development is a risky and expensive
proposition, hence improving the productivity of software development and the
quality of delivered software will result in significant economic returns [1].
2 Reverse Engineering
Researchers Okolica [18] mentioned about classical definition of reverse
engineering (RE) in 1990 by Cross [8] as “the process of analysing a subject
system to (i) identify its system’s components and their inter-relationships and (ii)
create representations of the system in another form or at a higher level of
abstraction”. RE for software as rephrase by Roger S. Pressman [20] is “the
process of analysing a program in an effort to create a representation of the
program at a higher level of abstraction than source code. Reverse engineering is a
process of design recovery”.
Software RE is a sub-discipline of SE [15]. It creates a suitable representation
of the system in a higher level of abstraction or another form to support the
comprehension of software systems. Figure 1 shows the schematic view of RE
process [20].
5372 Noor Maizura Mohamad Noor et al
Dirty source code
Restructure
code
Clean source code
Extract
abstractions
Initial specification
Refine &
simplify
Final specification
Processing
Interface
Database
Figure 1: Reverse engineering process by Roger S. Pressman [20]
The ‘abstraction level’ here refers to the sophistication of the design information
that can be extracted from source code. Extract abstraction is the core activity of
RE. Three phases in RE are including RE of user interfaces, RE to understand
process, and RE to understand database. This concept is practiced as shown in
section Results and Discussion of this paper.
3 Decision Support System
Decision support system (DSS) has been applied in a wide range of computer
applications that commonly manipulate information in variety fields. This is
including computer-based systems that are being used in handling data in order to
achieve an optimization for decision-making in forensic science. Basic
components in a DSS consist of model base, database, user interface and
knowledge base. Information technology and human resources utilized in field
forensic science and computer science will be able to help supporting
decision-making using computerized forensic DNA analysis and paternity test.
Reverse engineering approach 5373
In the early 1970s, the major concepts of DSS was first articulated by Scott
Morton [11] as “interactive computer-based systems, which help decision-makers
utilize data and models to solve unstructured problems”. Keen and Scott Morton
[14] defined DSS as “a computer-based support system for management decision
makers who deal with semi-structured problems”. DSS gather the human
intellectuals and computer’s capabilities to improve the quality of decisions [14].
Scientist working in forensic field will be able to provide DNA data for
analysis. Knowledge that can be interpreted from forensic will be able to help
scientist to make decisions or provide a new alternative for solutions. Other recent
research works in DSS come out with proposed software [13]. Vescoukis et al.
[30] and Miranda et al. [17] proposed architecture in their research work.
Researchers Tremblay et al. [28] doing related works to Web-based DSS concept.
4 Forensic DNA Analysis
Decision theory plays an important role in forensic science (FS) [6, 12, 16, 21,
24-27]. Deoxyribonucleic acid (DNA) profile analysis using computer
programming is not a new research in biology and information technology.
Projects have been done in developed countries and around the world to develop
software tools to analyze DNA data.Aitken and Gammerman [4] initiated the
discussion on the use of graphical probabilistic models for evaluating evidences in
FS, and then, the first example to focus on Bayesian networks (BN) and DNA
evidence is the work by Dawid and Evett [9] because it presents with example
involving blood stains, as reviewed by Biedermann and Taroni [7]. Dawid et al. [9]
discussed an example involves two kinds of scientific evidence which is more
complex than the one discussed by Aitken and Gammerman [4]. A different
approach has been presented by Garbolino et al. [10] where they do not primarily
focus on a specific scenario. The difference between the study by Aitken and
Gammerman [4] and [2, 3] is the nature of knowledge included into the graphical
models of BN. His research works [4] is created based on own judgement for
probability values, but models that he created later [2, 3] is come out based on
data.
Forensic DNA Analysis Software (ForAS) proposed in this research is proven to
be reliable and helpful for paternity test in forensic DNA analysis. The importance
of this research work is it is a great start to develop more applications and extended
software from ForAS for crime investigation. A new Web-based DSS to manage
overall crime cases from the identification of suspects until apprehension of
criminal offenders is currently under extensive development. It is another way of
designing from a different perspective of overall process involved in the related
systems. Technology is not the main focus, but the use and its relevancy to specific
designs are included [5].
5374 Noor Maizura Mohamad Noor et al
5 Results and Discussions
Figure 2 shows the screenshots of implemented software after Stage 1 of
reverse engineering process for the functionality of Forensic DNA Databank of
Malaysia (FDDM). User interface design, especially the frame, looks almost
exactly like FDDM (it is not included here due to security issue). During this
stage, basic DNA profile match can already be performed and results displayed;
but using only mock data.
Proposed Visualization Application for forensic DNA
analysis system (Prototype Version 1.1)
Reverse engineering approach 5375
Figure 2: Stage 1- First prototype after reverse engineering the functionality of FDDM
During Stage 2, almost overall user interface are changed from Stage 1
(compare Figure 2 and Figure 3). The location of menu, icons, and banners are
changed, but maintain the same functionality DNA profile match in forensic DNA
analysis.
5376 Noor Maizura Mohamad Noor et al
Figure 3: Stage 2- Second prototype after redesign the user interfaces
Figure 4 shows the comparison of user interfaces design during Stage 1 and
Stage 4 for the core process (main engine) of forensic DNA analysis. The
similarities are both can be used to perform DNA profile match in forensic DNA
analysis. The difference is the software proposed during Stage 4 in this research
work applied more user-friendly interfaces. The arrangements of menu are much
better than the first software proposed during Stage 1 based on the results of
usability study that has been conducted (not included in the scope of this paper).
For each allele match, green colour is applied in the result of matching columns,
or red if vice versa.
DNA profile match in proposed software during Stage 1
Reverse engineering approach 5377
DNA profile match in proposed software during Stage 4
Figure 4: Evolution of result’s presentation (Stage 1 and Stage 4)
A lot of programming works has been done during implementation at Stage 3
and Stage 4 of this research work following methodology software reverse
engineering and software reengineering. Figure 5 and Figure 6 shows the
visualization features that has been tried to propose to be included as an
enhancement in Web application for forensic DNA analysis. This is because this
feature is not provided in current FDDM, hence reverse engineering is not occur
for data visualization. The idea here is to find out the way to provide enhancement
compared to the existing forensic DNA analysis tools.
Figure 5: First version - an attempt to visualize allele frequency
5378 Noor Maizura Mohamad Noor et al
Figure 6 shows the final version of visualization using concept visualization tree.
In the first version as in Figure 5, the frequency is tried to be visualized using plot
graph but it does not really helpful to domain expert compared to visualization
tree.
Figure 6: Final version - visualization tree for allele numbers
The Web application proposed is then extended into part specifically built to
handle forensic DNA analysis. It is implemented during the final stage for
enhancement. This paper has presented stages performed for design recovery to
identify the behaviour of user interface, nature of processing data and structure of
system flow. There are several issues that have been identified;
It is crucial to separate the design and implementation step-by step. This is
because, it is more difficult to redesign the process or system flow once it is
implemented compared to before implementation is initiated.
i) The design of architecture for proposed Web-based DSS was first
initialised by process reverse engineering of existing software. This
research has shown that an existing software development can be used
as a starting point to implement new software from the recovered
design.
Reverse engineering approach 5379
ii) The unavailability of source code and information in the current
documentation is not an excuse for not being able to recover some of
the designs from the main system flow. An understanding of the
application domain such as software for domain experts like forensic
scientists, customers, or any other specific users can help the recovery
of information about the purpose of a function and its significance.
iii) Sometimes re-engineering has to be done after reverse engineering
because too little or outdated information is provided. There might be a
need to rewrite and recode the system to improve its usability, ease of
maintenance, or further enhancement with more functionality. It is
easier to change a design than source code. Thus, software
re-engineering after software reverse engineering will be useful in
terms of providing better design and implementation after design
recovery.
ForAS presented results of analysis with more detail information of DNA allele
frequencies. Allele numbers, allele frequencies, locus frequencies, estimated DNA
profile frequency, allele matching, locus matching, fractions of locus match and its
percentages are very helpful for forensic scientists. Allele and locus match in
columns of decision table with systematic and detail data representation is applied
with green colour for match and red colour for not match. Systematic and detail data
representation of statistical DNA analysis is very important for the ease and quality
decision-making process of a DSS.
7 Conclusion
In this research, reverse engineering has been done in a few stages. Stage 1
involving the reverse engineered of user interface. Then, reverse engineering of
data structures and algorithms is the crucial part. Statistical forensic DNA analysis
for paternity test is applied for main engine of the software. Contribution on the
concepts and operational basis for DSS that have been done in this research work
is implementing software development process in a Web-based DSS using reverse
engineering and re-engineering methods. Applying software RE approach to DSS
is one of the methods in developing Web-based DSS, besides just following
traditional Software Development Life Cycles (SDLC). The contribution is
architecture using RE approach for developing a Web-based DSS. Through RE of
software, the user interfaces, the data structures, the algorithms and how the
analysis being performed can be recovered. If some basic information of the
software is obtained, then further research can be done to obtain more
information.
Anyway, reverse engineering approach is successfully applied in this research
work. The procedure steps in design recovery can be described as; 5380 Noor Maizura Mohamad Noor et al
i) Collect available information: All possible information that is related
is obtained as much as possible, including source codes, designs and
its documentation if possible. Personnel experience may be included.
ii) Study provided information: Study and extensive reviews must be
done on the collected information so that more information can be
recovered and further plan can be initiated. The structure of internal
and external data can be identified as well.
iii) Sketch-out the windows of system flow: Once understood and
identified, the system flow of the observed software needs to be
written or drawn. Then, the system flow for the proposed software
with enhancement can be provided.
iv) Review again the recovered design: Review and recheck the design to
verify that it represents the structure of the software as desired and
planned. There is also a need to review the recovered design for
consistency with available information and to find out where it can be
improved from time to time.
In summary, this research was successfully using approach reverse engineering
to build a decision support system for forensic DNA analysis from scratch. The
original aim of DSS to use computerized system to support decision makers is
achieved. Hopefully, further investigation based on this research methodology for
software reverse engineering to build new software using concept decision
support system can be practiced. This will contribute to develop and enhance the
concept of DSS and its role to help decision-makers utilize information
technology for problem solving in future.
References
[1] Adolph, S., P. Kruchten, and W. Hall, Reconciling perspectives: A
grounded theory of how people manage the process of software
development. Journal of Systems and Software, 2012. 85(6): p. 1269-1286.
[2] Aitken, C.G.G., et al., Bayesian belief networks with an application in
specific case analysis. Computational Learning and Probabilistic
Reasoning. 1996: John Wiley & Sons.
[3] Aitken, C.G.G., et al., Statistical modelling in specific case analysis.
Science & Justice, 1996. 36: p. 245-255.
[4] Aitken, C.G.G. and A. Gammerman, Probabilistic reasoning in evidential
assessment. Journal of the Forensic Science Society, 1989. 29: p. 303-316.
[5] Bate, I.J. Journal of Systems Architecture - Embedded Software Design.
2012
[6] Biedermann, A., S. Bozza, and F. Taroni, Decision theoretic properties of
forensic identification: underlying logic and argumentative implications.
Forensic Science International, 2008. 177: p. 120-132.
Reverse engineering approach 5381
[7] Biedermann, A. and F. Taroni, Bayesian networks for evaluating forensic
DNA profiling evidence: A review and guide to literature. 2012.
[8] Cross, C.a., Reverse Engineering and design recovery: a taxonomy. IEEE
Software, 1990. 7(1).
[9] Dawid, A.P. and I.W. Evett, Using a graphical method to assist the
evaluation of complicated patterns of evidence. Journal of Forensic
Sciences, 1997. 42: p. 226-231.
[10] Garbolino, P. and F. Taroni, Evaluation of scientific evidence using
Bayesian networks. Forensic Science International, 2002. 125(2-3): p.
149-155.
[11] Gorry, G.A. and M.S.S. Morton, A Framework for Management
Information Systems. Sloan Management Review, 1971. 13(1).
[12] Helsloot, I. and J. Groenendaal, Naturalistic Decision Making in Forensic
Science: Toward a Better Understanding of Decision Making by Forensic
Team Leaders. Journal of Forensic Sciences, 2011. 56(4): p. 890-897.
[13] Jullien-Ramasso, S., G. Mauris, and L. Valet, Bolon, A decision support
system for animated film selection based on a multi-criteria aggregation of
referees’ ordinal preferences. 2012. 39(4): p. 4250-4257.
[14] Keen, P.G.W. and M.S.S. Morton, Decision Support Systems: An
Organizational Perspective, Addison-Wesley, Editor. 1978.
[15] Kienle, H.M. and H.A. Muller, Chapter 5 - The Tools Perspective on
Software Reverse Engineering: Requirements, Construction, and
Evaluation. Advances in Computers, 2010. 79: p. 189-290.
[16] Lucena-Molina, J.-J., V. Pardo-Iranzo, and J. Gonzalez-Rodriguez,
Weakening Forensic Science in Spain: From Expert Evidence to
Documentary Evidence. Journal of Forensic Science, 2012.
[17] Miranda, J., P.A. Rey, and J.M. Robles, udpSkeduler : A Web architecture
based decision support system for course and classroom scheduling. 2012.
[18] Okolica, J.S. and G.L. Peterson, Windows driver memory analysis: A
reverse engineering methodology. Computers & Security, 2011. 30(8):
p. 770-779.
[19] Pressman, R.S., Software Engineering - A practitioner’s approach. 2006.
[20] Pressman, R.S., Software Engineering A Practitioner's Approach. Fifth
Edition ed. Computer Science Series, ed. M.-H.I. EDITION. 2001.
[21] Robertson, J., Forensic science, an enabler or dis-enabler for criminal
investigation? Australian Journal of Forensic Sciences, 2012. 44(1): p.
83-91.
[22] Sauter, V.L., Decision Support Systems for Business Intelligence, ed. W.
Sons. 2010.
[23] Sommerville, I., Software Engineering. 8th Edition ed. 2007: Pearson
Education Limited.
[24] Taroni, F., et al., Bayesian Networks and Probabilistic Inference in
Forensic Science, ed. L. John Wiley & Sons. 2006.
5382 Noor Maizura Mohamad Noor et al
[25] Taroni, F., S. Bozza, and C. Aitken, Decision Analysis in Forensic Science
Journal of Forensic Science, 2005. 50(4).
[26] Taroni, F., S. Bozza, and A. Biedermann, Two items of evidence, no
putative source: an inference problem in forensic intelligence. Journal of
Forensic Sciences 2006. 51: p. 1350-1361.
[27] Taroni, F., et al., Data Analysis in Forensic Science: A Bayesan Decision
Perspective. 2010: John Wiley & Sons, Chichester.
[28] Tremblay, M.C., A.R. Hevner, and D.J. Berndt, Design of an information
volatility measure for health care decision making. 2012.
[29] Turban, E. and J.E. Aronson, Decision Support Systems and Intelligent
Systems. 2005.
[30] Vescoukis, V., N. Doulamis, and S. Karagiorgou, A service oriented
architecture for decision support systems in environmental crisis
management. Future Generation Computer Systems, 2012. 28(3): p.
593-604.
[31] Zarate, P., DMSS computer systems and application software.
International Journal of Decision Support System Technology (IJDSST),
2012. 3(4).
Received: May, 2012