"There's nothing as practical as good theory" (Kurt Lewin)

OSL - Object Oriented Specification Language for business - proposal
       (banking example)

Copyright by Zygmunt Ryznar

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).

OSL NOTATION

<! comment >
<! <> 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 >}