Research Data Management CODING

Size: px
Start display at page:

Download "Research Data Management CODING"

Transcription

1 CODING

2 Coding When writing software or analytical code it is important that others and your future self can understand what the code is doing. published 10 steps that they regard as the Best Practices for Scientific Computing and we agree. As scientists are never taught how to build software many are unaware of tools and practices that would allow them to write more reliable and maintainable code with less effort. We describe a set of best practices for scientific software development that have solid foundations in research and experience, and that improve scientists productivity and the reliability of their software.

3 1. Write programs for people, not computers A program should not require its readers to hold more than a handful of facts in memory at once. Names should be consistent, distinctive, and meaningful Code style and formatting should be consistent All aspects of software development should be broken down into tasks, roughly an hour long ( lines of code)

4 2. Automate repetitive tasks Rely on the computer to repeat tasks Save recent commands in a file for reuse this could be as simple as using MAKE. Use a build tool to automate your scientific workflows 3. Use the computer to record history Software tools should be used to track computational work automatically It is already possible to record the: Unique identifiers and version numbers for raw data records, programs and libraries Names and version numbers of programs and the values of parameters used to generate any given output

5 4. Make incremental changes Work in small steps with frequent feedback and course correction At each stage of this incomplete code, check that it is working correctly 5. Use version control Keeping alterations in successive versions means that data can be reverted and it can collaboratively developed. Use a standard version control system (VCS) Everything that has been created manually should be put in version control

6 6. Don t repeat yourself (or others) Programmers will use the DRY principal to avoid repeating analysing data, and rewriting code; Every piece of data must have a single authoritative representation in the system At small scales, code should be modularized rather than copied and pasted At large scales, re-use code instead of rewriting it

7 7. Plan for mistakes - they re inevitable Defensive programming - add assertions to programs to check their operation They ensure that if something goes wrong, the program halts immediately, which aids debugging and they are also executable documentation i.e. the explain the program as well as checking its behaviour Automated Testing - check to make sure that a single unit of code is returning correct results, or that the behaviour of a program hasn t changed Use an off-the-shelf unit testing library to initialize inputs, run tests, and report their results in a uniform way

8 7. Plan for mistakes (they re inevitable) Use a variety of oracles - tells a developer how a program should behave or what its output should be In research this includes analytical results, experimental results, and previous results from other tried and tested software. Turn bugs into test cases - write tests that trigger the bug and will prevent that bug from reappearing later Use a symbolic debugger, which allows you to pause a program, inspect the variable values, and move up and down the code to find the problem

9 8. Optimize software only after it works correctly In most cases, the most productive way of optimizing code is to get it working correctly, then identify areas that can be sped up. Use a profiler to identify bottlenecks in your code Write code in the highest-level language possible you can always shift to a lowlevel language (like C or Fortran) if the performance boost is needed 9. Document design and purpose, not mechanics refactor code instead of explaining how it works, i.e. rather than write a paragraph to explain a complex piece of code, reorganize it so that its self-explanatory embed the documentation for a piece of software in that software

10 10. Collaborate code reviews are the most cost-effective way of finding bugs in code use pair programming when bringing someone new up to speed and when tackling particularly tricky problems one developer writes the code which the other provides real-time feedback In larger teams of developers, use an issue tracking toll to maintain a list of tasks to be performed and bugs to be fixed

Bioinformatics for programmers

Bioinformatics for programmers Bioinformatics for programmers Scientific software development: best practices and approaches Konstantin Okonechnikov Max Planck Institute For Infection Biology Летняя школа биоинформатики Москва, 2013

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. Logging makes sense for testbench debug The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. SystemVerilog provides

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

Break It Before You Buy It!

Break It Before You Buy It! Break It Before You Buy It! Test Driven Development and Continuous Integration Chris Hartjes -- CodeMash 2011 -- @chartjes http://www.littlehart.net/atthekeyboard Huge Sports Nerd TL;DR The Problem Build

More information

Flowchart Techniques

Flowchart Techniques C H A P T E R 1 Flowchart Techniques 1.1 Programming Aids Programmers use different kinds of tools or aids which help them in developing programs faster and better. Such aids are studied in the following

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Ch. 10 Software Development. (Computer Programming)

Ch. 10 Software Development. (Computer Programming) Ch. 10 Software Development (Computer Programming) 1 Definitions Software or Program Instructions that tell the computer what to do Programmer Someone who writes computer programs 2 Instruction Set A vocabulary

More information

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com. ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.au Abstract Iterative development provides the fundamental structure that

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Kodo - Cross-platform Network Coding Software Library. Morten V. Pedersen - Aalborg University / Steinwurf ApS mvp@es.aau.dk

Kodo - Cross-platform Network Coding Software Library. Morten V. Pedersen - Aalborg University / Steinwurf ApS mvp@es.aau.dk Kodo - Cross-platform Network Coding Software Library Morten V. Pedersen - Aalborg University / Steinwurf ApS mvp@es.aau.dk Background Academia Network coding key enabler for efficient user cooperation

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

CMSC 435: Software Engineering Course overview. Topics covered today

CMSC 435: Software Engineering Course overview. Topics covered today CMSC 435: Software Engineering Course overview CMSC 435-1 Topics covered today Course requirements FAQs about software engineering Professional and ethical responsibility CMSC 435-2 Course Objectives To

More information

Software Development. Topic 1 The Software Development Process

Software Development. Topic 1 The Software Development Process Software Development Topic 1 The Software Development Process 1 The Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance 2 Analysis Stage An Iterative

More information

Writing in the Computer Science Major

Writing in the Computer Science Major Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

More information

Two Best Practices for Scientific Computing

Two Best Practices for Scientific Computing Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,

More information

Disaster Recovery Plan

Disaster Recovery Plan Disaster Recovery Plan Disasters that can cause hardware, software and data loss such as fire are inevitable. One can minimize the losses by formulating a plan to recover from such disasters and to keep

More information

Behaviourally Based Questions

Behaviourally Based Questions Behaviourally Based Questions Index 1 HOW TO WRITE BEHAVIOURALLY BASED QUESTIONS Page 2 2 SAMPLE BEHAVIOURAL QUESTIONS Page 3 3 SAMPLE BEHAVIOURALLY BASED QUESTIONS FROM RIGHT JOB, RIGHT PERSON! CAPABILITY

More information

<Insert Picture Here> What's New in NetBeans IDE 7.2

<Insert Picture Here> What's New in NetBeans IDE 7.2 Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

Basic Unix/Linux 1. Software Testing Interview Prep

Basic Unix/Linux 1. Software Testing Interview Prep Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

How To Program A Computer

How To Program A Computer Object Oriented Software Design Introduction Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore Sant Anna) OOSD September 23, 2010

More information

How To Develop Software

How To Develop Software Software Development Basics Dr. Axel Kohlmeyer Associate Dean for Scientific Computing College of Science and Technology Temple University, Philadelphia http://sites.google.com/site/akohlmey/ a.kohlmeyer@temple.edu

More information

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and software design and development. We will be presenting a

More information

Version Control Your Jenkins Jobs with Jenkins Job Builder

Version Control Your Jenkins Jobs with Jenkins Job Builder Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren wayne@puppetlabs.com Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from

More information

Engineering and Debugging an App

Engineering and Debugging an App Chapter 15 Engineering and Debugging an App HelloPurr, MoleMash, and the other apps covered in this book s early chapters are relatively small software projects and don t really require what people often

More information

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between

More information

The Missing Links in Back-Office Business Process Management

The Missing Links in Back-Office Business Process Management The Missing Links in Back-Office Business Process Management 2012 Sponsored by: 2011 DMG Consulting LLC -1- March 2011 Table of Contents The Back-Office Staff Optimization Opportunity... 1 You Cannot Manage

More information

Fall 2012 Q530. Programming for Cognitive Science

Fall 2012 Q530. Programming for Cognitive Science Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations

More information

Minimizing code defects to improve software quality and lower development costs.

Minimizing code defects to improve software quality and lower development costs. Development solutions White paper October 2008 Minimizing code defects to improve software quality and lower development costs. IBM Rational Software Analyzer and IBM Rational PurifyPlus software Kari

More information

Practical Problem Solving Dr. Chris Williams

Practical Problem Solving Dr. Chris Williams Practical Problem Solving Dr. Chris Williams Overcoming Depression A Five Areas Approach 2 Acknowledgement Practical Problem Solving is part of a longer self-help workbook called Overcoming Depression:

More information

Increase Software Development Productivity:

Increase Software Development Productivity: Increase Software Development Productivity: Equations for Efficiency By Adam Kolawa, Parasoft Co-Founder and CEO Why Productivity Matters In today s economy, software development is a great expense for

More information

Monitoring the team s performance

Monitoring the team s performance Monitoring the team s performance Why does your team need to be monitored? How can performance be monitored? You should ensure that you monitor only what is really important. In the two BS2 sessions Making

More information

Top 5 Mistakes Made with Inventory Management for Online Stores

Top 5 Mistakes Made with Inventory Management for Online Stores Top 5 Mistakes Made with Inventory Management for Online Stores For any product you sell, you have an inventory. And whether that inventory fills dozens of warehouses across the country, or is simply stacked

More information

As the old adage goes, Work smarter, not harder. These days, technical writers and Help authors face perpetual

As the old adage goes, Work smarter, not harder. These days, technical writers and Help authors face perpetual The True Single-Sourcing Solution for Microsoft Word Users By David Knopf, Knopf Online As the old adage goes, Work smarter, not harder. These days, technical writers and Help authors face perpetual pressure

More information

Programming in Access VBA

Programming in Access VBA PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010

More information

What is a process? So a good process must:

What is a process? So a good process must: PROCESS DESIGN BEST PRACTICES TABLE OF CONTENTS 1 What is a process? 2 The five Ws of process design 3 Standards are key 4 The how creating a model 5 How do you know when you have finished? 6 About ARIS

More information

Management Information System Prof. Biswajit Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur

Management Information System Prof. Biswajit Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur Management Information System Prof. Biswajit Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur Lecture - 02 Introduction Part II Welcome to all of you

More information

Verification and Validation of Software Components and Component Based Software Systems

Verification and Validation of Software Components and Component Based Software Systems Chapter 5 29 Verification and Validation of Software Components and Component Based Christina Wallin Industrial Information Technology Software Engineering Processes ABB Corporate Research christina.wallin@mdh.se

More information

Applies from 1 April 2007 Revised April 2008. Core Competence Framework Guidance booklet

Applies from 1 April 2007 Revised April 2008. Core Competence Framework Guidance booklet Applies from 1 April 2007 Revised April 2008 Core Competence Framework Guidance booklet - Core Competence Framework - Core Competence Framework Core Competence Framework Foreword Introduction to competences

More information

Jumplead Quickstart Guide

Jumplead Quickstart Guide Jumplead Quickstart Guide A simple guide to building a solid process for online lead generation. We re going to outline a process for generating leads. Let s go. 1. We know our customers are online. 2.

More information

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii

More information

Test Driven Development with Continuous Integration: A Literature Review

Test Driven Development with Continuous Integration: A Literature Review Test Driven Development with Continuous Integration: A Literature Review Sheikh Fahad Ahmad Deptt. of Computer Science & Engg. Mohd. Rizwan Beg Deptt. of Computer Science & Engg. Mohd. Haleem Deptt. of

More information

Tips for writing good use cases.

Tips for writing good use cases. Transforming software and systems delivery White paper May 2008 Tips for writing good use cases. James Heumann, Requirements Evangelist, IBM Rational Software Page 2 Contents 2 Introduction 2 Understanding

More information

11. Oracle Recovery Manager Overview and Configuration.

11. Oracle Recovery Manager Overview and Configuration. 11. Oracle Recovery Manager Overview and Configuration. Abstract: This lesson provides an overview of RMAN, including the capabilities and components of the RMAN tool. The RMAN utility attempts to move

More information

Patterns to Introduce Continuous Integration to Organizations

Patterns to Introduce Continuous Integration to Organizations Patterns to Introduce Continuous Integration to Organizations Kenichiro Ota Shift inc. Tokyo Japan oota_ken@hotmail.com kenichiro.ota@shiftinc.jp Hiroko Tamagawa Shift inc. Tokyo Japan hiroko.tamagawa@shiftinc.jp

More information

MYRIAD. Planning Content Types in SharePoint. People F Portals F Processes TECHNOLOGIES. Prepared by Alana Helbig

MYRIAD. Planning Content Types in SharePoint. People F Portals F Processes TECHNOLOGIES. Prepared by Alana Helbig MYRIAD TECHNOLOGIES Planning Content Types in SharePoint Prepared by Alana Helbig People F Portals F Processes Summary One of the most common problems in any organisation today relates to the management

More information

1 The Result-Oriented Management Style

1 The Result-Oriented Management Style 1 The Result-Oriented Management Style Manager: A Champion s Trainer The word Management is widely used. The origin of the word is probably French. Traditionally, a manager is le soigneur d un champion,

More information

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring

More information

How to Write a Successful PhD Dissertation Proposal

How to Write a Successful PhD Dissertation Proposal How to Write a Successful PhD Dissertation Proposal Before considering the "how", we should probably spend a few minutes on the "why." The obvious things certainly apply; i.e.: 1. to develop a roadmap

More information

Peer Review in Software Development: A Survey

Peer Review in Software Development: A Survey ISSN (Online): 2409-4285 www.ijcsse.org Page: 40-44 Peer Review in Software Development: A Survey Aylin GÜZEL 1, Özlem AKTAŞ 2 and Kökten Ulaş BİRANT 3 1, 2, 3 Dokuz Eylül University, Computer Engineering

More information

How to Improve Your Software Release Management Process A Real-time Case Study

How to Improve Your Software Release Management Process A Real-time Case Study How to Improve Your Software Release Management Process A Real-time Case Study Software projects take investment, support, development and a lot of hard work and dedication. Good release management practices

More information

Power Tools for Pivotal Tracker

Power Tools for Pivotal Tracker Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development

More information

Foreword by Martin Fowler *

Foreword by Martin Fowler * Foreword by Martin Fowler * In my early days in the software industry, one of the most awkward and tense moments of a software project was integration. Modules that worked individually were put together

More information

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving Next: Roots of Equations Up: Numerical Analysis for Chemical Previous: Contents Subsections Mathematical Modeling and Engineering Problem-Solving A Simple Mathematical Model Computers and Software The

More information

Manage the Digital and Mobile Customer Experience A Breakfast Briefing. For Web Analysts, Customer Insight Managers & Online Marketers www.scl.

Manage the Digital and Mobile Customer Experience A Breakfast Briefing. For Web Analysts, Customer Insight Managers & Online Marketers www.scl. Manage the Digital and Mobile Customer Experience A Breakfast Briefing For Web Analysts, Customer Insight Managers & Online Marketers www.scl.com The art of the possible SCL background Predicting, Understanding

More information

Database Development Best Practices. Database Development Best Practices. Copyright 2006 Quest Software

Database Development Best Practices. Database Development Best Practices. Copyright 2006 Quest Software Database Development Best Practices Database Development Best Practices Copyright 2006 Quest Software The Impact of Poor Quality and Performing Code End Users Write and compile Test and Debug SQL Optimization

More information

The Basics of Scrum An introduction to the framework

The Basics of Scrum An introduction to the framework The Basics of Scrum An introduction to the framework Introduction Scrum, the most widely practiced Agile process, has been successfully used in software development for the last 20 years. While Scrum has

More information

A Quick Overview of Software Engineering. Paul Klint

A Quick Overview of Software Engineering. Paul Klint A Quick Overview of Software Engineering Paul Klint g n i t o qu r o f s ie ch g o t l u o Ap me D pers so wspa ne 2 3 4 Software Engineering is about... Building large software systems Using state-of-the-art

More information

Related guides: 'Planning and Conducting a Dissertation Research Project'.

Related guides: 'Planning and Conducting a Dissertation Research Project'. Learning Enhancement Team Writing a Dissertation This Study Guide addresses the task of writing a dissertation. It aims to help you to feel confident in the construction of this extended piece of writing,

More information

Development at the Speed and Scale of Google. Ashish Kumar Engineering Tools

Development at the Speed and Scale of Google. Ashish Kumar Engineering Tools Development at the Speed and Scale of Google Ashish Kumar Engineering Tools The Challenge Speed and Scale of Google More than 5000 developers in more than 40 offices More than 2000 projects under active

More information

Technical Debt. Thomas Sundberg. Consultant, Developer Stockholm, Sweden Sigma Solutions AB

Technical Debt. Thomas Sundberg. Consultant, Developer Stockholm, Sweden Sigma Solutions AB Technical Debt Thomas Sundberg Consultant, Developer Stockholm, Sweden Sigma Solutions AB thomas.sundberg@sigma.se @thomassundberg http://thomassundberg.wordpress.com Technical Debt - Goal Get a metaphor

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages 15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning

More information

Chapter 9: Building Bigger Programs

Chapter 9: Building Bigger Programs Chapter 9: Building Bigger Programs How to Design Larger Programs Building something larger requires good software engineering. Design Top- down: Start from requirements, then identify the pieces to write,

More information

5 barriers to database source control and how you can get around them

5 barriers to database source control and how you can get around them WHITEPAPER DATABASE CHANGE MANAGEMENT 5 barriers to database source control and how you can get around them 91% of Fortune 100 companies use Red Gate Content Introduction We have backups of our databases,

More information

Higher Computing. Software Development. LO1 Software Development process

Higher Computing. Software Development. LO1 Software Development process Software Development LO1 Software Development process Ian Simpson Inverurie Academy 2006 Software Development The candidate must demonstrate knowledge and understanding, practical skills and problem solving

More information

Nova Software Quality Assurance Process

Nova Software Quality Assurance Process Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance

More information

Good Software. Lecture 6 GSL Peru 2014

Good Software. Lecture 6 GSL Peru 2014 Good Software Lecture 6 GSL Peru 2014 What is Good Software? Low cost Good performance Bug-free, efficient, meets its purpose Easy to code Easy to understand, modular Easy to use Clients are satisfied

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer

More information

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories XP & Scrum Beatrice Åkerblom beatrice@dsv.su.se extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or

More information

Plan-based Software Development

Plan-based Software Development Plan-based Software Development 2004-2005 Marco Scotto (Marco.Scotto@unibz.it) Development Models Introduction The Waterfall Development Model The V-Shaped Software Development Model The Incremental Software

More information

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

Lean Software Development and Kanban

Lean Software Development and Kanban 1 of 7 10.04.2013 21:30 Lean Software Development and Kanban Learning Objectives After completing this topic, you should be able to recognize the seven principles of lean software development identify

More information

Introducing InterSystems DeepSee

Introducing InterSystems DeepSee Embedded Real-time Business Intelligence. Discover the Treasures. Make Applications More Valuable with Embedded Real-time Business Intelligence You can enhance your transactional applications with features

More information

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form Student Name: Jane Doe Date: 9/19/2002 Project Title: Re-Engineer

More information

Developing for the App Store. (Legacy)

Developing for the App Store. (Legacy) Developing for the App Store (Legacy) Contents About the Application Development Process 5 At a Glance 5 Developing for Apple s Platforms Is a Mix of Administrative and Coding Tasks 5 Apps Published on

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Testing in a Mobile World

Testing in a Mobile World White Paper Testing in a Mobile World April 2014 Share this White Paper Contents Introduction 3 1. Testing in agile projects 4 2. Testing tools 6 3. Testing practices 10 4. Testing as a service 14 Conclusion

More information

The Software Industry and Software Engineering

The Software Industry and Software Engineering The Software Industry and Software Engineering Dror Feitelson Basic Seminar on Software Engineering Hebrew University 2009 What Software Did You Use Today? We are usually unaware of most software... What

More information

ENTERPRISEWIZARD WHITE PAPER

ENTERPRISEWIZARD WHITE PAPER ENTERPRISEWIZARD WHITE PAPER THE BENEFITS OF CHANGE MANAGEMENT E N T E R P R I S E W I Z A R D 460 Seaport Court Suite #200 Redwood City, CA 94063 888.727.2209 650.587.8615 sales@enterprisewizard.com www.enterprisewizard.com

More information

How To Improve Software Quality

How To Improve Software Quality Software Qualities Quality Assurance Maintainer Go Documentation Readable Ce Go Design Functionality Ease of use Ease of learning User Reliability Correctness Efficiency Low Cost Portability Increased

More information

Support Notes (Issue 1) September 2015. IGphones. Certificate in Digital Applications (DA105) Coding for the Web

Support Notes (Issue 1) September 2015. IGphones. Certificate in Digital Applications (DA105) Coding for the Web Support Notes (Issue 1) September 2015 Certificate in Digital Applications (DA105) Coding for the Web IGphones Introduction Before tackling the Summative Project Brief (SPB), students should have acquired

More information

Debugging A MotoHawk Application using the Application Monitor

Debugging A MotoHawk Application using the Application Monitor CONTROL SYSTEM SOLUTIONS Debugging A MotoHawk Application using the Application Monitor Author(s): New Eagle Consulting 3588 Plymouth Road, #274 Ann Arbor, MI 48105-2603 Phone: +1 (734) 929-4557 Ben Hoffman

More information

Use, Analysis, and Debug of SystemVerilog Assertions

Use, Analysis, and Debug of SystemVerilog Assertions Use, Analysis, and Debug of SystemVerilog Assertions Agenda Introduction Source Code Tracing Assertion Checking Analyzing and Debugging Waveform Active Annotation Property Result Table Standards: The Life

More information

Introduction to Java and Eclipse

Introduction to Java and Eclipse Algorithms and Data-Structures Exercise Week 0 Outline 1 Introduction Motivation The Example 2 Setting things up Setting command line parameters in Eclipse 3 Debugging Understanding stack traces Breakpoints

More information

INTRODUCTION TO BUSINESS INTELLIGENCE What to consider implementing a Data Warehouse and Business Intelligence

INTRODUCTION TO BUSINESS INTELLIGENCE What to consider implementing a Data Warehouse and Business Intelligence INTRODUCTION TO BUSINESS INTELLIGENCE What to consider implementing a Data Warehouse and Business Intelligence Summary: This note gives some overall high-level introduction to Business Intelligence and

More information

Scientific Software & User- Centered Design. Cmpt 479 Jessie Helfrich December 3, 2015

Scientific Software & User- Centered Design. Cmpt 479 Jessie Helfrich December 3, 2015 Scientific Software & User- Centered Design Cmpt 479 Jessie Helfrich December 3, 2015 Context Experience: - Software developer at the Canadian Light Source. Problem: - Synchrotron facilities use software

More information

Quality Assurance Plan

Quality Assurance Plan CloudSizzle : Quality Assurance Plan Quality Assurance Plan General info Changelog 1. Introduction 2. Quality goals and risks 3. Quality Assurance practices 3.1 Testing levels 3.2 Testing - 3.2.1 Test

More information

Test Driven Development Method in Software Development Process

Test Driven Development Method in Software Development Process Test Driven Development Method in Software Development Process Denis Duka, Lovre Hribar Ericsson Nikola Tesla Research & Development Center Split, Croatia denis.duka@ericsson.com; lovre.hribar@ericsson.com

More information

Writing The Business Case for Automated Software Testing and Test Management Tools

Writing The Business Case for Automated Software Testing and Test Management Tools Writing The Business Case for Automated Software Testing and Test Management Tools How to successfully research, plan and present a convincing business case that will justify the budget and resources you

More information

What makes a good process?

What makes a good process? Rob Davis Everyone wants a good process. Our businesses would be more profitable if we had them. But do we know what a good process is? Would we recognized one if we saw it? And how do we ensure we can

More information

HOW SITEIMPROVE HELPS During A Website Redesign

HOW SITEIMPROVE HELPS During A Website Redesign HOW SITEIMPROVE HELPS During A Website Redesign WEB GUIDE Whether it s part of a larger rebranding process, the old website simply wasn t achieving the goals set out by the business, or it just needed

More information

Monitoring, Tracing, Debugging (Under Construction)

Monitoring, Tracing, Debugging (Under Construction) Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.

More information

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1 COMP209 Object Oriented Programming System Design Mark Hall Introduction So far we ve looked at techniques that aid in designing quality classes To implement a software system successfully requires planning,

More information

Extreme Programming and Embedded Software Development

Extreme Programming and Embedded Software Development Extreme Programming and Embedded Software Development By James Grenning Every time I do a project, it seems we don t get the hardware until late in the project. This limits the progress the team can make.

More information

Continuous integration for databases using Redgate tools

Continuous integration for databases using Redgate tools Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for

More information