Big Projects  Part of this class is about picking a cool software project and building it 1.

Slides:



Advertisements
Similar presentations
90 DAY PLAN.
Advertisements

1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
Agile Planning Dealing with Reality. Reality Basic agile principle – don’t expect static plans to hold, be flexible and expect changes.
System Analysis & Design Methods V Extreme Programming XP/dX.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
SOCIAL CODING Abhishek Dey Das |Sudhanshu Iyer abhis.ws|siyer.info.
COMP 110 Introduction to Programming Tabitha Peck M.S. January 9, 2008 MWF 3-3:50 pm Philips 367.
EXtreme.NET Dr. Neil Roodyn. eXtreme.NET Who is Dr. Neil? MISSION: To increase the value of your Software Business Working with software for way too long.
Individuals and interactions
Individuals and interactions
Active X Microsoft’s Answer to Dynamic Content Reference: Using Active X by Brian Farrar QUE
SENG 531: Labs TA: Brad Cossette Office Hours: Monday, Wednesday.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
COMP 110 Introduction to Programming Jingdan Zhang June 20, 2007 MTWRF 9:45-11:15 am Sitterson Hall 014.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Introduction to Continuous Integration Mike Roberts.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009.
ProSense BELGRADE Deploying SunSPOT SDK and Emulator on your Desktop or Laptop Computer Author: Stanislava Stanković, B.Sc. student of the School of Electrical.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
Extreme Programming Adam Cogan Database Architect ssw.com.au.
Public Advice Traveling Help DSD Course – Project final Presentation School of Innovation, Design and Engineering Malardalen University Jan 15 th, 2008.
Virtual Mechanics Fall Semester 2009
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
COMP 523 DIANE POZEFSKY 20 August AGENDA Introductions Logistics Software Engineering Overview Selecting a project Working with a client.
COMP Introduction to Programming Yi Hong May 13, 2015.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Testing in Extreme Programming
Guidelines for Homework 6. Getting Started Homework 6 requires that you complete Homework 5. –All of HW5 must run on the GridFarm. –HW6 may run elsewhere.
How to be an online student. How does it work? An online course follows a schedule and syllabus with due dates for assignments (just like an on-campus.
Washington WASHINGTON UNIVERSITY IN ST LOUIS January 7, MSR Tutorial John DeHart Washington University, Applied Research Lab
Webinar 8: Engaging Your Colleagues. Summary of Last Week’s Call Updated you on the webinar specifically for surgeons. Checked in with participants. Reviewed.
5. Planning.
CS Tutorial 4 Frid. Oct 16 th, 2009 Prototype Tutorial.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
CSc2010 Lab Fall 2015 Bing Li. Contact  Name : Bing Li   Website : cs.gsu.edu/~bli6  Office : Suntrust.
How to start Milestone 1 CSSE 371 Project Info There are only 8 easy steps…
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
GumTree Development Environment Setup Windows Only Compatible with Eclipse 3.2 M3 (Last update: 16/11/05)
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
CS3100 Software Project Management Agile Approaches.
IST 210: Organization of Data
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
T Iteration Demo Team 13 I1 Iteration
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
1 Required , Google Group 1.Send the professor (This is also listed in the –In the Subject,
How to Revise well… By 10W. Equipment Creating good notes to revise from is important when working, the following equipment can help create imaginative.
T Iteration Demo LicenseChecker I2 Iteration
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Build Automation with Gradle
Constructing Deploying and Maintaining Enterprise Systems
Delphi or C++ Builder, with Subversion and Jenkins
Extreme Programming.
Send the professor (This is also listed in the syllabus)
CS279 Course Overview Joe Hoffert
slides borrowed and adapted from Alex Mariakis and CSE 390a
X in [Integration, Delivery, Deployment]
CSE 303 Concepts and Tools for Software Development
Presentation transcript:

Big Projects  Part of this class is about picking a cool software project and building it 1

Agile Development  We will be using an Agile development process for the big projects  Short concentrated build cycles that focus on working code  Client-focused, we will be demoing each others’ software at the end of each build cycle 2

Development Cycle  We will use a 2 week development cycle that will start on Tuesdays  1 st Tuesday: – Select user stories for build cycle – Add stories to wiki – Be prepared to talk about user stories in class  1 st Thursday: – Barebones code skeletons for user stories checked in before class 3

User Stories  What is a “user story”?  A user story should be a short 1-2 sentence explanation of something that a user can do with the software: – A student can add a new course to his/her schedule – A player can view the results of a match  User stories must be assigned to team members  Team members will be graded on their assigned user stories & integrated functionality 4

User Stories  Each user story will be simple but will require a lot of things to work under the hood  User stories emphasize working fully integrated software rather than large bodies of un-integrated code  At the end of the build cycle, if a user can’t complete the story, it isn’t finished 5 The user story….. What is actually needed to make the story work

User Stories  At the beginning, you should pick fewer user stories b/c you will need to build the “hidden base” of software beneath it  Later, you can pump out more user stories per build cycle because the bulk of your base is complete 6 Later stories can be integrated into the existing base Hidden base

Project Requirements  Every group must maintain their project as a Google code project  You must use SVN or Git  You must maintain a wiki that provides detailed instructions on how to build, run, and test your code  You must produce a binary distribution at the end of each build cycle with installation / run instructions so that another team can test it 7

Development Cycle  2 nd Tuesday: – Initial story implementations turned in – Random In-class code reviews of user story implementations – Bug/Issue discussions  2 nd Thursday: – Code refactored per code review recommendations (checked into version control before class) – User stories demoed – In-class user acceptance testing – Binary distributions made available as file releases before class 8

Implementing User Stories  Only build the minimum of what is needed to realize the user story  All code created during the build cycle should be directly traceable back to a user story 9

Implementing User Stories  At the beginning, it is ok to “fake” or use mock objects for parts of the implementation  For example, you may want to fake the communication with a remote server by creating a mock object that automatically returns the expected answers or stock data 10

What if I Just Can’t Get X to Work?  If you realize that a user story is much harder than expected to implement, don’t panic – Discuss the issue with your group and send me saying that you are going to postpone the user story until the next build cycle – Prioritize your other user stories and finish them – At the latest, you must notify me by the start of class on the 2 nd Tuesday  Start early so that you can predict if you aren’t going to finish a user story 11

In-class User Acceptance Testing 12  On the last class of a build cycle, we will first let each team demo their working user story implementations  Groups will then test each others’ user story implementations  Every group will be required to have a binary distribution that other groups can download to test  Groups must have all usage directions posted on their project wiki (no hand holding)  Groups can bring in user surveys to get feedback from users(optional)

Binary Distributions  A binary distribution should be a compiled version of the code that can be run fairly easily by a user  Examples: – A jar file, launch script, and instructions (always include a license file too) – A Java launcher, such as launch4j – An Eclipse plugin distribution – A set of project binaries and an ANT file to run them 13

Bi-weekly Grading  (40pts) Were all of the user stories completed or properly postponed?  (20pts) Did you turn in all of the in-class exercise handouts and complete them satisfactorily? (this is all or nothing – 0 or 20pts … no partial credit)  (20pts) Were adequate tests created and executed for the code?  (20pts) Were bugs properly reported and addressed? 14