200 likes | 549 Views
Small Tools and Interoperability Arend Rensink Formal Methods and Tools University of Twente Outline What are small tools? Characteristics Lifecycle How to support small tools? Aspects of tool support Tool ambition levels Tool interoperability Classification Problems
E N D
Small Toolsand Interoperability Arend RensinkFormal Methods and ToolsUniversity of Twente
Outline • What are small tools? • Characteristics • Lifecycle • How to support small tools? • Aspects of tool support • Tool ambition levels • Tool interoperability • Classification • Problems • Long-term vision: LIST Small tools and interoperability
What are small tools? • Tools developed in an academic context • Small basis for support • Time: all that is not spent on “real” research • Money: none (university infrastructure) • Manpower: 1 person • Tend to die at the end of project • Tools YOU write • Origin: • PhD research topic (throwaway prototype) • MSc final project Identified as problem at 3TU mid-term visitation Small tools and interoperability
Questionnaire 1 • What tools do you have? • What do they do? • What language(s) and platform? • Which of them are small tools? Small tools and interoperability
Characteristics of small tools • Small tools may embody big ideas • “Small” does not refer to the research ideas • Small tools are numerous • Virtually all PhD students create one or more • Small tools are not integrated • PhD students are not software engineers • No ambition to make tools part of larger framework • Innovation does not extend beyond own research • Small tools are prototypes • PhD students are not software engineers • No time devoted to user interface, documentation Small tools and interoperability
Typical small tools lifecycle • A new research project is started • Research yields (preliminary) results • Tool needed to experiment, validate ideas • Small, throwaway prototype created • Validate results on dedicated examples • Experiment with real data • Research results published • Including experimental data • Project ends • Tool not maintained, no users Steps 2-4 may be iterated Latest point to intervene, raise ambition, find funding Small tools and interoperability
Aspects of tool support • Documentation • Programmer and user level • Building and testing • Manual or automatic; regression tests • Availability • Downloading, installing on multiple platforms • Versioning/maintenance • Continuous development, releases • Interoperability • Interchange formats, protocols • Licensing • Code doc • On-line help • Build farm (Delft) • Sourceforge • Build farm • Svn (or cvs) • Sourceforge • (L)GPL, Apache, FreeBSD Small tools and interoperability
Questionnaire 2 • What solutions do you have • Documentation • Building/testing • Availability • Versioning/maintenance • Licensing Small tools and interoperability
Ambition levels for small tools • (Low): Prototype tool • One developer = user • Lifespan: one paper • (Medium): Project tool • One or more developers = users • Lifespan: one project (4 years) • (High): Strategic tool • Multiple developers, external users • Lifespan: indefinite • Building • Versioning • Documentation • Availability • Interoperability • Licensing Small tools and interoperability
Questionnaire 3 • What ambition level are you on? Small tools and interoperability
Interoperability • Various definitions in existence • Key elements: • Diversity of components • Cooperation to achieve common task • Here: components are individual tools • Related concepts: • Integration: stronger than interoperability • Global, unified view or presentation • Imposes requirements upon individual tools • Interaction: weaker than interoperability • Any kind of mutual influence, no “common goal” Small tools and interoperability
Classifications • Conceptual level classification • Syntactic interoperation: tools exchange data • Semantic interoperation: data mean the same • We concentrate on syntactic • Better achievable (semantics hard to formalise) • Necessary precondition for semantic • Solution level classification • Run-time communication • File interchange • Programming-level integration Small tools and interoperability
Run-time communication • Based on pipes, channels… • Special case: mutual invocation • Examples • Web services • TorX (test generation toolset) • Advantages • Multi-paradigm solution • Problems: • Precise definition of protocol • Setup phase: scripting? Small tools and interoperability
File interchange • Based on agreed-upon “standard” format • Most frequently chosen solution • Examples: • UML, programming languages, XML, tool specific • Advantages: • Multi-paradigm solution • Reduces work (from quadratic to linear in #tools) • Problems: • Agreeing upon format (exponential in #tools?) • Precise definition of format, versions • Poor performance Small tools and interoperability
Programming-level integration • Based on public program interface • Examples • Language libraries, plugins • CADP • Advantages • Best performance • Problems • Single-paradigm solution • Learning curve • Contract & interface changes Small tools and interoperability
Questionnaire 4 • What interoperability solutions do you use? Small tools and interoperability
LIST • Laboratory for Interoperability of Small Tools • Initiative at FMT, University of Twente • Funding: CeDICT/LaQuSo • 1 technical assistant, 3 years • Set up framework for tool support • Especially solutions for interoperability • Cooperation Eindhoven (Groote), Delft (Van Deursen) • Improve interoperability of existing (FMT) tools • Especially strategic tools • Set up & run responsible experiments • Documentation, reproducibility Small tools and interoperability
Conclusion • Building tools is a lot of fun! • But: think it through! • What is your ambition level? • What are desired interoperability modes? Small tools and interoperability
Provocations • We should not invest in tool integration • in contrast to interoperability • We should not invest in semantic interoperability • as long as we haven’t solved syntactic interoperability • We should not invest in strategic tools • academia is wrong environment for serious tool development • small tools are a solution, not a problem Small tools and interoperability