Why tool integration is necessary Integrated tools for collaborative software development Contact: juho.eskeli@vtt.fi Size and complexity in embedded systems software is growing quickly Collaboration is essential in product development Productivity increasing technologies and methods are needed to excel in software development Generally in software development, there is a need to link the development work products with each other Establishing and maintaining these links manually is laborious and error prone task Poor interoperability of development tools is one of the major problems in embedded systems development today Bundled tool-chains solve problem only partially and create dependency on the particular tool vendor 2 What are the advantages of integration? ToolChain - Merlin Allow for efficient change impact analysis and reporting facilities during different phases of the software development life cycle Enable traceability between development phases as well as between collaboration partner. Ensure consistency of the work products as the development progresses, and provide visibility beyond partner borders As a result, better efficiency and ultimately, cost savings can be achieved Research begun within the Merlin project (2004-2007), which was an international research project coordinated by ITEA The main focus in Merlin project was to develop new and enhanced practices and technologies to improve the collaborative software development One focus of the project was collaboration enablers, meaning concepts and tool chains for inter-organizational collaboration Merlin project consortium consisted of universities, research centres and industrial partners from Finland, Sweden and the Netherlands Sweden The Netherlands Finland 3 4
ToolChain - Merlin ToolChain - Merlin One of the main goals was to improve the traceability of information during the product development. Research process began with literature study of collaboration related technologies and problems Set of tools was selected based on industrial partners report of the tools they use (PM,RM,CM,TM) Eclipse chosen as integration framework Traceability model created based on basic development workflow Requirement centered Implementation work began from creating plugins for selected tools into Eclipse See if tools that are built by different vendors can be integrated together How can the tools be interfaced (API, JDBC/ODBC, )? Traceability -view which brings together data from different plugins Overview of project status Work with different tools in common view (Eclipse) Ability to select from multiple tools was added later Merlin version released as open source (link later). 5 6 ToolChain - Philips case ToolChain - TWINS Study with set of tools: Philips Project Assist Tool (PM), DOORS (RM), Subversion (CM), Philips SoftFab (TM) Study of tools, and integration work begun well in advance before the execution of the case Trial carried out in OSIB project Goals: to improve traceability and visibility of the project progress Results: solution facilitated development lifecycle artefact traceability and the visibility of the project progress TC development continued during TWINS ITEA project Master s thesis work ongoing TWINS project addresses challenges in HW / SW co-development Focus (from TC viewpoint) : To improve testing facilities by adding new tools and methods for TC Added support for test data gathering and analysis Provide workflow support in TC for guidance in different product lifecycle activities How to use integrated tools and TC to accomplish certain activity Project still ongoing No release plan for new TC 7 8
ToolChain Traceability view: -Information visibility -Process support ToolChain / Eclipse platform Project status is visible via ToolChain traceability-view: requirement s task completion, test case coverage, etc. Project management TRAC -Task assignment -Task status Requirement management OSRMT OSRMT (Requirement Manag.) -Requirements OSRMT (Requirement Manag.) -Requirements definition -Requirements definition definition ToolChain Supported tools ToolChain plug-ins Test management TestLink TestLink (Test Manag.) -Test TestLink (Test Manag.) -Test cases cases -Test -Test -Test reports cases -Test reports reports Data from various tools is brought to the ToolChain using plug-ins Version control Subversion Subversion (Change Manag.) -Code Subversion (Change Manag.) -Code files files status -Code files, status UML diagrams, etc. Architecture simulation & analysis Performance Visualization Tool - Test data analysis Probe Database -Test data storage Embedded platform E.g. Espotel Jive Probe Network - Test data gathering Traceability database Data is linked in traceability view and link information is stored in the database 9 10 Screenshot of TC/Eclipse ToolChain - Summary Merlin version of the ToolChain (TC) is available as open source from http://sourceforge.net/projects/merlintoolchain/ TC is a research prototype Trial case in OSIB-project at Philips Currently being evaluated in industrial case TC is built for Eclipse TC integrates tools from four main areas: project management, requirements management, version control and testing Testing support includes test management, test data gathering and test data analysis TC keeps track of relationships between different ALM artefacts, e.g. identify code files for requirement. Traceability information is stored in central database. Project status can be inspected, for example by checking the requirements coverage; requirement has test cases defined and the tests have completed successfully. It is possible to create 100% open source ALM solution with the existing integrations. TC can be customized: it is possible to implement Your own integrations to ToolChain 11 12
TRAC Subversion Define requirement (OSRMT) Tasks Documents Task creation (Trac) Test case definition (TestLink) OSRMT Design, implementation (TC) Requirements Show how produced items are managed System monitoring TestLink Manage test data Test cases Analysis of test data PROBE Perf. Vis. Test data Analysis Step 1: Initial situation Project contains only one requirement, and no traceability information 13 14 Step 2: New requirement Create new requirement in OSRMT (Open Source Requirement Management Tool) Step 3: New tasks for the requirement Requirement appears in ToolChain Ticket now appears in TRAC plugin (Eclipse) New ticket in TRAC 15 16
Step 4: Traceability between tasks and requirement Tasks are linked to SELECTED requirement by dragging the tasks from TRAC-plugin into task field (in Traceability - view) Step 5: Requirement implementation New Java class is created and added to Subversionrepository. Requirements specification is now ready. Specify requirement -ticket is closed in TRAC and work hours added. Code file is dragged from package explorer (SVN) to code files -section in Traceability -view. This forms a traceability link between selected requirement and the code file. 17 Working hours for development effort are written for the ticket in TRAC. 18 Test case is created and assigned to tester in TestLink. Test case is traced to selected requirement in TC. Step 6: Requirement verification Example workflow 2: System monitoring Demonstrates test case which tests system performance Generated test data is analyzed and analysis results are added to the test case Workflow guidance provides steps necessary to complete the testing / analysis task Test case is executed (TestLink) and working hours marked (TRAC). 3. Test case status: passed -> Requirement has been validated. 19 20
Example workflow 2: System monitoring Test case data is visualised in Performance Visualization tool by launching the tool from TC for the data set Analysis results are updated for test case into TestLink Thank you! Questions? 21 22