The constant simulation of a system along project’s life is critical for the success of the project. The simulation solves the esential problems of any IT project. I mean communication between all project actors.
The Simulation promotes same view of the solution in all actor’s minds. This improves communication and understandingin the project.
The following picture depicts this problem in a very funny way…
UML Almighty can customize a prototype in different ways. But once the prototype is customized, all users has the same view of the system.
Now UML Almighty support “Rol Based Prototype” that allows to define more than one view for the same UML class, depending on the loged user.
With this capability the UML Almighty can simulate any workflow of any UML system. The complexity of the workflow is not a problem, because it is simulated as behavior. To remember the prototype and simulation:
Add/Remove link aspects (for 1x relations- web links to other objetcts. The Account class Cuenta has a web link [link aspect] to it’s Bank).
Add/Remove collection aspects (for Nx relations – web tabs with a collection of UML objects. . The Bank class has a web tab [collection aspect] with it’s Accounts)
As the aspects are based on behavior they are very flexible and powerful.
BUT…for the class Session in an ATM system, the GUI (web page) is the same for all users. This has changed with the newfunctionallity.
NOW UML Almighty can be customized to show different prototypes (for the same class) depending on the loged user.
Example with Session class:
The class Session…
Attributes: lastMessage (char), number (char)
1x Relations: Rol, Card, ATM (each Session has a Rol, a Card and an ATM)
NxRelations: Transaction (each Session has a collection of Transaction)
As you can see there are two different rols: User and Operator.
Now the class Session shows a GUI when the loged user is an Operator and shows another GUI when the loged user is an User.
The picture above shows the two Views for the same class Session. The command buttons also can be customized based on the loged user.
How UML Almighty ahieve this ?
Each GUIcomponent can be associated to an UML show/hide method. When a component is about to be rendered then the UML Almighty executes the show/hide method sending the loged user as an argument.
Class: Session Method: [canDeposit:]
canDeposit:logedUser
“The [logedUser] is sent as an argument to the show/hide method. We ask to the loged user if it can deposit cash “
^logedUser canDeposit
Class: Operator Method: [canDeposit]
canDeposit
“The [Operator] can not Deposit“
^false
Class: User Method: [canDeposit]
canDeposit
“The [User] canDeposit“
^true
The logic here is very simple (true or false) but it can be very complicated.
Class: User Method: [canDeposit]
canDeposit
“The [User] can Deposi if the [Card] not expired, and the [Bank] does not have the [Account] in the blak list“
^session card notExpiredand: [(session bank isAccountInBlackList: session card account) not]
In this example will see how to create a Simulation with UML Almighty using an ATM Model. (Check the Videos)
After installing the XMI file it take 10 minutes to finish the UML Almighty simulation (including the Prototype, the Executable UML and the UML Simulation itself).
The ATM Model is just a possible solution for this problem. The Simulation shows how different UML Diagramsfits with UML Almighty.
We will see two Use Cases in detail: ATM login and Perform a Deposit.
Use Case: ATM Login
The User/Customer stars a new Session where the user name and password are entered.
If the entry data match the Card the Panel of Transactions is displayed.
Use Case: New Deposit
Here the Customer start a new Session (insert a card and type user name and password)in the ATM machine and then Deposit an amount of money to his Account.
UML Class Diagram – UML Model
Description
ATM class represent the real ATM machines. Each User (actor) start a Session in an ATM machine. This relation is an association classATMLogin.
The ATMLogin has the user name and password. After enter the user name a Session is created. With a Session the User can perform different Transactions.
Each Card belongs to an Account of a Bank. The Bank perform the different Transactions. To simulate the Card insertion a list of Cards is displayed to select one.
The ATM machine has Log of operations. The ATM bills are manage by the InnerCash handler.
–
Activity Diagram
Description
The process starts when the User enter the user name and password. Then select a Card (to simulate Card insertion).
After login succed the User has the Panel of Transactions to perform different tasks.
In this panel the User can perform: a Deposit, a Transfer, a Query or a Withdrawal.
If confirmed the Transaction is performed and then Panel of Transactions is displayed again.
The User can perform another Transaction or logout. The transaction process will be shown in detail with Sequence Diagrams.
The following pictures shows the GUI: User and Password which is the GUI for the instances of UML association class[ATMLogin].
This is the Web Page generated by UML Almighty for ATMLogin class, we named “GUI: User and Password” to the GUI of ATMLogin class.
From the GUI of ATMLogin the User can login into the ATM account.
Login Simulation Video
This is the Sequence Diagram for the Login process (check the video)
As we can see in the Sequence Diagram the login process returns (or starts) a new Session. From this Session the User can perform different operations.
Check the GUI: Panel of Transaction (picture above) to see the GUI for the instances of Session class.
The following is the Simulation Code for the UML Method [loginWith:] of Class ATMLogin
Method’s comments in green color.
As we can see in the Sequence Diagram the login process returns (or starts) a new Session.
When the user clicks Login button in the UML Almighty prompt a list of Cards (to simulate Card insertion).
When aCard is selected then [loginWith:] method is executed. This UML method belongs to ATMLogin class (check Sequence Diagram).
<aCard> argument is the Card selected by the User.
The method compares the password and user names of Card and ATMLogin (data entry in the web). If succed returns aSession (check simulation code).
This Session is displayed in other WebPage where the User can perform: Deposits, Transfers, and so on.
The following pictures shows the GUI: Panel of Transactions which is the GUI for the instances of UML class [Session].
New Deposit
The following picture shows the GUI for a Deposit. We named deposit GUI as GUI: Deposit Panel.
After data entry the User has to Confirm or Cancel the Deposit.
When the User click Save Object then the following page is displayed:
The following Sequence Diagram shows the Deposit process in the ATM system.
1. The User click NewDeposit in Panel of Transactions (SessionGUI)
2. A new Deposit is created and it is displayed in a Deposit Panel (DepositGUI). The User entry data (Deposit Panel 1).
3. The User Confirm or Cancel the Deposit (Deposit Panel 2)
4. The Bank perform the Transaction with Account (processDeposit:for: method).
5. The Panel of Transaction is displayed again with the result of last transaction. Now the User can perform other Transactions.
Simulation Code for the UML method #confirm in the Class Deposit
Simulation Code for the UML method #processDeposit:for: in the Class Bank
The following picture shows the Transaction result:
UML Almighty is an application simulator. During the phases of analysis, design and development allows to create/simulate a concrete application. This gives to project actors a defined framework to work with the solution.
In a project without this capability each actor has a different mental representation of the solution; this drives the project to a fragmented solution that it will be much more difficult to integrate. To have this capability (to execute/simulate my design) unify the solution through all actors of the project and has a infinite number of benfits.
UML Almighty is an application simulator. During the phases of analysis, design and developmentallows to create/simulate a concrete application.This gives to projects actors a defined framework to work with the solution.
In a project without this capability each actor has a differentmental representation of the solution; this drives the project to a fragmented solution that it will be much more difficult to integrate. To have this capability (to execute/simulate my design) unify the solution through all actors of the project and has a infinite number of benfits.
Initial Process
1. When a Class Diagram is imported into (using XMI file) UML Almighty a meta model for the diagram is automatically built.
2. With this meta model the UML Almightysimulatethe WEBand Desktop application.
3. In order to customize the application the user creates methods and then drag&drop these methods into special virtual categories.
UML Almighty can import XMI file from the following UML tools (to support your favorite UML tool contact us):
* Executable UML
* A Web Server is included
* UML Scripts
* Create new objects of your class diagram
* Persistent object cache
* Automatic Web and Desktop Application Simulation
* Customizable Web and Desktop Application Simulation
* XMI 2.1 interface
* Integration tools
* Complete GUI Environment for Design
Support
* Report a bug
* Ask to UML Almighty support to import the XMI files generated by your favorite UML tool.
* Executable UML
* A Web Server is included
* UML Scripts
* Create new objects of your class diagram
* Persistent object cache
* Automatic Web and Desktop Application Simulation
* Customizable Web and Desktop Application Simulation
* XMI 2.1 interface
* Integration tools
* Complete GUI Environment for Design
* Executable UML
* A Web Server is included
* UML Scripts
* Create new objects of your class diagram
* Persistent object cache
* Automatic Web and Desktop Application Simulation
* Customizable Web and Desktop Application Simulation
* XMI 2.1 interface
* Integration tools
* Complete GUI Environment for Design
* Executable UML
* A Web Server is included
* UML Scripts
* Create new objects of your class diagram
* Persistent object cache
* Automatic Web and Desktop Application Simulation
* Customizable Web and Desktop Application Simulation
* XMI 2.1 interface
* Integration tools
* Complete GUI Environment for Design
* Autocompletation: it does not show the name of the classes. Registered as [DEVENV_122]. Fixed
* Web Prototype: command buttons are not well displayed in Internet Explorer, Opera, Safari. Registered as [WS_120]. Fixed
* Mapping table between UML attributes and UML Almighty classes: the table is NOT persistent –> The mapping table is lost after quit the application.Registered as [DEVENV_124]. Fixed
* Web contexte error: in Chrome, Safari and IE a context error arise in command buttons with popup windows. In Mozilla and Operaworls fine. Registered as [WS_121].Active