Home Page
RCL
Tutorial 1
This article is the second
in line to show RCL in action. Before going any further, please click
here for the brief philosophy behind RCL.
For the sample's sake, we
are producing a scenario where the IT department is interviewing various
business users in a Mutual Funds company to elicit requirements for an Equity
Trading System. Our aim here is to clearly show
Ø
How the RCL
Tree Structure grows (and / or modified) after each conversation
Ø
What
provisions are there in RCL to capture NFRs (Non
Functional Requirements / Qualitative Requirements)
Ø
What
"Can" and "Can Not" be done with RCL at the moment
In the end, we would like
to seek community's response and then we will measure it in order to decide
whether to grow the idea further by eliminating the loose ends or abandon the
research altogether.
IT Department Vs Business User 1
(Conversation Summary for Interview - 1)
- Requirements summary
- We need an Equity Trading System that is
capable of sending up to 600 trades / second to various exchanges and
subsequently collecting the response from exchanges
- Trades will be placed by our traders
community housed in various offices across the globe

- Remarks
- We see following premises
- Exchanges are out of system boundary because
that is not what we are creating. Our focus is Trading System and hence
we have shown Trade Offices as the only premise
- Of course there will be events from / to exchanges
but such events are shown as external events (directly beneath world
node).
- Actors in the Trade Office premise are the
people, forming Trade Community.
- Two processes are identified
- Place Trade - Triggered By Trader Community
within the company
- Update Trade - Triggered By event received
from exchange that contains Trade Execution Information.
- The desired capability of processing 600
trades / second is a form of NFR that is captured within Complexity node
shown within the process (via Information Record link). Complexity node
is where we record NFRs for a process. The
attributes that can be set within Complexity node are
- Process execution rate - 600 / sec for this
example
- Process configurability
- Process Availability
- Process Scalability
- Performance Demand
- Count of User Interfaces
- Count of Reports
- Count of Logical Conditions
- Count of Loops
- Count of Words in requirements document for
this process.
IT Department Vs Business User 2
(Conversation Summary for Interview - 2)
- Requirements summary
- 99% of our trades come from 3 offices
situated in
- London
- New
York
- Singapore
- We currently deal with following exchanges
- London Stock Exchange
- New
York
Stock Exchange
- Hong Stock Exchange
- Japan Stock Exchange
- Interface with each exchange is unique

- Remarks
- We see that the user - 2 has revealed more
specific information about where the trader community is actually
residing and which exchanges they deal with.
- The number of different offices should not
change the RCL structure because we know that the same software is going
to be run everywhere. As a general rule, unless there is something
specific about a location, do not include it. At least, not more than
once.
- If, RCL experts would have decided to create
different office premises (London,
New York, Singapore),
then they would need to house the same processes in multiple locations
(premises) using Multi house feature of the tool (Link is shown against
each process). Once the processes are multi housed, they will be counted
only once by the software sizing logic, thereby, producing consistent
function point counts.
- Presence of different exchanges brings in
more elements in the system. We still do not need to draw various
exchange premises in RCL but since interface with each exchange is unique
in nature, we need to create a process that receives a trade from trade
placement desk and then routes the trade information to the correct
exchange using their corresponding
interfaces. So we came up with "Route Trade to Correct
Exchanges" process.
- Again, each exchange might respond in a
different way and hence we need to have the corresponding, "Collect
Trade Information From Exchanges" process
as well.
- One could easily go and set Complexity for
these processes (not shown).
- Now "Place Trades" and "Update
Trades" processes are not talking to exchanges directly but instead
are routing and receiving information through above new processes. This
is clearly conveyed by event routes ("Triggered By" and
"Raises" notations drawn in the RCL).
IT Department Vs Business User 3 (Conversation
Summary for Interview - 3)
- Requirements summary
- There should be extensibility in the system
such that when we open a new office in another part of the world or deal
with another exchange then we should be able to configure it in the
system and reuse the same software from the new office
- We should be able to deal with old exchanges
as well as the new exchange, recently configured.
<<Set
complexity node within each process and set configurability parameter to
accommodate this NFR. Do read the remarks below.>>
- Remarks
- This is an NFR but configurability is desired
for 2 entities, the exchanges and the trade offices.
- Since exchanges fall under external systems
while Trade offices fall within system boundary, the way this NFR would be
handled will be different for the two entities but in the current RCL
version, we need to fall back to the same methods for both. See below for
"why?"
- For Exchanges, we can tune configurability
parameter under Complexity node for the processes that deal with
exchanges, i.e., "Route Trades to Correct Exchanges" &
"Collect trade information from exchanges"
- For Trade Offices, we actually wanted to set
configurability against the premise "Trade Offices" and not
against the processes that deal with Trade Offices, but in current RCL
version, we are not able to set configurability against entities and so
we need to do the same way as above but for the processes, "Place
Trades" and "Update Trades". In future versions, we want
to make configurability parameter tunable against each entity.
- Following qualify to become entities within
the system without getting into the design mode.
- Premises
- Events
- Resources
- Time
- Money
- Material
- Information
- People
- Additional Note - In the current version of
RCL, all processes captured within RCL notation are counted for sizing
but in future versions, only those processes will be counted for
software sizing that are shown to impact "Information"
resource because those would be the IT touch points within the system
(Information Technology touch points are those that deal with
information consumption and creation within the system). We will not be
counting those processes that are not directly dealing with
"Information" resource(s).
IT Department Vs Business User 4
(Conversation Summary for Interview - 4)
- Requirements summary
- We want each stock to be mapped to the
exchanges where they are available for trade.
- At the time of placing the trade, when we
select the scrip name, we want the list of exchanges populated where the
scrip is available for trade and then we should be able to select one
from the list.

- Remarks
- This calls for creation of an Information
resource called "Stock" within "Trade Offices"
premise.
- All process would then need to be shown as impacting
"Stock"(s). "Impact" in RCL sense mean
"consumption" or "creation" of a resource. Above we
have shown only one process to be impacting Stock resource but all
processes would need to do so as all processes would at least read Stock
entity.
- Current version of RCL can not show relation
between entities but a future version will be able to do so. In a future
version, we will be able to show that there is a many to many relation
between "Exchange" and "Stock". Since showing entity
relationships is a little design time thing, what we are actually saying
here is that such requirements can only be captured correctly in RCL by
those Business Analysts (BAs) who have right Entity Relationship design
background. So are we asking for a combination of BA & Architect? Is
it fair to expect from BAs? Comments?
- Also, please note that we did not draw
Exchange premise as we considered it an external system, which, it really
is, but for the sake of showing relationship between Stock and Exchanges,
we would need to show "Exchange" as a premise (so that it
becomes an entity in the system). Then in the future versions, we would
need a feature to mark a premise as "out of boundary" premise.
- The second requirement that we should be able
to select exchange name from the drop down list while placing the trade
(the Trade Placement screen) is also non capture able in the current
version of RCL. Following needs to be done in future versions in order to
be able to capture such requirements.
- Capture Business Process Flow beneath each
Process node
- Show various screens as part of the flow
- Drill down within the screen and fill in the
logical screen structure and include a
'Exchange Name' field there and map it with Exchange entity, filtered by
Stock.
- For now, we are satisfied with the fact that
even though above is not capture able, it would not impact high level
Estimate calculations much. However, if you think that this second
requirement is adding complexity to the process, you may tune complexity
settings for the process, even now.
IT Department Vs Business User 5
(Conversation Summary for Interview - 5)
- Requirements summary
- At the time of placing the trade, we want to
be able to turn "Auto Repeat" flag on. This flag will indicate
that if the trade could not be sent to the exchange today due to the
exchange close, it will automatically be sent to exchange on the next
trading day
<<No
change>>
- Remarks
- Situation is same here as it was during
interview - 4. We cannot capture this requirement until screen logical
structure capture is enabled in RCL (as part of business flow). However,
if you think it can add to complexity of a few processes, tune it before
you hit "Estimate" button at the top.
IT Department Vs Business User 6
(Conversation Summary for Interview - 6)
- Requirements summary
- Real time stock price should be available at
the time of placing the trade.

- Remarks
- An external Information resource needs to be
shown "Real Time Stock Prices"
- "Place Trades" process needs to be
shown impacting it.
IT Department Vs Business User 7
(Conversation Summary for Interview - 7)
- Requirements summary
- Following trade information will be sent to
the exchange
- Scrip Code
- Quantity
- Action (Buy / Sell)
- Exchange Name (If none is selected then all
the quantity will be executed in the first matched exchange)
- Upper / Lower execution limits
- Stop Loss
- Exchange response will be received with
- Scrip Code
- Quantity Executed (Different Quantities
could have been executed at different prices)
- Price at which the trade got executed

- Remarks
- We need to show a new information resource
"Trade" which is impacted by all processes (2 processes are
shown impacting Trade entity).
- In this version, we cannot capture resource
attributes so we cannot capture specific fields.
- We would also need the capability to impact a
resource at their attribute level. For eg,
"Place Trades" & "Route Trades To Correct
Exchanges" can be shown impacting those attributes that are sent to
exchange and remaining processes can be shown impacting the attributes
that are received from the exchange. This feature is not available in
this release. This would not impact high level estimation.
IT Department Vs Business User 8
(Conversation Summary for Interview - 8)
- Requirements summary
- We want to be able to see following books in
the system
- Trade Book
- Showing all executed trades at all the
exchanges, till date.
- Should show the prices at which the trades
got executed.
- Searchable by exchange name and scrip name.
- Order Book
- Showing all the unexecuted trades at the
moment. Again searchable by exchange and scrip names.
<<Add
Two More Processes Within "Trade Offices" premise, viz., "Show
Order Book" and "Show Trade Book". These processes can be shown to
be "Triggered By" the actor "Trader community". These
processes will impact "Stock" and "Trade" information
resources.>>
- Remarks
- Finer level details such as "Searchable
by exchange & scrip names" are not capture able until screen
logical model capture is in place.
If you have followed until
here and captured the whole tree as indicated, click the "See RCL as
Function Points" button to see the dissection of RCL nodes as Function
Points. You may optionally click the "Estimate" button on this screen
Or Function Points screen to see the "Person Days" effort estimates.
If you click "Estimate" button on Function Points screen then it will
additionally show you the count of Function Points.
At this point, it should
be clear what RCL is capable or incapable of at the moment. As mentioned
before, please do share your feedback and / or queries at
'feedback@econcinnity.com'. We want to grow the specifications together with
the community.