Anda di halaman 1dari 112

1a) PROGRAM SPECIFICATION:

Program to implement bit stuffing.

Description:
Bits stuffing is the framing method which includes the flag bytes (01111110) as frame delimiters to given data. On the sending side, any time five consecutive 1s have been transmitted from the body of the message (i.e., excluding when the sender is trying to transmit the distinguished 01111110 sequence),the sender inserts a 0 before transmitting the next bit. On the receiving side, should five consecutive 1s arrive, the receiver makes its decision based on the next bit it sees (i.e., the bit following the five 1s). If the next bit is a 0, it must have been stuffed, and so the receiver removes it. If the next bit is a 1, then one of two things is true: Either this is the end-of-frame marker or an error has been introduced into the bit stream. By looking at the next bit, the receiver can distinguish between these two cases: If it sees a 0 (i.e., the last eight bits it has looked at are 01111110), then it is the end-of frame marker; if it sees a 1 (i.e., the last eight bits it has looked at are 01111111), then there must have been an error and the whole frame is discarded. In the latter case, the receiver has to wait for the next 01111110 before it can start receiving again, and as a consequence, there is the potential that the receiver will fail to receive two consecutive frames.

Example:-

ALGORITHM: Step1: Start. Step2: Read the message frame. Step3: Insert 01111110 at the starting of the message frame. Step4: Check for five consecutive ones if found then insert zero bit (0) otherwise print the frame as it is. Step5: Repeat step 4 until end of the frame is reached. Step6: Insert 01111110 at the end of the frame. Step7: Print the stuffed data. Step8: Now remove the 01111110 from the starting of the stuffed data. Step9: Check for five consecutive ones if found then remove the followed zero. Step10: Repeat step9 until the 01111110 is encountered. Step11: Remove 01111110 from the ending of the frame. Step12: Print the destuffed data. Step13: Stop.

PROGRAM: #include<stdio.h> #include<string.h> #include<conio.h> main() { int a[50],b[50],i,j,count=0,n,c[]={0,1,1,1,1,1,1,0}; clrscr(); printf("Enter the length of the string:\n"); scanf("%d",&n); printf("Enter the string:\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); j=0; /* Stuffing */ for(i=0;i<8;i++) { b[j]=c[i]; j++; } for(i=0;i<n;i++) { if(a[i]==1) { b[j]=a[i]; count++; if(count==5) { b[j]=a[i]; j++; b[j]=0; count=0; } j++; } else { b[j]=a[i]; j++; count=0; } } for(i=0;i<8;i++) { b[j]=c[i];

j++; } n=j; printf("The frame after bit stuffing is:\n"); for(i=0;i<n;i++) printf("%d",b[i]); printf("\n"); /*Destuffing*/ count=j=0; for(i=8;i<n-8;i++) { if(b[i]==1) { a[j]=b[i]; count++; if(count==5) { i++; count=0; } j++; } else { a[j]=b[i]; j++; count=0; } } printf("The destuffed data is:\n"); for(i=0;i<j;i++) printf("%d",a[i]); getch(); }

INPUT1: Enter the length of the string: 15 Enter the string: 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 OUTPUT1: The frame after bit stuffing is: 011111101111101100111110101111110 The destuffed data is: 111111100111111 INPUT2: Enter the length of the string: 8 Enter the string: 1 1 1 1 1 1 1 1 OUTPUT 2: The frame after bit stuffing is: 0111111011111011101111110 The destuffed data is:

11111111

1b)PROBLEM SPECIFICATION: Program to implement character stuffing.

Description:
Character stuffing, is the another framing method which uses character bytes as the frame delimiters. Characters to indicate the start and end of a frame. For instance, use the two character sequence DLE STX (Data-Link Escape, Start of Text) to signal the beginning of a frame, and the sequence DLE ETX (End of Text) to ag the frames end. For occurrence of either DLE or STX or ETX in the data one DLE character is stuffed. The receiver reverses the processes, replacing every occurrence of DLE DLE with a single DLE

Example:-

ALGORITHM: Step 1: Start Step 2: Read the character string to be transmitted in upper case. Step 3: For stuffing process, append DLE STX as starting flag byte and end with DLE ETX as ending flag byte of the string. Step 4: Check the string whether it has DLE, STX, and ETX. Step 5: If yes then insert the string DLE before the character else transmit the next character Step 6: Continue this process until the completion of string. Step 7: Stuffed data is obtained. Step 8: In destuffing process, remove the appended string at start and end of string. Step 9: Check the stuffed string again whether it has DLE, STX, and ETX. Step 10: If yes then remove the string DLE that is encountered first else transmit the data. Step 11: Continue this process until the last character of string. Step 12: Original data has been obtained.

Step 13: Stop

PROGRAM: #include<stdio.h> #include<string.h> main() { char a[50],b[50],c[]={'D','L','E','','S','T','X'}, d[]={'D','L','E','','E','T','X'}; int i,n,j=0; clrscr(); printf("\n Enter the string in characters with in 50 characters:"); flushall(); gets(a); n=strlen(a); for(i=0;i<7;i++) { b[j]=c[i]; j++; } for(i=0;i<n;i++) { if((a[i]=='D'&& a[i+1]=='L'&& a[i+2]=='E')|| (a[i]=='S'&& a[i+1]=='T'&& a[i+2]=='X') ||(a[i]=='E'&&a[i+1]=='T'&&a[i+2]=='X')) { b[j++]='D';

b[j++]='L'; b[j++]='E'; b[j++]=''; } b[j]=a[i]; j++; } for(i=0;i<8;i++) { b[j]=d[i]; j++; } n=j; for(i=0;i<n-1;i++) { printf("%c",b[i]); } printf("\n The destuffed data is:"); i=0; for(j=7;j<n-8;j++) { if(b[j]=='D'&& b[j+1]=='L' && b[j+2]=='E') { j=j+4; a[i]=b[j]; i++; } else { a[i]=b[j]; i++; } } for(j=0;j<i;j++) { printf("%c",a[j]); } getch(); }

INPUT1: Enter the string in characters (only alphabets)with in 50 characters ETXWITHSTXCANDLE OUTPUT1: DLE STX DLEETXWITHDLESTXCANDLEDLE DLE ETX The destuffed data is:ETXWITHSTXCANDLE INPUT2:

Enter the string in characters (only alphabets)with in 50 characters STXETX OUTPUT2: DLE STX DLESTXDLEETX DLE ETX The destuffed data is: STXETX

2) PROGRAM SPECIFICATION:
Program to implement CRC

Description:
The most powerful redundancy check is the cyclic redundancy check. CRC is based on modulo-2 division. In CRC, instead of adding of bits to achieve a desired a desired parity a sequence of redundant bits, called the CRC or the CRC remainder, is appeared to the end of data unit so that the resulting data unit becomes exactly divisible by a second, predetermined binary number. At its destination the incoming data unit is divided by the same number. If at this step there is no remainder, the data unit is assumed to be intact and is therefore accepted. A remainder indicates that the data unit has been damaged in transit and therefore must be rejected. The redundancy bits used by CRC are derived by dividing the data unit by a predetermined divisor: The remainder is the CRC. To be valid, a CRC must have two qualities:

It must exactly one less bit than a divisor, and appending it to the end of the data string. It must make the resulting bit sequence exactly divisible by the divisor. Working of CRC: CRC generator and checker:

Process of doing CRC: Modulo-2 Division in CRC generator:

Modulo-2 Division in a CRC checker:

Department of I.T.

CN & Case Tools Lab Manual

Algorithm :
Step1: Start. Step2: Enter the binary information of a data F(x) Step3: Enter the divisor of a binary information P(x) Step4: Add sequence of redundant bits, to the end of data unit so that the resulting data unit becomes exactly divisible by a second, predetermined binary number. Step5: Divide the bit string corresponding to the data P(x) into the bit string corresponding to F(X) using Modulo 2 division Step6: In this step there is no remainder, the data unit is assumed to be correct and is therefore accepted. Step7: stop.

Dadi Institute of Engineering and Technology

Anakapalle

15

Department of I.T.

CN & Case Tools Lab Manual

PROGRAM: /*program for CRC calculation using binary strings*/ #include<stdio.h> #include"conio.h" void main() { int i,j,m,n,gen[15],rem[20],remr[20],temp[30],k,k1,fr[30]; clrscr(); printf("enter the size of m:"); scanf("%d",&m); printf("enter the size of n:"); scanf("%d",&n); printf("enter frame:\t"); for(i=0;i<m;i++) scanf("%d",&fr[i]); for(i=m;i<m+n-1;i++) fr[i]=0; for(i=0;i<m+n-1;i++) temp[i]=fr[i]; printf("enter generator:\t"); for(i=0;i<n;i++) scanf("%d",&gen[i]); for(k=0;k<m;k++) { if(fr[k]==1) { k1=k; for(i=0,j=k;i<n;i++,j++) rem[i]=fr[j]^gen[i]; for(i=0;i<n;i++) { fr[k1]=rem[i]; k1++; } } } printf("remainder at source is:\t"); for(i=0;i<n;i++) printf("%d",rem[i]); for(i=m;i<m+n-1;i++) temp[i]=rem[i-m+1]; for(k=0;k<m;k++) { if(temp[k]==1) { k1=k; for(i=0,j=k;i<n;i++,j++)
Dadi Institute of Engineering and Technology Anakapalle

16

Department of I.T.

CN & Case Tools Lab Manual

remr[i]=temp[j]^gen[i]; for(i=0;i<n;i++) { temp[k1]=remr[i]; k1++; } } } printf("\n remainder at receiver side is:\t"); for(i=0;i<n;i++) printf("%d",remr[i]); printf("\n frame received successfully"); getch(); } OUTPUT: enter the value of m:8 enter the value of n:13 enter frame: 1 0 0 0 1 0 0 1 enter generator: 1010000001101 remainder at source side is:0001100101101 remainder at receiver side is:0000000000000 frame received successfully

Dadi Institute of Engineering and Technology

Anakapalle

17

Department of I.T.

CN & Case Tools Lab Manual

//Program to implement crc polynomial #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" main() { char msg[50],gen[50],e; int a[30],b[30],c[30],t[30],i,j,m,n,l,k,p,count,temp; clrscr(); /* reading the degrees of polynomial */ printf("enter the higher degree of message polynomial:"); scanf("%d",&n); printf("enter the higher degree of generating polynomial:"); scanf("%d",&m); l=m+n; if(l<=25) { /* entering the message polynomial */ printf("enter the message polynomial:"); flushall(); gets(msg); for(i=0,j=0;i<strlen(msg);i++) { if(isdigit(msg[i])) { if(isdigit(msg[i+1])) { e=msg[i++]; temp=atoi(&e); e=msg[i]; t[j++]=temp*10+atoi(&e); } else { e=msg[i]; t[j++]=atoi(&e); } } } t[j]=-1; for(i=0;i<n;i++) a[i]=0; for(i=0;t[i]!=-1;i++)
Dadi Institute of Engineering and Technology Anakapalle

18

Department of I.T.

CN & Case Tools Lab Manual

{ k=t[i]; a[k]=1; } for(i=n;i>=0;i--) printf("%d",a[i]); /* enter the generator polynomial */ printf("\n enter the generator polynomial:"); flushall(); gets(gen); for(i=0,j=0;i<strlen(gen);i++) { if(isdigit(gen[i])) { if(isdigit(gen[i+1])) { e=gen[i++]; temp=atoi(&e); e=gen[i]; t[j++]=temp*10+atoi(&e); } else { e=gen[i]; t[j++]=atoi(&e); } } } t[j]=-1; for(i=0;i<m;i++) b[i]=0; for(i=0;t[i]!=-1;i++) { k=t[i]; b[k]=1; } for(i=m;i>=0;i--) printf("%d",b[i]); printf("\n the encrypted message polynomial:"); for(i=0;i<m;i++) { c[i]=0; } for(j=0;j<=n;j++) { c[i++]=a[j]; } for(i=l;i>=0;i--) printf("%d",c[i]);
Dadi Institute of Engineering and Technology Anakapalle

19

Department of I.T.

CN & Case Tools Lab Manual

/* CRC process */ k=l; while(k>=0) { count=i=0; for(j=m;j>=0;j--) { if(((b[j]==1)&&(c[k-i]==1))||((b[j]==0)&&(c[k-i]==0))) { c[k-i]=0; } else { c[k-i]=1; } i++; } for(i=k;i>=0;i--) { if(c[i]==0) count++; else break; } k=k-count; if((k-m)<0) break; } i=m; printf("\n the checksum code (CRC) is:"); for(j=m-1;j>=0;j--) printf("%d",c[j]); for(j=0;j<=n;j++) c[i++]=a[j]; printf("\n the CRC code is:"); for(i=l;i>=0;i--) printf("%d",c[i]); } else printf("you have entered invalid highest degrees"); /* at receiver */ k=l; while(k>=0) { count=i=0; for(j=m;j>=0;j--) { if(((b[j]==1)&&(c[k-i]==1))||((b[j]==0)&&(c[k-i]==0))) c[k-i]=0;
Dadi Institute of Engineering and Technology Anakapalle

20

Department of I.T.

CN & Case Tools Lab Manual

else c[k-i]=1; i++; } for(i=k;i>=0;i--) { if(c[i]==0) count++; else break; } k=k-count; if((k-m)<0) break; } i=m; printf("\n the check sum result(CRC) is:"); for(j=m-1;j>=0;j--) printf("%d",c[j]); for(j=m-1;j>=0;j--) { if(c[j]==0) { } else { printf("\n there is an error"); exit(0); } } printf("\n there is no error"); getch(); }

output
Dadi Institute of Engineering and Technology Anakapalle

21

Department of I.T.

CN & Case Tools Lab Manual

enter the higher degree of message polynomial:8 enter the higher degree of generating polynomial:12 enter the message polynomail:x^8+x^7+x^5+x^2+x^0 110100101 enter the generator polynomial:x^12+x^10+x^3+x^2+x^0 1010000001101 the encrypted message polynomial:110100101000000000000 the check sum code (CRC) is:110000011101 the CRC code is:110100101110000011101 the check sum result (CRC) is:000000000000 there is no error

3) PROBLEM SPECIFICATION:
Dadi Institute of Engineering and Technology Anakapalle

22

Department of I.T.

CN & Case Tools Lab Manual

Program to implement Dijkastra Shortest path routing algorithm.

Description:
Each machine is known as a node. Each node has a cost and a value. A pointer to the node that is before it in the path being taken. A state [permanent or tentative]. Initially each node if given a state of tentative, a pointer to null and, a cost value of infinity. The source node is marked as permanent and its cost value as 0 and pointer still to null. The source node then calculates the cost values to the nodes that it can reach and assigns the cost values of these nodes to the values calculated, the pointer of these nodes now points to the source node. After this is done the tentative node with the lowest no-infinity cost value (regardless of what it's pointer points to) is marked permanent and the whole process is performed again with this newly marked-permanent node. When the goal is reached, the total cost of the path is the cost value in the cost value field in the node. To find the route taken to achieve this shortest path simply work back from the pointers in the nodes starting with the goal node.

ALGORITHM:
Dadi Institute of Engineering and Technology Anakapalle

23

Department of I.T.

CN & Case Tools Lab Manual

Step1: Enter the number of nodes of the subnet and the node names. Step2: Enter the cost between each and every node in the subnet. Step3: Enter the source node and destination node for the subnet. Step4:Calculate the shortest distance from source node to every other nodes. Step5: Print the shortest distance from source node to destination. Step6: Print the path from source to destination.

Program:
#include<stdio.h>
Dadi Institute of Engineering and Technology Anakapalle

24

Department of I.T.

CN & Case Tools Lab Manual

#include<conio.h> struct str { int a; char s; }sp[10]; void main() { int ar[20][20],n,i,j,k,f=0,s,e; char st[20]; char rev[10]; clrscr(); printf("enter the no. of nodes:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("enter %d node name:",i); scanf("%s",&st[i]); } for(i=0;i<n;i++) for(j=0;j<n;j++) { printf(enter%d%delements:,i,j); scanf("%d",&ar[i][j]); } for(i=0;i<n;i++) sp[i].a=0; i=0; while(i!=n) { for(j=0;j<n;j++) { if(ar[i][j]!=0&&(sp[j].a>ar[i][j]+sp[i].a||sp[j].a==0)) { if(sp[j].a!=0) f=1; sp[j].a=sp[i].a+ar[i][j]; sp[j].s=st[i]; if(f==1 && i>j) break; } } if(f==1 && i>j) i=j; else i++; f=0; } printf("the Shortest distance is %d",sp[n-1].a); rev[0]=st[n-1]; for(i=n-1,j=1;sp[i].s!=st[0];) { rev[j]=sp[i].s; for(k=0;k<n;k++) if(sp[i].s==st[k]) break;
Dadi Institute of Engineering and Technology Anakapalle

25

Department of I.T.

CN & Case Tools Lab Manual

i=k; j++; } printf("\n Shortest path is %c",st[0]); for(i=j-1;i>=0;i--) { printf("--> %c",rev[i]); } getch(); }

Output :
enter the no. of nodes:6
Dadi Institute of Engineering and Technology Anakapalle

26

Department of I.T.

CN & Case Tools Lab Manual

enter 0 node name:a enter 1 node name:b enter 2 node name:c enter 3 node name:d enter 4 node name:e enter 5 node name:f enter the subnet edges weights 010200 101000 010110 201020 001203 000030 the Shortest distance is 6 Shortest path is a--> b--> c--> e--> f Output2: Enter the no. of nodes:8 Enter 0 node name:a Enter 1 node name:b Enter 2node name:c Enter 3 node name:e Enter 4 node name:f Enter 5 node name:g Enter 6 node name:h Enter 7 node name:d Enter 00 elements:0 Enter 01 elements:2 Enter 02 elements:0 Enter 03 elements:0 Enter 04 elements:0 Enter 05 elements:6 Enter 06 elements:0 Enter 07 elements:0 Enter 10 elements:2 Enter 11 elements:0 Enter 12 elements:7 Enter 13 elements:2 Enter 14 elements:0 Enter 15 elements:0 Enter 16 elements:0 Enter 17 elements:0 Enter 20 elements:0 Enter 21 elements:7 Enter 22 elements:0 Enter 23 elements:0 Enter 24 elements:3 Enter 25 elements:0 Enter 26 elements:0
Dadi Institute of Engineering and Technology Anakapalle

27

Department of I.T.

CN & Case Tools Lab Manual

Enter 27 elements:3 Enter 30 elements:0 Enter 31 elements:2 Enter 32 elements:0 Enter 33 elements:0 Enter 34 elements:2 Enter 35 elements:1 Enter 36 elements:0 Enter 37 elements:0 Enter 40 elements:0 Enter 41 elements:0 Enter 42 elements:3 Enter 43 elements:2 Enter 44 elements:0 Enter 45 elements:0 Enter 46 elements:2 Enter 47 elements:0 Enter 50 elements:6 Enter 51 elements:0 Enter 52 elements:0 Enter 53 elements:1 Enter 54 elements:0 Enter 55 elements:0 Enter 56 elements:4 Enter 57 elements:0 Enter 60 elements:0 Enter 61 elements:0 Enter 62 elements:0 Enter 63 elements:0 Enter 64 elements:2 Enter 65 elements:4 Enter 66 elements:0 Enter 67elements:2 Enter 70 elements:0 Enter 71elements:0 Enter 72 elements3: Enter 73 elements:0 Enter 74 elements:0 Enter 75 elements:0 Enter 76 elements:2 Enter 77 elements:0 The shortest distance is 10 Shortest path is a->b->e->f->h->d

4:Problem specification:
Dadi Institute of Engineering and Technology Anakapalle

28

Department of I.T.

CN & Case Tools Lab Manual

To obtain routing table art each node using Distance vector routing algorithm by taking subnet graph with weights indicating delay between nodes.

Description:
The Distance Vector Routing Algorithm is also known as Bellman-ford routing algorithm and Ford-Fulkerson algorithm. Distance vector routing algorithm is a dynamic algorithm, it operates by having

each router maintain a table giving best known distance to each destination and which line to use to get there. These tables are updated by exchanging information with the neighbors. In this

algorithm each router maintains a routing table indexed by, and containing one entry for each router in subnet. This entry contains two parts: The preferred outgoing line to use for that destination An estimate of the time or distance to the destination. The metric used might be number of hops, time delay in milliseconds, total

number of packets queued along the path. The router is assumed to know the distance to each of its neighbors. If the metric is

hops, the distance is just one hop. If the metric is queue length, the router simply examines each queue.

Dadi Institute of Engineering and Technology

Anakapalle

29

Department of I.T.

CN & Case Tools Lab Manual

Example:

Dadi Institute of Engineering and Technology

Anakapalle

30

Department of I.T.

CN & Case Tools Lab Manual

Algorithm :
Step1: Start. Step2: Enter the number of nodes in subnet. Step3: Read the source node. Step4: Enter the number of neighbor nodes. Step5: Enter the data into the neighboring vector tables. Step6: Read the estimated delays to neighbors. Step7: Calculate the route from source to all other nodes in the subnet and enter values into vector table of source node. Step8: Stop.

Dadi Institute of Engineering and Technology

Anakapalle

31

Department of I.T.

CN & Case Tools Lab Manual

Program:
#include<stdio.h> #include<ctype.h> int graph[12][12]; int e[12][12],d[12]; int ad[12],temp[20]; int no,id,adc,small,chosen,total; char nodes[12]={'a','b','c','d','e','f','g','h','i','j','k','l'}; int main() { int i,j; adc=0; clrscr(); printf("enter the no nodes"); scanf("%d",&no); printf("enter the value for adjacency matrix\n"); for(i=0;i<no;i++) { for(j=0;j<no;j++) { scanf("%d",&graph[i][j]); } } printf("\nfor which node vector table be built(1-a)(2-b)..."); scanf("%d",&id); id--; adc=0; printf("neighbours for particular node\n"); for(i=0;i<no;i++) { if(graph[id][i]==1) { ad[adc]=i; adc++; printf("\t%c",nodes[i]); } } printf("\nevter vector tables for neighbours\n"); for(i=0;i<no;i++) { for(j=0;j<adc;j++) { scanf("%d",&e[i][j]); } } printf("\nenter estimated delays to neighbours\n");
Dadi Institute of Engineering and Technology Anakapalle

32

Department of I.T.

CN & Case Tools Lab Manual

for(i=0;i<adc;i++) { scanf("%d",&d[i]); } for(i=0;i<no;i++) { if(id!=i) { small=100; chosen=-1; for(j=0;j<adc;j++) { int total=e[i][j]+d[j]; if(total<small) { small=total; chosen=j; } } e[id][i]=small; printf("\n shortest estimate to %c is %d\t%c",nodes[i], small,nodes[ad[chosen]]); } else { e[id][i]=0; printf("\n shortest estimate to %c is %d\t nil",nodes[i],e[id][i]); } } for(i=0;i<no;i++) { printf("\n"); for(j=0;j<no;j++) printf(" %d",e[i][j]); printf("\n"); } getch(); }

Output 1:
enter the no nodes 7 enter the value for adjacency matrix 0101100 1010000 0101001 1010101 1001010
Dadi Institute of Engineering and Technology Anakapalle

33

Department of I.T.

CN & Case Tools Lab Manual

0000101 0011010 for which node vector table be built(1-a)(2-b)...3 neighbours for particular node b d g evter vector tables for neighbours 12 19 11 0 34 23 19 23 18 31 0 15 22 37 19 16 17 9 28 15 0 enter estimated delays to neighbours 8 6 9 shortest estimate to a is 20 b shortest estimate to b is 8 b shortest estimate to c is 0 nil shortest estimate to d is 6 d shortest estimate to e is 28 g shortest estimate to f is 18 g shortest estimate to g is 9 g 12 19 11 0 0 0 0 0 34 23 0 0 0 0 20 8 0 6 28 18 9 31 0 15 0 0 0 0 22 37 19 0 0 0 0 16 17 9 0 0 0 0 28 15 0 0 0 0 0

Dadi Institute of Engineering and Technology

Anakapalle

34

Department of I.T.

CN & Case Tools Lab Manual

Output2: Enter the no. of nodes:12 Enter the value for adjency matrix 010010000100 101000100000 010110000000 001000010000 101001001000 000010100000 010001010000 000100100101 000010000100 100000011010 000000000101 000000010010 For which node vector table to be built (1-a)(2-b)10 Neighbours for particular node AhIk Enter vector tables for neighbours 0 20 24 21 12 31 36 28 25 19 18 36 40 8 27 24 14 30 7 22 23 19 20 40 18 6 31 31 17 0 20 19 21 14 0 22 9 7 11 10 24 22 22 0 29 9 33 9 Enter estimated delays to neighbours 8 12 10 6 Shortest estimate to a is 8 a Shortest estimate to b is 20 a Shortest estimate to c is 28 i Shortest estimate to d is 20 h Shortest estimate to e is 17 i Shortest estimate to f is 30 i Shortest estimate to g is 18 h Shortest estimate to h is 12 h Shortest estimate to i is 10 i Shortest estimate to j is 0 nil Shortest estimate to k is 6 k Shortest estimate to l is 15 k 0 20 24 21 0 0 0 0 0 0 0 0 12 31 36 28 0 0 0 0 0 0 0 0 25 19 18 36 0 0 0 0 0 0 0 0
Dadi Institute of Engineering and Technology Anakapalle

35

Department of I.T.

CN & Case Tools Lab Manual

40 8 27 24 0 0 0 0 0 0 0 0 14 30 7 22 0 0 0 0 0 0 0 0 23 19 20 40 0 0 0 0 0 0 0 0 18 6 31 31 0 0 0 0 0 0 0 0 17 0 20 19 0 0 0 0 0 0 0 0 21 14 0 22 0 0 0 0 0 0 0 0 8 20 28 20 17 30 18 12 10 0 6 15 24 22 22 0 0 0 0 0 0 0 0 0 29 9 33 9 0 0 0 0 0 0 0 0 0

Dadi Institute of Engineering and Technology

Anakapalle

36

Department of I.T.

CN & Case Tools Lab Manual

5) PROBLEM SPECIFICATION: Program to implement Broadcast routing algorithm.

Description:
Sending a packet to all destinations simultaneously is called broadcasting. There are various methods for implementing broadcasting algorithm 1) Subnet 2) Flooding 3) Multicasting Routing 4) Spanning Tree 5) Reverse Path Forwarding

Subnet: One broadcasting method is that requires no special features form the subnet is for the source to simply send a distinct packet to each destination. These methods need more bandwidth and in this method the source require a complete list of all destinations.

Flooding: It is a point to point communication, the problem with this method is it generates too many packets and consumes too much bandwidth.

Multicasting routing: In this method each packet contains either a list of destinations or bit map indicating the desired destinations. When a packet arrives at the router it checks all destinations to determine the set of output lines that will be needed. The router generates a new copy of the packet for each output line to be used and includes in each packet only those destinations that are to use the line.

Dadi Institute of Engineering and Technology

Anakapalle

37

Department of I.T.

CN & Case Tools Lab Manual

In effect the destination set is partitioned among the output lines. Span tree: Spanning tree is a subnet of the subnet that includes all the routers but contains no loops. If each router knows which of its line belong to the spanning tree, it can copy an incoming broadcast packet onto all the spanning tree lines except the one it arrived on. Reverse path forwarding: When a broadcast packet arrives at a router, the router checks to see if the packet arrived on the line that is normally used for sending packets to the source of the broadcast. Example:

Dadi Institute of Engineering and Technology

Anakapalle

38

Department of I.T.

CN & Case Tools Lab Manual

ALGORITHM: Step1: Enter the number of nodes n of the subnet and their node names. Step2: Enter the link between each and every node in the subnet. Step3: Enter the root node in the subnet and say hop count as 0 and kept in visited array. Step4: Compute the links from node and increment hop count by 1 and kept visited array. Step5: Repeat step4 until all nodes are visited without forming any cycles. Step6: Stop the process when all nodes are visited.

Dadi Institute of Engineering and Technology

Anakapalle

39

Department of I.T.

CN & Case Tools Lab Manual

PROGRAM: #include<stdio.h> #include<conio.h> main() { inti,j,n,link[20][20],c=0,hop=0 ,sn,count=1,flag[30],root; chars,nname[20]; clrscr(); printf("\nEnter the number of nodes:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("\nEnter %d node name:",i); scanf("%s",&nname[i]); } for(i=0;i<n;i++) { for(j=i;j<n;j++) { if(i==j) link[i][j]=0; else{ printf("\nEnter link between %c to %c :",nname[i],nname[j]); scanf("%d",&link[i][j]); link[j][i]=link[i][j]; } } } printf("\nEnter the source node name & number:"); s=getche(); scanf("%d",&sn); for(i=0;i<n;i++) { flag[i]=0; } printf("The matrix representation for the graph is:\n"); printf("\t\t"); for(i=0;i<n;i++) { printf("%c\t",nname[i]); }printf("\n"); for(i=0;i<n;i++) { printf("\t%c",nname[i]); for(j=0;j<n;j++) { printf("\t%d ",link[i][j]); } printf("\n");
Dadi Institute of Engineering and Technology Anakapalle

40

Department of I.T.

CN & Case Tools Lab Manual

} printf("\nAt Hop count %d:%c",hop,s); root=sn;flag[root]=1; hop++; while(count!=0) { for(i=0;i<n;i++) { if(link[root][i]!=0 && flag[root]==1 && flag[i]!=1) { printf("\nAt Hop count %d:%c->%c",hop,nname[root],nname[i]); flag[i]=1;c++; } } if(c!=0) { hop++;c=0; } if(root<n-1) root++; else root=0; for(i=0;i<n;i++) { if(flag[i]==0) break; } if(i==n) count=0; } getch(); }

Dadi Institute of Engineering and Technology

Anakapalle

41

Department of I.T.

CN & Case Tools Lab Manual

INPUT1: Enter the number of nodes: 5 Enter node 0 name: a Enter node 1 name: b Enter node 2 name: c Enter node 3 name: d Enter node 4 name: e Enter link between a and b: 1 Enter link between a and c: 1 Enter link between a and d: 0 Enter link between a and e: 0 Enter link between b and c: 1 Enter link between b and d: 1 Enter link between b and e: 0 Enter link between c and d: 1 Enter link between c and e: 0
Enter link between d and e: 1

Enter the source node name and number: a 0 OUTPUT1: The matrix representation for the graph is: a b c d e a 0 1 1 0 0 b 1 0 1 1 0 c 1 1 0 1 0 d 0 1 0 0 1 e 0 0 0 1 0 At Hop count 0: a At Hop count 1: ab At Hop count 1: ac At Hop count 2: bd At Hop count 3: de

Dadi Institute of Engineering and Technology

Anakapalle

42

Department of I.T.

CN & Case Tools Lab Manual

Input2:
enter the number of nodes:3 enter node 0 name:a enter node 1 name:b enter node 2 name:c enter link between a and b:1 enter link between a and c:0 enter link between band c:1 enter source node name and number:b 0 the matrix representation for the graph is a b c a 010 b 101 c 010 at hop count 0:b at hop count 1:b->a at hop count:b->c

Dadi Institute of Engineering and Technology

Anakapalle

43

Department of I.T.

CN & Case Tools Lab Manual

6) PROBLEM SPECIFICATION: Program to implement Data Encryption Standard.

Description:
The presentation layer deals with syntax and grammatical rules for presenting data to the application layer (not the user). This includes encoding, decoding and otherwise converting data. It is responsible for the following. Character sets Compression and decompression of data Encrypts and decrypts data Bit order translation Byte order translation File structure

Encrypts and decrypts data moving data over a network safe from prying eyes is the job of encryption. There are many methods available for this including DES, RSA and SSL and public/private key schemes.

Symmetric (Private Key) Cryptography DES (Data Encryption Standard) 56-bit key IDEA (International Data Encryption Algorithm) 128-bit key AES (Advanced Encryption Standard) RC4, RC5, Skipjack. DES: Data Encryption Standard DES is the most popular symmetric key encryption method. It is based on research by IBM. Standardized by the USA government in 1977. Complex series of bit substitutions, permutation and re-combinations Basic DES: 56-bit keys Crackable in hours using specialized hardware

Dadi Institute of Engineering and Technology

Anakapalle

44

Department of I.T.

CN & Case Tools Lab Manual

Triple DES: effective 112-bit key Three stages of encryption with two keys o Uncrackable by known technique

Advantages: fast, cipher text secures. Disadvantages: must distribute key in advance, key must not be divulged.

Dadi Institute of Engineering and Technology

Anakapalle

45

Department of I.T.

CN & Case Tools Lab Manual

ALGORITHM: Step 1: START Step 2: Enter the 8 bit plain text and 10 bit key. Step 3: The given key is divided into two halves one left and the other right and the halves are applied to the left shift. Step 4: The given plain text is also divided into two halves and right half is applied to Expansion table. Step 5: The plain text is then xor with the key. Step 6: Now the value is applied to the substitution boxes. Step 7: Now the permutation is applied. Step 8: The obtained value is xor with the left half of plain text and this becomes the Right half for the next DES and the right half becomes left half for next DES. Step 9: Now the cipher text is taken and the plain text is generated. By the process which is exactly opposite to the process of Encryption Step10: STOP

Dadi Institute of Engineering and Technology

Anakapalle

46

Department of I.T.

CN & Case Tools Lab Manual

PROGRAM: #include<stdio.h> #include<conio.h> #include<math.h> static char a[10],pp[10],z[10],k[10],ak[10],rp[10]; static char bk[10],k1[10],k2[10],ap[10],bp[10]; static char k1[10],b[10],rk[10],x[10],ax[10],c[10],s[10],tem[10],p10[10]; char i,j,s0[4][4],s1[4][4],kk[10],rr[10],bp1[10]; int y1,y2; xor(char d,char d1) { if(d==d1) return('0'); else return('1'); } lr(char x[],int x1) { for(i=0;i<5;i++) z[i]=x[i]; for(i=0;i<4;i++) x[i]=z[i+1]; x[i]=z[0]; x1--; if(x1!=0) lr(x,x1); } key() { a[0]=bk[0]; a[1]=ak[2]; a[2]=bk[1]; a[3]=ak[3]; a[4]=bk[2]; a[5]=ak[4]; a[6]=bk[4]; a[7]=bk[3]; } ep() { b[0]=bp[3]; b[1]=bp[0]; b[2]=bp[1];
Dadi Institute of Engineering and Technology Anakapalle

47

Department of I.T.

CN & Case Tools Lab Manual

b[3]=bp[2]; b[4]=bp[1]; b[5]=bp[2]; b[6]=bp[3]; b[7]=bp[0]; } ss(char e,char f) { if((e=='0')&&(f=='0')) return(0); if((e=='0')&&(f=='1')) return(1); if((e=='1')&&(f=='0')) return(2); if((e=='1')&&(f=='1')) return(3); } s1s(char m) { if(m=='0') { kk[0]='0';kk[1]='0'; } if(m=='1') { kk[0]='0';kk[1]='1'; } if(m=='2') { kk[0]='1';kk[1]='0'; } if(m=='3') { kk[0]='1';kk[1]='1'; } } p1(char x[]) { ax[0]=x[1]; ax[1]=x[3]; ax[2]=x[2]; ax[3]=x[0]; } sos() { rk[0]=k[2]; rk[1]=k[4];
Dadi Institute of Engineering and Technology Anakapalle

48

Department of I.T.

CN & Case Tools Lab Manual

rk[2]=k[1]; rk[3]=k[6]; rk[4]=k[3]; rk[5]=k[9]; rk[6]=k[0]; rk[7]=k[8]; rk[8]=k[7]; rk[9]=k[5]; printf("\n rearranged key:"); for(i=0;i<5;i++) { ak[i]=rk[i]; printf("%3c",rk[i]); } for(i=5,j=0;i<10;i++,j++) { bk[j]=rk[i]; printf("%3c",rk[i]); } lr(ak,1); lr(bk,1); printf("\n key1;"); key(); for(i=0;i<8;i++) { k1[i]=a[i]; printf("%3c",a[i]); } lr(ak,2); lr(bk,2); key(); printf("\n key2:"); for(i=0;i<8;i++) { k2[i]=a[i]; printf("%3c",a[i]); } } prg(char p[]) { rp[0]=p[1]; rp[1]=p[5]; rp[2]=p[2]; rp[3]=p[0]; rp[4]=p[3]; rp[5]=p[7]; rp[6]=p[4]; rp[7]=p[6];
Dadi Institute of Engineering and Technology Anakapalle

49

Department of I.T.

CN & Case Tools Lab Manual

printf("\n rearranged plain text:"); for(i=0;i<8;i++) printf("%3c",rp[i]); for(i=0;i<4;i++) ap[i]=rp[i]; for(i=4,j=0;i<8;i++,j++) bp[j]=rp[i]; ep(); printf("\n e/p:"); for(i=0;i<8;i++) { bp[i]=b[i]; printf("%3c",bp[i]); } printf("\n xor;"); for(i=0;i<8;i++) { c[i]=xor(bp[i],k1[i]); printf("%3c",c[i]); } [0][0]='1'; s0[0][1]='0'; s0[0][2]='3'; s0[0][3]='2'; s0[1][0]='3'; [1][1]='2'; s0[1][2]='1'; [1][3]='0'; s0[2][0]='0'; s0[2][1]='2'; s0[2][2]='1'; s0[2][3]='3'; s0[3][0]='3'; s0[3][1]='1'; s0[3][2]='3'; s0[3][3]='2'; s1[0][0]='0'; s1[0][1]='1'; s1[0][2]='2'; s1[0][3]='3'; s1[1][0]='2'; s1[1][1]='0'; s1[1][2]='1'; s1[1][3]='3'; s1[2][0]='3'; s1[2][1]='0'; s1[2][2]='1'; s1[2][3]='0'; s1[3][0]='2';
Dadi Institute of Engineering and Technology Anakapalle

50

Department of I.T.

CN & Case Tools Lab Manual

s1[3][1]='1'; s1[3][2]='0'; s1[3][3]='3'; y1=ss(c[0],c[3]); =ss(c[1],c[2]); s1s(s0[y1][y2]); for(i=0;i<2;i++) s[i]=kk[i]; y1=ss(c[4],c[7]); y2=ss(c[5],c[6]); s1s(s1[y1][y2]); for(i=0,j=2;i<2;i++,j++) s[j]=kk[i]; p1(s); printf("\n p4:"); for(i=0;i<4;i++) { s[i]=ax[i]; printf("%3c",s[i]); } for(j=0;j<4;j++) { rp[j]=xor(s[j],ap[j]); } for(i=0;i<4;i++) { bp[i]=rp[i]; bp1[i]=rp[i]; } for(i=4,j=0;i<8;i++,j++) ap[j]=rp[i]; ep(); printf("\n e/p:"); for(i=0;i<8;i++) { bp[i]=b[i]; printf("%3c",bp[i]); } printf("\n xor:"); for(i=0;i<8;i++) { c[i]=xor(bp[i],k2[i]); printf("%3c",c[i]); } y1=ss(c[0],c[3]); y2=ss(c[1],c[2]); s1s(s0[y1][y2]); for(i=0;i<2;i++)
Dadi Institute of Engineering and Technology Anakapalle

51

Department of I.T.

CN & Case Tools Lab Manual

s[i]=kk[i]; y1=ss(c[4],c[7]); y2=ss(c[5],c[6]); (s1[y1][y2]); for(i=0,j=2;i<2;i++,j++) s[j]=kk[i]; p1(s); printf("\n p4:"); for(i=0;i<4;i++) { s[i]=ax[i]; printf("%3c",s[i]); } printf("\n IP inverse;"); for(i=0;i<4;i++) { rp[i]=xor(s[i],ap[i]); printf("%3c",rp[i]); } for(j=0,i=4;i<8;j++,i++) { rp[i]=bp1[j]; printf("%3c",rp[i]); } rr[0]=rp[3]; rr[1]=rp[0]; rr[2]=rp[2]; rr[3]=rp[4]; rr[4]=rp[6]; rr[5]=rp[1]; rr[6]=rp[7]; rr[7]=rp[5]; printf("\n cipher text:"); for(i=0;i<8;i++) printf("%3c",rr[i]); for(i=0;i<8;i++) { tem[i]=k1[i]; k1[i]=k2[i]; k2[i]=tem[i]; } } main() { intch,na; clrscr(); do {
Dadi Institute of Engineering and Technology Anakapalle

52

Department of I.T.

CN & Case Tools Lab Manual

printf("\nenterur choice:"); printf("1-->encryption 2-->decryption 3-->exit:"); scanf("%d",&ch); switch(ch) { case 1: printf("enter 8 bit plain text:"); scanf("%s",&p10); printf("enter 10 bit key:"); scanf("%s",&k); na='2'; sos(); prg(p10); break; case 2: if(na!='2') printf("\n decryption is not possible without encryption"); else prg(rr); break; case 3: exit(); } } while(ch<3); getch(); }

Dadi Institute of Engineering and Technology

Anakapalle

53

Department of I.T.

CN & Case Tools Lab Manual

OUTPUT 1: Enter ur choice: 1encryption 2decryption 3exit:1 Enter 8 bit plain text: 11100010 Enter the 10 bit key: 0011001010 Rearranged key: 1 0 0 1 1 0 0 1 0 0 Key 1:0 1 1 10 1 10 0 Key 2:0 1 0 0 0 0 1 0 Rearranged plain text:1 0 1 1 0 0 0 1 e/p : 1 0 0 0 0 0 1 0 xor: 1 1 1 1 0 1 1 0 p4: 0 1 1 1 e/p:0 1 1 0 1 0 0 1 xor: 0 0 1 0 1 0 1 1 p4: 0 1 0 0 IP inverse: 0 1 0 1 1 1 0 0 Cipher text: 1 0 0 1 0 1 0 1 OUTPUT 2: Enter ur choice: 1encryption 2decryption 3exit:1 Enter 8 bit plain text: 10101010 Enter the 10 bit key: 0101010101 Rearranged key: 0 0 1 0 1 1 0 0 1 1 Key 1:0 0 0 1 1 0 1 1 Key 2:0 1 0 1 1 0 0 Rearranged plain text:0 0 1 1 0 0 e/p : 1 0 0 1 0 1 1 0 xor: 1 0 0 0 1 1 0 1 p4: 0 0 0 0 e/p:1 0 0 1 0 1 1 0 xor: 0 0 1 1 1 0 1 0 p4: 0 0 0 1 IP inverse: 0 0 1 0 0 0 1 1 Cipher text: 0 0 1 0 1 0 1 0

Dadi Institute of Engineering and Technology

Anakapalle

54

Department of I.T.

CN & Case Tools Lab Manual

8) PROBLEM SPECIFICATION: Using RSA algorithm Encrypt a text data and Decrypt the same.

Description:
By Rivest, Shamir & Adleman of MIT in 1977. best known & widely used public-key scheme. based on exponentiation in a finite (Galois) field over integers modulo a prime no. exponentiation takes O((log n)3) operations (easy) Uses large integers (eg. 1024 bits) Security due to cost of factoring large numbers nb. factorization takes O(e log n log log n) operations (hard)

RSA Key Setup: Each user generates a public/private key pair by: selecting two large primes at random - p, q computing their system modulus N=p.q Note (N)=(p-1)(q-1) selecting at random the encryption key e where 1<e<(N), gcd(e,(N))=1 Solve following equation to find decryption key d ed=1 mod (N) and 0dN Publish their public encryption key: KU={e,N} Keep secret private decryption key: KR={d,p,q}

RSA Use: to encrypt a message M the sender: obtains public key of recipient KU={e,N} computes: C=Me( mod N), where 0M<N to decrypt the ciphertext C the owner:
Anakapalle

Dadi Institute of Engineering and Technology

55

Department of I.T.

CN & Case Tools Lab Manual

uses their private key KR={d,p,q} computes: M=Cd (mod N) Note that the message M must be smaller than the modulus N (block if needed)

RSA Security: three approaches to attacking RSA: brute force key search (infeasible given size of numbers) mathematical attacks (based on difficulty of computing (N), by factoring modulus N) timing attacks (on running of decryption)

Example of RSA Algorithm:

Dadi Institute of Engineering and Technology

Anakapalle

56

Department of I.T.

CN & Case Tools Lab Manual

ALGORITHM: STEP 1: START STEP 2: Enter the two prime numbers namely p and q. STEP 3: Choose a e value which is less than0 (n), where 0(n) =(p-1)(q-1) STEP 4: Now the d value will be obtained from the e value basing on formula D=e- 1mod(0(n)) STEP 5: Now the plain text is to be entered and the cipher text is obtained by formula C=M^e mod n, where n=pq. STEP 6: The decryption also takes place in opposite way. STEP 7: STOP.

Dadi Institute of Engineering and Technology

Anakapalle

57

Department of I.T.

CN & Case Tools Lab Manual

PROGRAM:/*RSA algorithm */ #include<stdio.h> #include<conio.h> int i,c,p,q,e,d,s,ch,phi,M,n; encrypt(); decrypt(); void main() { clrscr(); printf("enter two relative primes:"); scanf("%d%d",&p,&q); printf("enter the value of e:"); scanf("%d",&e); n=p*q; phi=(p-1)*(q-1); d=1; do{ s=(d*e)%phi; d++; }while(s!=1); d=d-1; printf("\npublic key:%d\t%d",e,n); printf("\nprivate key:%d\t%d",d,n); printf("\nenter the plain text:"); scanf("%d",&M);
Dadi Institute of Engineering and Technology Anakapalle

58

Department of I.T.

CN & Case Tools Lab Manual

do { printf("\nenter your choice: 1.encrypt 2.decrypt :"); scanf("%d",&ch); switch(ch) { case 1:encrypt(); break; case 2:decrypt(); break; default:printf("invalid choice,.."); exit(0); } }while(ch!=3); getch(); } encrypt() { int i; c=1; for(i=0;i<e;i++) c=c*M%n; c=c%n; printf("\ncipher text:%d",c); } decrypt() { M=1; for(i=0;i<d;i++) M=M*c%n; M=M%n; printf("\nplain text:%d",M); }

Dadi Institute of Engineering and Technology

Anakapalle

59

Department of I.T.

CN & Case Tools Lab Manual

Output:enter two relative primes:17 11 enter the value of e:7 public key:7 187 private key:23 187 enter the plain text:88 enter your choice: 1.encrypt 2.decrypt:1 ciphet text:11 enter your choice: 1.encrypt 2.decrypt:2 plain text:88 enter your choice: 1.encrypt 2.decrypt:6 invalid choice...

Dadi Institute of Engineering and Technology

Anakapalle

60

Department of I.T.

CN & Case Tools Lab Manual

UML (Unified Modeling Language)


UML is a language used for visualizing, specifying, constructing and documenting the artifacts of software intensive system.UML makes a clear conceptual distinction between models, views and diagrams. A Model is an element that contains information for a software model. A View is a visual expression of the information contained in a model, and A Diagram is a collection of view elements that represent the users specific design thoughts. Building Blocks of UML : Things Relationships Diagrams.

Things in UML : Structural Things Classes Interfaces Collaborations Use Cases Active Classes

Dadi Institute of Engineering and Technology

Anakapalle

61

Department of I.T.

CN & Case Tools Lab Manual

Components Nodes Classes Interactions State Machines Packages Notes

Behavioral Things

Grouping Things Annotational Things

Diagrams in UML: Class Diagram Object Diagram Usecase Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployement Diagram Class: A class is the descriptor for a set of objects with similar structure, behavior, and

relationships. It is represented by a rectangle.

Interface: An interface is a specified for the externally-visible operations of a class, component, or other classifier (including subsystems) without specification of internal structure. It is represented by a circle.

Dadi Institute of Engineering and Technology

Anakapalle

62

Department of I.T.

CN & Case Tools Lab Manual

Relations: Association Dependency Generalization Realization In addition to this there are Directed Association Aggregation and Composition

Association: An association is a structural relationship that specifies the relation between two objects when they are at the same level (peer level systems). An Association can specify the relationship, role of the class and Multiplicity. An Association used in class diagram, Component diagram, deployment diagram, usecase diagrams. The multiplicity can be represented as 1-1..*,*,01. It is represented as follows:

Directed Association: Links a semantic association between two classes in the UML diagram. Directed association is used in class diagram, Component diagram, deployment diagram, usecase diagrams. Symbol: Aggregation: Links a semantic association between two classes in the UML diagram. Aggregation is used in class diagram.
Anakapalle

Dadi Institute of Engineering and Technology

63

Department of I.T.

CN & Case Tools Lab Manual

Symbol:

Composition: Links a semantic association between two classes in the UML diagram. Composition is used in class diagram.

Symbol:

Generalization: Generalization is a specification relationship in which objects of the specialized element (the child ) are substitutable for objects of the generalization element (the parent).It is used in class diagram. Symbol:

Dependency: A dependency is a semantic relationship in which if there is any change occurred in one object that may effect other object. Dependency is used in class diagram, Component diagram, deployment diagram, usecase diagrams. Symbol: -----------------------------------------Realization: Realization is a Specified tool that can be represented by providing a relationship with classifier. Dependency is used in class diagram, Component diagram, deployment diagram, usecase diagrams. Symbol: ---------------------------------------------Dadi Institute of Engineering and Technology Anakapalle

64

Department of I.T.

CN & Case Tools Lab Manual

Class diagrams: A class diagram is that which represents a set of classes, interfaces, and collaborations and their relationships, graphically a class diagram is a collection of vertices and arcs. It consists of three compartments.
Name Attributes Operations

Uses: A class diagram is used to model the static design view of a system. Object diagrams: An object diagram shares the same common properties of all other diagrams. ;Name
Attributes

Operations

Uses: An object diagram is used to model the static design view of a system. UseCase Diagrams: A usecase diagram shares the common properties as all diagrams. It distinguishes in the contents of use cases, actors, dependency, and generalization relationships.

Actor Uses: A Usecase diagram is used to model the static design view of a system. Interaction Diagrams:
Dadi Institute of Engineering and Technology Anakapalle

65

Department of I.T.

CN & Case Tools Lab Manual

An Interaction diagram shares the same common properties as all other diagrams. It differs in its contents Objects Links Messages It includes two diagrams Sequence and Collaboration

Sequence Diagrams: A sequence diagram emphasizes the time ordering of messages. Sequence diagrams have two features that distinguish them from collaboration diagrams. (i)Object life time (ii)The focus of control Collaboration Diagrams: A collaboration diagram emphasizes the organization of the objects that participate in an interaction Collaboration diagrams have two features that distinguish them from sequence diagrams. (i)Path (ii) The Sequence number Object: It is an instance of a class. Symbol:
Object name

Stimulus: A Stimulus is a communication between two Instances that conveys information with the expectation that action will ensue. A Stimulus will cause an Operation to be invoked, raise a Signal, or cause an Instance to be created or destroyed. Symbol: It can be annotated by a name. It has a property as Action kind. Call:

Dadi Institute of Engineering and Technology

Anakapalle

66

Department of I.T.

CN & Case Tools Lab Manual

Send: Return: Create: <<create>> Destroy: <<destroy>> ------------------------------------------

Uses: Interaction diagrams are used to model the dynamic aspects of a system. It is obtained in two ways: (i) To model flows of control by time ordering. (ii) To model flows of control by organization. State Chart Diagrams: State: A state is a condition during the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event. It is represented by a rounded rectangle.
State Name

Symbol:

Sub machine State: A submachine state is a syntactical convenience that facilitates reuse and modularity. It is a shorthand that implies a macro-like expansion by another state machine Symbol:
Sub State Name

and

is

semantically

equivalent

to

composite

state.

Initial State:
Dadi Institute of Engineering and Technology Anakapalle

67

Department of I.T.

CN & Case Tools Lab Manual

An initial is a kind of pseudostate that represents the starting point in a region of a state machine. It has a single outgoing transition to the default state of the enclosing region, and has no incoming transitions. There can be one (and only one) initial state in any given region of a state machine. It is not itself a state but acts as a marker. Symbol:

FinalState: A final state represents the last or "final" state of the enclosing composite state. There may be more than one final state at any level signifying that the composite state can end in different ways or conditions. When a final state is reached and there are no other enclosing states it means that the entire state machine has completed its transitions and no more transitions can occur. Symbol:

JunctionPoint: Junction Point chains together transitions into a single run-to-completion path. May have multiple input and/or output transitions. Each complete path involving a junction is logically independent and only one such path fires at one time. May be used to construct branches and merges. Symbol:

Transition:

A transition is a directed relationship between a source state vertex and a

target state vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to a particular event instance. Symbol:

Dadi Institute of Engineering and Technology

Anakapalle

68

Department of I.T.

CN & Case Tools Lab Manual

Activity Diagram: It represents the different activities in the system. Action State: An action state represents the execution of an atomic action, typically the invocation of an operation. An action state is a simple state with an entry action whose only exit transition is triggered by the implicit event of completing the execution of the entry action. The state therefore corresponds to the execution of the entry action itself and the outgoing transition is activated as soon as the action has completed its execution. Symbol:

Sub Activity State: A sub activity state represents the execution of a non-atomic sequence of steps that has some duration; that is, internally it consists of a set of actions and possibly waiting for events. That is, a sub activity state is a hierarchical action, where an associated sub activity graph is executed. Symbol:

Sub Activity Name

Initial State: An initial is a kind of pseudo state that represents the starting point in a region of a state machine. It has a single outgoing transition to the default state of the enclosing region, and has no incoming transitions. There can be one (and only one) initial state in any
Dadi Institute of Engineering and Technology Anakapalle

69

Department of I.T.

CN & Case Tools Lab Manual

given region of a state machine. It is not itself a state but acts as a marker. Symbol:

Final State: A final state represents the last or "final" state of the enclosing composite state. There may be more than one final state at any level signifying that the composite state can end in different ways or conditions. When a final state is reached and there are no other enclosing states it means that the entire state machine has completed its transitions and no more transitions can occur. Symbol:

Decision: Boolean Symbol:

A state diagram (and by derivation an activity diagram) expresses a decision conditions of the owning object.

when guard conditions are used to indicate different possible transitions that depend on

Component Diagrams:

Package: A package is a grouping of model elements. Packages themselves may be nested within other packages. A package may contain subordinate packages as well as other kinds of model elements. All kinds of UML model elements can be organized into packages. Symbol:
Dadi Institute of Engineering and Technology Anakapalle

70

Department of I.T.

CN & Case Tools Lab Manual

Interface: structure. Symbol:

An interface is a specified for the externally-visible operations of a class,

component, or other classifier (including subsystems) without specification of internal

Component: A component represents a modular, deployable, and replaceable part of a system Symbol: that encapsulates implementation and exposes a set of interfaces.

Artifact: An Artifact represents a physical piece of information that is used or produced by a software development process. Examples of Artifacts include models, source files, scripts, and binary executable files. An Artifact may constitute the implementation of a deployable component. Symbol:
<<artifact>>

Deployment Diagrams: Package: A package is a grouping of model elements. Packages themselves may be nested within other packages. A package may contain subordinate packages as well as other kinds of model elements. All kinds of UML model elements can be organized into packages. Symbol:

Dadi Institute of Engineering and Technology

Anakapalle

71

Department of I.T.

CN & Case Tools Lab Manual

Node: A node is a run-time physical object that represents a computational resource, generally having at least a memory and often processing capability as well, and upon which components may be deployed. Symbol:
Node Name

Node Instance: A node instance is an instance of a node. A collection of component instances Symbol:
Node Name

may

reside

on

the

node

instance.

Artifact: An Artifact represents a physical piece of information that is used or produced by a software development process. Examples of Artifacts include models, source files, scripts, and binary executable files. An Artifact may constitute the implementation of a deployable component.

<<artifact>>

Symbol:

Dadi Institute of Engineering and Technology

Anakapalle

72

Department of I.T.

CN & Case Tools Lab Manual

Case Study 1
PROBLEM SPECIFICATION: Case Study of :: LIBRARY MANAGEMENT SYSTEM. This Library Management System is used accomplish the tasks like issue , return, renewal the book to the library. To computerize the library system, it should validate the students, staff, etc...By entering the student_id, and staff_id they used to log into the system. The library has several volumes of books, journals, magazines, news papers so, this system should maintain the library database and also it should maintain the student, staff database for validating them. To full fill these requirements we can to design this system by making use of the UML diagrams for better understanding the specifications.

USE CASE DIAGRAMS OF LIBRARY MANAGEMENT SYSTEM:


Dadi Institute of Engineering and Technology Anakapalle

73

Department of I.T.

CN & Case Tools Lab Manual

System Add new books

collecting fines reads magazines, journals, news papers

Update validity <<extend>> Access books

Ask for a book <<include>>

check for authorization Check for availability of book <<include>> Librarian issue the book <<include>> returns the book <<include>>

Student

renewals the book

ACTORS: 1. STUDENT: The student is the primary actor who requires the books from library. 2. LIBRARIAN: The Librarian is also a primary actor who acts as a mediator between the system and the student. The actions like issue, return and renewal are performed by library. He interacts with the system directly.

USE CASES SPECIFICATION OF THE SYSTEM: The main tasks are performed by the system whenever student or staff is valid.
Dadi Institute of Engineering and Technology Anakapalle

74

Department of I.T.

CN & Case Tools Lab Manual

I) MAIN FLOW OF EVENTS: The student must be valid a person and have a student_id. Similarly staff must be valid a person and have a staff_id. II) EXCEPTION FLOW OF EVENTS: The student accessing the book like magazines, journals, news papers etc... III) PRECONDITION: The client must already have an account in the college. IV) POSTCONDITION: The account database of client is modified after performing any action.

CLASS DIAGRAMS OF LIBRARY MANAGEMENT SYSTEM:


depends on student data

depends on college data Library +issue_date +ret_date -fine +std_no_of_books +stf_no_of_books +verifies() +issues() +renwals() +returns() +dispaly fine() College +coll_name -coll_code +coll_address +coll_phone +coll_strn +coll_data

Student +std_name +std_num +std_acc +std_dep +attends() +wrt_exam() +logsin() +uses_facilities() +participates() +request book()

Staff +Stf_name +stf_num +stf_dep +stf_acc +teaches() +uses_facilities() +conducts() +invigilates() +logsin()

+st_data() +staff_data() +coll_facalities() +con_exam() +con_online() +con_events() 1 +con_sport() +maintained by librarian+Operation8()

Librarian
+lib_name +lib_id +checks for availability -collects_fine() +verifies_login() 1..* +updates() +maintanence() -access_lib_data() +creates_acc() +deletes_acc()

BooksData +book_name +author_name +book_num +publishers -ISBN_num +updates() +no_of_books() +softcopy() +mastercd()

Class Diagram shows the implementation view of the system, The first section tells the Name of the class, second section shows the attributes of the class and the third section
Dadi Institute of Engineering and Technology Anakapalle

75

Department of I.T.

CN & Case Tools Lab Manual

shows the operations of the class. There may be any number of students but only one library will be present and providers not more than 3-book. Here Librarian has composite aggregation with student and staff as librarian is the one who can access the data n the library auto machine . Library and librarian has simple association relationship as both have the same priority and some dependence relationships between the classes as shown.

SEQUENCE DIAGRAM OF LIBRARY MANAGEMENT SYSTEM:


S : student1 L : librarian Li : library d : database

1 : logsin()

<<create>> 3 : creates object()

2 : checks for authorization()

4 : ask for book()

5 : verifies() 6 : checks for availability()

8 : display fine() 9 : asks for fine() 10 : pays

7 : justifies

11 : updates()

12 : issue the book() 13 : updates() 14 : logsout()

15 : releases() <<destroy>>

<<destroy>> 16 : switches off()

17 : logsoff out the library() <<destroy>>

In sequence diagram we considered the process of issue of a book.In this the objects are the library, student, librarian and the database. When a student login into the library the librarian checks for authorization and creates an object for him. When student asks for the issue of the book the librarian, he verifies in the library in turn it checks in the database whether the student has the account

ACTIVITY DIAGRAM OF LIBRARY MANAGEMENT SYSTEM:


Dadi Institute of Engineering and Technology Anakapalle

76

Department of I.T.

CN & Case Tools Lab Manual

STUDENT

Librarian

Asking for book Check for book

Available

Not available

Issues

Verification

Student details

Book details

Fine verification

No Yes Collecting fine

valid

In valid

Issue the book

Collect book

The activity here considered is the verification of the student and issuing or the returning of the book with or without fine. The student asks for a book. The library checks for the availability of the book. If the book Is available it issues by verification .If the details are valid and has no fine the book is issued.
Dadi Institute of Engineering and Technology Anakapalle

77

Department of I.T.

CN & Case Tools Lab Manual

The student collects the book.

STATE CHART SYSTEM:

DIAGRAMS

OF

LIBRARY

MANAGEMENT

ideal state

entry state enters student id login

verification authenticates

ask for book

pay fine

collecting book

logout

exit

COMPONENT DIAGRAM OF LIBRARY MANAGEMENT SYSTEM:

Dadi Institute of Engineering and Technology

Anakapalle

78

Department of I.T.

CN & Case Tools Lab Manual

iss ue .e x e is s ue o f boo k <<artifact>> upda t e .e x e

re t ur n.e x e re t ur n o f bo ok

DEPLOYMENT SYSTEM:

DIAGRAM

OF

LIBRARY

MANAGEMENT

Clients

Database server

Libr ar ia n

Da t a ba s e Se r v e r

St ude nt

Case Study 2

Dadi Institute of Engineering and Technology

Anakapalle

79

Department of I.T.

CN & Case Tools Lab Manual

Problem statement: : Reservation counter. Identification of actors:


The actors in the system are the passenger, the counter clerk and the reservation system consisting of form processing, reservation, canceling issued ticket, ticket printing and updating etc.

Use cases:
User Passenger Role 1.Enquiry 2.Reservation ticketing 3.Cancellation Use case 1. Enquire ticket availability and other details. 2. Reserve seats and berths etc. 3.Cancel tickets 1.Enter the details into system 2.Trigger ticket for printing 3.Update data in the system 1. Process reservation data, process ticketing and process cancellation. 2.Update.

and

Counter clerk

1.Form data entry 2.Ticket processing 3.Updation

Reservation system

Server

Use case diagrams


System Enquirie s for av aila bilit y

Passe nger

Count e rCle rk

A v a ila bilit y st a t us

Passenger enquiries for the availability of Seats

Dadi Institute of Engineering and Technology

Anakapalle

80

Department of I.T.

CN & Case Tools Lab Manual

Fill requisition form

Enter data into system

Passenger

Print ticket

Counter Clerk

Collect fare amount & Issues ticket

Reservation and ticketing


System Fill Cance lla t ion form

Ent e r da t a int o s y s t e m

Pa ss e nge r

Co lle ct is s ue d t ick e t Co unt e r Cle rk Cance ls t ick e t

Re t urn m one y a ft e r de duct ion

Cancellation of issued ticket

Dadi Institute of Engineering and Technology

Anakapalle

81

Department of I.T.

CN & Case Tools Lab Manual

Class diagram
Pa s se nge r +Name +Gender +Age +Address +fillForm() +payFareAmount() +collectTicket() 1 1 Re se rv a t ion Sy st e m +processForm() +reservation() +fareComputation() +processTicket() +printTicket() Cle rk +Name +Gender +Age 1..* +getDetails() +getFareAmount() +getTicket() 1

0..*

1..* Pa y m e nt

Cre dit Pa y m e nt

Ca shPa y m ent

Class diagram for railway reservation system

Dadi Institute of Engineering and Technology

Anakapalle

82

Department of I.T.

CN & Case Tools Lab Manual

Interaction diagrams
Sequence diagram
: passenger : clerk : reservation system

1 : requestForm()

2 : givesForm()

3 : returnsFilledForm()

4 : entersDetails()

5 : checksAvailability()

6 : fareamount

7 : paysAmount()

8 : triggersTicket()

9 : printTicket()

10 : issueTicket() 11 : updates()

Dadi Institute of Engineering and Technology

Anakapalle

83

Department of I.T.

CN & Case Tools Lab Manual

Collaboration diagram
1 : requestForm() 2 : givesForm() 3 : returnsFilledForm() : passenger 6 : fareamount 7 : paysAmount() 10 : issueTicket() : clerk 4 : entersDetails() 5 : checksAvailability() 8 : triggersTicket() 9 : printTicket() 11 : updates() : reservation system

Collaboration diagram for reservation

Activity diagrams

[The Data train and tickets]

Data Entered into R&T System Not Available Puts New Data and Train

R&T Checks Availabillity

Available Fills Requisition From

R&T Process the Form

Prints Tickets

Tickets Issued and Fare Amount Collected

Activity diagram for Enquiry of seats available


Dadi Institute of Engineering and Technology Anakapalle

84

Department of I.T.

CN & Case Tools Lab Manual

Passenge r Pa ss e n g e r C o me s to th e C o un te r [F ill f o r m d e t a ils ]

C le r k

R e s e r v a t io n s y s t e m

[C le r k E n t e r s D e t a ils in t o s y s t e m ]

[T r ig g e r T ic ke t s P r in t in g P r o c e s s ]

[S u b m it s f o r m t o c le r k]

[V e r if y A v a ila b ilit ie s ]

[p r in t s t h e T ic ke t s ]

Not ok [F o r m m o d if ie d ]

Ok

Not Ok

[Is s u e T ic ke t s ]

Ok

[C o lle c t A m o u n t ]

[I n f o rm s t h e f a re a m o u n t ]

Not ok C o n f ir m s w it h t h e P a s s e n g e r

[T r ig g e r U p d a t e P ro c e s s ]

Activity diagram for reservation process

Component diagram

re se rv a t ion.e x e Re se rv a t ion form <<artifact>> upda t e .e x e

ca ncellat ion.e x e Ca nce lla t ion form

Component diagram for reservation and ticketing

Dadi Institute of Engineering and Technology

Anakapalle

85

Department of I.T.

CN & Case Tools Lab Manual

Deployment diagram

Clients

Reservation server

Cle rk

Re se rv a t ion Se rv e r

Kiosk

Deployment diagram for Railway reservation system

Case Study 3
Dadi Institute of Engineering and Technology Anakapalle

86

Department of I.T.

CN & Case Tools Lab Manual

PROBLEM SPECIFICATION: Case Study of ATM transaction.


An automated teller machine (ATM) or automatic banking machine (ABM) is a computerized telecommunications device that provides the clients of a financial institution with access to financial transactions in a public space without the need for a cashier, human clerk or bank teller. On most modern ATMs, the customer is identified by inserting a plastic ATM card with a magnetic stripe or a plastic smart card with a chip that contains a unique card number and some security information such as an expiration date or CVVC (CVV). Authentication is provided by the customer entering a personal identification number (PIN). Using an ATM, customers can access their bank accounts in order to make cash withdrawals (or credit card cash advances) and check their account balances as well as purchase cellphone prepaid credit. With growing usage of the Internet, people are utilizing the convenience of online shopping and the ability to place an order for what they want at all hours of the day and night, at the office, home, airport, a cafe, or just about anywhere you can imagine. They want conveniences of Internet communications to help them improve their productiveness in the day to day balance between work and personal life. While ATM's have added some convenience to our lives. By using ATMs we can make payment transaction at anytime from anywhere.

USE CASE DIAGRAMS:


Dadi Institute of Engineering and Technology Anakapalle

87

Department of I.T.

CN & Case Tools Lab Manual

System v e r ific a t io n Ba n k

in v a lid P I N <<extend>>

m anagedatabase

t r a n s c a t io n Ba n k clie n t <<include>> A TM m a c h in e

d e p o s it e

w it h d r a w a l

b a la n c e e n q u ir y

v a lid c lie n t

<<extend>>

in v a lid c lie n t

ACTORS: 1. BANKCLIENT: the bank client is a primary actor which having an ATM card. 2. ATM MACHINE: The ATM machine is a primary actor which is used to Perform the online transaction. It is an intermediate between the bank client and bank. 3. BANK: The Bank is a second actor which will verify the bank client account and also manages the database.

USE CASES SPECIFICATION OF TRANSACTION: The use case transaction performs the ATM transaction whenever cardholder is valid. It contains another use cases like deposited, withdrawal & balance enquiry.
Dadi Institute of Engineering and Technology Anakapalle

88

Department of I.T.

CN & Case Tools Lab Manual

I) MAIN FLOW OF EVENTS: The bank client must be valid person and have a valid PIN number. II) EXCEPTION FLOW OF EVENTS: The bank client is an invalid person. The client had entered the invalid PIN number. III) PRECONDITION: The client must already have an account in the Bank. IV) POSTCONDITION: The account database of client is modified after transaction.

CLASS DIAGRAMS OF ATM TRANSACTION:


Bank client -pin card number +deposit() +tranfer() +withdraw() +insert_card() +eject_card() +entering_pin no.() 1 request for 1..* ATM machine +atm_mach no. +providing_receipt() +display_message() +status() +read_card() +accept_card() +view_balance() +notify_successful receipt()

1 asks for manages

1 Bank +account_number -pin_balance +open _account() +create_account() +withdraw_funds() +verification() +delete_account() 1 1 Thirdparity -pin number +verify_card() +system_shut down() +sys_start up() +add_cash() +verify_customer id() +verify_customer status() +asking _operation() Bank database +card reader_ information +updating_dbbase()

I) PERSISTENCE CLASSES: Bank client, ATM machine are the persistence classes. II) NON-PERSISTENCE CLASSES: Bank, Third-party, Bank database are non-persistence classes.

SEQUENCE DIAGRAM OF ATM TRANSACTION: (Overall ATM transaction)


Dadi Institute of Engineering and Technology Anakapalle

89

Department of I.T.

CN & Case Tools Lab Manual

: Bankclient

: ATM machine

: Bank

1 : Insert ATMcard()

2 : Request PINnum() 3 : Enter PINnum() 4 : verify PINnum()

5 : valid PIN() 6 : Request amount()

7 : Enter amount() 8 : withdraw checking() 9 : withdraw successfully() 10 : Transcation successfully finished() 11 : dispense cash()

12 : print reciept()

13 : terminate()

<<destroy>>

COLLOBARATION DIAGRAM OF ATM TRANSACTION: (Start-up of ATM transaction)

Dadi Institute of Engineering and Technology

Anakapalle

90

Department of I.T.

CN & Case Tools Lab Manual

ACTIVITY
Bankclient

DIAGRAM

OF
ATM machine

ATM
Bank

TRANSACTION:

Insert atmcard

enter pin number

[submite]

read PIN

verify PIN

[invalid]

[verification report] [valid] Enter amount Request amount

dispense cash

update customer account

give recipt

close transcation

STATE CHART DIAGRAMS OF ATM TRANSACTION:


Dadi Institute of Engineering and Technology Anakapalle

91

Department of I.T.

CN & Case Tools Lab Manual

ideal

Insert card Active cancel

maintain maintainance

validate

withdraw/enquiery

[continue] selecting processing

[not continue] printreciept entry/readcard exit/ejectcard

COMPONENT DIAGRAM OF ATM TRANSACTION:


A TM da t a b a se .db A TM .e x e t ra ns a ct io n +pin number +withdraw() +enquiery()

.tbl it contains databse tables

it contains ATM.obj files

it contains ATM.java files

it contain ATM.dll files

DEPLOYMENT DIAGRAM OF ATM TRANSACTION:

Dadi Institute of Engineering and Technology

Anakapalle

92

Department of I.T.

CN & Case Tools Lab Manual

A TM m a chine

Ethernet

serv er

R A ID fa rm

RS-232

A TM .e x e

Ba nk

Case Study 4 ONLINE BOOKS SHOP


Dadi Institute of Engineering and Technology Anakapalle

93

Department of I.T.

CN & Case Tools Lab Manual

PROBLEM STATEMENT:
Customer can buy books through online. Customers login into the website and add or remove to the cart. Then he will place the order i.e., the cart of the books then the warehouse checks that the customer is validate user or not. Customer fills his details and made payment transactions. The customer got his books through shipment. Customer may get gifts for their transactions. Wrong transactions can be verified. The main objective of this case study ONLINE BOOK SHOP is to make the customers purchase their books of interest through online without wasting time by stepping into the bookshops. The customer can visit this site at any time, search the books and place the orders which will be delivered by the dealer in short period of time. This reduces the burden for both the customer and dealer as the customer need not travel to the cities if the book of his/her interest is not available in his area, whereas the dealer also need not strain himself by standing in the shop all the time. Here the dealer also need not respond to each and every customer queries. Through this system the customer submits a query and gets the response from the database. The dealer can update the stock details of the books in the database. This project is developed using ASP.Net and SQL Server.

EXISTING SYSTEM
In the current system if a customer wants to purchase a book he needs to go to the shop and search for the book then he can buy that book.

Physical Data Flow Diagrams:-

Dadi Institute of Engineering and Technology

Anakapalle

94

Department of I.T.

CN & Case Tools Lab Manual

Context Level Diagram:Search Order Customer Book Details Ordered Books Book Shop Orders sDetails Add Books

Dealer

Use case diagram:

Sy ste m a u t h e n t ic a t io n L o g in

cre a te ca rt custom er re q u e s t v a lid a t e c u s t o m e r < < in c lu d e > > o r d e r p la c in g c h e c kin g c e r t if ic a t e V a lid a t io n in d iv id u a l le c t u r e r pay se nt a cce pt b o o k s h o p s t a ff v e r if y

paym ent

R e c e iv e

S h ip m e n t < < ex tend> >

g ift s bank

Scenario for Use case Diagram:-

Dadi Institute of Engineering and Technology

Anakapalle

95

Department of I.T.

CN & Case Tools Lab Manual

1.Usecase Name 2. Participating Actor Instances

ONLINE BOOK SHOP 1. Customer 2. Dealer 1. Every customer should have a unique id. 2. Dealer should have a login-id and password. 1. Customer should register in this system for future purpose. 2. A Customer can search for his/her books of interest. 3. Customer order books. 4. The Customer provides the shipment details to which address the ordered books should be delivered. 5. Dealer can update the book details. 6. Dealer delivers the ordered books. 1. The customer can get the quick response from the server.

3.Entry Conditions

4. Flow of Events

5. Special requirements

Actors: Customer, Book shop staff, bank. Main flow of events: Create cart, order placing, validations. Exception flow of events: Gifts to customer, canceling orders

Class Diagrams:

Dadi Institute of Engineering and Technology

Anakapalle

96

Department of I.T.

CN & Case Tools Lab Manual

custom er ca rt -to ta l mo ne y + p la c e o rd e r() + c a n c le o r d e r() 1 1..* 0..* 1 -c u s t o m e r -b illin g a d d re s s -d e liv e ry a d d re s s -e m a il -r a t in g + c r e a t e c u s t o m e r() + g e t c u s t o m e r() + c h a n g e s t a t u s () c r e d it c a r d - c a rd n u m b e r - d a t e o f e x p ire

1 1..* it e m s t o b u y -u n it p ric e + a d d () -re m o v e ()

0..* + c h e c k a u t h o riz e d c h a rg e () fr e q u e n t s h o p p e r -d is c o u n t ra t e -a p p ro v a l d a t e 1 + a p p r o v a l() + d is a p p ro v e ()

database -u s e r n a m e -b o o k n a m e + s t o re () + u p d a t e () + d e le t e ()

W a re ho use -n a m e + u p d a t e () + d e le te ()

Database depends on the warehouse means adding new customers and books done by Warehouse. Customers add his books to the cart and make order at a time. A payment is done through credit cards and receives their books through shipment.

Sequence and Collaboration diagrams:


Dadi Institute of Engineering and Technology Anakapalle

97

Department of I.T.

CN & Case Tools Lab Manual

c : custo m e r

w e b s it e

ca rd

ca rt

sta ff

1 : lo g in ( )

2 : a u t h e n t ic a t io n ( ) 3 : se a rch fo r b o o k 4 : show ed 5 : a d d ()

6 : v ie w e d 7 : o rd e r() 9 : d e t a ils 1 0 : u p d a te

8 : s e tre q u e s t()

1 1 : p a y m e n t () 1 2 : a u t h o r o z a t io n 1 3 : a c k n o w le d g e m e n t 14

1 5 : s h ip m e n t

Colloboration Diagram:
Dadi Institute of Engineering and Technology Anakapalle

98

Department of I.T.

CN & Case Tools Lab Manual

1 : lo g in ( ) 2 : a u t h e n t ic a t io n ( ) 3 : s e a rch f o r b o o ks () 7 : d e t a ils ( ) w : d a ta b a se 8 : U p d a t io n ( ) 4 : a d d o r re m o v e b o o ks() 5 : p la c e o r d e r ( )

c : ca rt

c : custo me r

6 : v ie w e d ( ) 9 : p a y m e n t()

1 0 : a c k n o w le d g e m e n t ( ) 1 1 : v a lid a t e o r d e r ( ) c a r d : c r e d it c a r d s ta ff : W a re h o u se

1 2 : s h ip m e n t ( )

ACTIVITY DIAGRAM:
Dadi Institute of Engineering and Technology Anakapalle

99

Department of I.T.

CN & Case Tools Lab Manual

cu sto me r

staff

lo g in

ca rt

d avtea rbifays e

ca rd re a d

a u t h e n t ic a t io n

a d d b o o ks

v ie w c a r t

[c:ca rt]

pa y me nt staff

u p a d a t io n

[w :d a ta b a se ] r e c e iv e b o o k

STATE CHART DIAGRAM:


Dadi Institute of Engineering and Technology Anakapalle

100

Department of I.T.

CN & Case Tools Lab Manual

id e a l

lo g in

a d d b o o ks to ca rt che ck to a dd

p la c e o r d e r

sh o w ca rt sh o w o rd e r

payment

s h ip m e n t

COMPONENT DIAGRAM:
Dadi Institute of Engineering and Technology Anakapalle

101

Department of I.T.

CN & Case Tools Lab Manual

users online shopping use r/ cust om e r

a ut he nt ica t ion

it e m s <<artifact>> login.ht m l pe rm issions

DEPLOYMENT DIAGRAM:

TESTING

Dadi Institute of Engineering and Technology

Anakapalle

102

Department of I.T.

CN & Case Tools Lab Manual

Test cases for customer registration:Test Case


1. If password is not matched with confirm password. 2. Password empty. is

Condition Being Checked


Password password. = confirm

Expected Output
Mismatched password.

Password length >6. Customer id should be alpha numeric. Is Numeric.

Password should have at least 6 characters. Blank spaces are not allowed. Phone number should be numeric.

3. Customer id contains spaces. 4. Phone number

Test Cases for Customer Verification:Test Case


1. Password 2. Login

Condition Being Checked


Password length>6. Should not be empty.

Expected Output
Invalid password. Invalid login name.

Test Cases for searching books:Test Case


1. At least one of the fields should be filled.

Condition Being Checked


bookname=null, author=null, publisher=null, edition=null.

Expected Output
At least one of the fields must be filled.

Test Cases for ordering books:-

Dadi Institute of Engineering and Technology

Anakapalle

103

Department of I.T.

CN & Case Tools Lab Manual

Test Case
1. Quantity 2. Credit card no. 3. Credit card no.

Condition Being Checked


quantity<=0

Expected Output
Quantity should be at least one to place the order. Should be numeric only. invalid credit card no.

should be numeric length!= 14

Test Cases for Shipment Details:Test Case


1. Address

Condition Being Checked


address=null

Expected Output
address is required to deliver the order.

Case Study 5: PROBLEM SPECIFICATION: Case study of college administration:


Dadi Institute of Engineering and Technology Anakapalle

104

Department of I.T.

CN & Case Tools Lab Manual

For a student to enter college he must first obtain an application form. Fill the details and write an entrance test, after qualifying the student issues a rank card. In the counseling system of EAMCET the student certificates are verified and then seat is allotted in required college. The college is equipped with computer laboratory, electrical and electronics laboratory, English laboratory, embedded systems laboratory etc. The library has several volumes of books, journals, magazines, news papers etc.

uSE

CASE DIAGRAMS OF COLLEGE ADMINISTRATION:


System

a sk s t he ce rt ifica t e s

Subm it s ce rt ifica t e s

v e rifie s t he cert ifica t e s <<include>> ra nk ca rd <<extend>> inv a lid ce rt ificat e s colle ge a dm inis t ra t ion St ude nt Enquire s a bout co urse s

offe rs t he cours e s

s e lect s t he course

cle rk giv e s t he fee s det a ils

m a na ge r

pa y s t he fe e

Iss ue s ID ca rd

ACTORS: 1. Student: The student is the primary actor who requests for seat 2. College administration: The college administrator is the primary actor who verifies the certificates and grants the seat
Dadi Institute of Engineering and Technology Anakapalle

105

Department of I.T.

CN & Case Tools Lab Manual

a) Clerk: one who collects the certificates from the student and submits to the administrator for verification. b) Manager: one who manages the college administration? USE CASES SPECIFICATION OF EXAMINATION: The use-case specifies the college admission by verifying allotting the seat I) MAIN FLOW OF EVENTS: The student should have the certificates.

the certificates and

The college should have the facilities like library, laboratory, and transport. II) EXCEPTION FLOW OF EVENTS: The certificates may be invalid. III) PRECONDITION: The student should have the certificates IV) POSTCONDITION: The student completes his course and gets degree.

CLASS DIAGRAMS OF COLLEGE ADMINISTRATION:

Dadi Institute of Engineering and Technology

Anakapalle

106

Department of I.T.

CN & Case Tools Lab Manual

1 colle ge +college name +address +phone 1 +maintain database()

+has de pa rt m e nt +department t +dept name * 1..* +time table() +add d() +staff() 1..* 1..*

* libra r y +text books +book name +author name +issues() +renewal() +fine() 0..1

1..*

1..* member * s t ude nt +sname +sno +class +status() +admission()

1..* assigned to 1..*

1..*

cours e +course name +tcourse +add course()

+chairperson

* 0..1 fa cult y +tstaff +faculty name +teach() +salary()

attends * *

1..*

teaches

* *

attends

la ba ra t or y +tlabs +lab name 1..* +remarks() 1..*

I) PERSISTENCE CLASSES: College, department, laboratory are the persistence classes. II) NON-PERSISTENCE CLASSES: Library, student, course, faculty, are the non-persistence classes.

SEQUENCE DIAGRAM OF COLLEGE ADMINISTRATION: (Admitting a Student into the college):


Dadi Institute of Engineering and Technology Anakapalle

107

Department of I.T.

CN & Case Tools Lab Manual

s : student

a : admission cell

college database

1 : asks the certificates() 2 : submits the certificates()

3 : verifies the certificates()

4 : enquires about the rank card() 5 : submits the rank card()

6 : verifies the rank card()

7 : checks for the availability of seats()

8 : availble() 9 : enters the details() 10 : issues the id card() <<destroy>>

COLLOBARATION DIAGRAM OF COLLEGE ADMINISTRATION: (Recruitment of the faculty)


Dadi Institute of Engineering and Technology Anakapalle

108

Department of I.T.

CN & Case Tools Lab Manual

c : college database

p : participant

2 : submits the certificates() 1 : asks the certificates() 3 : expose some questions() 4 : answering the questions() 6 : sends an appointment letter() 5 : decides()

7 : enters the details()

i : interviewer

ACTIVITY DIAGRAM OF COLLEGE ADMINISTRATION:


(THE STUDENT ATTENDING AN ONLINE EXAM IN A COLLEGE)
Dadi Institute of Engineering and Technology Anakapalle

109

Department of I.T.

CN & Case Tools Lab Manual

student

system

server

enters the IP address

accepts

requests

opens the login page

enters the user name and password

verifies student details

invalid

valid displays question paper

answers the paper submits displays marks

STATE CHART DIAGRAMS OF COLLEGE ADMINISTRATION: (A STUDENT ISSUING A BOOK IN A LIBRARY)


Dadi Institute of Engineering and Technology Anakapalle

110

Department of I.T.

CN & Case Tools Lab Manual

Idle

fine exists

book not available Student requirement book available Check fine

stores information to database fine doesn't exist

issue book

COMPONENT DIAGRAM OF COLLEGE ADMINISTRATION:

Dadi Institute of Engineering and Technology

Anakapalle

111

Department of I.T.

CN & Case Tools Lab Manual

s t ud e nt .db

c o lle g e .d b

a dm is s io n

.tlb contains the tables of student

.tlb contains the tables of college

.exe contains execute files

.dll contains the library files

DEPLOYMENT DIAGRAM OF COLLEGE ADMINISTRATION:


st ude nt RS-232 ser v e r R A ID

ETHERNET

console

Dadi Institute of Engineering and Technology

Anakapalle

112

Anda mungkin juga menyukai