Nov 2013- 1 Quality Process for Research Software - Timothy C. Lethbridge Research Software Doesn't Have to be Buggy: A Model-Driven, Test-Driven and Agile.

Slides:



Advertisements
Similar presentations
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
Advertisements

Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Welcome to the seminar course
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
A Brief Introduction to Test- Driven Development Shawn M. Jones.
Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.
IVANA NIŽETIĆ Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia Long-lasting teaching materials in spite of changing technology.
Integrating the Computer Science Curriculum by Reusing Soccer Simulation Game Vadim Kyrylov, PhD Associate Professor Sarkeys Endowed Chair School of Business.
Introduction Internet – largely a read only medium Searchlets is an open source concept that enables us to use the internet in a read and write mode. Termed.
Moodle, Blogs, Wikis and More Exploring Web 2.0 Tools: The 2nd Generation of the World Wide Web.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Production Programming in the Classroom Eric Allen, Robert Cartwright, and Charles Reis Rice University {eallen, cork,
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Supporting Classroom Interaction with Networked Tablet PCs Richard Anderson Professor of Computer Science and Engineering University of Washington.
CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Automated Evaluation of Regular Lab Assignments: A Bittersweet.
Introduction to Agile.
SEG4911 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Thoughts about Agile Design and Release Management Timothy C. Lethbridge.
WebQuilt and Mobile Devices: A Web Usability Testing and Analysis Tool for the Mobile Internet Tara Matthews Seattle University April 5, 2001 Faculty Mentor:
Introduction to Continuous Integration Mike Roberts.
SCHOOL OF COMPUTING QUEEN’S UNIVERSITY 08/03/2013 Andrew Forward, Omar Badreddin, Timothy C. Lethbridge, and Julian Solano School of Electrical Engineering.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): CS 791z Graduate Topics on Software Engineering.
Creating Web-based Learning Activities to Support the Needs of Diverse K-12 Learners.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
Course Introduction Software Engineering
PBL in Team Applied to Software Engineering Education Liubo Ouyang Software School, Hunan University CEIS-SIOE, January 2006, Harbin.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
Se Over the past decade, there has been an increased interest in providing new environments for teaching children about computer programming. This has.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Blogging & Edublogs participation, not just information.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
University of Hartford May 20, 2008 Dr. Deborah Allen’s contribution to this presentation is acknowledged and appreciated. Using Collaborative Technology.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Engineering Projects In Community Service Matt Mooney Community Based Research University of Notre Dame.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
1. ENTERPRISE AGILE TRANSFORMATION AT THE US POSTAL SERVICE MAY 24, Agile Business Solutions.
 Son Nguyen, YM & Skype: ng_thanhson.
For the Students Students in elementary school right now have always used technology, classes seem outdated and boring to most because of the lack of.
Embedded Systems Software Engineering
Software Development.
What is Wrong with Models?
The Evolution of the Wiki as a Universal Campus Resource
Applying a Research Prototype Tool in Industrial Practice
Software Testing and Maintenance Introduction
X in [Integration, Delivery, Deployment]
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Yes, we need hundreds of methodologies!!!
Teaching Effective UML Modeling by Combining it with Programming
Warmup Write a function to add two integer parameters and return the result.
Presentation transcript:

Nov Quality Process for Research Software - Timothy C. Lethbridge Research Software Doesn't Have to be Buggy: A Model-Driven, Test-Driven and Agile Process Applied in a University Research Team November 2013 Timothy C. Lethbridge

Nov Quality Process for Research Software - Timothy C. Lethbridge Motivations for This Talk I was explaining to researchers at a conference how I have been able to maintain Umple –They were interested in the process I followed It has been a very positive experience to experience ‘real’ software development –And not get bogged down it –While maintaining quality –And getting good feedback from students

Nov Quality Process for Research Software - Timothy C. Lethbridge Research Software: Often Short Life or ‘Not Production Quality’ Software developed by computer science researchers often only lasts as long as one student’s PhD –Perhaps a little longer It usually gets messy –The next generation of students often wants to rewrite it The principal investigator wants to move on to other things –The software becomes a drag –Lack of resources for maintenance –Grants are for research, not development

Nov Quality Process for Research Software - Timothy C. Lethbridge Why would we want research software to last for the long haul? To really ‘get it right’ To act as infrastructure for countless experiments and idea exploration To allow the professor and students to get really good at real software engineering

Nov Quality Process for Research Software - Timothy C. Lethbridge My Vision Prodution quality software that persists for 20 or more years Continual improvement of the process Top-notch training, education, and research platform

Nov Quality Process for Research Software - Timothy C. Lethbridge My Approach Adopt software engineering best practices in the software used in the research Blend and mode-switch research approaches –Design based research –Action research –Grounded theory –Empirical experimentation

Nov Quality Process for Research Software - Timothy C. Lethbridge The Platform: Umple Model-oriented compiler –Adds UML and patterns to Java, C++ etc. –Textual UML –High quality code generator for class and state diagrams –Web-based + command line + Eclipse Main site: Web app: Manual: Open source: –Google: –Mirrors on Github and SourceForgeGithub SourceForge

Nov Quality Process for Research Software - Timothy C. Lethbridge Robustness maintained because of / despite contributions by >30 HQP 2 completed PhDs (+ 7 underway) 4 completed Masters (+ 1 underway) 22 undergraduate capstone projects (+ 6 underway) 3 postdocs UCOSPUCOSP: Students from UBC, Simon Fraser, UAlberta, USask, URegina, Laurentian, Waterloo, Wilfred Laurier, Guelph, Bishops, Sherbrooke, UNB, Dalhousie International contributions from Brazil. Countless students taught in classrooms –Umple helps students learn UML (CSEET 2011)CSEET 2011

Nov Quality Process for Research Software - Timothy C. Lethbridge Essential elements of the process Red ones are key Open source Multi-level test driven development Model driven development Carefully categorized issues list Continuous integration Lean live documentation for users and developers Low management overhead Marketing and publication

Nov Quality Process for Research Software - Timothy C. Lethbridge Open Source Open to the world as early as possible If there are spinoffs, let them be based on service, not software

Nov Quality Process for Research Software - Timothy C. Lethbridge Multi-level test driven development Use test cases as specifications Multiple levels in the layered architecture –For Umple: Parsing, metamodel instance, generation, execution In Umple, the compiler itself is a big test Note: We have not applied this yet to the user interface

Nov Quality Process for Research Software - Timothy C. Lethbridge Model driven development Always start with the model and generate code from it –It is possible –Requires indoctrination, and students sometimes have to be asked to start again! Simplifies code, reduces volume, enforces abstraction That is what Umple is about, but we have also developed other systems in Umple –Key Umple benefits compared to other MDD tools Model is code; traditional code embedded in mode No need to edit generated code Bidirectional traceability

Nov Quality Process for Research Software - Timothy C. Lethbridge Carefully managed issues list Very-easy, easy, moderate, hard, very-hard Defect, enhancement, undergraduate project, graduate project Priority: Critical, Vhigh, High, Med, Low, Vlow Ownership of issue, but not code

Nov Quality Process for Research Software - Timothy C. Lethbridge Continuous integration Single master trunk for all work Server builds then posts results – Test result browser – –100% test pass rate maintained 95% of the time –100% test pass rate within an hour of a failure 99.9% of the time –Only two ‘backouts’ in the last year (failed tests that could not be quickly fixed)

Nov Quality Process for Research Software - Timothy C. Lethbridge Lean Live Documentation for Developers and End Users Code commenting is key: –But comments transfer into documentation –Auto-generated diagrams are a result of MDD – – User manual is generated: If someone doesn’t understand something they update the wiki – –Exploration of requirements done in issues and wikis –Developers log experiences and progress for all to see

Nov Quality Process for Research Software - Timothy C. Lethbridge Low Management Overhead As a professor, no time for much project management –About 2 hours a week direct interaction with students actively working on the software –I manage issues, set up policies, refine documents –Periodically I work on an issue Code sprint (20 hours) once a semester Code review of patches and commits –Focus on checking the tests –Delegation of inspection to others –Some refactoring

Nov Quality Process for Research Software - Timothy C. Lethbridge Marketing and Publication Not just journals and conferences We need users and feedback from users of our tools Live mirrors: Google Code, Github, FacebookFacebook, Google+, Twitter, lists, blogsGoogle+

Nov Quality Process for Research Software - Timothy C. Lethbridge Use of our software in teaching Several professors have taught software engineering concepts using our work –Introduction to software engineering –Advanced software design –Software engineering graduate course –Score project at ICSE –Others

Nov Quality Process for Research Software - Timothy C. Lethbridge Introducing students to Umple 1. Train in the use of the software 2. Development environment setupDevelopment environment setup 3. Coaching on process 4. Code sprint 5. Have them create several patches for easy to moderate problems in several architecture areas 6. Make them a committer (happens for most students)

Nov Quality Process for Research Software - Timothy C. Lethbridge Conclusions Make your academic software high quality by using –TDD –MDD –Continual intregration –Careful agile process It works! Benefits –You and your students get better at software engineering –You can do better research because your infrastructure is better

Nov Quality Process for Research Software - Timothy C. Lethbridge Questions? This talk is available at: Or Nov2013-Talk-RshSWNotBuggy.ppt