Who uses the VI Analyzer?

I would like to know how people are using the VI Analyzer Toolkit to improve the style, performance, and robustness of their VIs. Do you use it more as a spot-checking utility for VIs as you write them, or have you utilized the programmatic interface to incorporate the VI Analyzer fully into your development process? What successes (or failures) have you had in doing so? Are there any tests that ship with the VI Analyzer that you have found particularly helpful, or are you finding holes in the test coverage?
For anyone who has not yet used the VI Analyzer, you should check out Mike Neal's VI Analyzer presentation, or better yet, try out the toolkit yourself with the LabVIEW Add-Ons Online Evaluation.
Thanks,
Darren N.
LabVIEW R&D
National Instruments
Darren Nattinger, CLA
LabVIEW Artisan and Nugget Penman

Hi Joe,
Thanks very much for the feedback.  It definitely sounds your development team would not find the stylistic checks provided by the VI Analyzer to be useful based on your current way of doing things.  However, the VI Analyzer can prove extremely useful as a debugging tool, and I'm guessing that your development team does have to debug VIs on occasion.   
Here's a scenario...imagine a very simple VI that uses the Increment function to add 1 to the value of a control and then sends the result to an indicator.  However, when you run the VI, the number does not increment.  A quick check of the wires shows that you accidentally wired the input wire of the Increment directly under the Increment's output terminal and straight to the indicator, such that it *looks* like you're wiring from the output of the function.  Now this scenario would be extremely easy to debug in this simple VI, but what if this wiring error was present somewhere within a very large application, and you had to spend hours debugging some incorrect behavior of your application only to discover this errant wire as the culprit?  There are actually two tests in the VI Analyzer that can very quickly discover this error...the Unused Code test would flag the Increment function as being unused (since its output wasn't wired), and the Wires Under Objects test would flag the input wire as going under the output terminal of the function. 
Here's another scenario...imagine another simple VI that takes an input array and multiplies it by some constant value to scale all the values in the array.  However, when you look at the VI Properties of the VI, it takes up over 8 MB of disk space!  The reason for this is that someone, at some point, accidentally chose the "Make Current Values Default" option on the VI, and there were a million values in the array output indicator when they did it.  Again, an easy situation to solve when looking at this simple VI, but not so easy if this problem existed in a large application.  And again, there are two VI Analyzer tests that would help you discover this error...the VI Size test (for obvious reasons), and the Array Default Values test (which will flag any array control/indicator that is wired to the connector pane and has a non-empty default value).  This is actually a real-life example...one of my colleagues used the VI Analyzer as part of a code review for another group internal to NI and discovered this very problem in one of their VIs they were going to ship in a LabVIEW toolkit.
I could go on and on here, but the point is that the VI Analyzer is much more than a style-checking tool, although many customers and internal NI groups have found it very useful in this regard.  I would say that for your average LabVIEW programmer, the debugging potential of the VI Analyzer is by far its most compelling feature.
As for your other question, you are correct that the VI Analyzer is an edit-time tool, and does not perform run-time analysis.  I agree with you that a run-time analysis tool for LabVIEW would definitely be useful.
Finally, you asked if NI uses the VI Analyzer as a matter of policy.  The answer is yes, we have several groups internal to NI that use the VI Analyzer.  Some groups use it informally as an aid with code reviews, while other groups have completely adopted it into their development and build processes.
I really appreciate your feedback.  Please let me know if you have any other questions or comments.
-D
Darren Nattinger, CLA
LabVIEW Artisan and Nugget Penman

Similar Messages

  • Iphone 4s - how do I change the name in the contacts for the owner of the phone - it is coming up as the other person who uses the laptop - so when ringing or texting anyone 2 names are being used as the caller id on the screen

    Iphone 4s - how do I change the name in the contacts for the owner of the phone - it is coming up as the other person who uses the laptop - so when ringing or texting anyone 2 names are being used as the caller id on the screen

    *Ralph Johns* writes:
    "Your options are:
    Get a trial account form @mac which will work as an iChat name after the 60 days run out but not be a email account that is valid (And is free)"
    Do you mean a trial account from .Mac? (DotMac)
    "Get an AIM Screen name and set it to Display what you want as you set it up.
    The Screen name can be whatever yu want but you can also set it to display something else as well."
    I had thought about this, but it seems other people have already chosen the screen name "pinksharkmark" and virtually every variation of it I can think of. So that isn't an option for me. As for getting it to display something else as well, do you mean that if I were to get an AIM screen name like "CromulentCat" I could somehow log in to iChat under the AIM account "CromulentCat" yet get iChat to represent me to my Buddies as "PinkSharkMark"? Because I have to admit I don't see how that can be done. It appears as if iChat displays to anyone chatting with you precisely the account name you logged in under and nothing else. So if you logged in using a .Mac account, then you are displayed as "[email protected]" while if you logged in under an AIM account, you are displayed as "CromulentCat". But that's it that's all... there is no way to change CromulentCat to PinkSharkMark.
    Thanks very much for taking the time to reply, though.

  • Using the VI Analyzer in a built application

    I have a application that is being designed for a continuous integration server.  This application uses the VI Analyzer API (Labview 2009 at the moment) to run a set of tests on a folder of VIs.  The issue is that when the program is run as VI everything is happy, the folder is added using the "VIAn Add Item.vi" and the task runs on the four VI's in the folder.  But when the VI is built and ran as an exe, "VIAn Add Item.vi" appears to add the folder but the no vi's are analyzed and if a specific VI is given then error 53 is thrown by "NI_FileType.lvlib:Get File Type.vi".  Is this simply a case of not being able to use the VI Analyzer API in a built application that is being run as a exe?  I attached the front panel of the built app after it has been run and the back panel of the source code in question; there is more to it the rest of it is just for determining the paths to scan.
    Solved!
    Go to Solution.
    Attachments:
    fp of built app.png ‏96 KB
    bp of built app.png ‏23 KB

    It was decided the installing the editor environment on the server would not be a big deal, so I was able to get it working by writing a batch file that calls labview, passes the vi to it to be opened, and passes any user-defined augments to the vi.  In the VI, I set the "run-on-call" option to true, and added a "quit Labview" block at the end.  This way it "acts" like a built program, just with a long startup time.
    I know its not ideal or "correct" (if there is such thing when using a product in a way that it not indented) but it only needs to be on the one server so in this case it is fine.
    In the future this functionality (using the VI Analyzer API from within a built application) might be a nice thing to add to software validation tool set that is already in place, if its possible. (It may not be)
    Anyway just my 2 cents on the subject, thanks for the help and quick responses.
    - Christoher

  • How to use the HTTP Analyzer with the embedded OC4J server?

    JDeveloper version: Studio Edition Version: 10.1.3.0.3.3412
    I have a web application, which I run in the embedded OC4J server.
    I tried to use the HTTP analyzer to inspect http requests and responses, but I could not make the analyzer work.
    I tried to setup the HTTP analyzer by looking at the help entry, but I could not make it work.
    If the HTTP analyzer works for you in the embedded OC4J server, please write the steps on how to setup the analyzer.
    (Maybe I could not make the correct settings about port numbers?)
    Thanks in advance,
    Regards,
    Turgay Zengin

    I was able to use the HTTP Analyzer by changing the proxy setting directly in Internet Options. Check the browser/proxy settings set in JDeveloper preferences and copy them to the Connections tab of Internet Options. See if that works for you.

  • I'm one of the few idiots in the world who use the "Pages" App. Whenever I open an XLS file. "Numbers" quits - siting use of SFCompatability plugin. Reports to Mac. Problem remains constant?

    I'm one of the few idiots in the world who use the "Pages" App. Whenever I open an XLS file. "Numbers" quits - siting use of SFCompatability plugin. Reports to Mac. Problem remains constant?

    When you get the SF Compatibility plug in message something in the installed iWork part is corrupt. You ned to uninstall and install iWork again
    You cannot completely delete iWork by moving the iWork '09 folder to the Trash. Instead, use Yvan Koenig's script:
              •          Go to http://www.box.com/s/00qnssoyeq2xvc22ra4k
              •          Choose public_YK > for_iWork'09 > other_iWork'09 items
              •          Click on uninstall iWork '09.zip, decompress it, open it in AppleScript Editor and click the Run button
    Restart the computer and install from the iWork disc. Do the Software updates too.

  • How to prevent a portal user from using the BEx Analyzer ?

    Hi,
    we have different type of users : most users may use the portal as well
    as the analyzer ;
    we have one special user with extended authorizations : this user
    should use the portal , where he has a limited set of queries to run
    with hardcoded filters ==> this user should not be able to use the
    analyzer however, since he then would be able to call all other queries
    by using the find function ;
    how can we make sure this user cannot use the analyzer , using SAP
    authorizations ?
    best regards,
    Erwin Van Giel.

    Hi,
    if I remove the complete S_RFC authorization for the user then the BEx Analyzer cannot connect anymore to the BW system, but neither can the user run reports from the portal : it needs the S_RFC with 'SYST'.
    If I only remove the RRMX from the S_TCODE and from the S_RFC, it does not prevent the user from starting the BEx Analyzer and connecting to the BW system. It only stops the user if he would start the RRMX transaction from within an SAPGUI session.
    Perhaps there should be a value in the S_RFC that allows connections from the portal but not from the BEx Analyzer .... ?
    so not solved yet ....
    best regards,
    Erwin.

  • Setting breakpoints/debug using the HTTP Analyzer web development

    I wonder if there is any way of setting breakpoints in a Web service class. For instance the method in the class shown in the tutorial "Building a POJO Annotation-Driven Service":
    package annotation;
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    @WebService(serviceName = "HelloService")
    public class HelloService{
    public HelloService() {
    @WebMethod
    public String sayHello (String s) {
    return "Hello " + s;
    That is, while you run the HTTP Analyzerl, the code can be debugged by setting breakpoints etc.

    Hi, I'm just using the default setup for HTTP Analyzer and having no problem using it.
    Just make sure to run the HTTP Analyzer first before running or starting your app server (Integrated weblogic Server).

  • HT201493 how to locate family who use the same account?

    how do you use "find my friends" app to locate family who share the same account on all the devices?

    You won't be able to as the app sees each ID as a single "person".  To locate family members they will all need to have a separate Apple ID for Find My Friends.  Note: you can continue to share the same ID for purchasing and other services; it does not need ot be the same a the ID used for Find My Friends.

  • For those who used the solution by Steve Muench,Dynamic JDBC Credentials

    hi every body
    is there any body used the solution by Steve Muench, Dynamic JDBC Credentials .
    thanks
    Yaser
    Edited by: 842127 on Mar 13, 2011 9:24 AM

    Hi,
    in the login page i have a button to make login which work perfect
    How can you say ?
    Whenever i click any control in the login page i see this message invalid username/passowrd . i do not why i face this problem ?I have tried changing the username,password and database using http://www.oracle.com/technetwork/developer-tools/jdev/dynamicjdbchowto-101755.html which works perfect.
    refer my thread
    Changing the database for a particular user session
    Regards,
    Santosh
    Edited by: Santosh Vaza on Mar 17, 2011 11:29 AM

  • How can we print the webreport into PDF file(not using the Web Analyzer)

    Hi
    I have a report in 'WAD 3.5' . And this report will be executed in the web browser .
    My user wants to print this Web Report in the PDF file (or) import into excel file .
    So how can we do it , if the report is in web browser .
    Pls let me know
    regards
    suresh

    Hi,
    Check this link may be useful:
    Displaying PDF file in browser
    Rgs,
    Ravikanth.

  • Who uses the ZALMAN CNPS7000A-CU??

    I just ordered this monster...anyone have any experience with this fan?(Good or bad)
    Did anyone have problems mounting it ( eg. not enough room ect...)
    thanks

    My antec produces a decent heat load because of the OC and the multiple (8 fans) and cold cathodes (3) in my rig.  But never over 55C load on the PSU temps.  
    All my temps are with the case cover on.  Cover off the idle is as low as 22-25C and load under 40C!!!
    The AlCu cools better in some tests!  Yes for good reason.  People seem to be under the illusion that copper is better at cooling than aluminum.  This is NOT ALWAYS TRUE.
    The fact of the matter is that copper and aluminum have very different properties.  While copper has a better heat absorbtion rate, aluminum has a better heat dissipation rate.  That's why copper is used in cooling systems that use liquid like a cooling system in a car.  The liquid is an effective heat remover from the copper.  And since the copper can remove the heat from the water faster it keeps the coolant temps down.  Aluminum is harder than copper and has a faster dissipation rate which is why its' chosen as the the material of choice for things like heads, valves, etc, in a car.  and it's lighter then iron even though it's not as durable.  Most aluminums do not oxidize unless exposed to open air.  Copper oxidizes period!
    I chose the AlCu purely for weight reasons as I wanted to not stress the mounts on the mainboard.  That and I like the two-tone color over the solid brass.

  • Who uses the CreativeSource

    I recently purchased the MuVo TX FM and I love it. I'm hesitant of adding the CD that came with it. It lloks like some kind of MP# ripping softward for the player. Is this needed/recommended. I run XP Pro and I just assume that it's basically click and drag into the player..any advice/opinions?

    Creasy wrote:
    Awesome. Is there a limit on the number of folders I can use?
    Overall then is there a benefit to using CreativeSource at all?
    Not sure about a folder limit, at least as to what it is.
    By CreativeSource I assume you mean MediaSource? It has a PC Music Library which can catalogue your files and it can rip files as well from CD, but you don't *have* to use it.

  • Who uses the highest GB on their phone?

    I'm at 50-55gigs per month on my Razr Maxx. (with unlimited plan)
    What is your GB usage?

    4ktvs wrote:
    I just think it's funney that t-mobile just got the unlimited plan back just as verizon "ends" it. In the t-moblie ads, it seem's like using some # over 300GB a month is ok. So I just think if they can do that, then verizon should just let us keep it as long as we don't go over 300+GB.
    They also have a smaller number of smartphone uses, and overall customers.  Sprint which has double their customer base openly stated at some point they have no choice to drop unlimited data as it is unsustainable.
    People fail to realize they pay out to landline providers which charge them per TB of usage.  They also pay for overages.  The more users the easier it is to hit that cap, and the easier to a lot of overages. 

  • All of you who use the 80gb ipod classic and have problems with it freezing and syncing with itunes...well I have joined the club. This is a serious issue with apple and they need to correct it. I have tried everything to no avial.

    This is beyond frustrating. I just wasted 70 dollars between a new battery and gas for my ipod 80gb classic. It was having major issues syncing and freezing with itunes. I tried everything possible and noticed that a lot of people have been having the same issues with their ipod classics as well. I must have restored it several times and now it just totally bit the dust. Now I have to shell out 130 dollars to send it in to apple to be rebuilt/fixed. This is nonsense and I just cant believe apple isn't doing anything to address this issue. My ipod was doing great for about nearly 5 years and now  this. I even down-graded to itunes 10.7, but by the time I had it set up to try, that's when my ipod totally failed and will not even come on. Grrrrrrrrrrrrrrr

    Here is what worked for me:
      My usb hub, being usb2, was too fast. I moved the wire to a usb port directory on my pc. That is a usb1 port which is slow enough to run your snyc.

  • HT201303 App Store ID is wrong default - switched to someone else's ID who uses the Mac where I last synced my iPhone

    After syncing my iPhone on a Mac shared with my mother, my app store's Apple ID on my iPhone is now defaulted to my mother's ID.  How do I change it back to my ID?  I've gone to settings in the App Store on my iPhone and it is listed correctly there, but when I go to the app store to download a new app the sign in has her ID when requesting the password, not my ID.  Help!  and THANK YOU!.

    After syncing my iPhone on a Mac shared with my mother, my app store's Apple ID on my iPhone is now defaulted to my mother's ID.  How do I change it back to my ID?  I've gone to settings in the App Store on my iPhone and it is listed correctly there, but when I go to the app store to download a new app the sign in has her ID when requesting the password, not my ID.  Help!  and THANK YOU!.

Maybe you are looking for