National Alliance for Medical Image Computing Salt Lake City AHM February, 2005 1 No Respect Danny, Be the Ball.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

A Toolbox for Blackboard Tim Roberts
LeadManager™- Internet Marketing Lead Management Solution May, 2009.
Usage of the memoQ web service API by LSP – a case study
Bboogle Teams: Supporting Small Group Communications through Google Apps Integration with the Blackboard Learn Platform Jonathan Smith, Software Architect,
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
OVERVIEW TEAM5 SOFTWARE The TEAM5 software manages personnel and test data for personal ESD grounding devices. Test and personnel data may be viewed/reported.
HP Quality Center Overview.
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
A Comprehensive Web Application Development and Deployment Platform.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
1 The IIPC Web Curator Tool: Steve Knight The National Library of New Zealand Philip Beresford and Arun Persad The British Library An Open Source Solution.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Agile Testing with Testing Anywhere The road to automation need not be long.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Welcome to the Minnesota SharePoint User Group. Introductions / Overview Project Tracking / Management / Collaboration via SharePoint Multiple Audiences.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
CSCI ClearQuest 1 Rational ClearQuest Michel Izygon - Jim Helm.
Configuration Management Process and Environment MACS Review 1 February 5th, 2010 Roland Moser PR a-RMO, February 5 th, 2010 R. Moser 1 R. Gutleber.
Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
ArcGIS Workflow Manager An Introduction
William Lorensen GE Research Niskayuna, NY February 12, 2001 Insight Segmentation and Registration Toolkit.
Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation.
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
NA-MIC National Alliance for Medical Image Computing NA-MIC Software Engineering Bill Lorensen GE Research NA-MIC Engineering Core PI.
Fundamentals of Database Chapter 7 Database Technologies.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
DEV 303 Visual Studio "Whidbey" Enterprise Tools: Source Control and Work Item Tracking Brian Harry Product Unit Manager Microsoft Visual Studio.
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
Why use JIRA?.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
New perfSonar Dashboard Andy Lake, Tom Wlodek. What is the dashboard? I assume that everybody is familiar with the “old dashboard”:
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
DSpace System Architecture 11 July 2002 DSpace System Architecture.
Aerial Image Exploitation Change Detection Event Detection Object Tracking Region Classification Medical Image Analysis Automated Cancer Detection Automatic.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
NA-MIC National Alliance for Medical Image Computing Non-Interactive Tools Stephen Aylward, Kitware
APT Configuration Management May 25th, 2004 APT Configuration Management Jesse Doggett.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
NA-MIC National Alliance for Medical Image Computing NAMIC Software Process Dan Blezek Jim Miller Bill Lorensen.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
The Holmes Platform and Applications
NA-MIC All Hands Meeting - 1/9/2006
Build and Test system for FairRoot
Unit Testing.
Continuous Integration (CI)
Shared Services with Spotfire
GWE Core Grid Wizard Enterprise (
Core 2 Progress Day 1 Salt Lake City
LCGAA nightlies infrastructure
X in [Integration, Delivery, Deployment]
National Library of Medicine Segmentation and Registration Toolkit
Enterprise Program Management Office
CS 240 – Advanced Programming Concepts
Continuous Integration
Presentation transcript:

National Alliance for Medical Image Computing Salt Lake City AHM February, No Respect Danny, Be the Ball

NA-MIC National Alliance for Medical Image Computing Dart2 Quality Framework Software Quality: Past, Present, Future Dan Blezek Jim Miller Bill Lorensen

National Alliance for Medical Image Computing Salt Lake City AHM February, A brief history of quality Very First VTK Dashboard Update information Builds – Irix, Solaris, WinNT Regression tests WinNT “Catastropic failure”

National Alliance for Medical Image Computing Salt Lake City AHM February, Last VTK Dashboard 8 Platforms 650 Nightly Tests 70% coverage (Still) Nightly Purify

National Alliance for Medical Image Computing Salt Lake City AHM February, A Bad Day

National Alliance for Medical Image Computing Salt Lake City AHM February, The Continuous Build

National Alliance for Medical Image Computing Salt Lake City AHM February, My first VTK checkin Continuous Update Continuous Build

National Alliance for Medical Image Computing Salt Lake City AHM February, The Big Bat of Quality

National Alliance for Medical Image Computing Salt Lake City AHM February, Bill “Yogi” Lorensen

National Alliance for Medical Image Computing Salt Lake City AHM February, Lessons learned Test on different platforms Test nightly Make it easy to add a test Track changes daily Keep historical information

NA-MIC National Alliance for Medical Image Computing Two roads diverged in a wood, and I-- I took the one less traveled by, And that has made all the difference. Robert Frost Closed Source

National Alliance for Medical Image Computing Salt Lake City AHM February, Dart (v1) Tests Reports Dashboards Captures state of the system Distills data into information –Convert build log  errors/warnings –Summarize test execution –Rollup Coverage statistics

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February, Someone broke the build!

National Alliance for Medical Image Computing Salt Lake City AHM February, Someone broke the build!

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February, Dart’s Power Distributed testing If I don’t have a platform, you do Distill data from many tools Distributed Extreme Programming Know the state of the system Instant feedback on changes

National Alliance for Medical Image Computing Salt Lake City AHM February, Quality Statistics Original VTK dashboard 8 platforms / 650 tests 13.6 G over 4 years Current VTK dashboard 29 Nightly platforms / 500 tests 1-2 G / week Insight dashboard 60 Nightly builds / 970 tests 1-2 G / week

National Alliance for Medical Image Computing Salt Lake City AHM February, Dart2 Design Goals One Server, multiple Projects Simple, flexible setup and management Configurable presentation Persist data on dashboard over time Aggregate Dashboards Authenticated submission, if desired Resource management tools

National Alliance for Medical Image Computing Salt Lake City AHM February, Implementation Java –Many, many available packages –Cross-platform Everything in one package –No extra OS packages required –Distribute as Jar and/or platform exe Should be easily extensible –Even to non-Java programmers

National Alliance for Medical Image Computing Salt Lake City AHM February, Packages

National Alliance for Medical Image Computing Salt Lake City AHM February, Components/Concepts Client, Submission Test Hierarchy Results RDBMS XML-RPC Server Task Manager Scheduler Tracks HTTP / Template Engine

National Alliance for Medical Image Computing Salt Lake City AHM February, Client, Submission Client: a unique platform –Need to define criteria –Currently Site / BuildName Submission –One TimeStamped set of Test data –Particular to a sub-Project slicer.itk slicer.vtk

National Alliance for Medical Image Computing Salt Lake City AHM February, Test Hierarchy Test is a logic group of Results Has a Pass/Fail/NotRun status May contain other Tests Has Hierarchial naming convention –itk.common.PrintSelf SubTest information rolled up

National Alliance for Medical Image Computing Salt Lake City AHM February, Results Data produced by a Test Examples: –Log of standard out –Image –ExecutionTime Typed –text/string, text/url, text/xml, text/text –numeric/integer, numeric/double –image/png,image/jpeg

National Alliance for Medical Image Computing Salt Lake City AHM February, RDBMS Core of Dart2 –Bundled with Derby embedded RDBMS –Any JDBC compliant DB works Stores “small” data –Images, large blocks of text in files Jaxor –Object – Relational Bridge package –No fancy SQL required –Creates objects from rows in DB

National Alliance for Medical Image Computing Salt Lake City AHM February, XML-RPC Server Accepts Submissions Administrative functions HTTP transport –Easy submission through firewalls Digester used to process XML –Executes code when tags found

National Alliance for Medical Image Computing Salt Lake City AHM February, Task Manager Tasks are units of work for the server –Project and Server Tasks –Scheduled, Event driven When a Submission arrives, a Task is queued QueueManager executes Tasks Plug-ins allow Project specific Tasks –Simply implement the Task Interface

National Alliance for Medical Image Computing Salt Lake City AHM February, Scheduler Quartz Enterprise Scheduler Executes Tasks –Uses enhanced “cron” syntax Uses –Regular DB maintained –Purge unnecessary data –Archive aging data

National Alliance for Medical Image Computing Salt Lake City AHM February, Tracks Groups of Submissions –Dashboard consists of intersecting Tracks Temporal Tracks –Time based, i.e. 12am start, 24hr duration “Most Recent” Track –Last 5 Continuous builds Project specific

National Alliance for Medical Image Computing Salt Lake City AHM February, HTTP / Template Engine Jetty is HTTP/Servlet server FreeMarker –Data prepared in Servelet –Template processed –Returned to client via HTTP Flexible Easy to add new pages No XSLT!

National Alliance for Medical Image Computing Salt Lake City AHM February, Dart2 Current Status Alpha version ready Test server – –Populated with Build & Test from public.kitware.com Subversion Code Repository –svn co –Web SVN:

National Alliance for Medical Image Computing Salt Lake City AHM February, Acknowledgements Andy Cedilnik Bill Hoffman Will Schroeder Ken Martin Amitha Perera Fred Wheeler

NA-MIC National Alliance for Medical Image Computing Dart2 Quality Framework Software Quality: Past, Present, Future Dan Blezek Jim Miller Bill Lorensen

National Alliance for Medical Image Computing Salt Lake City AHM February, Desirable Qualities Frequent testing –Identify defects as soon as they are introduced –Hard to find cause if not done frequently Minimally invasive to daily activities Automated testing Automated report generation/summaries –Must be concise yet informative Track results over time

NA-MIC National Alliance for Medical Image Computing NAMIC Software Process Dan Blezek Jim Miller Bill Lorensen

National Alliance for Medical Image Computing Salt Lake City AHM February, Motivation Many algorithms, many platforms –VTK, ITK, Slicer, LONI –Linux, Windows, Mac OSX, Solaris, SGI Many users Many datasets Many sources of problems!

National Alliance for Medical Image Computing Salt Lake City AHM February, Motivation Negative example MIT codes ITK algorithm for LONI pipeline UCLA developer changes LONI GE changes ITK Time for release, everything’s broken

National Alliance for Medical Image Computing Salt Lake City AHM February, Motivation Ensuring high quality software System’s state must be known –If UCLA knew about MIT code, they would have been more careful w/changes All the code works, all the time –As often as is feasible, compile and test the code

National Alliance for Medical Image Computing Salt Lake City AHM February, Extreme Programming

National Alliance for Medical Image Computing Salt Lake City AHM February, NAMIC Process Light weight Based on Extreme Programming –High intensity cycle Design Test Implement –Supported with web-enabled tools –Automated testing integrated with the software development

National Alliance for Medical Image Computing Salt Lake City AHM February, Software Process Design Process Coding Standards Testing Bug Tracker Communication –Mailing lists, Discussion forum, Wiki –Tcons Documentation Releases

National Alliance for Medical Image Computing Salt Lake City AHM February, Design Process Take the time to design a good API Plan for future use Plan for future extension Two routes –Code something, check it in Others will tear it down & make it better –Put together a strawman Solicit ideas, implement

National Alliance for Medical Image Computing Salt Lake City AHM February, Coding Standards Follow the package’s rules ITK has certain coding standards –Style guidelines –Naming conventions –Macros

National Alliance for Medical Image Computing Salt Lake City AHM February, Testing If it isn’t tested, it’s broken. Tests –Ensure your code works –Documents expected results –Others free to change

National Alliance for Medical Image Computing Salt Lake City AHM February, Bug Tracker Bugs assigned / taken by developers Tracks progress to releases Captures feature requests Communication mechanism

National Alliance for Medical Image Computing Salt Lake City AHM February, Documentation Doxygen –Automatic API documentation –Algorithm references –Implementation details Books / Manuals –Insight Book

National Alliance for Medical Image Computing Salt Lake City AHM February, Communication lists Discussion forum Wiki Tcon

National Alliance for Medical Image Computing Salt Lake City AHM February, Extreme Programming Compression of standard analyze, design, implement, test cycle into a continuous process

National Alliance for Medical Image Computing Salt Lake City AHM February, Daily Testing Is The Key Testing anchors the development process (Dart) Developers monitor the testing dashboard constantly Problems are identified and fixed immediately Developers receive if they “Break the Build”

National Alliance for Medical Image Computing Salt Lake City AHM February, Daily rhythm Design, implement algorithm write regression test check it in Dart takes over Code is updated, built, tested Guilty parties are blamed Core 2 Build breakers are notified Work on cleaning up dashboard Repeat

National Alliance for Medical Image Computing Salt Lake City AHM February, Dart Testing Reports Dashboards Central site for state of the system –Updates –Builds –Test –Coverage

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February, Someone broke the build!

National Alliance for Medical Image Computing Salt Lake City AHM February,

National Alliance for Medical Image Computing Salt Lake City AHM February, Conclusion Have fun Process extends your impact –Many can use your code –Many can improve your code Communicate, Communicate, Communicate

NA-MIC National Alliance for Medical Image Computing NAMIC Software Process Dan Blezek Jim Miller Bill Lorensen