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

 

  • RCL Tree

 



  • Remarks
    • We see following premises
      • Trade Offices
      • Exchanges
    • 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

 

  • RCL Tree

 



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

 

  • RCL Tree

 

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

 

  • RCL Tree

 



  • 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

 

  • RCL Tree

 

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

 

 

  • RCL Tree

 



  • 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

 

  • RCL Tree

 



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

 

  • RCL Tree

 

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