Skip to content
Material for the "Advanced Software Engineering" course at UNITN, 2017-2018
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assignment
Examples
Slides
Support-Material
Tutorials
WrittenExam
.gitignore
README.md

README.md

Advanced Sofware Engineering 2017

This repository contains the material for the "Advanced Software Engineering" course at UNITN, 2017-2018 edition.

Syllabus: Support-Material/Syllabus.docx

Written Exam: Rules and Structure

Assignment Results: https://docs.google.com/spreadsheets/d/1a9vYSfPYeRYym8uW6sg7ay2xeuSe826_-FKiXuJIu_Q/edit?usp=sharing

Schedule:

  • Monday 14:00-15:40 Room B104
  • Wednesday 14:00-15:40 Room B108

Special schedule for December

  • Monday 4th: 14:00-16:00
  • Wednesday 6th: 11:00-13:00, 14:00-16:00
  • Monday 11th: 14:00-18:00
  • Monday 18th: 14:00-16:00 (just for Q&A)

There is no room available for Wednesday morning and the proposed lesson has to be cancelled. We will meet Wednesday afternoon.

Lesson 1. Introduction

<2017-09-13 Wed 14:00 - 16:00>

Administrative matters (exam, getting in touch, etc), entry questionnaire, and a motivating example, which describes why developing software is complex.

Slides:

Lesson 2. Configuration Management

<2017-09-18 Mon 14:00-16:00>

Configuration Management helps us ensuring the coherency of a system over time

Lesson 3. Configuration Management

<2017-09-20 Wed 14:00-16:00>

More on Configuration Management and on Git. The branching development model and the merging (nightmare, if you don't do things right).

Lesson 4. Ruby Tutorial

<2017-09-20 Wed 16:00-18:00>

Lesson 5. More Ruby

<2017-09-25 Mon 14:00-16:00>

Lesson 6 & 7. Object Oriented Programming

<2017-09-27 Wed 14:00-16:00> <2017-09-27 Wed 16:00-18:00>

Lesson 8. Traditional Planning Techniques

<2017-10-16 Mon 14:00-16:00>

In the beginning it was Gantt...

Lesson 9. Agile and Scrum

<2017-10-18 Wed 11:00-13:00>

... then the Agile movement said, "Let there be less bureaucracy"

Lesson 10. Agile and Scrum

<2017-10-23 Mon 14:00-16:00>

Lesson 11. Ruby on Rails (part 1)

<2017-10-25 Wed 11:00-13:00>

Resources:

Lesson 12. Ruby on Rails (part 2)

<2017-11-06 Mon 14:00-16:00>

Questionnaire link (optional): https://goo.gl/forms/4fezusYlImBm819W2

Lesson 13. Ruby on Rails (part 3)

<2017-11-08 Wed 14:00-16:00>

Lesson 14. Introduction to Software Testing

<2017-11-13 Mon 14:00-16:00>

Other Resources

Lesson 15. TDD & BDD

<2017-11-15 Wed 14:00-16:00>

TDD Example (Calculator kata):

Testing in Rails:

  • Instructions to install and setup RSpec + Cucumber in your Rails app
  • Example scenarios
  • Step definitions
  • Check out the whole book example app (features, spec/factories directories and Gemfile)
  • To run the tests: rake cucumber

Lesson 16. Putting all together

<2017-11-20 Mon 14:00-16:00>

From start to end: simulating the development process using traditional techniques. From requirements to a plan, from the plan to the costs (and price).

Why people like TDD.

Lesson 17. A recap on Cucumber and TDD

<2017-11-22 Wed 14:00-16:00>

Recap on Cucumber and TDD.

Lesson 18. Putting all together (part II)

<2017-11-27 Mon 14:00-16:00>

From start to end, if you are using SCRUM: simulating the development process using SCRUM. From a user request to a series of incrementally better products. Project structure and budgeting when requirements are known in advance. Project structure and budgeting when requirements are not fully known. Why Agile is better at managing maintenance tasks.

Lesson 19. Quality Management

<2017-11-29 Wed 14:00-16:00>

Ooppss ... the HDMI curse hits again ... and quality management it is!

Slides: Quality Management.

Lesson 20. Evolutionary Applications development with Rails

<2017-12-04 Mon 14:00-16:00>

Double entry accounting example: version 1 and evolution. How Rails manages migrations (recap) and some special cases in ActiveRecord relations (two foreign_keys to the same data structure).

Lesson 21. Evolutionary Applications development with Rails (part II)

<2017-12-06 Wed 14:00-16:00>

Double entry accounting example: from version 1 to version 2 (see repo in the Examples section) and why version 2 is not the best implementation of a double-entry accounting system.

Lesson 22. Testing, Coverage, and Assignment Retrospective

<2017-12-11 Mon 14:00-18:00>

  • Scenarios: recap. Some examples on the book management system.
  • Coverage with simplecov
  • Course Retrospective

Lesson 23. Regrets and Despair. Joy and Celebrations.

<2017-12-18 Mon 14:00-16:00>

Assignment discussion and possible improvements.

You can’t perform that action at this time.