User Objects

LumiCode is great at getting information from .NET assemblies, but what if you want your diagrams to model something that doesn't exist in your code? That's where User Objects come in.

Things you may want to represent with User Objects:

  1. Humans your application interacts with.

  2. External systems your application interacts with.

  3. Classes you intend to code later.

Here's an example of a sequence diagram with User Objects:

Student and RegistrationSystem are both User Objects. Register, Enter User Data, and Enter Class Request are all methods (messages) defined on the User Objects. You can mix User Objects with objects from your code in a diagram.

User Objects are useless unless you define User Calls between them and objects from your code.

User Calls

LumiCode gets call information from .NET assemblies, but occasionally you may need to specify calls that don't exist in your code. There are two reasons you may want to do this:

  1. Because User Objects don't exist in your code, any calls between them and your code objects will need to be specified by User Calls.

  2. Sometimes a complete call chain does not exist in the assemblies you are modeling. For example, when your code calls a system method, and through some chain of calls, a method from your code gets called.

    This commonly occurs when you develop a custom control. Your code may call Invalidate on your control, and through a chain of system method calls, your OnPaint method will get called. To show this ultimate outcome on your sequence diagram, you can define a user call.

For detailed information on how to use User Objects and User Calls, see the online manual topics User Objects and User Calls.