Oracle Corporation OSCON 2012
|
|
- Louise Hampton
- 5 years ago
- Views:
Transcription
1 Oracle Corporation OSCON 2012
2 Reducing Technical Debt in OpenJDK The Legacy and the Burden Stuart W. Marks Oracle JDK Core Libraries Group Oracle Corporation OSCON 2012
3 Let s Look At Some Code /* * Given several Strings, return the Strings * whose lengths are even. */ Vector evenlengths(vector strings) { Vector result = new Vector(); for (Enumeration e = strings.elements(); e.hasmoreelements(); ) { String s = (String)e.nextElement(); if (s.length() & 1 == 0) result.addelement(s); } return result; } Oracle Corporation OSCON 2012
4 Rewrite Using Modern Java /* * Given several Strings, return the Strings * whose lengths are even. */ List<String> evenlengths(list<string> strings) { List<String> result = new ArrayList<>(); for (String s : strings) { if (s.length() & 1 == 0) result.add(s); } return result; } Oracle Corporation OSCON 2012
5 Technical Debt Something you did (or failed to do) in the past that imposes present and future costs Increased difficulty of bugfixes/enhancements Reduced quality, greater risks of making changes Costs are like paying interest on a debt Canonical example: Take a shortcut now in order to ship sooner Clean up or fix it after release Typical example: Little messes build up inexorably Oracle Corporation OSCON 2012
6 Signs and Symptoms of Technical Debt duplicated code quick-n-dirty TODO messy makefiles balky build system unreliable tests we don t have time to do it right obsolescent code answering a question raises two new ones FIXME we ll clean it up later big bug backlog this is loathsome XXX Oracle Corporation OSCON 2012
7 Is Obsolescent Code Really Technical Debt? Yes, it really does slow us down. Was Vector used intentionally instead of ArrayList? for example, for thread safety or was the code written before ArrayList existed? Old APIs are unfamiliar, verbose, noisy Use of raw types provides less information (content type of a collection) calls into question the downcast s safety covers up atrocities (type-unsafe heterogenous collections) Oracle Corporation OSCON 2012
8 Is It Worth Modernizing the Code? No, it s not worth it. If it ain t broke, don t fix it Code behaves correctly as written Not causing test failures Not causing defects reported by customers Changes risk breaking something Opportunity cost (vs features, fixing actual bugs) Oracle Corporation OSCON 2012
9 Is It Worth Modernizing the Code? Yes, maintainability is often neglected. Bugfixing and feature work generally makes code less maintainable At some point enough debt may accumulate that feature work and bugfixing grinds to a halt Modernizing code prepares for future evolution OpenJDK ought to be a good example of Java programming Theoretically, cleanup should occur as work is done In practice, Oracle Corporation OSCON 2012
10 Is It Worth Modernizing the Code? Yes. Code modernization has provided actual benefits Coinification provided language feedback in JDK 7 Improved code quality & maintainability Found & fixed actual bugs, including a security vulnerability Potential for better results from static analysis tools Risks are low Choose safe cleanup work Warnings cleanup introduced a couple very minor bugs Follow usual review and testing procedures Oracle Corporation OSCON 2012
11 OpenJDK Modernization, Recent History JDK7: Coinification Update JDK code to use JDK 7 Project Coin features diamond multi-catch with precise rethrow try-with-resources Not comprehensive, mainly proof-of-concept Latent bugs found & fixed by try-with-resources refactoring JDK8: Java Warnings Cleanup (in progress) Oracle Corporation OSCON 2012
12 Warnings History Java 5 (2004) added generics Java previously had no warnings Unchecked/unsafe operations generated mandatory warnings Note: Warning.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. Intended as code migration aid Most Java APIs updated to use generics JDK implementation to be updated later Java 7 (2011) javac greatly expanded lint warnings Oracle Corporation OSCON 2012
13 Warnings Example public class Warning { void m() { List list = new ArrayList(); list.add("duke"); } } $ javac Warning.java Note: Warning.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. $ javac Xlint:all Warning.java Warning.java:6: warning: [unchecked] unchecked call to add(e) as a member of the raw type java.util.list list.add("duke"); ^ 1 warning Oracle Corporation OSCON 2012
14 Warnings Cleanup Summer Intern 2011 (Sasha Boulgakov) Analyzed and cleaned up warnings Initial javac warnings in jdk subrepo: 13,500 See next slide, breakdown by warnings type Additional Cleanup Efforts Warnings Cleanup Day, Dec 2011 London Java Community s Warnings Hack Days Current warnings count: 7, Oracle Corporation OSCON 2012
15 Warnings Breakdown by Type rawtypes) 6284) 46.3%) unchecked) 3389) 25.0%) depreca:o n) 1320) 9.7%) serial) 1067) 7.9%) cast) 757) 5.6%) sta:c) 502) 3.7%) fallthrough) 150) 1.1%) other) 104) 0.8%)!"#$%&'() *+,-',.'/) /'&!',"01+) ('!2"3),"($) ($"0,) 4"33$-!1*5-) 1$-'!) Oracle Corporation OSCON 2012
16 rawtypes + unchecked + deprecation = 81% Oracle Corporation OSCON 2012
17 The vast majority of OpenJDK s javac warning messages come not from actions that have added technical debt, but instead from inaction, where unchanging code is slowly obsoleted by surrounding changes in the platform Oracle Corporation OSCON 2012
18 The Legacy OpenJDK, like most projects, has technical debt It has its fair share Unpaid debt incurred intentionally Unpaid debt from messes, quick fixes, etc. OpenJDK has technical debt from platform evolution Language, library APIs, and compiler have evolved significantly Old, 1990s era code is obsolescent and has turned into debt Oracle Corporation OSCON 2012
19 The Burden Long-term maintainability of OpenJDK Need to keep modernizing the code base Invest in future maintenance and evolution Pay down technical debt (or at least keep it stable) OpenJDK is a going concern We can t default on our technical debt Oracle Corporation OSCON 2012
20 Future Work Continue modernization incrementally Warnings cleanup (mostly generics) Java 7 features: diamond, try-with-resources, switch over string Enhanced for-loop Vector, Hashtable, StringBuffer Broad collaboration within community on this effort But wait... what about Java 8 and Lambda? History doesn t repeat itself, but it rhymes Oracle Corporation OSCON 2012
21 Rewrite Using Modern Java /* * Given several Strings, return the Strings * whose lengths are even. */ List<String> evenlengths(list<string> strings) { List<String> result = new ArrayList<>(); for (String s : strings) { if (s.length() & 1 == 0) result.add(s); } return result; } Oracle Corporation OSCON 2012
22 Rewrite Using Postmodern Java (Lambda) /* * Given several Strings, return the Strings * whose lengths are even. */ List<String> evenlengths(list<string> strings) { return strings.filter(s -> s.length() & 1 == 0).into(new ArrayList<>()); } PRELIMINARY SUBJECT TO CHANGE Oracle Corporation OSCON 2012
23 References Technical Debt Martin Fowler: Steve McConnell: Getting Involved OpenJDK AdoptOpenJDK Oracle Corporation OSCON 2012
24 The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle Oracle Oracle Corporation OSCON 2012
25 Oracle Corporation OSCON 2012
26 Oracle Corporation OSCON 2012
<Insert Picture Here> JSR-335 Update for JCP EC Meeting, January 2012
JSR-335 Update for JCP EC Meeting, January 2012 Alex Buckley Oracle Corporation The following is intended to outline our general product direction. It is intended for information
More informationOpenJDK Adoption Group
OpenJDK Adoption Group Dalibor Topić OpenJDK Adoption Group Lead Principal Product Manager Java Platform Group @ Oracle June 13th, 2017 @ JCP EC Safe Harbor Statement The following is intended to outline
More informationReengineering II. Transforming the System
Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have
More informationRewrite or Refactor. When to declare technical bankruptcy. Laura Thomson OSCON - July 22,
Rewrite or Refactor When to declare technical bankruptcy Laura Thomson (laura@mozilla.com) OSCON - July 22, 2010 1 Technical debt Shipping first time code is like going into debt. A little debt speeds
More informationFuture of Java. Post-JDK 9 Candidate Features. Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017
Future of Java Post-JDK 9 Candidate Features Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017 Safe Harbor Statement The following is intended to outline our general product
More informationJava 9: Tips on MigraDon and Upgradability
Java 9: Tips on MigraDon and Upgradability Bernard Traversat Vice President of Development Java SE PlaJorm Oracle November, 2017 Copyright 2017, Oracle and/or its affiliates. All rights reserved. ConfidenDal
More informationOracle Corporation
1 2011 Oracle Corporation Making heads and tails of Project Coin, Small language changes in JDK 7 Joseph D. Darcy Presenting with LOGO 2 2011 Oracle Corporation Project Coin is a suite of language and
More informationThomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 Managed by UT-Battelle for the Department of Energy
Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 XAL Loose Timeline at SNS 2012 Software Maintenance Neutron Production Operations Software Development Intensity Commissioning Machine Study
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Jump-Starting Lambda Stuart Marks @stuartmarks Mike Duigou @mjduigou Oracle JDK Core Libraries Team 2 What is Lambda? Essentially an anonymous function allows one to treat code as data provides parameterization
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationContinuous Integration. Johannes Seitz
Continuous Integration Johannes Seitz - @Ookami86 What is Continuous Integration? That Jenkins job may be necessary, but not sufficient. Ways of working in a team Integrating often Integrating in a Big
More informationWhat are Generics? e.g. Generics, Generic Programming, Generic Types, Generic Methods
What are Generics? e.g. Generics, Generic Programming, Generic Types, Generic Methods 6 Defining the idea Behind Java Generics Data Types are now used as TypeParameters 7 Defining the idea Behind Java
More informationChapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change
Chapter01.fm Page 1 Monday, August 23, 2004 1:52 PM Part I The Mechanics of Change The Mechanics of Change Chapter01.fm Page 2 Monday, August 23, 2004 1:52 PM Chapter01.fm Page 3 Monday, August 23, 2004
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More information<Insert Picture Here> OpenJDK - When And How To Contribute To The Java SE Reference Implementation OSCON 2011, July 26th, 2011
OpenJDK - When And How To Contribute To The Java SE Reference Implementation OSCON 2011, July 26th, 2011 Dalibor Topić Java F/OSS Ambassador The following is intended to outline our
More informationRefactoring Without Ropes
Refactoring Without Ropes Roger Orr OR/2 Limited The term 'refactoring' has become popular in recent years; but how do we do it safely in actual practice? Refactoring... Improving the design of existing
More informationJDK 7 (2011.7) knight76.tistory.com Knight76 at gmail.com
JDK 7 (2011.7) JDK 7 #2 Project Coin knight76.tistory.com Knight76 at gmail.com 1 Project Coin 2 Project Leader Joseph D. Darcy( ) IDEA 2 27, 2009 3 30, 2009 (open call) 70 jdk 7, Language, The Java programming-language
More informationCS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L
CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction At this point, you are ready to beginning programming at a lower level How do you actually write your
More information9 th CA 2E/CA Plex Worldwide Developer Conference 1
1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best
More informationAdministrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal
Administrivia Software Process CS169 Lecture 2 Added 20 more so far Will limit enrollment to ~65 students Only one TA so far Start thinking about project proposal Bonus points for proposals that will be
More informationJDK 9, 变化与未来. Xuelei Fan
2016-4-21 JDK 9, 变化与未来 Xuelei Fan Java 20-Year Topics JDK 9 OpenJDK Community JDK 9 Schedule 2016/05/26 Feature Complete 2016/08/11 All Tests Run 2016/09/01 Rampdown Start 2016/10/20 Zero Bug Bounce 2016/12/01
More informationUnderstading Refactorings
Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations
More informationJava SE 8: Lambda Expressions And The Stream API
Java SE 8: Lambda Expressions And The Stream API Simon Ritter Head of Java Technology Evangelism Java Product Management Java Day Tokyo 2015 April 8, 2015 Safe Harbor Statement The following is intended
More informationCSE 326: Data Structures. Section notes, 4/9/2009
CSE 326: Data Structures Java Generi ics & JUnit 4 Section notes, 4/9/2009 slides originally by Hal Perkins Type-Safe Containers Idea a class or interface can have a type parameter: public class Bag
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640
More information5/23/2015. Core Java Syllabus. VikRam ShaRma
5/23/2015 Core Java Syllabus VikRam ShaRma Basic Concepts of Core Java 1 Introduction to Java 1.1 Need of java i.e. History 1.2 What is java? 1.3 Java Buzzwords 1.4 JDK JRE JVM JIT - Java Compiler 1.5
More informationJava Collections Framework
Java Collections Framework Introduction In this article from my free Java 8 course, you will be given a high-level introduction of the Java Collections Framework (JCF). The term Collection has several
More informationUpgrading Your Geant4 Release
Upgrading Your Geant4 Release Joseph Perl, SLAC 1 Contents Major versus Minor releases What to look for in the release notes How to upgrade 2 Major versus Minor Releases Geant4 release numbers are of the
More informationLiving and Working with Aging Software. Ralph Johnson. University of Illinois at Urbana-Champaign
Living and Working with Aging Software Ralph Johnson University of Illinois at Urbana-Champaign rjohnson@illinois.edu Old software gets brittle n n Hard to change Hard to understand Software should be
More informationCrash Course in Modernization. A whitepaper from mrc
Crash Course in Modernization A whitepaper from mrc Introduction Modernization is a confusing subject for one main reason: It isn t the same across the board. Different vendors sell different forms of
More informationOracle WebLogic Portal O R A C L E S T A T EM EN T O F D I R E C T IO N F E B R U A R Y 2016
Oracle WebLogic Portal O R A C L E S T A T EM EN T O F D I R E C T IO N F E B R U A R Y 2016 Disclaimer The following is intended to outline our general product direction. It is intended for information
More informationTesting and Migration
Testing and Migration Tudor Gîrba www.tudorgirba.com Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new
More informationWednesday, May 30, 12
JDK 7 Updates in OpenJDK LinuxTag, May 23rd 2012 Dalibor Topić (@robilad) Principal Product Manager The following is intended to outline our general product direction. It is intended
More informationSome examples and/or figures were borrowed (with permission) from slides prepared by Prof. H. Roumani. The Collection Framework
Some examples and/or figures were borrowed (with permission) from slides prepared by Prof. H. Roumani The Collection Framework Collection: an aggregate that can hold a varying number of elements Interface:
More informationSoftware Evolution from the Field: An Experience Report from the Squeak Maintainers
Software Evolution from the Field: An Experience Report from the Squeak Maintainers Marcus Denker SCG University of Berne Switzerland Stéphane Ducasse LISTIC Université de Savoie France Roadmap > A little
More informationBy default, optional warnings are disabled, so any legacy code that doesn't attempt to control the warnings will work unchanged.
SYNOPSIS use warnings; no warnings; use warnings "all"; no warnings "all"; use warnings::register; if (warnings::enabled()) warnings::warn("some warning"); if (warnings::enabled("void")) warnings::warn("void",
More informationXP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.
XP: Planning, coding and testing Annika Silvervarg Planning XP planning addresses two key questions in software development: predicting what will be accomplished by the due date determining what to do
More information6.170 Laboratory in Software Engineering Eclipse Reference for 6.170
6.170 Laboratory in Software Engineering Eclipse Reference for 6.170 Contents: CVS in Eclipse o Setting up CVS in Your Environment o Checkout the Problem Set from CVS o How Do I Add a File to CVS? o Committing
More informationCall for Discussion: Project Skara Investigating source code management options for the JDK sources
Call for Discussion: Project Skara Investigating source code management options for the JDK sources Joseph D. Darcy (darcy, @jddarcy) and Erik Duveblad (ehelin) Java Platform Group, Oracle Committers Workshop
More informationCHAPTER 1 JAVA 7 FEATURES
CHAPTER 1 JAVA 7 FEATURES OBJECTIVES After completing Java 7 Features, you will be able to: Identify and use new features of the Java language available as of the 7 th edition: Binary literals and underscore
More informationAdvanced Modular Development CON6821
Advanced Modular Development CON6821 Mark Reinhold, Alex Buckley, Alan Bateman Java Platform Group, Oracle October 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3
More informationCopyright 2014, Oracle and/or its affiliates. All rights reserved.
1 Introduction to Lambda Stuart W. Marks Principal Member of Technical Staff Oracle JDK Core Libraries Team Twitter: @stuartmarks What is a Lambda? A lambda is a function. A function is a computation that
More informationinterface MyAnno interface str( ) val( )
Unit 4 Annotations: basics of annotation-the Annotated element Interface. Using Default Values, Marker Annotations. Single-Member Annotations. The Built-In Annotations-Some Restrictions. 1 annotation Since
More informationObjectives: On completion of this project the student should be able to:
ENGI-0655/5232 Software Construction and Evolution Project 1 Reverse Engineering Refactoring & Object Oriented Design Due date November 10, 2009-4:00 pm 1. Aims The aim of this project is to give you more
More informationCredit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture
Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken
More informationAdvanced Modular Development
Advanced Modular Development Alan Bateman Alex Buckley Java Platform Group, Oracle September 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3 4 5 Prepare for JDK 9
More informationAhead of Time (AOT) Compilation
Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement
More informationJava 8 Programming for OO Experienced Developers
www.peaklearningllc.com Java 8 Programming for OO Experienced Developers (5 Days) This course is geared for developers who have prior working knowledge of object-oriented programming languages such as
More informationCS 307: Software Engineering. Lecture 10: Software Design and Architecture
CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code
More informationThe Legacy Bridge Problem. Douglas Lyon and Chris Huntley
The Legacy Bridge Problem by Douglas Lyon and Chris Huntley Abstract We present a way to automate the reuse of legacy systems without multiple-inheritance, copying source code, accessing existing code
More informationLINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED
LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED TOM MCREYNOLDS, VLAD BUZOV AUTOMOTIVE SOFTWARE OCTOBER 15TH, 2013 Why kernel upgrades : the problem Linux Kernel cadence doesn t match Automotive s
More informationSoftware Evolution. Dr. James A. Bednar. With material from
Software Evolution Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar With material from Massimo Felici, Conrad Hughes, and Perdita Stevens SAPM Spring 2012: Evolution 1 Software
More informationService Lifecycle and Versioning SOA 2/2559
Service Lifecycle and Versioning SOA 2/2559 Services Under Development Design Produces the specification of the service interface Contracts Implementation Integration Bringing into production 2 Services
More informationWhat's New in MySQL 5.7?
What's New in MySQL 5.7? Norvald H. Ryeng Software Engineer norvald.ryeng@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information
More information<Insert Picture Here> Forms Strategies: Modernizing Your Oracle Forms Investment
Forms Strategies: Modernizing Your Oracle Forms Investment Desmond Chan Solution Architect Manager Oracle Consulting Services Agenda Oracle Forms Strategy Forms Modernisation Strategies
More informationThe Heads and Tails of Project Coin
The Heads and Tails of Project Coin Alex Buckley Specification Lead, Java Language & VM 1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. The following is intended to outline our general
More informationModules and Services. Alex Buckley Java Platform Group, Oracle October Copyright 2017, Oracle and/or its affiliates. All rights reserved.
Modules and Services Alex Buckley Java Platform Group, Oracle October 2017 Copyright 2017, Oracle and/or its affiliates. All rights reserved. I. Introduction to Services II. Using Services for Optional
More informationJava ME Directions. JCP F2F - Austin. Florian Tournier - Oracle May 9, Copyright 2017, Oracle and/or its affiliates. All rights reserved.
Java ME Directions JCP F2F - Austin Florian Tournier - Oracle May 9, 2017 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes
More informationFast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview
Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3 Course Code: GK1965 Overview Java 8 Essentials for OO Developers is a three-day, fast-paced, quick start to Java 8 training
More informationA Visual Guide to Automated MVC Reengineering
D a t a b o r o u g h A Visual Guide to Automated MVC Reengineering Steve Kilner This guide has the following sections: 1. Three Steps To New and Improved Systems 2. Why Reengineer? 3. Bad Practices of
More informationMaintaining accessibility through testing?
ᅠ Maintaining accessibility through testing? Samuel Thibault Slides & stuff on http://brl.thefreecat.org/ http://hypra.fr/ 1 Gnuplot Color blindness: 8% male, 0.5% female 4 Gnuplot 5!! Color blindness:
More informationD#007 - Development Process Handbook
Last Updated: 04/30/2018 Status: Live D#007 - Development Process Handbook Purpose: Clarify how we handle an incoming or internal request for a feature or enhancement all the way through shipping the feature
More informationStory Writing Basics
Jimi Fosdick, PMP, CST Agile Process Mentor jfosdick@collab.net 503.248.0800 Story Writing Basics [A user story is] a promise for a future conversation -Alistair Cockburn 1 Welcome Welcome to our ScrumCore
More informationEFFECTIVE CODE REVIEW DAVE LIDDAMENT
EFFECTIVE CODE REVIEW DAVE LIDDAMENT Dave Liddament @daveliddament Lamp Bristol 15+ years software development (PHP, Java, Python, C) Organise PHP-SW user group and Bristol PHP Training ??
More informationJava Training JAVA. Introduction of Java
Java Training Building or rewriting a system completely in Java means starting from the scratch. We engage in the seamless and stable operations of Java technology to deliver innovative and functional
More informationNetCDF and Scientific Data Durability. Russ Rew, UCAR Unidata ESIP Federation Summer Meeting
NetCDF and Scientific Data Durability Russ Rew, UCAR Unidata ESIP Federation Summer Meeting 2009-07-08 For preserving data, is format obsolescence a non-issue? Why do formats (and their access software)
More informationJDK 9/10/11 and Garbage Collection
JDK 9/10/11 and Garbage Collection Thomas Schatzl Senior Member of Technical Staf Oracle JVM Team May, 2018 thomas.schatzl@oracle.com Copyright 2017, Oracle and/or its afliates. All rights reserved. 1
More information1Copyright 2012, Oracle and/or its affiliates. All rights reserved.
1Copyright 2012, Oracle and/or its affiliates. All rights reserved. Patterns of SaaS: Database refactoring Leonid Igolnik, Marcin Burlinski Insert Picture Here The following is intended to outline our
More informationSECTION 2: Loop Reasoning & HW3 Setup
SECTION 2: Loop Reasoning & HW3 Setup cse331-staff@cs.washington.edu Review: Reasoning about loops What is a loop invariant? An assertion that always holds at the top of a loop Why do we need invariants?
More informationCloud Ready: Introduction to Distributed Lambdas
Cloud Ready: Introduction to Distributed Lambdas Brian Oliver Architect Java Specification Lead Oracle Cloud Engineering April 2017 Email: brian.oliver@oracle.com Twitter: @pinocchiocode Safe Harbor Statement
More informationA Third Look At Java. Chapter Seventeen Modern Programming Languages, 2nd ed. 1
A Third Look At Java Chapter Seventeen Modern Programming Languages, 2nd ed. 1 A Little Demo public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]); int j = Integer.parseInt(args[1]);
More informationDavid Peake Product Manager Oracle Application Express. October Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Application Express 5.0 Page Designer David Peake Product Manager Oracle Application Express October 2013 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. The following is intended
More informationEnhanced Stuart Marks aka Dr Deprecator JDK Core Libraries Java PlaJorm Group, Oracle
Enhanced Depreca@on Stuart Marks aka Dr Deprecator JDK Core Libraries Java PlaJorm Group, Oracle Copyright 2016, Oracle and/or its affiliates. All rights reserved. Enhanced Depreca@on Concepts & History
More informationMock Objects and the Mockito Testing Framework Carl Veazey CSCI Friday, March 23, 12
Mock Objects and the Mockito Testing Framework Carl Veazey CSCI 5828 Introduction Mock objects are a powerful testing pattern for verifying the behavior and interactions of systems. This presentation aims
More informationEclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab
Eclipse and Java 8 Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 New Java language features Eclipse features for Java 8 (demo) Behind the scenes
More informationLanguage alone won t pay your bills. Alan Franzoni - EP 2012 twitter: franzeur website:
Language alone won t pay your bills Alan Franzoni - EP 2012 twitter: franzeur website: www.franzoni.eu What s this about? What s this about? Original idea: Why Python sucks What s this about? Original
More informationRefactoring. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Eivind Nordby
Refactoring Faculty of Economic Sciences, Communication and IT 2011-09-21 Why Refactor Refactoring is one factor in keeping your system in shape Without continuous refactoring, the system will rot It takes
More informationRapid Application Development with APEX 5.0
Rapid Application Development with APEX 5.0 Anthony Rayner Principal Member of Technical Staff Oracle Application Express Oracle UK The following is intended to outline Oracle s general product direction.
More informationJames Turnbull
State of the Nation James Turnbull james@puppetlabs.com Where we were Puppet user mailing list membership was 3000 With about 600 messages a month The #puppet IRC channel averaged 400 people Puppet on
More informationWednesday, November 16, 11
Java SE 8, and Beyond! Danny Coward Principal Engineer 8 9 2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption Increase Competitiveness Adapt to change
More informationDesign Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment
Protect Your Software Investment Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment The Difficulty with Embedded Software Development Developing embedded software is complicated.
More informationMcCa!"s Triangle of Quality
McCa!"s Triangle of Quality Maintainability Portability Flexibility Reusability Testability Interoperability PRODUCT REVISION PRODUCT TRANSITION PRODUCT OPERATION Correctness Usability Reliability Efficiency
More informationAgile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?
Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.
More informationUpgrading your GEANT4 Installation
your GEANT4 Installation Michael H. Kelsey SLAC National Accelerator Laboratory GEANT4 Tutorial, Jefferson Lab 13 Jul 2012 Where Are Upgrades? http://www.geant4.org/ Michael H. Kelsey GEANT4 July 2012
More informationProgramming Languages. Streams Wrapup, Memoization, Type Systems, and Some Monty Python
Programming Languages Streams Wrapup, Memoization, Type Systems, and Some Monty Python Quick Review of Constructing Streams Usually two ways to construct a stream. Method 1: Use a function that takes a(n)
More informationIntroduction to Extreme Programming
Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Robert Martin, Object Mentor Ron Jeffries,et.al. 12/3/2003 Slide Content by Wake/Metsker 1
More informationTest Driven Development TDD
Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,
More informationPublications Database
Getting Started Guide Publications Database To w a r d s a S u s t a i n a b l e A s i a - P a c i f i c!1 Table of Contents Introduction 3 Conventions 3 Getting Started 4 Suggesting a Topic 11 Appendix
More informationCONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010
PACIFIC NW 28TH ANNUAL SOFTWARE QUALITY CONFERENCE October 18th 19th, 2010 Conference Paper Excerpt from the CONFERENCE PROCEEDINGS Permission to copy, without fee, all or part of this material, except
More informationTest Driven Development (TDD), and Working with Legacy Code Using C# Workshop ( 4 days)
Test Driven Development (TDD), and Working with Legacy Code Using C# Workshop ( 4 days) HOTEL DUBAI GRAND April 16 to 19-2018 Monday to Thursday ) (4 days) 9 am to 4 pm ISIDUS TECH TEAM FZE PO Box 9798
More informationMySQL CLOUD SERVICE. Propel Innovation and Time-to-Market
MySQL CLOUD SERVICE Propel Innovation and Time-to-Market The #1 open source database in Oracle. Looking to drive digital transformation initiatives and deliver new modern applications? Oracle MySQL Service
More informationEnd-to-End Java Security Performance Enhancements for Oracle SPARC Servers Performance engineering for a revenue product
End-to-End Java Security Performance Enhancements for Oracle SPARC Servers Performance engineering for a revenue product Luyang Wang, Pallab Bhattacharya, Yao-Min Chen, Shrinivas Joshi and James Cheng
More informationINHERITANCE WITH JAVA INTERFACES
MODULE 6 INHERITANCE WITH JAVA INTERFACES Objectives > After completing this lesson, you should be able to do the following: Model business problems by using interfaces Define a Java interface Choose between
More informationSECTION 2: HW3 Setup.
SECTION 2: HW3 Setup cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis,CSE 390a,Justin Bare, Deric Pang, Erin Peach, Vinod Rathnam LINKS TO DETAILED SETUP AND USAGE INSTRUCTIONS
More informationOp>onal. The Mother of all Bikesheds. Stuart Marks Core Libraries Java PlaGorm Group, Oracle
Op>onal The Mother of all Bikesheds Stuart Marks Core Libraries Java PlaGorm Group, Oracle Copyright 2016, Oracle and/or its affiliates. All rights reserved. Op>onal The Mother of all Bikesheds What is
More informationJava SE 7 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This is the second of two courses that cover the Java Standard Edition
More informationExceptions. What exceptional things might our programs run in to?
Exceptions What exceptional things might our programs run in to? Exceptions do occur Whenever we deal with programs, we deal with computers and users. Whenever we deal with computers, we know things don
More informationTA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out
Announcements TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Get you setup for project/lab work. We ll check it with the first lab. Stars
More informationBackup Strategies with MySQL Enterprise Backup
Fast, Consistent, Online Backups for MySQL Backup Strategies with MySQL Enterprise Backup John Russell Oracle/InnoDB Calvin Sun Oracle/InnoDB Mike Frank Oracle/MySQL The preceding
More information