Why don’t we practice what we teach? Andre Oboler, David McG. Squire and Kevin B. Korb School of Computer Science and Software Engineering, Monash University,

Slides:



Advertisements
Similar presentations
Digital inclusion – a CS perspective Alex Poulovassilis ESRC TLRP-TEL Inclusion and Impact conference, June 2010.
Advertisements

EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
BUSINESS DRIVEN TECHNOLOGY
Transforming Organizations
© 2014 Minitab, Inc. Careers in Statistical Software Cheryl Pammer Minitab Inc.
Gorilla Systems Engineering versus Guerilla Systems Engineering Keith A. Taggart, PhD James Willis Steve Dam, PhD Presented to the INCOSE SE DC Meeting,
4. Flow-Time Analysis Flow Time 3-Flow Time Reduction Levers Based on the book: Managing Business Process Flows.
F21DF1 : Databases & Information SystemsLachlan M. MacKinnon & Phil Trinder Introduction to Information Systems Databases & Information Systems Lachlan.
CSE 331 wrapup CSE 331 University of Washington. CSE 331 goals Enable students to manage complexity ensure correctness write modest programs.
Chapter 2: Planning. Planning steps Establishing project team Defining system requirements Performing feasibility analysis Obtaining support for the HRMS.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Types of Requirements  Functional Requirements  Descriptions of actions or processes that create or update information.  Outlines of reports or on-line.
Part 2: Requirements Days 7, 9, 11, 13 Chapter 2: How to Gather Requirements: Some Techniques to Use Chapter 3: Finding Out about the Users and the Domain.
Examining the use of Software Engineering by Computer Science Researchers Andre Oboler School of Computer Science and Software Engineering, Monash University,
Why don’t we practice what we teach? Andre Oboler, David McG. Squire and Kevin B. Korb School of Computer Science and Software Engineering, Monash University,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
CHAPTER 19 Building Software.
Computer Systems & Architecture Lesson Software Product Lines.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
Unit 2: Managing the development of self and others Life Science and Chemical Science Professionals Higher Apprenticeships Unit 2 Managing the development.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
The Software Development Process Chapter 2 Best Practices.
Slide 1 D2.TCS.CL5.04. Subject Elements This unit comprises five Elements: 1.Define the need for tourism product research 2.Develop the research to be.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
PAPER PRESENTATION: EMPIRICAL ASSESSMENT OF MDE IN INDUSTRY Erik Wang CAS 703.
Industry SDLCs and Business Climate. Justin Kalicharan Credentials Director and Senior Technology Officer Over 14 years of coding experience in various.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Integrating Usability Engineering and Agile Software Development: A Literature Review 陳振炎教授 楊哲豪
University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software Development Processes.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1 Technical & Business Writing (ENG-315) Muhammad Bilal Bashir UIIT, Rawalpindi.
Systems Analysis and Design
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi and Reidar Conradi Dept. Computer and.
Systems Life Cycle A2 Module Heathcote Ch.38.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
The Traditional System Development Life Cycle There are a number of important steps in the creation of a system, regardless of which approach you use.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
One Step at a Time: Presentation 8 DISCUSSION SKILLS Introduction Initial Screen Skills Checklist Classroom Intervention Lesson Planning Teaching Method.
Chapter 4 Review Chad Hagstrom CS 310 Spring 2008.
By Godwin Alemoh. What is usability testing Usability testing: is the process of carrying out experiments to find out specific information about a design.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
44222: Information Systems Development
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
The information systems lifecycle Far more boring than you ever dreamed possible!
Software Design and Development Development Methodoligies Computing Science.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
Careers in Statistical Software
Engineering Activities In Software Development
Transforming Organizations
Object oriented system development life cycle
The Prototyping Paradigm
Computer Science Life Cycle Models.
Software Development Process
An Overview of Software Processes
Unit 6: Application Development
Rapid software development
SDLC (Software Development Life Cycle)
System Analysis and Design: System Analysis Approaches
Logical Architecture & UML Package Diagrams
Presentation transcript:

Why don’t we practice what we teach? Andre Oboler, David McG. Squire and Kevin B. Korb School of Computer Science and Software Engineering, Monash University, Melbourne, Australia Engineering Software for Computer Science Research in Academia

Outline 1.“Computer Science Research” and “Software Engineering” –Is this research relevant to me? 2.Do researchers use software engineering? –Current practice –Impact of current practice 3.Getting the right mix –RAISER / RESET a new SDLC to support the creation and development of research software.

Use SE in CS Research? What is “Computer Science”? What is “Research Software”? What is “Software Engineering”? Is Software Engineering used when creating Research Software in Computer Science (or similar) university departments?

Approach Triangulation of: –statistical analysis of survey results –Interviews and discussion with experts –observations from case studies These methods investigated the use, costs and benefits of using Software Engineering in Computer Science Research

Past work no prior work on the costs/benefits of software engineering for research software This trend was started by Royce (1970) when he suggested that small projects used only by the developer need only use a 2 step analysis / coding approach (rather than his waterfall SDLC) This view that research is too small to warrant software engineering is still prevalent. Research is still approached this way.

Application of SDLCs in research Results

Problems with a lack of Software Engineering A lack leads to a waste of new research students’ time Follow on research is harder to achieve (some valuable research may be shelved) Authenticity of results is harder to verify Shortens the useful life of the project Shorter projects have fewer benefits

Why don’t we practice what we teach?

The needs of research and researcher are different –Documentation: Main work is by current researchers Main benefit is for future researchers –Design / Code quality: Main benefit is for future spin off research Time pressures mean getting publications is more important Because research has different needs to industry

Why Software Engineering is not used Reason Percent that agree with this reason Never thought about it14% Don't know about them11% Cost of learning them is too high17% Not appropriate for my work 83% Cost of use is higher than pay off 46% Organisational Policy against spending time on them 3%

Considerations for an SDLC to meets the needs of research

“A system built as part of a Ph.D. project is intended to prove feasibility, and it would almost always be a mistake to spend the time and effort during initial development to build it to product-quality standards” (Brooks, 2002).

“The primary aim [of research] is to get a flaky prototype working sufficiently to get a few statistics out. There is absolutely zero [incentive] for producing a robust, flexible, extendable piece of software” (Allison, 2002).

“The major problem is that research projects tend to be opportunistic rather than planned” (Waite, 2002).

“The implication is that any SE approach for research software would have to be agile and evolutionary in nature” (Pressman, 2002).

On User Documentation for the CDMS Case Study “We're not sure how this will happen. We were sort of hoping it would happen by magic or be delivered by a stork” (Allison, 2002).

The RAISER / RESET idea Separate research activities from stabilization Limit the negative impact during research phases “Clean” up code so it is ready for the next researcher to continue working on While many researchers do not use software engineering, those that do use it predict they will use more in the future, this is potentially as harmful as the current lack of application.

The SDLC Model

RAISER (for Research) Reactive Assisted Information Science Enabled Research Minimum overhead, maximum benefit now High level design –before coding Use header blocks Configuration Management Paired Programming –with other researchers

RESET (between Research) Research Enabled Software Engineering Techniques Clean up and restructure for later Design and Code reviews Restructure for: –improved modularity –ease of reuse Review API / User interface – Improve and document Create design documents Record current and future functionality

Implementation The in-house software development lab

Questions? NB: Future work will be undertaken in this area over the next three years, feedback is most welcome!