Jump to content

VISTA - Professional Software Engineering Tools for LabVIEW


crelf

Recommended Posts

​That's really sad. :(  It probably means that it wasn't modular enough to be re-purposed or adapt to changing requirements. I expect your software has come a long way since then. :yes: I think it's lying that reuse is 98% though :P

I must admit I don't use the Gateway thing. It may have changed since I last used it, some 5 years ago but  it was more of a trace-ability function which isn't all that helpful for day-to-day programming and customers are only really interested in acceptance tests. As in internal tool I can see it might have benefits, but it doesn't provide what I need on a say-to-day basis. Like your tool, I have software that does the bits of it that are interesting such as coverage but I don't care about complexity or pretty graphs or a myriad of other metrics that are just numbers to "ooh" and "ahh" over.

I care about broken VIs, orphans, re-entrant or not etc that affect the performance and operation rather than the accountancy.. Complexity or nesting depth is a poor indication of that. However, the tool that I've had for several years now is plug-able and extensible so it hasn't suffered the same fate even though it started out as pretty much the same sort of tool. In fact, 6 months ago it had a face-lift from the standard millennial white, system front, panel to a moody dark which is all the rage now :lol:​

​

post-15232-0-34394000-1449853741.png

Edited by ShaunR
Link to comment

 I think it's lying that reuse is 98% though :P

Eh, it depends on how it is measured for sure.  Back then there wasn't the code complexities that was added in 2012 or so, so coming with reuse metrics could be up for interpretation.  I've used the code complexity for a reuse measurement metric in the past, and then broke it down into things like OpenG reuse, MGI reuse, vi.lib reuse (is that cheating?), and other reuse.  Then there is reuse that can't really be measured like copying an existing library, or whole project from some old code (data mining), where here reuse is between 0% and 100% but code can't really detect the exact amount.  

 

Edit: I should probably force myself to get some free time and release my reuse metric, unless VISTA is going open source  :D

Link to comment

Edit: I should probably force myself to get some free time and release my reuse metric, unless VISTA is going open source  :D

 

I think you should. :yes:

 

This thread prompted me to hunt around to see if I could find a Eurotherm Controls serial driver (Modbus and EI-Bisynch) that I wrote thousands of years ago :) It was the first driver I ever wrote and was my first public submission to the world. :wub:  I think I even submitted it to the NI drivers library but it's not there now - there is a newer one there now without the EI-Bysinch. :angry:

 

I guess it was my first vapourware : :lol: 

Link to comment

I guess it was my first vapourware : :lol:

Yeah some of us are dumb enough to actually host our first crapware.  To be fair I think that is probably my second crapware attempt since my first attempt is gone forever.  Once I discovered LAVA I realized that would be a better home for cleaned up code so I haven't put anything new on there other than the tray launcher which has EXEs and installers that I don't think LAVA would like.

  • Like 1
Link to comment

​That's really sad. :(  It probably means that it wasn't modular enough to be re-purposed or adapt to changing requirements.

 

Oh, it was modular enough, it just wasn't aligned enough with our core businesses anymore (the screenshots I shared were of components, there was a top-level framework and UI experience that tied everything together). And a lot of the features had appeared in others' tools, so we left it where it was.

I think it's lying that reuse is 98% though :P

 

LOL, yeah I was wondering who'd be the first to call that out. So yes, the project in this example was, indeed, 98% reuse. Only because I threw together a bunch on internal reuse library and OpenG VIs on an empty block diagram :D

I have software that does the bits of it that are interesting such as coverage...

 

Nice work - I like this!

Complexity or nesting depth is a poor indication of that...

 

Interesting you mention that: I've had people ask me in the past about what level of complexity and/or how many GOBs that they should be aiming for - which misses the point entirely. They're relative, and that's why I insisted in having the histograms in there - you're not looking for absolute values, you're looking for out-liers. And yes, some of these out-liers can be logically explained away. Broken VIs et al are quantitative attributes, complexity et al are qualitative.

Then there is reuse that can't really be measured like copying an existing library, or whole project from some old code (data mining), where here reuse is between 0% and 100% but code can't really detect the exact amount.

 

Right. Mined-from-previous-projects is one thing, formally-released-components is another. But yes, they're still both reuse.

I should probably force myself to get some free time and release my reuse metric, unless VISTA is going open source  :D

 

Open source, I doubt it. But... if someone were to release a framework (like ShaunR has), we could probably release a plug-in or two...

  • Like 2
Link to comment

Oh, it was modular enough, it just wasn't aligned enough with our core businesses anymore (the screenshots I shared were of components, there was a top-level framework and UI experience that tied everything together). And a lot of the features had appeared in others' tools, so we left it where it was.

Well. don't keep us in suspense. Where's the rest of it? :P

 

Right. Mined-from-previous-projects is one thing, formally-released-components is another. But yes, they're still both reuse.

 

Components, yes but........

 

Then there is reuse that can't really be measured like copying an existing library, or whole project from some old code (data mining), where here reuse is between 0% and 100% but code can't really detect the exact amount. 

 

I know that was probably a throw away statement but it's something that annoys me and I see/hear newbies and oldies parroting without thinking.

 

If you meant by "data mining" the process of taking an unmodified chunk of an old project and use it "by reference", i,e, place the VIs on diagrams or link via code interface nodes then yes, it is reuse [of an informal library]. You just haven't reused it enough to make it formal.

 

However. Copying and pasting or copying and modifying (forking) of an old project/code isn't reuse - it's replication. It is just a tortured interpretation of the English word to make an anti-pattern sound like a good thing when making a reuse library is too much effort or its reuse would be too limited.

 

"Your Honour! I just copied the dollar bill onto another piece of paper. I was simply reusing it " :D

 

I now use the term "reuse-by-reference" to explicitly exclude these abominations from the definition. If you are "data mining" by copying code then it is an opportunity to define a reuse-by-reference subsystem/library but is not, in and of itself, reuse.

Edited by ShaunR
Link to comment

If you meant by "data mining" the process of taking an unmodified chunk of an old project and use it "by reference", i,e, place the VIs on diagrams or link via code interface nodes...

 

I don't know about hooovahh, but that's not what I meant by mining. Well, not really anyway. Mining, to me, is half way between the "by reference" technique and the formally-released component. It's "hey, this is useful enough to modularize a little for this next project that I'm working on" without doing the formal redesign for ruse process. We have several stages that mined chunks go through before they get to the formally-released stage.

Link to comment

I now use the term "reuse-by-reference" to explicitly exclude these abominations from the definition. If you are "data mining" by copying code then it is an opportunity to define a reuse-by-reference subsystem/library but is not, in and of itself, reuse.

What would you consider ad hoc reuse?  Someone comes up my desk asking "Hey how would I perform a partial search for a 1D array?"  If I show that user code that does this, and the user redevelops that code based on what I told them, is that reuse?  What if I send them that VI in an email?  Is that reuse?  What if I point them to a forum link online showing someone who posted code on how to do it?

 

Let all agree a formal process of release is better, and does take more time and effort.  But isn't some of these thing in between considered reuse at some level?  It isn't easy to track, and so usually when I say something like "This project is 50% reuse" I'll usually say this project is at least 50% giving the reasoning why some reuse can't be tracked.

Link to comment

I don't know about hooovahh, but that's not what I meant by mining. Well, not really anyway. Mining, to me, is half way between the "by reference" technique and the formally-released component. It's "hey, this is useful enough to modularize a little for this next project that I'm working on" without doing the formal redesign for ruse process. We have several stages that mined chunks go through before they get to the formally-released stage.

 

"Data mining" just isn't a phrase I use for programming at all. I don't see software as data - more a tool for manipulating data. I wouldn't say I "data mine" a laptop to recover components and I see software the same. So whilst I could write software to "data mine" I would never think to use it as a phrase for code reuse.

 

What would you consider ad hoc reuse?  Someone comes up my desk asking "Hey how would I perform a partial search for a 1D array?"  If I show that user code that does this, and the user redevelops that code based on what I told them, is that reuse?  What if I send them that VI in an email?  Is that reuse?  What if I point them to a forum link online showing someone who posted code on how to do it?

 

No and no and no and no. Not only are you hell bent on the tortured use of "reuse" but now you want to torture "reference" as well. Just stop it :D

 

"Ad-hoc reuse" is a phrase made up by script kiddies because they can't write proper code at all and have to steal others'. It isn't a thing..:P

Link to comment

"Data mining" just isn't a phrase I use for programming at all. I don't see software as data - more a tool for manipulating data.

 

In the context of the conversation we're having, "data mining" is completely valid, semantically speaking.

"Ad-hoc reuse" is a phrase made up by script kiddies because they can't write proper code at all and have to steal others'. It isn't a thing.. :P

 

This made me LOL. For more than one reason :D

Link to comment

This made me LOL. For more than one reason :D

 

I doubt if you are willing to elaborate on that. I expect it was an obtuse, back-handed, compliment. :shifty:

 

Programmers that advocate "Ad-hoc reuse" are cut from the same cloth as those that say they are green minded, concerned for the environment and recycle just because they reuse their shopping bags as bin(trash) liners. :P

Edited by ShaunR
Link to comment

Yeah some of us are dumb enough to actually host our first crapware.  To be fair I think that is probably my second crapware attempt since my first attempt is gone forever.  Once I discovered LAVA I realized that would be a better home for cleaned up code so I haven't put anything new on there other than the tray launcher which has EXEs and installers that I don't think LAVA would like.

 

My oldest software that hasn't become "vapourware" seems to be the "windows_api_1.0.llb".It was written in LabVIEW 5 in the late 1990s but  think I had it internally for a couple of years before I released it. It is posted in the CR after someone asked for it and is identical to the original except it was recompiled for 2009 and later so people could actually use it.

 

 

Here is the original in LabVIEW 5. I can't actually open it any more :( but I'm pretty sure it is identical to the CR one.

windows_api_1.0.llb

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.