Members don't see the ad below. Register now!

Software Engineering for Software as a Service

Back to course list | Guidelines For Editing


Table of contents
Introduction
Prerequisites
Reading list
Free Ruby resources & Tutorials
Video materials
Lecture notes
Software
Further studies

Information

Software Engineering for Software as a Service is going to be offered for the first time in February 2012 by Armando Fox and David Patterson at http://www.saas-class.org/.

This course teaches the engineering fundamentals for long-lived software using the highly-productive Agile development method for Software as a Service (SaaS) using Ruby on Rails.

Topics include:

  1. Refining and refactoring a working but incomplete prototype until the customer is happy with result, with the customer offering continuous feedback.
  2. Writing user stories to validate customer requirements.
  3. Using test-driven development to reduce mistakes.
  4. Creating biweekly iterations of new software releases.
  5. Using velocity to measure progress.

We will introduce all these elements of the Agile development cycle, and go through one iteration by adding features to a simple app and deploying it on the cloud using tools like Github, Cucumber, RSpec, SimpleCov, Pivotal Tracker, and Heroku.

Prerequisites

Programming proficiency in an object-oriented programming language such as Java, C#, C++, Python, or Ruby. Basic Unix command-line skills are helpful; we will provide a cheat sheet. You must also have a computer running Windows, Mac OS, Linux, or Solaris operating systems and running x86 or AMD64/Intel64 hardware on which you can install and run VirtualBox virtual machine. It should have at least 512 MB of memory, or at least 1 GB if running Windows. See http://www.virtualbox.org.

Recommended reading

Blog of Armando Fox - one of the teachers of this course.
SaaS Book - Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing (Alpha Edition). First chapter is free. Page contains links to VM images and setup instructions.
"The Rails 3 Way" by Obie Fernandez on Amazon.com. This encyclopedic book is not only a definitive Rails reference, but an indispensable guide to Software-as-a-Service coding techniques for serious craftspersons. I keep a copy in the lab, a copy at home, and a copy on each of my three e-book readers, and it’s on the short list of essential resources for my undergraduate software engineering course. —Armando Fox, adjunct associate professor, University of California, Berkeley
"Agile Development with Rails - 4th Edition" by Sam Ruby, Dave Thomas, DHH et al. One of the original RoR bibles from the Programmatic Bookshelf, written by top RoR developers.

Video materials

Lecture notes

Software

http://www.virtualbox.org - Free, powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use that runs on Windows, Linux, Macintosh, and Solaris hosts.
Instructions and VM images - needed for the course.

Free Ruby resources & Tutorials

Collection of Rails Tutorials - Top resources for Ruby on Rails, including learning Rails and getting started with Rails tutorials.
Ruby Learning - A Ruby Learning Hub
Ruby in 20 mins
Code School
RailsTutorial.org - Ruby on Rails Tutorial
RubyOnRails.org
Rails casts - Ruby on Rails screencasts
Ruby Docs - official docs
Techotopia - Ruby Essentials
TryRuby
netTuts - Ruby for Newbies
Why's Poignant Guide - a Somewhat Poignant Guide to Ruby
Ruby Monk
Rails for Zombies - Ruby on Rails tutorials
Rails Best Practices - Tutorials for experienced RoR developers
Stanford CS142 (Fall 2010) - Web Applications course on Openclassroom - an alternative course uses Ruby on Rails

Further studies

powered by OSQA