Bugs discovery - User experience and relationship between elements
UML modeling tool derived from StarUML compatible with Windows 7-10
Status: Abandoned
Brought to you by:
janszpilewski
Dear janszpilewski,
Firstly, We are students from RMIT University Vietnam. Writing documentation is a very important task that we have to conduct. In our opinions, WhiteStarUML is a very good software that has many StarUML significant bugs being fixed. We are very glad to see your great effort in building better quality software for drawing standard UML diagrams. So we would like to participate in further improving WhiteStarUML by noticing bugs that affect the user's experience negatively.
The User experience bugs that we think will impact the usability remarkably are listed as follow:
Finally, we would like to provide some bugs that are caused by validation errors. These bugs may not happen if the users are expert engineers, however, students may make mistakes if they do not understand the OOP rules. If they generate code with these errors in their design, they can not compile the generated objects. The bugs are listed as follow:
We know that it is not easy to develop WhiteStarUML. So we hope that our bug notification here, in the customer perspective, will help your program become outstanding among the other UML drawing applications available on SourceForge. We are happy to know about your opinion toward the severity of the above bugs.
Regard,
RMIT students
Hello,
Thanks for your support and the feedback. You posted quite a lot of ideas, some may be considered in the future but generally various models validity checks at the UML level should not be based on the validity of generated code in a given programming language as UML may be used to model various kind entities not necessarily software based so limiting entity name format would be a serious deficiency.
Additionally given that the program is open source and marketed as extensible you should be able to create such a model validator extension yourself if needed. If it is not clear how to do it actually it is the problem I should put more efforts on. This program will never get anywhere as long as all work is done by a single person in his spare time.
You also signal various problems with copying elements and using model fragments.
The catch is to be aware that the relations are models just like classes. So if you create two classes with a relation between them and next move both classes to another package the relation will remain in the original package. Neither it will be exported if you save the second package as a model fragment.
To visualize what I am talking about use "Filter Elements" dialog in the Model Explorer and choose "Select Relations". Now you will see that you have to move the relation model too. After that the model fragment will be saved and read correctly. It may be pretty misleading and I may think about coding auto-moving relations but for now a good rule to follow is to create a dedicated package from the start for every serious model and avoid moving elements.
In another place you mention problems with "<=2121". As you type "<=" you should see a popup saying "Generalized from current" and it indeed has special meaning leading to create n classes derived from the current one. And creating over 2000 classes may take some time. Try a simpler form like "<=5".
Code generation and reverse engineering are indeed far from being perfect but as such a functionality is coded as plugins they may be replaced in the future with something more modern and easier to be updated.
Hi Janusz Szpilewski,
Thank you for appreciating our contribution to WhiteStarUML. Firstly, before we posted these bugs, we have realized that WhiteStarUML is mostly developed by you with several helps from the community. Therefore, the bugs we posted before and today are just our views on a number of things, which if being fixed will result in a better software. We see that you develop WhiteStarUML in your spare time, thus some features will need more time to be improved to the next level, not immediately. But the important thing is, we highly appreciate your wonderful effort in developing WhiteStarUML.
Regarding the UML purposes, you are right, it does not only modelling software application, but also depicting business processes. Therefore, forcing an OOP relationship rules in View will restrict the flexibility of WhiteStarUML. However, should we concern about the OOP relationship validations rules when generating code? Because when users generate code, they have already selected the programming language, and the model that they want to generate as well. For this reason, it would be so great if you can detect invalid OOP relationship before generating code, since if an invalid relationship exists, the result of WhiteStarUML code generation process will be affected as well.
In terms of copying elements, we have tried the Model Explorer with relationships being selected by configuring the Filter Element in the Model Explorer. At the moment, it is a good way to copy the model while maintaining the relationship, but the auto-moving relation that you mentioned will be much more convenient than the current Model Fragment Export solution. Thus we are very happy to see it happens in the future.
I did not perceive the "<=" as the way it is, I thought it will convert "2121" as a name and create a class like what I tried by typing "<=Abcd". But thanks to your explanation, I see it has a different meaning. Maybe a little more specific in the pop-up guide will help users discover the variations of annotation usage. Moreover, we are very happy to hear that you will replace the code generation and reverse engineering features with a better engine. We hope that it will be a huge success for you.
Additionally, we have found a number of bugs related to memory violations, performance, and configuration issues as follows:
When we import a standard Java Framework by selecting File -> Import -> Framework -> Java 1.2 Standard Framework --> choose target model, then three packages java, javax, org are imported into a target model. However, when we attempt to delete the java, javax or org package, it took it quite a long time (more than 5 minutes) and the WhiteStarUML application does not respond during that time.
In Use Case Diagram, when we create a new use case with a name “<=Ab, Ac”, then pressing Enter, three use cases are created, then click on other place to defocus the three use cases. When we undo the action, a memory violation error message occur, and if we keep pressing undo, the error messages are displayed again. If we click on other element, like Actor, Model or Open new project, the error message occurs again, preventing us from continuing our actions.
In Class Diagram, when we create a new class with a name “<=Ab, Ac”, then pressing Enter, three classes are created. When we undo the action, a memory violation error message occur, and if we keep pressing undo until the primitive state, the error messages are displayed again, and the “Ac” class still remain there when we keep pressing undo. If we click on other element, like Enumeration, Class or Interface, the error message occurs again, preventing us from continuing our actions. However, when we switch to another program and switch back, the elements that Enumeration, Class and Interface that we did not see previously due to the memory violation error message, does appear in the View when we reopen WhiteStarUML.
In Class Diagram, after we create an element, we can rename it to “”, then we generate the code or verify model, there should be an announcement stating that there is a blank element in the design, it will cause compilation error if the blank element is an interface or class. In business modelling perspective, a descriptive or original name should be replaced when users try to remove all characters from the name, or a warning should be displayed to ensure that users will not forget to name their elements afterward.
In Unit Control, if we create a control unit on a model, then we make a change to the content of the control unit .unt file, and navigate back to the WhiteStarUML window. A dialog box appears, telling us that the file is modified, do we want to reload it? Click No, then WhiteStarUML cannot be opened again, usually to other application, if we select No, the program will continue to operate in its current state. If we select Yes, the file name is reloaded and the software continue to work.
This is a configuration error, my computer does not work when I try to Convert Sequence (Role) Diagram to Collaboration (Role), but my partner’s computer has no problem with this. When I select a sequence (Role) diagram, and select Model → Convert Diagram → Convert Sequence (Role) Diagram to Collaboration (Role), an error message appears stating “Can’t find script engine VBScripts”, I installed WhiteStarUML in the default location, and my computer configuration is as follow: CPU Intel core i5-2430M, RAM 6 GB, GPU Intel(R) HD Graphics Family.
When we drag different menu elements such as Main Menu, Diagram Explorer, Model Explorer, toolbox, Alignment, View, Standard, and Format to random positions in the middle of the WhiteStarUML screen, then we click on another position to defocus the last moved view. The Main Menu, Alignment, View, Standard and Format toolbars are displayed on the front, but the Model Explorer, Diagram Explorer and Properties windows are hidden in the back of the screen. Therefore, we cannot focus on the Model Explorer, Diagram Explorer or Properties to place them in a new position because they are not on the front of the WhiteStarUML window.
Regarding the Main Menu, there is a “Add or Remove Button” on the far right of the Main Menu, when we click on that button and choose “Reset Toolbar”, there will be a number of features in the Tools and Help tabs like code generation, documentation generator and help guides disappear.
We also found a number of parameters management errors in documentation generator. On Main Menu, select Tools → Documentation Generator → Choose a template (For example: Usecase Specification Document)→ Click Template Properties → In Detail, Click Parameters, Click the button on the right of the Parameters value → Click on Add Button → input the Name value as “TemplateFile”, Type is “String”, Default Value is “Test” → Click OK. Click on the newly created Template File, check the Default Value and Type, it is the same as the value of the default “TemplateFile”, not “Test” as we expected.
Related to bug number 9, but for parameter deletion feature, On Main Menu, select Tools → Documentation Generator → Choose a template (For example: Usecase Specification Document)→ Click Template Properties → In Detail, Click Parameters, Click the button on the right of the Parameters value → Click on Add Button → input the Name value as “TemplateFile”, Type is “String”, Default Value is “Test” → Click OK. On the parameters window, click on the newly created TemplateFile, then click on the delete button, the default “TemplateFile” parameter are deleted, not the new one.
We also found a number of security issues
When we create a new projects, then we select File → Save As, select the location where a dll file
of a program being placed, then type the file name exactly the same as a .dll file in Windows, the software will ask a confirmation to overwrite, click Yes, the dll file will be overwritten. If WhiteStarUML is run in administration mode, we can save file in C:\Window folder. This exposes a security issue, the save function should only permit to save file if its extension is “.uml” to prevent certain forms of security exploitation.
Regarding User Guide File, in the main menu toolbar, when we select Tools → Options → General, then we can change the value of the user guide file location to execute a file out of WhiteStarUML directory by adding a text “....[an executable file name]”. We can modify the location to let WhiteStarUML executes a file like Google Chrome or other application. This means we can run a malicious program using WhiteStarUML as well.
In documentation generator feature, when we tick on a template, for example Pseudo Code (IMPP), then we click on “Template Properties” button, In Details, click on the Parameters Value, then click on the button on the right of the Parameters Value text field, double click the TemplateFile and modify the Default Value to “C:\Windows[an executable file]”. Then we navigate back to the WhiteStarUML Generator Window, click the “Open Template” button, we can run that executable file, it will be dangerous if someone use this feature to run a malicious software under WhiteStarUML session.
Again, we know that you are working on your spare time, and developing a software like WhiteStarUML is very challenging, thus these bugs can be fixed sometime in the future. We are very happy to discuss with you further about the bugs, and see a wonderful update of your software in the future, Janusz.
Happy New Year! We wish the best for you.
All the best,
RMIT students.
Last edit: s3408663 2015-01-03