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

Slides:



Advertisements
Similar presentations
JSP and web applications
Advertisements

Continuous Integration in a Java Environment. Developers / Time.
1 The IIPC Web Curator Tool: Steve Knight The National Library of New Zealand Philip Beresford and Arun Persad The British Library An Open Source Solution.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Introduction to Java Applets Outline 3.1 Introduction 3.2 Sample Applets from the Java 2.
Jason Westman MWDUG September 5 th, 2003 Configurable Engineering Applications and Migration.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
Writing a Unit test Using JUnit At the top of the file include: import junit.framework.TestCase; The main class of the file must be: public Must extend.
Presentation Outline What is JUnit? Why Use JUnit? JUnit Features Design of JUnit Downloading JUnit Writing Tests – TestCase – TestSuite Organizing The.
Best Practices for Channel Development Al Wold Arizona State University.
CS 160: Software Engineering August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Big Projects  Part of this class is about picking a cool software project and building it 1.
1 CS428 Web Engineering Lecture 18 Introduction (PHP - I)
JsUnit An introduction to unit testing in-browser JavaScript with JsUnit Edward Hieatt February, 2005 JsUnit.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant.
CSE 131 Computer Science 1 Module 1: (basics of Java)
The DSpace Course Module – DSpace Installation. Module objectives  By the end of this module you will:  Understand the platforms DSpace can be hosted.
Java Programming, 2E Introductory Concepts and Techniques Chapter 2 Creating a Java Application and Applet.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
1 Servlet How can a HTML page, displayed using a browser, cause a program on a server to be executed?
Web Application Architecture and Communication. Displaying a Web page in a Browser
SOA-14: Continuous Integration in SOA Projects Experience from the field Andreas Gies Principal Architect.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
RUP Implementation and Testing
Chapter 5 Java Servlets. Objectives Explain the nature of a servlet and its operation Use the appropriate servlet methods in a web application Code the.
NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03.
2 Copyright © 2004, Oracle. All rights reserved. Running a Forms Developer Application.
An-Najah National University Software Graduation Project Remote Control System Working Group: Mohammad Yasin Mohammad Yasin Ala’a Deeb Ala’a DeebInstructor:
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
What’s New in Automated Software Testing and ClearQuest Shmuel Bashan IBM Rational
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Java Applets. 2 Introduction to Java Applet Programs Applications are ___________________ programs –executed with Java interpreter Applet is a small program.
14 June 2004System-wide Services: User InterfaceRich Moeser 1 EVLA Overall Software Design Final Internal Review System-wide Services: User Interface.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
What is Eclipse? Official Definition: Eclipse Evolution
Distributed Java Programming Build Management  A repeatable build management process allows you to integrate the development efforts of your team.
Intro to Applets. Applet Applets run within the Web browser environment Applets bring dynamic interaction and live animation to an otherwise static HTML.
EFinanceFactory Andriy Kurhanevych, development group manager.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Confidential Continuous Integration Framework (CIF) 5/18/2004.
1© Nokia Siemens Networks Presentation / Author / Date For internal use T Better Code Faster - Next Generation Java Continuous Integration Environment.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
Chapter 12: Accessing the Web URL (Uniform Resource Locator) class Applet methods –for audio clips –for images –context interface.
Creating a Java Application and Applet
Ant / continuous integration. Turning Client Vision into Results 2 Outline presentation Introduction Ant –History –Concepts –Tasks –Examples –Extending.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
Unit, Regression, and Behavioral Testing Based On: Unit Testing with JUnit and CUnit by Beth Kirby Dec 13, 2002 Jules.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
CTools Build Process David Haines University of Michigan.
Software Testing Process
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
1 Java Applet Basics Chapter Eight. 2 Applets vs. Applications l Applications: Stand alone Java programs run by interpreter l Applets WWW browser embedded.
Test Driven Development Introduction Issued date: 8/29/2007 Author: Nguyen Phuc Hai.
Javadoc 1. Input /** * Returns an Image object that can then be painted on the screen. * The url argument must specify an absolute URL}. The
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
------TAO, MARKUS Project IT. JavaDoc ‣ JavaDoc is a standard method of commenting source code (interfaces, classes, methods, instances variables). ‣
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
2 Copyright © 2004, Oracle. All rights reserved. Running a Forms Developer Application.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
EVLA Archive The EVLA Archive is the E2E Archive
Continuous Integration
Web Application Development Using PHP
Presentation transcript:

Agile Development Infrastructure MUUG – June 13, 2006 Steve Moffat

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

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

Productivity of the development team is key Agile Development

The Cycle, or Iteration

Support Platforms

The pieces

Development Workstations EclipseEclipse TomcatTomcat WindowsWindows LinuxLinux

Eclipse and Tomcat Develop Compile Unit Test Archive

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 URL}. The name * The url argument must specify an absolute URL}. The 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. * url an absolute URL giving the base location of the image url an absolute URL giving the base location of the name the location of the image, relative to the url argument name the location of the image, relative to the url the image at the specified URL the image at the specified Image */ */ 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; } }

…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

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

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

IndexOutOfBoundsException.class) public void empty() IndexOutOfBoundsException.class) public void empty() { new ArrayList ().get(0); new ArrayList ().get(0); } Another simple example

Many developers archive CVS Commit code

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 Status

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

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

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

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

Support Platforms

The pieces Apache Ant: Apache Ant: Apache Tomcat: Apache Tomcat: Apache WebServer: Apache WebServer: Bugzilla: Bugzilla: Cobertura: Cobertura: CruiseControl: CruiseControl: CVS: CVS: CVSWeb: CVSWeb: Eclipse: Eclipse: Java: Java: JUnit: JUnit: VQWiki: VQWiki: Linux: redhat, fedora, ubuntu Linux: redhat, fedora, ubuntu

More pieces.. Not so free HP-UX: or HP-UX: orhttp:// Oracle Application Server: (middleware) or Oracle Application Server: (middleware) orhttp:// Oracle Database Server: (database) or Oracle Database Server: (database) orhttp:// Rational Tools: RequisitePro, TestManager, Robot: Rational Tools: RequisitePro, TestManager, Robot: Windows: desktop, server Windows: desktop, server

Even more pieces… Password Manager: Password Manager: Cronolog: Cronolog: CGI Scripts for deploy automation CGI Scripts for deploy automation

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…