Transformation Rules
A) Identify group of nouns that represents a single entity or a single attribute
TR1: The TDs are scanned and the nn(Noun Compound) dependencies are then used to identify and combine group of nouns that
represent single entity or single attribute. The TDs and POS-tags are updated accordingly.
B) Identify Control and Boundary classes
TR2: For each use case a control class is created with use case name as the name of the class.
Example : From UCS Withdraw Funds the approach identifies the control class named "WithdrawFunds<<Control>>".
TR3: For each of the actor of the use case its boundary class is created.
Example : From UCS Withdraw Funds the approach identifies the Boundary class named "ATMcustomer<<Boundary>>".
C) Identify Entity classes and their attributes
This is done in two phases:
Phase 1:
TR4: POS-tags of each of the flow sentence in the UCS are scanned, and all the nouns are stored in a list named ListOfNouns.
For each of the two nouns n1 and n2 in ListOfNouns
If n2 contain n1 then
n1 is identified as class and added to the SetOfClasses
n2 is identified as attribute and is added as attribute of n1
EndIf
EndFor
Example : Let ListOfNouns contains two nouns say n1="Account" and n2=AccountNumber then by rule TR4 "Account" is identified as
a class and "AccountNumber" is added as an attribute of class "Account".
Phase 2:
The TDs of each of the flow sentences in UCS are scanned and following rules are applied to identify more entity classes and their
attributes
TR5: if nsubj(has,A) and dobj(has, B) then B is identified as a class and A is identified as an attribute of class B.
Example : The TDs generated by parser for flow sentence M8 of UCS-Withdraw-Funds are:
[det(system-2, The-1), nsubj(validates-3, system-2), root(ROOT-0, validates-3), complm(has-7, that-4), det(ATM-6, the-5),
nsubj(has-7, ATM-6), ccomp(validates-3, has-7), amod(funds-9, enough-8), dobj(has-7, funds-9)]
Applying rule TR5 on TDs nsubj(has-7, ATM-6) and dobj(has-7, funds-9), the approach identi es "ATM" as class and "funds" as attribute of
class "ATM".
TR6: if prep in(A, B) then B is identified as a class and A is identified as an attribute of class B.
TR7: if prep of(A, B) then B is identified as a class and A is identified as an attribute of class B.
TR8: if prepc of(A, B) then B is identified as a class and A is identified as an attribute of class B.
TR9: if amod(A, B) then B is identified as a class and A is identified as an attribute of class B.
TR10: if poss(A, B) then B is identified as a class and A is identified as an attribute of class B.
D) Identify Generalization relationships
TR11:The flow sentences and the description section of UCSs are scanned and the sentences containing "type of ", "kind of " and "is a"
are used to identify Generalization relationships.
E) Identify Aggregation Relationships
The aggregation relationship is identified in two phases:
Phase 1:
TR12: The flow sentences and the description section of UCSs are scanned and the sentences containing "part of ", "consist of " and
"consists of " and "has" are used to identify Aggregation relationships.
Phase 2:
TR13: The setOfClasses is scanned and
For each of the two classes c1 and c2 in setOfClasses
If c2 is attribute of c1 then
c1 is identified as aggregate class and
c2 is identified as part of c1
EndIf
EndFor
TR14: For each of the flow sentences in UCS
If the flow sentence contains substring "INCLUDE USE CASE ucx" then
a dependency Relationship is identified between the control class of this UCS and the control class of use case ucx.
EndIf
EndFor
TR15: The use case generalization relationships are used to identify the generalization relationships between their control classes
F) Identify association relationships, operations, operation paramters, attributes and more Entity classes
Rule No.
Sentence Structure
TR16
All except SV and SVDO
TR17
SV
TR18
SV DO
TR19
SV DO PO
Type Dependencies
Identification of Class Diagram Elements
opPara=” ”;
for(each TD in listOf TypeDependenies after 1 st TD nsubj(A,B)
nsubj(A,B)
till the end of listOfTypeDependency)
opPara=opPara+TD.dependent
endfor
sourceClass=B, destClass=null, opName=A, opPara=null,
nsubj(A,B)
assoName=null,
sourceClass=B, destClass=C, opName=A, opPara=null,
nsubj(A,B), dobj(A,C)
assoName=A,
If (x==”to”)or(x==”from) then
destClass=C
Else
nsubj(A,B), dobj(A,D), pobj(x,C)
destClass=D
end if
sourceClass=B, opName=A, assoName=A,
If (x==”to”)or(x==”from) then
TR20
SV DO PO PO
nsubj(A,B), dobj(A,D),
pobj(x,C1), pobj(y,C2)
destClass=C1+y+C2
Else If (y==”to”)or(y==”from) then
destClass=C2
Else
destClass=D
end if
sourceClass=B, opName=A, assoName=A
TR21
SV IO DOC
nsubj(A,B),nsubj(C,D),
xcomp(E,F), pobj(G,H)
TR22
SV IO DO
nsubj(A,B), iobj(C,D), dobj(E,F) sourceClass=B, destClass=D, opName=A, assoName=A
TR23
SV DO Adj Complt
TR24
TR25
TR26
TR27
nsubj(A,B), nsubj(C,D),
xcomp(E,F)
nsubj(A,B), dobj(C,D),
SV DO Ed Participle Complt
partmod(E,F), pobj(G,H)
nsubj(A,B), dobj(C,D),
SV DO Ing Participle Complt
dobj(E,F), partmod(G,H)
nsubj(A,B), dobj(C,D),
SV DO PP Complt
prep(E,F), amod(G,H)
nsubj(A,B), dobj(C,D), aux(E,F),
SV DO Infinitive Complt
infmod(G,H), dobj(I,J)
TR28
SLV NP Complt
nsubj(A,B), cop(C,D), amod(E,F)
TR29
SLV NP Complt PP
nsubj(A,B), cop(C,D),
amod(E,F), pobj(G,H)
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
If(B is Not present in the setOfClasses)
create a class B
end if
add(D+C) as attribute of B
If(B is Not present in the setOfClasses)
create a class B
end if
add D+C as attribute of B
nsubj(A,B), cop(C,D)
If(B is Not present in the setOfClasses)
create a class B
end if
add A as attribute of B
TR30
SLV Adj Complt
TR31
SVC
TR32
SVCC
TR33
SV Complt
TR34
SV DO Appos
TR35
SVPO
nsubj(A, B), pobj(C, D)
TR36
SVPOPO
nsubj(A,B), pobj(C,D), pobj(E,F) sourceClass=B, destClass=F, opName=A, assoName=A
TR37
S Pass PO
TR38
S Aux V DO
TR39
S Aux Pass PO
TR40
All except sentence
SLVNPComplt,
SLVNPCompltPP and
SLVAdjComplt
TR41
All except sentence
SLVNPComplt,
SLVNPCompltPP and
SLVAdjComplt
nsubj(A,B), dobj(C,D), aux(E,F),
xcomp(G,H)
nsubj(A,B), dobj(C,D), aux(E,F),
xcomp(G,H), purpcl(I,J)
nsubj(A,B), complm(C,D),
nsubj(E,F)
nsubj(A,B), dobj(C,D),
pobj(E,F), appos(G,H)
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=F, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
sourceClass=B, destClass=D, opName=A, assoName=A
nsubjpass(A,B), auxpass(C,D),
sourceClass=F, destClass=B, opName=A, assoName=A
pobj("by",F)
nsubj(A,B), aux(C,D), dobj(E,F) sourceClass=B, destClass=F, opName=A, assoName=A
nsubjpass(A,B), aux(C,D),
sourceClass=H, destClass=B, opName=A, assoName=A
auxpass(E,F), pobj("by",H)
N/A
N/A
if (sourceClass is not present in SetOfClasses) and (sourceClass
is present as an attribute in some other class C) then
sourceClass=C
Else
add souceClass to SetOfClassess
if (destClass is not present in SetOfClasses) and (destClass is
present as an attribute in some other class C) then
destClass=C
Else
add destClass to SetOfClassess
© Copyright 2026 Paperzz