Skip to content

Model element naming conventions

Leon Starr edited this page Oct 18, 2025 · 15 revisions

I cannot overstate the value of strict adhererence to a naming convention, especially when it comes to managing large model sets.

This isn't just about making the models pretty or satisfying an obession for neatness.

It's about getting your models up and running as soon as possible and not having to waste half a day chasing down a minor mis-naming bug, that, for the life of you, you just don't see.

There are a lot of other good reasons, but having just encountered an incident like this, I am motivated to describe the conventions I use.

Let's say that during execution, your models keep breaking for some reason. And it turns out its because of a subtle typo in a name or a name in the wrong place. If you follow naming conventions you are much more likely to notice the type name where an attribute name should have been because you saw the initial caps in each of the name's words and knew that couldn't be right!

This kind of thing happens all the time and I am always grateful when my naming conventions help me recognize an error on the spot.

Here I describe the naming conventions that I use, some of which are enforced by the scrall parser.

Feel free to invent your own and fork the parser accordingly. But if you would rather devote your valuable getting systems built, I recommend just adopting my somewhat arbirary, yet consistent, choices for naming model elements.

Class names

Initial capital for each word

Accessible Shaft Level

Attribute names

Initial cap first word only

Destination floor

Method and external operation names

Intial cap first word only

Compute average speed()

State names

Wait states exit when an Interaction Event occurs while transitory states exit on a self generated Completion Event.

Wait states

All letters in capitals

STOPPED AT FLOOR

Transitory states

First word in initial caps (question mark at end of name allowed)

Requests pending?

Parameter names

All words lower case

next dest

Event names

First word in initial caps

Goto floor

Type names

Each word has initial cap

Level Name

Introduction

Model semantics

Flows (as Variables)

Constants and literals

Structure of an activity

Accessing the class model

Data flow


Grammar and parsing notes

Components

Clone this wiki locally