5. Session Based Testing: A Strategy for Game testing
Introduction | Game Development Cycle and Software Development Cycle
Software Reengineering
Software ReengineeringSoftware Reengineering
• Software reengineering is the process of creating an abstract
description of a system, reasoning about a change at a
higher level of abstraction, and then re-implementing the
system.
8. On reverse engineering an object-oriented code into UML class
diagrams incorporating extensible mechanisms
by
Vinita, Jain Amita, Tayal Devendra K
The authors propose an algorithm to reverse engineer an object-oriented code
into UML class diagram.
The algorithm generates rules for a complete set of constructs available in
UML class diagrams. It includes classes, relationships, objects, attributes,
operations, inheritance, associations, interfaces & other extensible
mechanisms also.
This algorithm can be viewed as a solution to reverse engineer any available
object-oriented software.
Input : Object oriented code
Output: UML class diagram.
9. An Example – Composition & Inheritance
class Point
{
/*...*/
}
class Circle
{
private:
Point center;
/*...*/
}
Circle
Point
-center:
Point
1
class Customer
{
protected:
int custno;
};
class Human_cust: public Customer {
protected:
char sex;
char bdate;
};
class Inst_cust: public Customer
{
protected:
int noofemp;
char orgtype;
};
#noofemp: int
#orgtype: char
#sex: char
#bdate: char
Inst_custHuman_cust
#cusNo: int
Customer
10. Static Control-Flow Analysis for Reverse Engineering of
UML Sequence Diagrams
by
Rountev Atanas, Volgin Olga and Reddoch Meriam
The authors propose simple UML extensions that are necessary to capture
general flow of control. An algorithm is proposed that maps a reducible
exception free intra-procedural control-flow graph to UML Sequence diagram,
using the proposed extensions.
The 4 kinds of interaction fragments of particular importance are -
An opt fragment describes optional behavior guarded by some condition.
An alt fragment describes two or more mutually-exclusive alternatives in
behavior.
The sequence enclosed in a loop fragment is repeated until the guard
condition becomes false.
A break fragment represents a breaking. scenario: first the fragment sequence
inside the break fragment is executed, and then the execution of the fragment
enclosing the break completes immediately.
11. An example:
Code -> CFG (Control Flow Graph)->Sequence diagram
if (a.m1() || b.m2())
{
a.m3();
}
b.m4();
a.m3()
C1 = a.m1()
If (c1)
c2: b.m2()
If (c2)
b.m4()
Code CFG Sequence diagram
F
F
T
T
x:X a:A b:B
c1=m1()
m3()
c2=m2()
m3()
m4 ()
alt
[c1]
[c1]
opt
[c2]
12. Application Modelling using Reverse Engineering
Techniques
by
Katsimpa, T., Panagis, Y., Sakkopoulos, E., Tzimas, G., Tsakalidis,
A.
The authors present a technique that enables effective reverse engineering
procedures for web applications.
This work shows a method that allows us to transform existing web applications
developed with ASP.NET, into WebML models represented first with the
appropriate graph DAG (Directed Acyclic Graph) to enable further
meta-modeling.
13. Steps for Application modeling using reverse engineering
.ASPX
Analysis
Data source
analysis
Final
Application
graph
Labels WebML
ASPX pages
Text files
.NET Web applicaition
Correspondence Matrix
DAG Tree
15. Session Based Testing: A Strategy for Game testing
• In this work Olga Volgin et al. proposes
– “An algorithm for mapping a reducible exception-free intraprocedural
control-flow graph to UML.”
• Extensions proposed by us
– Combine static analysis (using available tool support) and behavioral
analysis (as shown in Olga Volgin et al.)
Static Control-Flow Analysis for Reverse Engineering of
UML Sequence Diagrams
by
Rountev Atanas, Volgin Olga and Reddoch Meriam
16. Session Based Testing: A Strategy for Game testing
Using existing tool
support
Code
(reengineered
system)
PIM (static +
behavior model)
UML - Class
Diagram
PSM (apply UML
extensions)
Algorithm [Olga Volgin et
al.]
Volgin Olga et al.
work continued …
17. Session Based Testing: A Strategy for Game testing
• In this work L. Favre proposes
– “… proposes a MDA technique to model static and dynamic behavior
from a migrated object oriented code..”
“Formalizing MDA-based Reverse Engineering Processes”.
by
L. Favre.
Parser
Metamodel
Extractor
Reverse
Engineering
Data Flow
Analysis
ISM code AST
DFG /
patterns
PIM code
PSM code
18. Session Based Testing: A Strategy for Game testing
Static and
dynamic
analysis
Static and
dynamic
analysis
formalizes
Legacy
source
code
L. Favre
work continued …
19. Session Based Testing: A Strategy for Game testing
• B.Qiao et al. propose use RWSL {Re-
engineering Wide Spectrum Language} to
recover the architecture of a legacy
system.
“…The full support for reverse engineering guarantees the
correctness of following evolution phases, i.e., integration
with MDA, model establishment and implementation.”
Bridging legacy systems to model driven
architecture
by
B. Qiao, H.Yang, W. Chu and B. Xu
20. Session Based Testing: A Strategy for Game testing
HTML etc.
XMI DOC /
DTD
UML profile
for RWSL
PSM (UML)
PIM (UML)
New Features
Initial
Architecture
in RWSL
Components /
Connectors
Code in RWSL
(CSL / COOL)
Existing
/ Legacy
Systems
Decomposition
ImplementationSADL2UML
Translation
Transfer
Configuration
IntegrationXSLT
UML2XMI Transform
Addition
Abstraction
Restructuring
B. Qiao et al.
work continued … MDA Models
21. Observations
Tool support exists to re-engineer software systems without MDA;
however the tools fail to provide design models of the application.
Language translators often generate poorly structured code,
cryptic variable names and non-optimal data structures.
Mapping platform services from source to target environment has
always been a manual task as this is difficult to automate.
However, using formalizing MDA approach we can automate the
mapping of platform services during re-engineering.
22. As new technology arrives at a fast rate, old technologies do not
disappear, but are concentrated in the legacy software. As a
consequence the evolution problem is augmented by a
heterogeneity problem.
The middleware landscape has continually shifted and
evolved e.g. CORBA, .NET, EJB, XML/SOAP. Further, there is no
one winner or a de facto standard available to develop software
systems. Hence, the re-engineering approach which provides an
implementation independent model will be advantageous.
Observations
23. This study at present does not provide any empirical results on
reengineering a legacy system with or without MDA.
As future work we aim to test our observation of reengineering
a legacy system with MDA using available tool support.
Future Work
24. “…The most interesting and challenging side of
software engineering may not be building brand
new software systems, but rejuvenating
existing ones.”
- Oscar Nierstrasz et al.
25. [1] Nierstrasz, Oscar and Demeyer, Serge. “Object-Oriented Reengineering
Patterns” 2004. Proceedings of the 26th International Conference on Software
Engineering (ICSE’04).
[2] Object Management Group; http://www.omg.org
[3] Model Driven Architecture; http://www.omg.org/mda
[4] Park, Wei-Jin; Min-Sang, Yoon; Bae, Doo-Hwan, and Mah, Pyeong-Soo. “Object–
Oriented Model Refinement Technique in Software Reengineering” IEEE Xplore.
[5] I. Jacobson and F. Lindstorm “Re-engineering of Old Systems to an Object-
oriented architecture” Proceedings of OOPSLA91, 1991, pp.77-83
[6] Gowthaman K., Mustafa K. and Khan R.A. “Reengineering Legacy Source Code
to Model Driven Architecture”. 2005. Proceedings of the Fourth Annual ACIS
International Conference on Computer and Information Science (ICIS’05)
[7] Green L., Bergey J., Lamia W., Smith D., “Proceedings of the First Annual
Software Engineering Techniques Workshop, May 1994: Software Reengineering”.
May 1994. pp. 1
References
26. [8] L. Favre. “Formalizing MDA-based Reverse Engineering Processes”. IEEE
Sixth International Conference on Software Engineering Research, Management
and Applications. 2008.
[9] Rountev Atanas, Volgin Olga and Reddoch Meriam. “Static Control-Flow Analysis
for Reverse Engineering of UML Sequence Diagrams”. PASTE ‘05. 6th ACM
SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and
Engineering. 2005.
[10] B. Qiao, H.Yang, W. Chu and B. Xu,. “Bridging legacy systems to model
driven architecture”. In Proc. 27th Annual International Computer Aided Software
and Applications Conference. IEEE Press, 2003, pp. 304-309.
[11] http://www.suite101.com/article.cfm/reengineering/7669
Dr. Rosenberg. Linda H., “Software Re-engineering”
[12] Byrne, Eric J., "Software Reverse Engineering: A Case Study", Software-
Practice and Experience, 12/91.
[13] http://portal.acm.org/citation.cfm?id=1402527
Vinita, Jain Amita, Tayal Devendra K., “On reverse engineering an object-oriented
code into UML class diagrams incorporating extensible mechanisms”. ACM SIGSOFT
References
27. Software Engineering Notes, Volume 33, Issue 5 (September 2008) , Article No. 9,
Year of Publication: 2008, ISSN:0163-5948
[14] Katsimpa, T., Panagis, Y., Sakkopoulos, E., Tzimas, G., Tsakalidis, A. (2006)
“Application Modelling using Reverse Engineering Techniques”. Proceedings
Symposium on Applied Computing (SAC’06), pp1250-1255.
[15] T. Philip, R. Ramsundar, “A Reengineering Framework for Small Scale Software”,
Software Engineering Notes , 20 (5), 1995, 51-55
[16] Tmothy C Lethbridge & Nicolas Anquetil, “Architecture of source code
Exploration Tool: A Software Engineering Case study”, SITE, University of Ottawa,
Canada, Technical report 1997-07.
[17] Bergey, J. K.; Smith, Dennis B.; & Weiderman, N. H. DoD, “Legacy System
Migration Guidelines”, (CMU/SEI-99-TN-013, ADA370621). Pittsburgh, PA: Software
Engineering Institute, Carnegie Mellon University, September 1999.
[18] JeanBezivin, Slimane Hammoudi, Denivaldo Lopes,Fr´ed´eric Jouault, “Applying
MDA Approach forWeb Service Platform”, Proceedings of the 8th IEEE Intl Enterprise
Distributed Object Computing Conf(EDOC 2004). 2004.
References