Konvence pojmenování v modelech
Jediný test, který ukončí spor o názvy: najde někdo, kdo u toho nebyl, tento prvek za půl roku tím, že napíše, jak by ho sám nazval?
5 min čteníModelling practice2 z 3
01The searchability test
Naming arguments are unwinnable because both sides are arguing about taste. There is one criterion that is not taste: in six months, will somebody who was not part of this conversation find this element by typing the word they would use for it?
That question decides almost every case people actually argue about, and it decides them in the direction the conventional advice already points - which is a good sign that the convention was never arbitrary. It also has the advantage of being checkable: open the model's search box, type the word a colleague from another team would use, and see whether the element comes back.
02The conventions the test implies
| Element | Notation | What it means |
|---|---|---|
| Classifiers | Singular noun | Order, not Orders or OrderEntity. The multiplicity says there are many; the suffix says nothing. |
| Operations | Verb, then object | cancel(reason), not orderCancellation(). The class it lives on already supplies the noun. |
| Business processes | Verb phrase | Handle claim, not Claim handling. A process is something being done. |
| Services | Noun phrase | Claim assessment, not Assess claim. A service is something offered, and the difference from a process is the whole point. |
| Association ends | Role, from the far side | manager and reports, which is the only way an association between one class and itself reads. |
| Views | Audience and question | Payments - what calls the ledger beats Payments overview, which describes every view ever drawn. |
The service-versus-process row is the one that repays attention in ArchiMate specifically. The language distinguishes what an organisation does from what it offers, and naming both with the same grammar throws that distinction away at exactly the point a reader needs it.
03Acronyms, prefixes, and the things teams argue about
Acronyms: spell them out on first definition, then use them. If the business genuinely says "SLA" and never says "service level agreement", the element is called SLA and its description contains the expansion - so the search for either word finds it. The failure is an element called SvcLvlAgmt, which matches no query anybody would type.
Type prefixes: no. C_Order, IPayment, tblCustomer - the model already knows what kind of element each is and draws it differently. A prefix adds characters to every name and information to none, and it puts every class in the model under one letter alphabetically.
Language: pick one and write it down. A model with German element names and English operation names is the state teams drift into rather than choose, and it doubles every search. If the business vocabulary is not English, the model is not English - that is a coherent choice, and much better than half of one.
In one line each
- 01The test is whether a stranger finds the element by typing the word they would use.
- 02Singular nouns for classifiers; verb-then-object for operations.
- 03Verb phrase for a process, noun phrase for a service - the distinction is load-bearing.
- 04Spell acronyms out in the description; never abbreviate into something unsearchable.
- 05No type prefixes, and one language per model, written down.
04Časté dotazy
Jaká je nejlepší konvence pojmenování prvků UML?
Podstatná jména v jednotném čísle pro klasifikátory, slovesné fráze pro chování a slova, která už používá byznys, místo slov z kódu. Na tom, kterou konvenci si vyberete, záleží mnohem méně než na tom, jestli cizí člověk najde prvek tím, že napíše, jak by ho přirozeně nazval.
Mají být názvy tříd v jednotném nebo množném čísle?
V jednotném. Třída popisuje jednu instanci, tedy Order a ne Orders - to, že jich je mnoho, říká násobnost na vztahu. Množné číslo patří databázové tabulce, což je jiná věc, a právě proto se ty dvě často neshodují.
Mám použít byznysový, nebo technický termín?
V modelu byznysový. Když byznys říká pojistná událost a kód říká case, model říká pojistná událost a mapování si poznamená. Model ve slovníku kódu přečtou jen ti, kdo kód už znají, a to je právě publikum, které ho potřebovalo nejmíň.
Související články