%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Interactive Role Stereotype-Based Visualization To Comprehend Software Architecture - VISSOFT2020
1. Interactive Role Stereotype-Based Visualization
To Comprehend Software Architecture
Truong Ho-Quang, Alexandre Bergel, Arif Nurwidyantoro, Rodi Jolak, Michel R.V. Chaudron
28-29 Sept
Adelaide
Australia
1
3. Motivation
● Software Understanding is a long-standing challenge
● Our focus is on: understanding at design/architecture level
structural perspective
● Our idea: enrich visualisation with
the role that classes play
in the design / architecture
3
4. Background: Role-Stereotypes in software design
Every component in a software design should
‘play’ one of the stereotypical responsibility-roles
Information HolderService Provider
CoordinatorController Interfacer
Structurer
Rebecca Wirfs-Brock
4
5. Service Provider (SP)
•performs specific work
•offers services
’-er’, ’-or’; public static methods;
might contains some logics to do
specific tasks.
Information Holder (IH)
•knows/keeps information
•provides information
data encapsulation; get/set methods;
private/internal methods
Interfacer (IT)
•transforms/converts information
and requests btw SW layers
GUI-related; storefront; API;
extension points
Controller (CT)
•makes decision
•control complex tasks
’controller’, ’manager’; logic
statements; knows IH, SP, CO
Coordinator (CO)
•delegates works
•forwards info/requests
no/simple logic; knows requester &
requestee
Structurer (ST)
•keeps/maintains relationship
•pool, collects, arranges objs
Collection; sort(); compare(); validate();
add(); remove(); …
Role Stereotypes
5
6. K9-Mail case
(HP: https://k9mail.app/)
Establishing the Role-Stereotypes of classes
● We used manually labelled 700+ classes of the
K9-Mail case (available in replication package)
● For future use, we built a ML-Classifier (*) that can
automatically classify classes into role-stereotypes
based on features that can be extracted from the
source code.
Size: 700+ classes
Language: Java
Platform: Android
Type: Opensource
Community: Github
Popularity: 5.2k stars
2.1k forks
6
(*) Nurwidyantoro, A., Ho-Quang, T. and Chaudron, M.R., 2019. Automated classification of class role-stereotypes via
machine learning. In Proceedings of the Evaluation and Assessment on Software Engineering (pp. 79-88).
7. ● The height of a unit U represents the fan-in, i.e. number of
units that depend on U.
● The width of a unit U represents the fan-out, i.e. number of
units that U depends on (has a dependency to).
RoleViz approach
Package
Class / Interface
Dependencies
7
8. RoleViz Interactions
Aim: To ease the exploration of
the software under analysis.
● Hoovering triggers highlighting of
dependencies
● Drilling-down to obtain detailed
data about a particular visual
element (package/class)
8
11. Evaluation
● Compare to existing Software
Architecture visualization tool
www.softagram.com
○ Commercial software visualization tool
● We observe 16 participants doing 2 comprehension tasks
● We measure:
○ participant’s perceived cognitive load (using TLX form),
○ participant’s perceived usability (using SUS),
○ participant’s understanding of the software system regarding the tasks (using
questionnaire)
11
12. Comprehension Tasks
● 2 comprehension tasks
● Realistic
○ From issue tracking system of K9
○ Simple tasks (tagged with good first issue)
○ Solution is compared against code approved in K9 project
Two tasks are of similar complexity 12
The two comprehension tasks are comparable
in terms of complexity, required cognitive-load,
usability score, and understanding score. With
this, we can eliminate the“task-difference”
factor when analysing the differencebetween
visualisation tools.
13. Participants
● Voluntary call for participation in researcher’s networks
● Invite 16 participants
○ 4 industrial software developers
○ 7 MSc students
○ 4 PhD students
○ 1 postdoc
● Sent out training materials to participants
○ Video & presentation
○ Understanding of role-stereotypes
○ Use of both tools Softagram and RoleViz
13
14. Post-task Understanding
questions
Comprehension Session
● Introduction (5 mins)
● Warm-up (15 mins) – explore ‘hands on’
● Comprehension session(*) (50 minutes)
○ 1 task with Softagram
○ 1 task with RoleViz
○ 1 post-task questionnaire after each task
● Post-study questionnare
Q1. Can you name 5 elements
(packages/classes/methods) that
are the most relevant/important to the
task?
Q2. What are the responsibilities of the
elements chosen for
the question above in performing the
functionality related
to the task?
Q3. Which changes of the elements
chosen for question
above are needed to complete the
task? (Describe your
plan/solution)(*) We alternated tasks and visualisation tools
14
15. Data Collection
● Background information
○ Programming experience
○ Android
○ K9 case
● NASA Task Load Index (TLX) Questionnaire,
● System Usability Scale (SUS) Questionnaire,
● Understanding Questionnaire,
● Video Recording,
● Post-study Questionnaire.
Before
Comprehension
Session
During
Comprehension
Session
After
Comprehension
Session
15
16. Comparison Result: Task load
The average task
load associated with
using RoleViz and
Softagram for the
comprehension tasks
is comparable
16
17. Comparison result: Usability
• RoleViz is reported to have
significantly higher
Usability score compared
to Softagram.
• Participants valued the
high level of integrity of
available functions of
RoleViz over Softagram
17
18. Comparison result: Understanding
Participants achieved significantly higher understandingscores (by
10%) and produced better solutions when using RoleViz (for
comprehension tasks) compared to using Softagram.
18
19. Participant’s perception on the features of RoleViz
Participants wished for:
● Visualizing behavioral information (e.g., call-graphs)
at a level between source code and architecture level
of abstraction
● Better support when reading source code (syntax
highlighting and searching)
Participants liked the integration features that enable
exploring a software system at both the design and the
source code levels of abstraction
19
20. Some participants use classes with
particular stereo-types as starting-
points for particular understanding
tasks:
● For tasks that deal with ’user
interface’ issues, participants start
their exploration of the system by
looking at classes labelled as
’interface’-type.
Interesting observation
Nurwidyantoro, A., Ho-Quang, T. and Chaudron, M.R., 2019. Automated classification of class role-stereotypes via machine
learning. In Proceedings of the Evaluation and Assessment on Software Engineering (pp. 79-88).
20
21. Conclusion & Future Work
Present a novel visualization tool (RoleViz)
for software comprehension/understanding
using role-stereotypes.
Evaluate RoleViz agaist a commercial
comprehension tool Softagram via user’s:
- Task-load
- Usability
- Understanding
Improving RoleViz
- Enhance current visualisation
- Add more features
- Support more languages and
platforms
Automatizing the whole process
- Build ML model for role
identification
Demo video:
https://youtu.be/1JYQMPMF9do?t=278
Replication package:
https://bit.ly/380PQb7 21