CN Record Manual
CN Record Manual
JNTUWORLD
Department of I.T.
JNTUWORLD
Department of I.T.
PROGRAM: #include<stdio.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++)
Vizag Institute of Engineering and Technology JNTUWORLD
Department of I.T.
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(); }
JNTUWORLD
Department of I.T.
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
JNTUWORLD
Department of I.T.
1b)PROBLEM SPECIFICATION: Program to implement character stuffing. ALGORITHM: Step 1: Start Step 2: Read the character string to be transmitted in upper case. Step 3: For stuffing process, append at begin with 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: Now 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
JNTUWORLD
Department of I.T.
PROGRAM: #include<stdio.h> #include<conio.h> main() { char a[30],b[30],c[30]; inti,j,n,m; clrscr(); printf("\tSTUFFING:\n"); printf("\nEnter the string in upper case:\n"); scanf("%s",&a); n=strlen(a); b[0]='D'; b[1]='L'; b[2]='E'; b[3]=' '; b[4]='S'; b[5]='T'; b[6]='X'; b[7]=' '; j=8;i=0; while(i<n) { 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+1]='L'; b[j+2]='E'; j=j+3; } b[j]=a[i]; i++; j++; } b[j]=' '; b[j+1]='D'; b[j+2]='L'; b[j+3]='E'; b[j+4]=' '; b[j+5]='E'; b[j+6]='T'; b[j+7]='X'; b[j+8]='\0'; printf("Frames after stuffing:\n"); printf("%s",b); printf("\n\n\tDESTUFFING:\n"); m=strlen(b); printf("\nFrames after destuffing:\n");
Vizag Institute of Engineering and Technology JNTUWORLD
Department of I.T.
i=0,j=0; while(i<8) i++; while(i<m-8) { if((b[i]=='D'&&b[i+1]=='L'&&b[i+2]=='E')||(b[i]=='S'&&b[i+1]=='T'&&b[i+2]=='X')|| (b[i]=='E'&&b[i+1]=='T'&&b[i+2]=='X')) { i=i+3; c[j]=b[i]; } else c[j]=b[i]; j++; i++; } c[j]='\0'; printf("%s",c); getch(); } INPUT1: STUFFING: Enter the string in upper case: ETXWITHSTXCANDLE OUTPUT1: Frames after stuffing: DLE STX DLEETXWITHDLESTXCANDLEDLE DLE ETX DESTUFFING: Frames after destuffing: ETXWITHSTXCANDLE INPUT2: STUFFING: Enter the string in upper case: STXETX OUTPUT2: Frames after stuffing: DLE STX DLESTXDLEETX DLE ETX DESTUFFING: Frames after destuffing: STXETX
2) PROGRAM SPECIFICATION:
Program to implement CRC-12.
Vizag Institute of Engineering and Technology JNTUWORLD
Department of I.T.
ALGORITHM: Step 1: Start Step 2: Let r be the degree of G(x). Append r bits to the low order end of the frame. So it now contains M+r bits and corresponds to the polynomial XM(X). Step 3: Divide the bit string corresponding to G(x) into the bit string corresponding to xM(X) using Modulo 2 division. Step 4: Subtract the remainder from the bit string corresponding to XM(X) using Modulo 2 subtraction. The result is checksummed frame to be transmitted call its polynomial T(X). Step 5: Stop
PROGRAM: #include<string.h>
Vizag Institute of Engineering and Technology JNTUWORLD
Department of I.T.
#include<stdio.h> #define crc 12 main() { char pola1[39],pola2[30],ch[2]=""; int ad=0,i=0,j=0,mp[crc+1],pp1[10],pp2[10],gp[crc+1],rm[crc+1],p1,p2,k; clrscr(); printf("Enter the message polynomial(in the \"x7+x4+...\" form):\n "); gets(pola1); for(i=0,p1=0;i<strlen(pola1);i++) if(pola1[i]>='0'&&pola1[i]<='9') { ch[0]=pola1[i]; ch[1]=pola1[i+1]; if(pola1[i+1]>='0'&&pola1[i+1]<='9') i++; pp1[p1++]=atoi(ch); } printf("Enter the generator polynomial(in the \"x7+x4+...\" form):\n "); gets(pola2); for(i=0,p2=0;i<strlen(pola2);i++) if(pola2[i]>='0'&&pola2[i]<='9') { ch[0]=pola2[i]; ch[1]=pola2[i+1]; if(pola2[i+1]>='0'&&pola2[i+1]<='9') i++; pp2[p2++]=atoi(ch); } if((pp1[0]+pp2[0])<=crc) { ad=pp1[0]; j=0; for(i=ad;i>=0;i--) { if(i==pp1[j]&&j<p1) { mp[ad-i]=1; j++; } else mp[ad-i]=0; } for(j=ad+1;j<=(ad+pp2[0]);j++) mp[j]=0; ad=pp2[0]; k=0; for(i=ad;i>=0;i--)
Vizag Institute of Engineering and Technology JNTUWORLD
10
Department of I.T.
{ if(i==pp2[k]&&k<p2) { gp[ad-i]=1; k++; } else gp[ad-i]=0; } printf("the message bit string is:\n "); for(i=0;i<j;i++) printf("%d",mp[i]); printf("\nthe generator bit string is:\n "); for(i=0;i<=ad;i++) printf("%d",gp[i]); printf("\n\nThe message to be transmitted is:\n "); for(i=0;i<=ad;i++) rm[i]=mp[i]; k=0; while(1) { if(rm[0]==1&&k<=(j-(ad+1))) { for(i=0;i<=ad;i++) { if(rm[i]==gp[i]) rm[i]=0; else rm[i]=1; } if(rm[0]==0&&k<(j-(ad+1))) do { for(p1=0;p1<ad;p1++) rm[p1]=rm[p1+1]; rm[p1]=mp[i+k]; k++; }while(rm[0]==0&&k<(j-(ad+1))); } else { k=j-ad; for(i=1;i<=ad;i++) mp[k++]=rm[i]; for(i=0;i<j;i++) printf("%d",mp[i]); printf("\nthe CHECK SUM is:\n "); for(i=1;i<=ad;i++) printf("%d",rm[i]);
Vizag Institute of Engineering and Technology JNTUWORLD
11
Department of I.T.
JNTUWORLD
12
Department of I.T.
Output 1: Enter the message polynomial(in x7+x4+ form): X0 Enter the message polynomial(in x7+x4+ form): X12+x10+x2 The message bit string is: 1 The message bit string before adding checksum is: 1000000000000 The generator bit string is: 1010000000100 The message to be transmitted is: 1010000000100 The CHECK SUM is: 010000000100 Output 2: Enter the message polynomial(in x7+x4+ form): X10+X8+X6+X5+X3+X1 Enter the message polynomial(in x7+x4+ form): X2+X0 The message bit string is: 10101101010 The message bit string before adding checksum is: 1010110101000 The generator bit string is: 101 The message to be transmitted is: 1010110101011 The CHECK SUM is: 11
13
Department of I.T.
ALGORITHM: 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>
Vizag Institute of Engineering and Technology JNTUWORLD
14
Department of I.T.
#include<conio.h> void main() { intar[20][20],n,i,j,k,s,c,spd[10]; charst[20],spn[10]; charspath[10]; clrscr(); printf("Enter the number of nodes:\n"); scanf("%d",&n); for(i=0;i<n;i++) { printf("Enter node %d name:\n",i); scanf("%s",&st[i]); } for(i=0;i<n;i++) { for(j=i;j<n;j++) { if(i==j) { ar[i][j]=0; } else { printf("Enter cost between %c and %c:\n",st[i],st[j]); scanf("%d",&ar[i][j]); ar[j][i]=ar[i][j]; } } } printf("\n Enter starting and Ending nodes:"); scanf("%d %d",&s,&c); for(k=0;k<n;k++) { printf(" %c",st[k]); } for(i=0;i<n;i++) { printf(" "); printf("\n%c",st[i]); for(j=0;j<n;j++) { printf(" "); printf("%d",ar[i][j]); } } for(i=0;i<n;i++) spd[i]=0;
Vizag Institute of Engineering and Technology JNTUWORLD
15
Department of I.T.
i=0; while(i!=n) { for(j=0;j<n;j++) { if(ar[i][j]!=0&&(spd[j]>ar[i][j]+spd[i]||spd[j]==0)) { spd[j]=spd[i]+ar[i][j]; spn[j]=st[i]; } } i++; } printf("\nThe shortest distance is %d",spd[c]); spath[0]=st[c]; for(i=c,j=1;spn[i]!=st[0];) { spath[j]=spn[i]; for(k=0;k<n;k++) if(spn[i]==st[k]) break; i=k; j++; } printf("\n Shortest path is %c",st[0]); for(i=j-1;i>=0;i--) { printf("%c",spath[i]); } getch(); }
16
Department of I.T.
6 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 node 5 name: f Enter cost between a and b: 5 Enter cost between a and c: 7 Enter cost between a and d: 1 Enter cost between a and e: 3 Enter cost between a and f: 2 Enter cost between b and c: 8 Enter cost between b and d: 4 Enter cost between b and e: 6 Enter cost between b and f: 9 Enter cost between c and d: 1 Enter cost between c and e: 5 Enter cost between c and f: 8 Enter cost between d and e: 3 Enter cost between d and f: 2 Enter cost between e and f: 1
JNTUWORLD
17
Department of I.T.
Enter starting and Ending nodes:b f a b c d e f a 0 5 7 1 3 2 b 5 0 8 4 6 9 c 7 8 0 1 5 8 d 1 4 1 0 3 2 e 3 6 5 3 0 1 f 2 9 8 2 1 0 The shortest distance is 25700 Shortest path is add
18
Department of I.T.
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 source node in the subnet. Step4: Enter the estimated delays m of source node and their estimated values. Step5: Enter the routing tables for n x m. Step6: Find the shortest distance from nodes in the subnet to estimated delays. Step7: Print the routing table for source node with their distances and linenames.
PROGRAM: #include<stdio.h>
Vizag Institute of Engineering and Technology JNTUWORLD
19
Department of I.T.
#include<conio.h> main() { char l,nname[20],dname[20],temp,s; inti,j,m,c,n,k,sn,d,link[20][20],dly[10],rval[10][10]; clrscr(); printf("\nEnter the no of nodes:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("\nEnter the node %d 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 the link between %c and %c:",nname[i],nname[j]); scanf("%d",&link[i][j]); link[j][i]=link[i][j]; } } }clrscr(); for(k=0;k<n;k++) { printf(" "); printf("\t%c",nname[k]); } for(i=0;i<n;i++) { printf("\n");printf("%c",nname[i]); for(j=0;j<n;j++) { printf("\t%d",link[i][j]); } } printf("\nEnter the source node number and name:"); scanf("%d\t%c",&sn,&s); c=0; for(i=0;i<n;i++) { if(link[sn][i]==1) {
Vizag Institute of Engineering and Technology JNTUWORLD
20
Department of I.T.
dname[c]=nname[i]; printf("\nEnter estimated delay from %c to %c:",s,nname[i]); scanf("%d",&d); dly[c]=d;c++; } } for(i=0;i<n;i++) { for(j=0;j<c;j++) { printf("\n"); printf("\nEnter the value for %c and %c:",nname[i],dname[j]); scanf("\t%d",&rval[i][j]); } } printf("\nThe matrix form of routing table\n"); for(k=0;k<c;k++) { printf("\t"); printf("%c",dname[k]); } for(i=0;i<n;i++) { printf("\n%c",nname[i]); for(j=0;j<c;j++) { printf("\t%d",rval[i][j]); } } printf("\nThe estimated time delay of %c\n",s); printf("\t\t\t%c line\n",s); for(i=0;i<n;i++) { printf("\n");printf("\t%c",nname[i]); m=rval[i][0]+dly[0]; for(j=0;j<c;j++) { if(nname[i]==dname[j]) { m=dly[j];l=dname[j]; } else if(rval[i][j]+dly[j]<=m) { m=rval[i][j]+dly[j]; l=dname[j]; } if(nname[i]==s) { l='_'; m=0;
Vizag Institute of Engineering and Technology JNTUWORLD
21
Department of I.T.
22
Department of I.T.
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 node 5 name: f Enter link between a and b: 1 Enter link between a and c: 0 Enter link between a and d: 0 Enter link between a and e: 1 Enter link between a and f:0 Enter link between b and c: 1 Enter link between b and d: 0 Enter link between b and e: 0 Enter link between b and f:1 Enter link between c and d: 1 Enter link between c and e: 1 Enter link between c and f: 0 Enter link between d and e:0 Enter link between d and f: 1 Enter link between e and f: 1 Enter the source node name and number: a 0 Enter the estimated delay from c to b: 6 Enter the estimated delay from c to d: 3 Enter the estimated delay from c to e: 5 Enter the value for a and b:5 Enter the value for a and d:16 Enter the value for a and e:7 Enter the value for b and b:0 Enter the value for b and d:12 Enter the value for b and e:6 Enter the value for c and b:8 Enter the value for c and d:6 Enter the value for c and e:3 Enter the value for d and b:12 Enter the value for d and d:0 Enter the value for d and e:9 Enter the value for e and b:6 Enter the value for e and d:9 Enter the value for e and e:0 Enter the value for f and b:2 Enter the value for f and d:10 Enter the value for f and e:4 OUTPUT: a b c d e
Vizag Institute of Engineering and Technology
f
JNTUWORLD
23
Department of I.T.
a b c d e f
0 1 0 0 1 0
1 0 1 0 0 1
0 1 0 1 1 0
0 0 1 0 0 1
1 0 1 0 0 1
0 1 0 1 1 0
JNTUWORLD
24
Department of I.T.
5) PROBLEM SPECIFICATION: Program to implement Broadcast routing algorithm. ALGORITHM: Step1: Enter the number of nodes n of the subnet and their node names. Step2: Enter the link between each and every nodein the subnet. Step3: Enter the root node in the subnet and say hop count as 0 and kept invisited 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.
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;
Vizag Institute of Engineering and Technology JNTUWORLD
25
Department of I.T.
} 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"); } 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(); }
JNTUWORLD
26
Department of I.T.
INPUT: 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 OUTPUT: The matrix representation for the graph is: a b c d e a0 1 1 0 0 b 1 01 1 0 c 1 1 0 1 0 d 0 1 0 0 1 e0 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
JNTUWORLD
27
Department of I.T.
6) PROBLEM SPECIFICATION: Program to implement Data Encryption Standard. 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
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); }
Vizag Institute of Engineering and Technology JNTUWORLD
28
Department of I.T.
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]; 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') {
Vizag Institute of Engineering and Technology JNTUWORLD
29
Department of I.T.
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]; 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();
Vizag Institute of Engineering and Technology JNTUWORLD
30
Department of I.T.
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]; 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';
Vizag Institute of Engineering and Technology JNTUWORLD
31
Department of I.T.
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'; 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++)
Vizag Institute of Engineering and Technology JNTUWORLD
32
Department of I.T.
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++) 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];
Vizag Institute of Engineering and Technology JNTUWORLD
33
Department of I.T.
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 { 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(); }
JNTUWORLD
34
Department of I.T.
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
JNTUWORLD
35
Department of I.T.
7) PROBLEM SPECIFICATION: Program to implement Encryption of plain text.. 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 plaintext is then xored 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 xored 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: Stop PROGRAM: #include<stdio.h> #include<conio.h> #include<math.h> static char a[10],pp[10],z[10],k[10],ak[10]; static char rp[10],bk[10],k1[10],k2[10],ap[10],bp[10]; static char k1[10],b[10],rk[10],x[10]; static char 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];
Vizag Institute of Engineering and Technology JNTUWORLD
36
Department of I.T.
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]; 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'; }
Vizag Institute of Engineering and Technology JNTUWORLD
37
Department of I.T.
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]; rk[2]=k[1]; rk[3]=k[6]; rk[4]=k[3]; rk[5]=k[9]; k[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);
Vizag Institute of Engineering and Technology JNTUWORLD
38
Department of I.T.
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]; 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]); } s0[0][0]='1'; s0[0][1]='0'; s0[0][2]='3'; s0[0][3]='2'; s0[1][0]='3'; s0[1][1]='2'; s0[1][2]='1'; s0[1][3]='0'; s0[2][0]='0'; s0[2][1]='2';
Vizag Institute of Engineering and Technology JNTUWORLD
39
Department of I.T.
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'; s1[3][1]='1'; s1[3][2]='0'; s1[3][3]='3'; y1=ss(c[0],c[3]); y2=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++)
Vizag Institute of Engineering and Technology JNTUWORLD
40
Department of I.T.
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++) 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]); } 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];
Vizag Institute of Engineering and Technology JNTUWORLD
41
Department of I.T.
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 { printf("\nenterur choice:"); printf("1-->encryption 2-->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); sos(); prg(p10); prg(rr); break; case 2: exit(); } } while(ch<2); getch(); }
JNTUWORLD
42
Department of I.T.
OUTPUT 1: Enter ur choice: 1encryption 2exit:1 encryption 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 Rearranged plain text: 0 1 0 1 1 1 0 0 e/p : 0 1 1 0 1 0 0 1 xor: 0 0 1 0 1 0 1 1 p4: 0 1 0 0 e/p:1 0 0 0 0 0 1 0 xor: 1 1 1 1 0 1 1 0 p4: 0 1 1 1 IP inverse:1 0 1 1 0 0 0 1 Cipher text: 1 1 1 0 0 0 1 0 Enter ur choice: 1encryption 2exit:2 OUTPUT 2: Enter ur choice: 1encryption 2exit: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 1 1 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
Vizag Institute of Engineering and Technology JNTUWORLD
43
Department of I.T.
Rearranged plain text: 0 0 1 0 0 0 1 1 e/p : 1 0 0 1 0 1 1 0 xor: 0 0 1 1 1 0 1 0 p4: 0 0 0 1 e/p:1 0 0 1 0 1 1 0 xor: 1 0 0 0 1 1 0 1 p4: 0 0 0 0 IP inverse: 0 0 1 1 0 0 1 1 Cipher text: 1 0 1 0 1 0 1 0 Enter ur choice: 1encryption 2exit:2
JNTUWORLD
44
Department of I.T.
8) PROBLEM SPECIFICATION: Using RSA algorithm Encrypt a text data and Decrypt the same. 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.
PROGRAM: /*RSA algorithm */ #include<stdio.h> #include<conio.h> #include<math.h> static int a,i,x,e,n,mn,d,a1,a2,a3,b1,b2,b3,p,h,q,s,t1,t2,t3; read1 () { printf ("\n Enter a prime number :"); scanf("%d",&a); x=0; for(i=2;i<a;i++) if(a%i==0) x=3; if((x==3)||(a==0)||(a==1)) { printf("\n This is not a prime no.Enter prime no:"); read1(); } else return(a); } gcd() { printf("\n Enter e value:"); scanf("%d",&e); if((e<=1)||(e>=mn)) {
Vizag Institute of Engineering and Technology JNTUWORLD
45
Department of I.T.
printf("\n Enter e value such that 1<e<%d",mn); gcd(); } for(i=1;i<e;i++) { if(((mn%1)==0)&&((e%i)==0)) x=i; } if(x!=1) { printf("\n Enter e value such that gcd(%d,e)=1",mn); gcd(); } else { a1=1;a2=0;b1=0;b2=1;a3=mn;b3=e; euc(); } } euc() { if(b3==0) { printf("\n d value does not exist for e value %d enter another value",e); gcd(); } if(b3==1) { d=b2; if(b2<0) { printf("\n Enter e value such that d is positive"); gcd(); } else { printf("\n d value is :%d",d); printf("\n enter m value;"); scanf("%d",&h); mod(h); } } s=a3/b3; t1=a1-(s*b1); t2=a2-(s*b2); t3=a3-(s*b3); a1=b1;a2=b2;a3=b3; b1=t1;b2=t2;b3=t3;
Vizag Institute of Engineering and Technology JNTUWORLD
46
Department of I.T.
euc(); } mod(int m) { intl,k=1,ch; longint w=1,mm=1,c; l=e; while(l!=0) { if(l<k) k=l; mm=l; for(i=1;i<=k;i++) mm=mm*m; w=w*(mm%n); l=l-k; if(k<4) k=k+k; } c=w%n; if(m==c) printf("\n m value is: %d",c); else printf("\n c value is: %d",c); printf("\n Enter your choice:"); printf("1.Caluculate another one\n2.Verify\n3.Exit"); scanf("%d",&ch); switch (ch) { case 1:main(); case 2:mod(c); break; case 3:exit(); } } main () { clrscr (); p=read1 (); q=read1 (); n=p*q; mn= (p-1)*(q-1); gcd (); getch (); }
JNTUWORLD
47
Department of I.T.
INPUT 1: Enter a prime number: 7 Enter a prime number: 3 Enter e value: 5 /*********** OUTPUT1 ************/ D value is 5 Enter m value: 88 C value is 10 Enter your choice 1.caluculate another one. 2. verify 3. Exit 1 INPUT 2: Enter a prime number: 17 Enter a prime number: 11 Enter e value: 7 /*********OUTPUT2************/ D value is 23 Enter m value: 88 C value is 11 Enter your choice 1.caluculate another one. 2. verify 3. Exit 3
JNTUWORLD
48
Department of I.T.
Things in UML : Structural Things Classes Interfaces Collaborations Use Cases Active Classes Components Nodes Classes Interactions State Machines Packages Notes
Behavioral Things
JNTUWORLD
49
Department of I.T.
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.
Relations: Association Dependency Generalization Realization In addition to this there are Directed Association Aggregation and Composition
JNTUWORLD
50
Department of I.T.
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. Symbol:
Composition: Links a semantic association between two classes in the UML diagram. Composition is used in class diagram.
Symbol:
JNTUWORLD
51
Department of I.T.
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: ---------------------------------------------Class diagrams: A class diagram is that which represents vertices and arcs. It consists of three compartments.
Name Attributes Operations Vizag Institute of Engineering and Technology JNTUWORLD
52
Department of I.T.
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: 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
JNTUWORLD
53
Department of I.T.
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:
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:
------------------------------------------
54
Department of I.T.
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 Symbol:
State Name
rounded
rectangle.
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: and is semantically equivalent to a composite state.
Initial State: 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:
JNTUWORLD
55
Department of I.T.
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:
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:
JNTUWORLD
56
Department of I.T.
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 given region of a state machine. It is not itself a state but acts as a marker. Symbol:
JNTUWORLD
57
Department of I.T.
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: A state diagram (and by derivation an activity diagram) expresses a decision when guard conditions are used to indicate different possible transitions that depend on Boolean Symbol: conditions of the owning object.
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:
JNTUWORLD
58
Department of I.T.
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:
JNTUWORLD
59
Department of I.T.
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:
JNTUWORLD
60
Department of I.T.
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.
JNTUWORLD
61
Department of I.T.
check for authorization Check for availability of book <<include>> Librarian issue the book <<include>> returns the book <<include>>
Student
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.
62
Department of I.T.
The main tasks are performed by the system whenever student or staff is valid. 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.
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()
JNTUWORLD
63
Department of I.T.
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 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.
1 : logsin()
7 : justifies
11 : updates()
15 : releases() <<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
JNTUWORLD
64
Department of I.T.
issue of the book the librarian, he verifies in the library in turn it checks in the database whether the student has the account
Available
Not available
Issues
Verification
Student details
Book details
Fine verification
valid
In valid
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.
Vizag Institute of Engineering and Technology JNTUWORLD
65
Department of I.T.
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. The student collects the book.
DIAGRAMS
OF
LIBRARY
MANAGEMENT
ideal state
verification authenticates
pay fine
collecting book
logout
exit
JNTUWORLD
66
Department of I.T.
re t ur n.e x e re t ur n o f book
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
JNTUWORLD
67
Department of I.T.
Case Study 2
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
Reservation system
Server
Passe nger
Count e rCle rk
A v aila bilit y st a t us
JNTUWORLD
68
Department of I.T.
Passenger
Print ticket
Counter Clerk
Pa ss e nge r
JNTUWORLD
69
Department of I.T.
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
JNTUWORLD
70
Department of I.T.
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()
JNTUWORLD
71
Department of I.T.
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
Activity diagrams
Data Entered into R&T System Not Available Puts New Data and Train
Prints Tickets
72
Department of I.T.
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 rm 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 r m s t h e f a r e 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 r o c e s s ]
Component diagram
JNTUWORLD
73
Department of I.T.
Deployment diagram
Clients
Reservation server
Cle rk
Re se rv a t ion Se rv e r
Kiosk
Case Study 3
Vizag Institute of Engineering and Technology JNTUWORLD
74
Department of I.T.
75
Department of I.T.
System v e r ific a t io n Ba n k
in v a lid P IN <<extend>>
m anagedat abase
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.
Vizag Institute of Engineering and Technology JNTUWORLD
76
Department of I.T.
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.
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.
77
Department of I.T.
: Bankclient
: ATM machine
: Bank
1 : Insert ATMcard()
7 : Enter amount() 8 : withdraw checking() 9 : withdraw successfully() 10 : Transcation successfully finished() 11 : dispense cash()
12 : print reciept()
13 : terminate()
<<destroy>>
JNTUWORLD
78
Department of I.T.
ACTIVITY
Bankclient
DIAGRAM
OF
ATM machine
ATM
Bank
TRANSACTION:
Insert atmcard
[submite]
read PIN
verify PIN
[invalid]
dispense cash
give recipt
close transcation
79
Department of I.T.
ideal
maintain maintainance
validate
withdraw/enquiery
JNTUWORLD
80
Department of I.T.
A TM m a chine
Ethernet
serv er
R A ID fa rm
RS-232
A TM .e x e
Ba nk
81
Department of I.T.
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.
JNTUWORLD
82
Department of I.T.
Context Level Diagram:Search Order Customer Book Details Ordered Books Book Shop Orders sDetails Add Books
Dealer
Sy ste m a u t h e n t ic a t io n L o g in
cre ate 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 sent 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
g ift s bank
JNTUWORLD
83
Department of I.T.
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:
JNTUWORLD
84
Department of I.T.
custom er ca rt -t o t a l m o n e y + p la c e o r d e r() + c a n c le o rd 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 -ra t in g + c re a t e c u s t o me 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
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 arehouse -n a m e + u p d a t e () + d e le t e ()
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.
85
Department of I.T.
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:
Vizag Institute of Engineering and Technology JNTUWORLD
86
Department of I.T.
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:
Vizag Institute of Engineering and Technology JNTUWORLD
87
Department of I.T.
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
88
Department of I.T.
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:
Vizag Institute of Engineering and Technology JNTUWORLD
89
Department of I.T.
a ut he nt ica t ion
DEPLOYMENT DIAGRAM:
TESTING
JNTUWORLD
90
Department of I.T.
Expected Output
Mismatched password.
Password should have at least 6 characters. Blank spaces are not allowed. Phone number should be numeric.
Expected Output
Invalid password. Invalid login name.
Expected Output
At least one of the fields must be filled.
JNTUWORLD
91
Department of I.T.
Test Case
1. Quantity 2. Credit card no. 3. Credit card no.
Expected Output
Quantity should be at least one to place the order. Should be numeric only. invalid credit card no.
Expected Output
address is required to deliver the order.
92
Department of I.T.
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
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
m a na ge r
pa y s t he fe e
Iss ue s ID ca rd
ACTORS: 1 1
Student: The student is the primary actor who requests for seat
1 1 College administration: The college administrator is the primary actor who verifies the certificates and grants the seat
JNTUWORLD
93
Department of I.T.
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 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.
JNTUWORLD
94
Department of I.T.
+has de p a r t m e nt +department t +dept name * 1..* +time table() +add d() +staff() 1..* 1..*
* libra ry +text books +book name +author name +issues() +renewal() +fine() 0..1
1..*
1..*
+chairperson
attends * *
1..*
teaches
* *
attends
I) PERSISTENCE CLASSES: College, department, laboratory are the persistence classes. II) NON-PERSISTENCE CLASSES: Library, student, course, faculty, are the non-persistence classes.
95
Department of I.T.
s : student
a : admission cell
college database
96
Department of I.T.
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()
i : interviewer
97
Department of I.T.
student
system
server
accepts
requests
invalid
98
Department of I.T.
Idle
fine exists
issue book
JNTUWORLD
99
Department of I.T.
s t ud e nt .db
c o lle g e .d b
a dm is s io n
ETHERNET
console
JNTUWORLD
100