Yeah.. looks like the side view of a stick figure walking to me...

O 
| 
O 
|\ 
OO 
|/ 
O

 

 

Tauf Chowdhury 

Analyst, Service Management

Office: 631.858.7765

Mobile:646.483.2779

 

 

 

From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org] On Behalf Of Tony Worthington
Sent: Friday, May 15, 2009 2:05 PM
To: arslist@ARSLIST.ORG
Subject: Re: Cyclomatic Complexity

 

** I think this is too much for my brain to comprehend on a Friday
afternoon!!! :-)




From: 

Lyle Taylor <tayl...@ldschurch.org> 

To: 

arslist@ARSLIST.ORG 

Date: 

05/15/2009 12:56 PM 

Subject: 

Re: Cyclomatic Complexity 

Sent by: 

"Action Request System discussion list(ARSList)" <arslist@ARSLIST.ORG>

 

________________________________




** 
This is interesting.  I'll take an initial stab at it.  At the most
basic level, I figure a filter or active link corresponds to a basic
block which will result in at least one node per filter or active link.
If there are Else actions, then it would be at least two nodes - one for
the If, and one for the Else.  What I can't decide on yet is whether
there could be more than one node per If or Else action, but there are
probably cases where you could structure a set of actions in a filter or
active link where the execution - or result of - an action could depend
on the outcome of a previous action which may warrant adding more nodes
for those actions.  Then again, thinking about it more, maybe push
fields and set fields actions should be given their own node, since they
essentially correspond to their own if statements (if the query
qualification matches something, do this, otherwise, do this - e.g.,
nothing, display an error, etc.).  Guides and escalations would probably
also warrant having their own node. 
  
So, in essence, the number of nodes in your graph would be equal to or
greater than the number of workflow objects in your application.  All
filters and active links with only an If action get at least one node,
all those with Else actions get at least two.  You'd need to look at the
actions in those to determine if more nodes should be applied. 
  
The tricky part, then is determining how the nodes are connected, since
the execution of any basic block in Remedy is for the most part event
and qualification driven.  It's less clear cut to analyze than, say,
structured program code.  However, in designing the application, you
understand what the flow should be, so you could run through scenarios
and determine which workflow will fire under what circumstances and
derive most of the edges between the nodes.  I say most, because it
seems easier to run into situations where unexpected or bad data could
cause unexpected behavior than you might get with structured programs. 
  
So, let's take a very simple example.  Let's say we have a form that has
a button and two fields, Field 1 and Field 2.  Clicking on the button
triggers an active link that looks for an entry in another form that
matches the text entered in Field 1 and sets Field 2 with the results
and then pops up a notification.  You might have something like this: 
  
*         The active link for the button would get one Node.  This is
the start node. 
*         The Set fields action might get three nodes (because it's
essentially another If statement) - a node for the decision point (is
there a matching entry), a node for setting Field 2 to the found value,
and another for setting it to $NULL$ if no matching entry is found. 
*         The notify action does not get a node, because it is not a
decision point.  It's just included as part of the node for the active
link.  (I'm not very sure about this one, though, since you essentially
have control passing from the conditional statement to the
notification). 
*         There is an end node. 
  
So, in the end, we end up with 5 nodes that look something like this: 
  
O 
| 
O 
|\ 
OO 
|/ 
O 
  
So, with that, we would get M = E - N + 2P = 5 - 5 + 2*1 = 1 
  
Hmm.  1 doesn't sound right.  Maybe it would be higher if there was
looping involved or if we branched off into other workflow. 
  
Well, that was just a stab.  Thoughts? 
  
Lyle 
  
From: Action Request System discussion list(ARSList)
[mailto:arslist@ARSLIST.ORG <mailto:arslist@ARSLIST.ORG> ] On Behalf Of
Axton
Sent: Thursday, May 14, 2009 7:58 PM
To: arslist@ARSLIST.ORG
Subject: Cyclomatic Complexity 
  
** I found this interesting.  I wonder how one could apply this to a
Remedy application.

http://en.wikipedia.org/wiki/Cyclomatic_complexity

Axton Grams
_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 


NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution is prohibited.
If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message. 

_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 

________________________________

CONFIDENTIALITY NOTICE: 
This is a transmission from Kohl's Department Stores, Inc.
and may contain information which is confidential and proprietary.
If you are not the addressee, any disclosure, copying or distribution or
use of the contents of this message is expressly prohibited.
If you have received this transmission in error, please destroy it and
notify us immediately at 262-703-7000.

CAUTION:
Internet and e-mail communications are Kohl's property and Kohl's
reserves the right to retrieve and read any message created, sent and
received. Kohl's reserves the right to monitor messages by authorized
Kohl's Associates at any time
without any further consent.
_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 

**********************************************************************
This e-mail and its attachments may contain Forest Laboratories, Inc. 
proprietary information that is privileged, confidential or subject to 
copyright belonging to Forest Laboratories, Inc. This e-mail is intended solely 
for the use of the individual or entity to which it is addressed. If you are 
not the intended recipient of this e-mail, or the employee or agent responsible 
for delivering this e-mail to the intended recipient, you are hereby notified 
that any dissemination, distribution, copying or action taken in relation to 
the contents of and attachments to this e-mail is strictly prohibited and may 
be unlawful. If you have received this e-mail in error, please notify the 
sender immediately and permanently delete the original and any copy of this 
e-mail and any printout.

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:rmisoluti...@verizon.net ARSlist: "Where the Answers Are"

Reply via email to