INTERNATIONAL JOURNAL OF ELECTRICAL, ELECTRONICS AND COMPUTER SYSTEMS (IJEECS), Volume 1, Issue 2, April 2011. ISSN: 2221-7258(Print) ISSN: 2221-7266 (Online) www.ijeecs.org
Distributed Program Slicing for Object Oriented Java Program with Finite State Machine Model C.Saravanakumar, C.Arun Abstract— As software application grows larger and larger and becoming more complex, the program maintenance activities such as debugging and testing consumes an increasing amount of available resources for the software development. In order to cope up with this increased complexity, the concept of program slicing was developed. The concept of program slicing plays an important role in bringing an error free end product. The task of computing the program slices is called as the program slicing. So far, the program slicing could have been implemented over the centralized and the client server model. In centralized model, the slicing was applied in non-sharable programs and in the client server model all the slices were retrieved from the server. The client server model doesn’t support the slicing over the object oriented programs on the distributed environment. This paper proposes the slicing applied in a distributed manner in the form of local slicing and global slicing on object oriented programs. In local slicing, the client reads the required program from the server and in turn applies the slicing criteria and slices the relevant statement. In global slicing, the client passes the slicing criteria to the server, finds out the program, applies the slicing criteria, extracts the relevant statement, group them, and send back to the client. In future the slicing can be applied to the middleware technologies like RMI, CORBA, etc. Index Terms—Program slicing, Slice, Distributed System, Finite State Machine, Java Programming
1 INTRODUCTION
P
ROGRAM slicing is a program analysis technique that reduces a program to those statements that are relevant for a particular context or computation. Alternatively it is a technology that decomposes a program and extracts the portion of interest with respect to certain criterion that reduces the complexity of control flow. There are two types of slicing namely static and dynamic slicing [7] .A static program slice comprises of those program statements that affects the value of a variable at some program point of interest which is referred as ‘slicing criterion’. A static slice preserves a projection of the semantics of the original program for all possible inputs[8]. A dynamic slice consists of only those statements that actually affect the value of a variable at a program point for a given execution. It computes those statements which influence the value of a variable occurrence for a specific program. A dynamic slice is constructed with respect to only one execution of the
program [6], [7]. A slice is constituted by the statements that affect the value of the program with respect to the given variable occurrence. It is an executable portion of the original program whose behavior is, under the same input, indis————————————————
C.Saravanakumar is with the Department of Computer Science and Engineering, Rajalakshmi Engineering College, Thandalam, Chennai 602 10 5, Tamilnadu,India. E-mail:
[email protected] C.Arun is with the Department of Elcetrocnics and Communication Engineering, Rajalakshmi Engineering College, Thandalam, Chennai, 602 105. Tamilnadu, India E-mail:
[email protected]
tinguishable from that of the original program on a given variable ‘V’ at point ‘P’ in the program. Weiser defines a program slice with respect to slicing criterion that consists of the program point ‘s’ and a subset of the program variables ‘v’. Slicing across the procedures complicates the situation due to the necessity of translating and passing the criteria into and out of the calling and the called procedures. When a procedure ’P’ calls a procedure ’Q’ at statement ’I’, the active criteria must first be translated into the context of ’Q’ and then reversed once ’Q’ has been sliced. Conditioned Slicing bridges the gap between the static and the dynamic slicing. Conditioned Slicing is relevant to a set of initial states rather than just one, as is the case with dynamic slicing. A conditioned slice can therefore act as a typical dynamic slice if just one initial state is specified. At the other end of the scale, a conditioned slice can act as a static slice if all the possible initial states are specified. Amorphous slicing involves applying changes to the code syntax while preserving the semantics (meaning). This approach can help in understanding certain aspects of the code [5]. One of the methods of slicing is static program slicing for composite data using FSM model which proposed that the model for slicing array elements, which only supports standalone or desktop application is non- sharable program slicing [4]. This above problem has been overcome by using client server model for concurrent java program with synchronization
techniques which is restricted to only clientserver technique. This type of methods of slicing doesn’t support distributed environment [5]. Nowadays, the internet grows enormously which always fall into distributed category, so this paper proposes two techniques of slicing, namely the local slicing and the global slicing. In the local slicing, the client makes a request for the particular program from any one of the server and extracts the slices in the client side only. In the global slicing the slicing is performed at any of the server and the relevant slice is only sent back to the intended client. Section 1 presents the overview of the program slicing concepts, its types and techniques. Section 2 and 3 presents architectural design and flow diagram of the proposed system. Section 4 presents the algorithm for slicing of the distributed program slicing model. Section 5 describes the comparative study of the slicing types. Section 6 presents preliminaries on distributed finite State machine. Finally, Section 7 presents conclusions and future work.
the server and send it back to the requesting client. Download section selects a file and retrieves the program to the client. Suppose the slicing type is local, apply the slicing criteria, extracts relevant slices at the client.
3 FLOW DIAGRAM OF THE PROPOSED SYSTEM
The client wants the reliable slices from any one of the server on the distributed systems. First the client gets the list of servers of those who are all the active participants on the communication and then the lists of servers are stored into the database, which is located at the client end. The client selects the active server from the database and then selects the slicing types. If it is a local Client
Slice the program
Applying
2 ARCHITECTURE OF THE PROPOSED
the
Getting the server list
Update the server list
slicing criteria DB
SYSTEM
The client section reads the slices from either the server or the client. The input section gets the list of online servers from the distributed environment. The update section, updates the entire server list in to the database. Slicing type section selects the type in which the slices are extracted from the program. If the slicing type is global, then select slicing criteria and extracts all the relevant and reliable slices from
Select the slicing criteria
Select the server
Slicing type
Select a file
Select the slicing criteria
Client section
Input section
Local Slicing
Update section
Slicing types
Global slicing
Getting the file list
Applying the slicing criteria
Select a file
Slice the program
Downloading a file
Send the slices to the client
Download
Section
Fig 1.Architecture diagram of the proposed system
Fig 2. Flow diagram of the proposed system slicing then it gets the list of files from which
selecting the required file is selected and then downloaded from the server. Now the client applies the slicing criteria (SC) on the program and then slices the relevant statements from the program. In global slicing the server selects a file from the list of files and applies the selected slicing criteria. The result will be a relevant statement and this statement group is sent back to the client. The client maintains two list of server, namely the active server list and the inactive server list. The active server list contains the lists of server of those who are all the servers that participates in all the active roles. The inactive server list contains the lists of server who are not participating in any communication. Suppose the server is crashed during the communication, it automatically moves to the inactive server list and the client selects some other server from active server list. In a particular time the crashed server is up and it automatically moves to the active server list.
Proof Let LS is the Local Slicing GS is the Global Slicing PS is the program slicing LS € PS GS € PS In local slicing, the client retrieves the entire program from the server because the slicing criteria is applied in the client host which extracts the relevant slices and only after downloading the relevant program. In the global slicing, client retrieves the relevant program (program slices) from the server and it never gets the entire program because the slicing is done in server host. Response time of the local slicing = Time [Getting the server list + Getting the file list+ download a file +Slice the program] Response time of the Global slicing = Time [Getting the server List + Getting the file list+Slice the program+download the slices]
4 ALGORITHM OF THE PROPOSED SYSTEM Distributed_program_slicing Input: client request, slicing criteria Output: program slices Procedure distributed_programslicing () begin 1. Request the slices from the server 2. Getting the online server list 3. Update all the server list into the database 4. Selecting the suitable server 5. If slicing_type==local then { 6. Getting the file list 7. Select a respective file from the list 8. Download the file contents. 9. Select and apply the slicing criteria 10. Slice the program } 11. Else if slicing_type==global then { 12. Select a file, slicing criteria and apply the file 13. Slice the program 14. Send the slices to the client 15. } 16. end
Response time [LS]>Response time [GS]
5 COMPARISON OF SLICING TYPES
S.No
Lemma: In the distributed program slicing PS, the time taken by the local slicing LS is greater then the time taken by the global slicing GS.
`
File name
File Size
Size in Bytes
LS in bytes
GS in bytes
1
RmiDemoServer.java
1KB
1024
1024
1024
2
RmiDemoImpl.java
6KB
6144
6144
2048
3
Upload.java
7KB
7168
7168
2048
4
Run.java
9KB
9216
9216
3072
5
Machine_Frame.java
9KB
9216
9216
3072
6
Lookup.java
11KB
11264
11264
2048
7
GlobalSlicing.java
12KB
12288
12288
3072
8
LocalSlicing.java
16KB
16386
16386
3072
COMPARISION OF SLICING TYPES 18000
6. FINITE STATE MACHINE PRILIMANARIES
16000
File Size in bytes
14000 12000 10000 8000 6000 4000 2000 0
1KB
6KB
7KB
9KB
9KB
11KB
12KB
16KB
Local Slicing
1024
6144
7168
9216
9216
11264
12288
16386
Global Slicing
1024
2048
2048
3072
3072
2048
3072
3072
Slice Size in bytes
Fig 3.comprision of slicing types S. No
File name
File Size
Size in Bytes
LS in bytes
GS in bytes
Slicing_types.java
7KB
7168
7168
1096
RmiDemoIntf.java
1KB
1024
1024
1024
RmiDemoClient.java
12KB
12288
12288
4089
Machine_Frame.java
10KB
10240
10240
3412
Run.java
9KB
9216
9216
3072
Login.java
8KB
8192
8196
2048
GlobalSlicing.java
12KB
12288
12288
3800
LocalSlicing.java
16KB
16386
16386
4050
1 2 3 4 5 6 7
Distributed Program Slicing methodology may be expressed as the Finite State Machine (Finite Automaton). A Finite State Machine is a mathematical model of how computer functions while running a program. It consists of finite set of states and a set of transitions from state to state that occurs on input symbols from alphabet ∑. There are two types of finite automata namely Deterministic Finite Automata (DFA), Non Deterministic Finite Automata (NFA). The new type of Automata called distributed automata which are especially for the distributed computing. There are five modes of acceptance namely tmode,*-mode, <= k-mode,>= k-mode and = kmode [9]. The following distributed program slicing model describes the overall functionality of the distributed system in the field of software reliability and testing. Here S1, S2, S3 and S4 stand for the systems which are connected to the distributed system. It follows the mesh network model which is normally expressed by the N systems. This model has been restricted only to four systems, so N=4 then the number of sending and receiving is related to the N systems. For example, S1 sends the slicing criteria or the file request to S2 and getting the result based on the slicing types [local slicing and Global slicing] on which it returns the slice results or file contents.
8
Fig 5 .FSM model for distributed Program slicing Fig 4. Comparision of slicing types
Likewise every system are sending the request and getting the response to and from another
system. In this model S1,S2,S3 and S4 are called accepting states because each and every system has equal capability, so we can start with any one of the system in the following model with S1 as the starting state. This model follows all the capabilities of the distributed system with the extension of the software reliability based on the concept of Program slicing.
verse Engineering (WCRE’05). Prof. J. T.Lallchandani Dr. Rajib Mall, “Computation of dynamic slices for object-oriented concurrent [8] programs”,Proceedings of the 12th Asia-Pacific Software Engineering Conference (APSEC’05) [9] Weiser M, “Program slicing”, Proc. ICSE 1981, San Diego, California, Mar. 9–12 1981, pp.439– 449. [10] kamala krithivasan,M. Sakthi Balan and Prahlad Harsha “Distributed Processing in Automata”, IJFCS,Vol. 10, 1999, pp.443– 463. [7]
7 CONCLUSION AND FUTURE WORK
C.Saravanakumar received B.E degree in Information Technology from Bharathidhasan University, Trichy, India, in 2003, and the M.E degree in Computer Science and Engineering from, Vinayaga Mission’s University, Salem, India, in 2007. Currently he is working as a senior lecturer in Rajalakshmi Engineering College, Chennai- India. He is a life member of Computer Society of India (CSI) and published many national and international research articles. His research interest are Cloud Computing and Software reliability.
So far the slicing concepts were implemented in different application areas. First, the program slicing concept was implemented over the composite data which described it in the non sharable environments. Second, the program slicing was implemented over the client server environment for the concurrent java programs. The above methods of implementation describe us different advantages as well as different disadvantages. These models are described using Finite state machine model [FSM Model]. This paper proposes the program slicing for the distributed systems which contains local and global types of slicing in order to extract the program statements at the client or the server side. The comparative study gives us an overall perspective of the slicing. In future the slicing can be implemented over the middleware technologies like RMI, CORBA etc.
C. Arun Chokkalingam received the B.E degree in Elec-
tronics and Communication engineering from Bharathidasan University, Trichy , India in 2002 and the M.E degree from Anna University, Chennai, India 2004. He acquired his PhD (VLSI design) in 2009 from College of Engineering Anna University, Chennai. Presently he is working as Asst. Professor in the department of ECE of Rajalakshmi Engineering College, Chennai, and Tamilnadu, India. His research in error correcting codes addresses effectively decoding algorithm and VLSI Architecture. His research interest including digital communication.
REFERENCES [1] [2]
[3] [4]
[5]
[6]
Benard M.Moret, “The Theory of Computation”, Pearson education, First Indian reprint,2002. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, “Introduction to Automata Theory languages, and Computation”, Third Edition., 2007. Martin, Introduction to languages, Theory of Computation , Tata McgrawHill, Third Edition., 2003. C.Saravanakumar et al, “Static Program Slicing for Composite data using FSM Model”, WASET ,Signapore August 2009. C.Saravanakumar , “Client-Server Model of Program Slicing for Concurrent Java Program using FSM Model and Synchronization Technique” , Proceedings of the ICETMCA 2010. Deji Fatiregun Mark Harman Robert M.Hierons,“Search–based amorphous slicing”, Proceedings of the 12th Working Conference on Re-
`