Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2022-158
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2022-158
2022-158
Commits
66f08936
Commit
66f08936
authored
Oct 02, 2022
by
Thushara Thiwanka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UPDATE: code refactoring
parent
67269416
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
10 deletions
+23
-10
backend/database.db
backend/database.db
+0
-0
backend/services/tokenization_service.py
backend/services/tokenization_service.py
+0
-1
backend/services/use_case_diagram_generation_service.py
backend/services/use_case_diagram_generation_service.py
+23
-9
No files found.
backend/database.db
View file @
66f08936
No preview for this file type
backend/services/tokenization_service.py
View file @
66f08936
...
...
@@ -37,7 +37,6 @@ def split_actions(sentence):
def
get_actions
(
splitted_action
):
# print('splitted_action',splitted_action)
temp_array
=
[]
if
splitted_action
is
not
None
and
'|'
in
splitted_action
[
1
]:
res
=
splitted_action
[
1
]
.
split
(
' | '
)
...
...
backend/services/use_case_diagram_generation_service.py
View file @
66f08936
...
...
@@ -44,34 +44,39 @@ def get_include_extend_relationships(splitted_actions_array):
relationship_array
.
append
(
dictionary
)
return
relationship_array
def
clean_use_case_strings
(
use_case
):
if
'Extend'
in
use_case
:
return
use_case
.
replace
(
'Extend'
,
''
)
.
lstrip
(
' '
)
return
use_case
.
replace
(
'Extend'
,
''
)
.
lstrip
(
' '
)
elif
'Include'
in
use_case
:
return
use_case
.
replace
(
'Include'
,
''
)
.
lstrip
(
' '
)
else
:
return
use_case
.
lstrip
(
' '
)
def
generate_dot_file_actors_string
(
actors
):
actors_string_content
=
[]
for
actor
in
actors
:
single_actor_string
=
'subgraph '
+
actor
+
' {label="'
+
actor
+
'"; '
+
actor
.
lower
()
+
'};
\n\t
'
+
actor
.
lower
()
+
' [image="'
+
APP_ROOT
+
'/stick.png";peripheries=0;];
\n
'
single_actor_string
=
'subgraph '
+
actor
+
' {label="'
+
actor
+
'"; '
+
actor
.
lower
()
+
'};
\n\t
'
+
actor
.
lower
()
+
' [image="'
+
APP_ROOT
+
'/stick.png";peripheries=0;];
\n
'
actors_string_content
.
append
(
single_actor_string
)
return
actors_string_content
def
generate_use_case_nodes
(
actors_and_use_cases_array
):
use_case_nodes_array
=
[]
for
element
in
actors_and_use_cases_array
:
cleaned_use_case_string
=
clean_use_case_strings
(
element
[
1
])
use_case_string
=
cleaned_use_case_string
.
lower
()
.
replace
(
' '
,
'_'
)
+
' [label="'
+
cleaned_use_case_string
+
'"];
\n
'
use_case_string
=
cleaned_use_case_string
.
lower
()
.
replace
(
' '
,
'_'
)
+
' [label="'
+
cleaned_use_case_string
+
'"];
\n
'
use_case_nodes_array
.
append
(
use_case_string
)
return
use_case_nodes_array
def
generate_edges
(
actors_and_use_cases_array
):
edges_array
=
[]
for
element
in
actors_and_use_cases_array
:
cleaned_string
=
clean_use_case_strings
(
element
[
1
])
edge_string
=
element
[
0
]
.
replace
(
' '
,
''
)
.
lower
()
+
'->'
+
cleaned_string
.
lower
()
.
replace
(
' '
,
'_'
)
+
';
\n
'
edge_string
=
element
[
0
]
.
replace
(
' '
,
''
)
.
lower
()
+
'->'
+
cleaned_string
.
lower
()
.
replace
(
' '
,
'_'
)
+
';
\n
'
edges_array
.
append
(
edge_string
)
return
edges_array
...
...
@@ -81,25 +86,32 @@ def generate_extend_relationships_string(extracted_relationships):
for
element
in
extracted_relationships
:
if
element
[
'extend'
]:
for
ele
in
element
[
'extend'
]:
extend_string
=
element
[
'use_case'
]
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
'->'
+
ele
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
';
\n
'
extend_string
=
element
[
'use_case'
]
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
'->'
+
ele
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
';
\n
'
extend_array
.
append
(
extend_string
)
return
extend_array
def
generate_include_relationships_string
(
extracted_relationships
):
include_array
=
[]
for
element
in
extracted_relationships
:
if
element
[
'include'
]:
for
ele
in
element
[
'include'
]:
include_string
=
element
[
'use_case'
]
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
"->"
+
ele
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
';
\n
'
include_string
=
element
[
'use_case'
]
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
"->"
+
ele
.
lstrip
(
' '
)
.
rstrip
(
' '
)
.
replace
(
' '
,
'_'
)
.
lower
()
+
';
\n
'
include_array
.
append
(
include_string
)
return
include_array
def
generate_random_string
():
letters
=
string
.
ascii_lowercase
random_string
=
''
.
join
(
random
.
choice
(
letters
)
for
i
in
range
(
10
))
return
random_string
def
generate_use_case_diagram
(
actors
,
extracted_relationships
,
actors_and_use_cases_array
):
def
generate_use_case_diagram
(
actors
,
extracted_relationships
,
actors_and_use_cases_array
):
generated_actors_string
=
generate_dot_file_actors_string
(
actors
)
generated_use_case_nodes_string
=
generate_use_case_nodes
(
actors_and_use_cases_array
)
generated_edges_string
=
generate_edges
(
actors_and_use_cases_array
)
...
...
@@ -138,6 +150,8 @@ def generate_use_case_diagram(actors,extracted_relationships,actors_and_use_case
generate_diagram
(
dot_file_name
)
return
'/generated_use_case_diagrams/'
+
dot_file_name
+
'.png'
def
generate_diagram
(
filename
):
subprocess
.
run
([
"dot"
,
"-Tpng"
,
OUTPUTS_GENERATED_DOT_FILES_PATH
+
"/use_cases_"
+
filename
+
".dot"
,
"-o"
,
OUTPUTS_GENERATED_USE_CASE_DIAGRAMS_PATH
+
"/"
+
filename
+
".png"
])
return
True
\ No newline at end of file
subprocess
.
run
([
"dot"
,
"-Tpng"
,
OUTPUTS_GENERATED_DOT_FILES_PATH
+
"/use_cases_"
+
filename
+
".dot"
,
"-o"
,
OUTPUTS_GENERATED_USE_CASE_DIAGRAMS_PATH
+
"/"
+
filename
+
".png"
])
return
True
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment