Armando Fox, Associate Professor at UC Berkeley and
David Patterson, Pardee Professor of Computer Science at UC Berkeley and current Director of the Parallel Computing Lab will be taking a course on Software Engineering for Software as a Service in February 2012.
The course will teach the engineering fundamentals for long-lived software using the highly-productive Agile development method for Software as a Service (SaaS) using Ruby on Rails. Agile developers continuously refine and refactor a working but incomplete prototype until the customer is happy with result, with the customer offering continuous feedback. Agile emphasizes user stories to validate customer requirements; test-driven development to reduce mistakes; biweekly iterations of new software releases; and 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, RCov, Pivotal Tracker, and Heroku.
Prerequisites for the course are: 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 www.virtualbox.org.
Recommended Textbook: "Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing," Beta Edition, by Armando Fox and David Patterson, to be available January 17, 2012.
You can register for the course
here.