[IGSTK-Developers] "many simple specialized" components vs. "fewer, more complex and general components"

Frank Lindseth Frank.Lindseth at sintef.no
Fri May 25 09:55:07 EDT 2007


Luis (and others),

We had a long discussion about "many simple specialized" components   
vs. "fewer, more complex and general components" after you had to  
leave the Tcon yesterday (we should probably have started with this  
topic).
It seems like the common opinion is that in order to make it simpler  
for the app. developer to satisfy the clinical user requirements   
it's sensible to move a little bit in the more general direction for  
some of the components, at the same time the components should not  
become so complex that it's not possible to test them in the ordinary  
way, we have to find the right balance.
I know you have strong feelings about this Luis, but do you (or  
anybody else for that matter) think that a compromise can be found  
somewhere along the simple comp./complex app - complex comp./simple  
app. line?
As you know, this has been my main IGSTK concern from day one, and I  
really need some input as to what to except as our "IGSTK practical  
trial period" is about to end and we have to take the big decision  
regarding what to base future IGS efforts on (it looks promising  
regarding other issues, e.g. the "coordinate system" challenge).

If we need to think in terms of concrete scenarios I believe that the  
slicer-comp. should be used (could be specialized both in terms of  
modality and functionality) .
Some background information / discussion can be found here:
http://public.kitware.com/IGSTKWIKI/index.php/ 
Talk:DesignChallenges#Slicing

A little scenario that can help to trigger some response to this e-mail:
User/surgeon would like to have an IGS system with a certain  
complexity in terms of required functionality (will increase over the  
years, I know...).
Such an app.  could be realized in different ways depending on the  
way the components are made:
A) Many, simple and specialized components -> Complex app. will be  
needed (many obj. , switching, etc.) in order to satisfy the user above.
B) Fewer, more complex and general components. -> Simple app.  (to  
satisfy user).
C) Balanced comp. -> Balanced app.  (to satisfy user).

List of points that can push the balance in one or the other direction:
= User/surgeon
-Overall safety (not the same as comp. safety):
* It's easier to test a comp. then it is to test an app. (as long as  
the comp. is not to complex, i.e. up to a certain level)
* A simple app. is safer and easier to test then a complex one.
* A complex comp. is of course more difficult to to test then a  
simple one, but we should think more like this: lets say that we have  
a complex comp. Ca that offers the same functionality as two simpler  
comp. Sa and Sb. As long as it's possible to test Ca, knowing that  
this comp. work properly has added more to the overall safety then  
testing Sa and Sb separately.
* etc. (feel free to add points to this list)

= App. developer:
* In terms of building a user community, the easier it is to build a  
app. with a certain functionality, the better it is. The extreme case  
being that the app. dev. only  connect the high level comp. needed  
and make everything accessible to the user trough a gui.
* etc. (feel free to add points to this list)

= Comp. developer:
* resources for dev. maintenance, doc. testing, etc.
* etc. (feel free to add points to this list)

Have a nice weekend everybody.
Regards,
Frank




More information about the IGSTK-Developers mailing list