mtat.03 · 2015. 9. 1. · mtat.03.295 agile software development lecture 1: introduction luciano...

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

Upload: others

Post on 09-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

MTAT.03.295

Agile Software Development

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

Page 2: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

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 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Lecturers • Luciano  García-­‐Bañuelos  ◦ Email:  luciano.garcia  <at>  ut.ee  ◦ Office:  Liivi  2-­‐311  

• Abel  Armas-­‐Cervantes  ◦ Email:  abel.armas  <at>  ut.ee  ◦ Office:  Liivi  2-­‐315  

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

Page 4: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

A bit of history about the course

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

Page 5: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Connection with edX CS 169.1x • edX  is  an  iniPaPve  backed  by  several  large  universiPes  (e.g.,  MIT,  Harvard,  Berkley)  promoPng  the  use  of  massive  online  open  courses  (MOOCs).  The  iniPaPve  includes:  ◦ An  open  source  project  with  all  the  code  supporPng  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   4  

Page 6: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

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, Testing, Continuous integration,

Deployment to the cloud

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

Page 7: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Agile method – Sneak preview

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

Talk  to  “Customer”  

Legacy  

Design  paherns  

User  stories  (BDD)  

Unit  test  (TDD)  

Velocity  measurement  

Deployment  (Cloud)  

Page 8: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Agile method – Sneak preview

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

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 9: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Agile method – Sneak preview

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

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 10: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Organization of the Course • Lecture (Tuesdays) Practices (Tuesdays/Thursdays)

• SPOC Lectures (Released every Tuesday) ◦ 7 weeks, starting in second week ◦ Probably some additional lectures from Berkeley’s

CS 169.2x

• Project (weeks 11-16) ◦ Presentations on 15-17 December. ◦ Report due on 22 December.

• See details on the course pages: ◦  https://courses.cs.ut.ee/2015/asd/fall ◦  Web page for SPOC still to be confirmed

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

Page 11: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Grading • SPOC: 30 points ◦ 5/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   10  

Teams    (4  members)  

Page 12: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Hands on with Ruby

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

Page 13: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Factorial (version 1)

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!!puts factorial(10) !puts factorial(3) !puts factorial(-1)  

Page 14: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu

Factorial (version 2)

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

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  somePmes  be  omihed  

•  return  is  not  required  (a  funcPon  returns  the  result  of  the  last  executed  statement)