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 <mmsk...@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