"There's nothing as practical as good theory" (Kurt Lewin) OSL - Object Oriented Specification Language for business - proposal
Copyright by Zygmunt Ryznar
(banking example)
OSL (Object Specification Language) contains business independent standard phrases, dedicated for definition any objects, and key-words applied in a given business-area and/or in global business environment (UNIVERSE).
Description is related to the main object called SUBJECT (e.g. bank). UNIVERSE, AREA i SUBJECT could be treated as super-classes (at a top-hierarchy). Business classes within AREA are user-defined, to reflect SUBJECT behaviour and needs. Specification contains also executive/operational objects, like account manager, teller etc. and technical infrastructure objects (like servers, databases).
<! comment >OSL NOTATION
<! <> container for main structural phrases: def, spec, commentaries. Object names and predefined key-words are written at Capital Letters. Non-business objects are written in Small Letters.>
<def object name > <! start of object definition >
</def> <! end of object definition >
<spec specification name > <! specification start >
</spec > <! specification end >
::= <! type assignment >
:= <! list assignment >
= <! value assignment >
: <! attribute assignment>
:: <! belongs to>
= = <! equivalency >
{.....} <! {} delimiters >
(x,y,..) <! list >
YYYYYY.UUUUU(XXXXXX) <! qualified name of business object >
[name] <! executive/operational object >
(XXXX)<! business object >
keywords <! key-words are heritated by objects of lower class (rank) >
Environment (ENV)
ENV:=(REGULATIONS, INFRASTRUCTURE)
ENV.REGULATIONS:=(Legal acts, resolutions, decisions etd)
ENV.INFRASTRUCTURE:=( Servers,OperationalSystems, TransactionalDataBases, DataWarehouses,NetworkManagementSystem, OrganizationalStructureOfCompany )
Object specifications includes elements:
-id <! object identifier>
-infoWindow <! "window for communication with other object " >
-dataTable <! data table. >
-typ obiektu ObjectTypes : (eOBJECT<! elementary object e.g.a given customer >
- (ROLE)
- ( OLH -Object Life History )
- (RELATIONS)
-dynamic characteristics(processes, transactions. events, mode of triggering etc.)
-mode of execution (EXECUTION_MODE:= modeRT <! real time >,modeBAT<! batch > modeOND <! on demand >)
- (DATA_FLOW)
- (CONTROL_FLOW)
Other OSL phrases:
trigger <! trigger (of process or event) >,
generator <! generator of events (e.g. cashflow) >,
agent <! service object e.g. . agent of call-center >,
integrator <! integrator of complex object or set of objectsgt;
monitor <! tracer of process >,
executor <! >,
participator <! participating object >,
owner, stockholder, customer, supplier; partner, employee,
component <! part of >
performance center <! > )
RELATIONS:=((activated by / activates, activated when/if,
appearence depends on <! e.g. appearence of child object depends on existence of parent object >
assisted by, belongs to /is owned by , built from ,
calls <obiekt> (xxx,yyy) <! xxx input elements, yyy return elements >
consists of <parts> , contained in/contains, controlled by / controls,derived from,
driven by transaction,driven by product ,driven by banking regulations,
driven by customer, driven by date, driven by schedule,driven by frequency
existence depends on <! condition of existance .... >
exists when/in/for, evaluated as critical/most wanted , included in ,
linked to ...by / links, matched/matches <! e.g. transaction confirmation >
refers to <! direct relation > relates to, related by affinity, represented by /
represents , involved in, shared by / shares, used by / uses)
STATE := (active,inactive,dormant,suspended,aborted,idle, lost)
STATUS := (generic, real, virtual)
dOBJECT<! dynamic object e.g. transaction >
iOBJECT<! informational object e.g. customer position >
vOBJECT < virtual object e.g. mirror Nostro accounts >.
dOBJECT ::= ZDARZENIE,TRANSAKCJA,AKCJA,PROCES)
== (EVENT,TRANSACTION,ACTION,PROCESS) <! example of bi-language equivalent definition >
<! EVENT -elementary atomic fact >
<! TRANSACTION - sequence of events aimed at shortterm goal e.g. account opening or closing, payment >
<! ACTION - complex activity e.g. defining provision for doubtful loans >
<! PROCESS - sequence of actions and events with common aim, initiated by trigger e.g. end of day processing >
{CONTROL_FLOW
repetition :=( iteration, single spiral, multiband spiral <! spiral pattern is used in learning processes and differs from iteration that each scroll could contains different mechanism and contents >)
activated .... BY ...with <initial-value> AT <time-point > WHEN ..
finished AT < > with <value> WHEN ...}
{ DATA FLOW
<.> from (<.>) <! data list...>
<.> to (<.>) <! data list >
<> dataGeneration Method <name >
<>dataEncoding Method <name >
<>dataCompressing Method <name >
}
{BODY ::= ( Contents, Script, Metadata)
contents <! e.g. document contents, program code >
script <! operation list generated in object upon the pattern of its behaviour >
metadata <! e.g. in XML- body structure description >}