Presentation is loading. Please wait.

Presentation is loading. Please wait.

Agile Development Infrastructure MUUG – June 13, 2006 Steve Moffat.

Similar presentations


Presentation on theme: "Agile Development Infrastructure MUUG – June 13, 2006 Steve Moffat."— Presentation transcript:

1 Agile Development Infrastructure MUUG – June 13, 2006 Steve Moffat

2 Iterations of 3 – 4 weeks Iterations of 3 – 4 weeks Agile Development Emphasize real time communication Emphasize real time communication Measured by working software Measured by working software Sometimes criticized as undisciplined Sometimes criticized as undisciplined

3 Agile methods are adaptive rather than predictive. Engineering methods tend to try to plan out a large part of the software process in great detail for a long span of time, this works well until things change. So their nature is to resist change. The agile methods, however, welcome change. They try to be processes that adapt and thrive on change, even to the point of changing themselves. Agile methods are people-oriented rather than process-oriented. The goal of engineering methods is to define a process that will work well whoever happens to be using it. Agile methods assert that no process will ever make up the skill of the development team, so the role of a process is to support the development team in their work. Martin Fowler Martin Fowler Martin Fowler Agile Development

4 Productivity of the development team is key Agile Development http://agilemanifesto.org/

5 The Cycle, or Iteration

6 Support Platforms

7 The pieces

8 Development Workstations EclipseEclipse TomcatTomcat WindowsWindows LinuxLinux

9 Eclipse and Tomcat Develop Compile Unit Test Archive

10 JavaDoc… /** * Returns an Image object that can then be painted on the screen. * Returns an Image object that can then be painted on the screen. * The url argument must specify an absolute {@link URL}. The name * The url argument must specify an absolute {@link URL}. The name{@link URL}{@link URL} * argument is a specifier that is relative to the url argument. * argument is a specifier that is relative to the url argument. * * * This method always returns immediately, whether or not the * This method always returns immediately, whether or not the * image exists. When this applet attempts to draw the image on * image exists. When this applet attempts to draw the image on * the screen, the data will be loaded. The graphics primitives * the screen, the data will be loaded. The graphics primitives * that draw the image will incrementally paint on the screen. * that draw the image will incrementally paint on the screen. * * @param url an absolute URL giving the base location of the image * @param url an absolute URL giving the base location of the image@param * @param name the location of the image, relative to the url argument * @param name the location of the image, relative to the url argument@param * @return the image at the specified URL * @return the image at the specified URL@return * @see Image * @see Image@see */ */ public Image getImage(URL url, String name) { try { try { return getImage(new URL(url, name)); return getImage(new URL(url, name)); } catch (MalformedURLException e) { } catch (MalformedURLException e) { return null; return null; } }

11 …turns into getImage public Image getImage(URL url, ImageURLImageURL String name) String name)String Returns an Image object that can then be painted on the screen. The url argument must specify an absolute URL. The name argument is a specifier that is relative to the url argument. Returns an Image object that can then be painted on the screen. The url argument must specify an absolute URL. The name argument is a specifier that is relative to the url argument.URL This method always returns immediately, whether or not the image exists. When this applet attempts to draw the image on the screen, the data will be loaded. The graphics primitives that draw the image will incrementally paint on the screen. Parameters: url - an absolute URL giving the base location of the image name - the location of the image, relative to the url argument Returns: the image at the specified URL See Also: Image

12 JUnit JUnit tests allow you to write code faster while increasing quality. JUnit tests allow you to write code faster while increasing quality. JUnit tests check their own results and provide immediate feedback. JUnit tests check their own results and provide immediate feedback. JUnit – is a program to test a program JUnit – is a program to test a program Easily integrated into new or existing java classes Easily integrated into new or existing java classes

13 JUnit public class HelloWorld extends TestCase { public void testMultiplication() public void testMultiplication() { // Testing if 2*2=4: { // Testing if 2*2=4: assertEquals ("Multiplication", 4, 2*2); assertEquals ("Multiplication", 4, 2*2); }} A simple example

14 JUnit @Test(expected= IndexOutOfBoundsException.class) public void empty() { @Test(expected= IndexOutOfBoundsException.class) public void empty() { new ArrayList ().get(0); new ArrayList ().get(0); } Another simple example

15 Many developers archive CVS Commit code

16 CruiseControl Build Automation Build Automation Supports multiple projects Supports multiple projects Continuous Integration Continuous Integration Web Interface for status and control Web Interface for status and control Status Email Status Email

17 Cobertura Calculates the percentage of code accessed by JUnit tests Calculates the percentage of code accessed by JUnit tests Based on jcoverage Based on jcoverage Works by inserting instrumentation instructions into compiled code Works by inserting instrumentation instructions into compiled code Records which lines of code have been tested Records which lines of code have been tested Calculates complexity value Calculates complexity value Produces output in html or xml Produces output in html or xml

18 Build Server CVS Export Compile JUnit test CVS Tag Instrument Java Doc Package

19 Development Server CVS / CVSWeb CVS / CVSWeb Ant Ant Cobertura Cobertura VQWiki VQWiki Bugzilla Bugzilla HP-UX HP-UX Oracle Java Application Server Oracle Java Application Server

20 Runtime HP-UX HP-UX Linux Linux Oracle Application Server Oracle Application Server Oracle Database Server Oracle Database Server

21 Support Platforms

22 The pieces Apache Ant: http://ant.apache.org Apache Ant: http://ant.apache.orghttp://ant.apache.org Apache Tomcat: http://tomcat.apache.org Apache Tomcat: http://tomcat.apache.orghttp://tomcat.apache.org Apache WebServer: http://httpd.apache.org Apache WebServer: http://httpd.apache.orghttp://httpd.apache.org Bugzilla: http://www.bugzilla.org Bugzilla: http://www.bugzilla.orghttp://www.bugzilla.org Cobertura: http://junit.sourceforge.net Cobertura: http://junit.sourceforge.nethttp://junit.sourceforge.net CruiseControl: http://cruisecontrol.sourceforge.net/ CruiseControl: http://cruisecontrol.sourceforge.net/http://cruisecontrol.sourceforge.net/ CVS: http://ximbiot.com/cvs/wiki/index.php?title=Main_Page CVS: http://ximbiot.com/cvs/wiki/index.php?title=Main_Pagehttp://ximbiot.com/cvs/wiki/index.php?title=Main_Page CVSWeb: http://www.freebsd.org/projects/cvsweb.html CVSWeb: http://www.freebsd.org/projects/cvsweb.htmlhttp://www.freebsd.org/projects/cvsweb.html Eclipse: http://www.eclipse.org Eclipse: http://www.eclipse.orghttp://www.eclipse.org Java: http://java.sun.com Java: http://java.sun.comhttp://java.sun.com JUnit: http://junit.sourceforge.net JUnit: http://junit.sourceforge.nethttp://junit.sourceforge.net VQWiki: http://www.vqwiki.org VQWiki: http://www.vqwiki.orghttp://www.vqwiki.org Linux: redhat, fedora, ubuntu Linux: redhat, fedora, ubuntu

23 More pieces.. Not so free HP-UX: http://www.hp.com or HP-UX: http://www.hp.com orhttp://www.hp.com http://h20338.www2.hp.com/hpux11i/cache/324545-0-0-0-121.html http://h20338.www2.hp.com/hpux11i/cache/324545-0-0-0-121.htmlhttp://h20338.www2.hp.com/hpux11i/cache/324545-0-0-0-121.html Oracle Application Server: http://www.oracle.com (middleware) or Oracle Application Server: http://www.oracle.com (middleware) orhttp://www.oracle.com http://www.oracle.com/appserver/index.html http://www.oracle.com/appserver/index.htmlhttp://www.oracle.com/appserver/index.html Oracle Database Server: http://www.oracle.com (database) or Oracle Database Server: http://www.oracle.com (database) orhttp://www.oracle.com http://www.oracle.com/database/index.html http://www.oracle.com/database/index.htmlhttp://www.oracle.com/database/index.html Rational Tools: RequisitePro, TestManager, Robot: Rational Tools: RequisitePro, TestManager, Robot: http://www-306.ibm.com/software/awdtools/suite/index.html http://www-306.ibm.com/software/awdtools/suite/index.htmlhttp://www-306.ibm.com/software/awdtools/suite/index.html Windows: desktop, server Windows: desktop, server

24 Even more pieces… Password Manager: http://www.geocities.com/ramix_info/passwordmanager.ht%6dl Password Manager: http://www.geocities.com/ramix_info/passwordmanager.ht%6dl http://www.geocities.com/ramix_info/passwordmanager.ht%6dl Cronolog: http://cronolog.org Cronolog: http://cronolog.orghttp://cronolog.org CGI Scripts for deploy automation CGI Scripts for deploy automation

25 The Future… Bugzilla to Jira $$ Bugzilla to Jira $$ CVS to Subversion CVS to Subversion Ant to Maven Ant to Maven XPlanner XPlanner Upgrades upgrades upgrades… Upgrades upgrades upgrades…


Download ppt "Agile Development Infrastructure MUUG – June 13, 2006 Steve Moffat."

Similar presentations


Ads by Google