13
MTAT.03.295 Agile Software Development in the Cloud Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

MTAT.03 - ut

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MTAT.03 - ut

MTAT.03.295

Agile Software Development in the Cloud

Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Page 2: MTAT.03 - ut

Course Objective The objective of this course is to introduce an agile method for software development that takes advantage of the principles of cloud computing and software as a service.

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   1  

Page 3: MTAT.03 - ut

A bit of history about the course

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   2  

Page 4: MTAT.03 - ut

Connection with edX CS 169.1x • edX  is  an  ini<a<ve  backed  by  several  large  universi<es  (e.g.,  MIT,  Harvard,  Berkley)  promo<ng  the  use  of  massive  online  open  courses  (MOOCs).  The  ini<a<ve  includes:  ◦ An  open  source  project  with  all  the  code  suppor<ng  edX  ◦ A  web  site  providing  already  a  large  number  of  courses  

• Our  course  is  a  direct  clone  of  Berkeley’s  CS  169.1x  as  offered  by  edX  ◦ We  have  a  small  private  online  course  (SPOC)  for  our  class  

◦ You  will  be  using  edX  materials,  autograders,  etc.  

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   3  

Page 5: MTAT.03 - ut

Approach Take two SaaS projects from conception to deployment

◦ Mimic the interaction with non-technical customers

◦ Backend: Ruby on Rails ◦ Frontend: Modern frontend CSS frameworks,

Javascript and AngularJS ◦ Project tracking, Continuous integration,

Deployment to the cloud

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   4  

Page 6: MTAT.03 - ut

Agile method – Sneak preview

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   5  

Talk  to  “Customer”  

Legacy  

Design  pacerns  

User  stories  (BDD)  

Unit  test  (TDD)  

Velocity  measurement  

Deployment  (Cloud)  

Page 7: MTAT.03 - ut

Agile method – Sneak preview

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   6  

Talk  to  “Customer”  

User  stories  (BDD)  

Unit  test  (TDD)  

Velocity  measurement  

Deployment  (Cloud)  

Lo-­‐Fi  UI/Storyboards  Balsamiq  

Points,  velocity,  Pivotal  tracker  

Con>nuous  Integra>on  Jenkins/  

Page 8: MTAT.03 - ut

Agile method – Sneak preview

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   7  

Talk  to  “Customer”  

User  stories  (BDD)  

Unit  test  (TDD)  

Velocity  measurement  

Deployment  (Cloud)  

Cucumber  

Ruby  

Ruby  on  Rails  

RSpec  

Cucumber-­‐js  

Javascript  

AngularJS  

Jasmine  

Page 9: MTAT.03 - ut

Organization of the Course • Workshops (Thursday) • SPOC Lectures (Released every Thursday) ◦ 6 first weeks ◦ Probably some additional lectures from Berkeley’s

CS 169.2x

• Project (weeks 9-15) ◦ Presentation on 22 May. ◦ Report due on 29 May.

• See details on the course pages: ◦  https://courses.cs.ut.ee/2014/asd ◦  https://edge.edx.org/courses/UniversityOfTartu/MTAT.03.295/

Spring_2014

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   8  

Page 10: MTAT.03 - ut

Grading • SPOC: 30 points ◦ 6 Homework assignments and 4 quizzes

• Project: 30 points ◦ 15 points for the product ◦  Soundness of design and architectural choices ◦  Scope of the solution (how much was implemented?) ◦  Functional correctness/validation (does it work?)

◦ 5 evidence of use of the agile method ◦ 5 points for written documentation ◦ 5 points for presentation

• Exam: 40 points • Participation: up to 10 bonus points  

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   9  

In  pairs  

Page 11: MTAT.03 - ut

Hands on with Ruby

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   10  

Page 12: MTAT.03 - ut

Factorial (version 1)

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   11  

def factorial(n) ! if (n < 0) then! raise "Undefined"! end! if (n == 0) then! return 1 ! else! return n * factorial(n -1) ! end!end!!puts factorial(10) !puts factorial(3) !puts factorial(-1)  

Page 13: MTAT.03 - ut

Factorial (version 2)

INTRODUCTION                              LUCIANO  GARCÍA-­‐BAÑUELOS   12  

def factorial(n) ! if (n < 0) then! raise "Undefined"! end! if (n == 0) then! return 1 ! else! return n * factorial(n -1) ! end!end!

def factorial(n) ! raise "Undefined" if n < 0 ! if n == 0 then 1 else n * factorial(n -1) end!end!

•  Parenthesis  can  some<mes  be  omiced  

•  return  is  not  required  (a  func<on  returns  the  result  of  the  last  executed  statement)