![Page 1: MTAT.03 · 2015. 9. 1. · MTAT.03.295 Agile Software Development Lecture 1: Introduction Luciano García-Bañuelos University of Tartu](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051822/5fec58bf8987f12b38344135/html5/thumbnails/14.jpg)
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)