[ITK] [ITK-dev] ITK Architectural Patterns & Quality Attributes for Research
Matt McCormick
matt.mccormick at kitware.com
Mon Nov 7 11:37:28 EST 2016
Hello Michael et al,
Thank you for your interest in ITK. Some follow-up on the patterns and
attributes with pointers to additional information and attributes can
be found below.
On Sat, Oct 15, 2016 at 4:39 PM, Michael Skeen <mmskeen at gmail.com> wrote:
> Hello ITK Community,
>
>
> I am part of an undergraduate research group focusing on software
> architecture patterns and quality attributes at Utah Valley University. We
> recently analyzed the work published on ITK in the Architecture of Open
> Source Applications (AOSA) and referenced it in a paper we presented at the
> 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), as
> attached. As a part of our continuing research we wish to validate our
> architectural analysis for ITK with the current developers.
>
>
> We would like to know if we are missing any patterns or quality attributes
> that may have been included in ITK, or if there are any we listed that
> aren’t used. Any additional comment on these topics you might have would
> also, of course, be welcome.
>
>
> We believe we found the following software architectural patterns in this
> application:
>
>
> Pattern Name | Is This Found in the Architecture? (yes / no / don't know) |
> Comments (optional)
>
> Pipes & Filters
Yes. More information can be found in the Data Processing Pipeline
section of the ITK Software Guide:
https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch3.html#x34-390003.5
> Plugin
Yes. See, for example the ImageIO system:
https://itk.org/Doxygen/html/classitk_1_1ImageIOBase.html
> Other?
Yes. See, for example the Architecture section of the ITK Software Guide:
https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1pa2.html#x33-26000II
> We also identified the following quality attributes:
>
>
> Attribute Name | Is This Found in the Architecture? | Comments (optional)
>
> Usability
Yes. We work hard on developer usability. See, e.g.
https://itk.org/ITK/help/documentation.html
> Extensibility
Yes. We recently developed an extensible module system for the toolkit. See
https://blog.kitware.com/advance-itk-with-modules/
> Flexibility
Yes. For example, see the image registration framework, which can be
adapted to new problems:
http://journal.frontiersin.org/article/10.3389/fninf.2014.00044/full
> Maintainability
> Testability
Yes and yes. For more information, see:
http://journal.frontiersin.org/article/10.3389/fninf.2014.00013/full
The additional attributes also apply:
Scalability. We support image processing through streaming.
Performance. ITK is a high performance toolkit that makes an effort to
perform well on multi-core, many-core, and GPGPU systems. See, for
example:
http://www.insight-journal.org/browse/publication/972
Portability. ITK is portable across many platforms, including x86_64
Linux, Windows, Mac OSX, but also ARM architectures, Android, POWER8,
and JavaScript. See
https://blog.kitware.com/compile-cc-into-javascript-with-emscripten-and-docker/
Modularity. Yes, since ITK version 4, ITK is organized into Groups and Modules.
Cost. Legality. ITK has a strong focus on collaborative, open source
development to sustainably create one of the most powerful medical
image analysis libraries in the world. There is also an explicit
attention to legality: ITKv4 is licensed as Apache 2.0, and algorithms
with software patents are excluded from the library.
Thanks,
Matt
> For your convenience, we have a complete list below of the patterns and
> quality attributes we referred to when conducting our research. To clarify,
> we are specifically studying architectural patterns, rather than design
> patterns such as the GoF patterns.
>
>
> Architectural Patterns Considered
>
>
> Quality Attributes Considered
>
> Active Repository
>
>
> Scalability
>
> Batch
>
>
> Usability
>
> Blackboard
>
>
> Extensibility
>
> Broker
>
>
> Performance
>
> Client Server
>
>
> Portability
>
> Event System
>
>
> Flexibility
>
> Explicit Invocation
>
>
> Reliability
>
> Implicit Invocation
>
>
> Maintainability
>
> Indirection Layer
>
>
> Security
>
> Interceptor
>
>
> Testability
>
> Interpreter
>
>
> Capacity
>
> Layers
>
>
> Cost
>
> Master and Commander
>
>
> Legality
>
> Microkernel
>
>
> Modularity
>
> Model View Controller
>
>
> Robustness
>
> Peer to Peer
>
>
>
> Pipes and Filters
>
>
>
> Plugin
>
>
>
> Presentation Abstraction Control
>
>
>
> Publish Subscribe
>
>
>
> Reflection
>
>
>
> Rule-Based System
>
>
>
> Shared Repository
>
>
>
> Simple Repository
>
>
>
> State Based
>
>
>
> Virtual Machine
>
>
>
>
> Please respond by October 25th, if possible.
>
> Thank you for considering our request, and for your continued work on ITK.
>
>
> Sincerely,
>
>
> Michael Skeen, with
>
> Erich Gubler,
>
> Danielle Skinner,
>
> Brandon Leishman,
>
> Neil Harrison, Ph.D. (advisor)
>
>
> Reference: Neil B. Harrison, Erich Gubler, Danielle Skinner, "Software
> Architecture Pattern Morphology in Open-Source Systems",WICSA, 2016, 2016
> 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), 2016
> 13th Working IEEE/IFIP Conference on Software Architecture (WICSA) 2016, pp.
> 91-98, doi:10.1109/WICSA.2016.8
>
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-developers
>
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-developers
More information about the Community
mailing list