Lectures
- Lecture 1 (06-Sep-2019) - Introduction to Software Engineering
- Course Organization: (pdf-2019-1)
- Overview of Software Engineering: (pdf-2019-2)
- Homework Assignment 1: (pdf-2019-3)
- Video: (video-2019)
- Lecture 2 (13-Sep-2019) - Requirements Engineering I
- Slides: (pdf-2019)
- Video: (video-2019)
- Lean requirements (by Atlasssian)
- INVEST in good Stories, and SMART Tasks (by Bill Wake)
- Hints on how to write testable requirements
- Balsamiq - A tool for developing wireframes (Mockups)
- A series of You Tube videos by Lars Bilde explaining the steps from first interviews with stakeholders to user stories, tasks, and sprint planning (note: these videos promote the use of the commercial tool ScrumWise - any other backlog management and sprint planning tool may be used instead):
- Initial user stories extracted from interview
- First backlog items (user stories)
- Finding more User Stories from existing User Stories (e.g., by splitting up)
- Splitting User Stories into Tasks?
- General remarks about the right level of backlog planning detail
- Planning the first (or next) sprint
- Time tracking with the Task Board
- Sprint Burndown Chart
- Lecture 3 (20-Sep-2019) - Requirements Engineering II
- Slides: (pdf-2019)
- Video: (video-2019)
- Lecture 4 (27-Sep-2019) - Analysis
- Slides: (pdf-2019)
- Video: (video-2019)
- UML notation: (wikipedia-link)
- Domain modelling rules - with examples: (link)
- Agile domain modelling - with example: (link)
- Seven information 'smells' of domain modelling - with example: (link)
- Lecture 5 (04-Oct-2019) - Development Infrastructure - Development/Build/Collaboration Tools - by Stepan Bolotnikov, Proekspert AS
- Slides: (pdf-2019)
- Video: (video-2019)
- Topics:
- Basics of IDE (focus on IntelliJ IDEA) -- short recap
- Build scripts (focus on Gradle) -- short recap
- Version control (focus on Git)
- Build scripts (focus on Gradle)
- Issue tracker (focus on Bitbucket)
- Communication tools (focus on Bitbucket wiki)
- Links to descriptions/tutorials on how branching works in Git and what types of workflows are useful:
- Lecture 6 (11-Oct-2019) - Continuous Development & Integration - by Kristiina Rahkema
- Slides: (pdf-2019)
- Video: (video-2019)
- Lecture 7 (18-Oct-2019) - Project Estimation / Architecture and Design I
- Slides: (pdf-2019-EstimationWithUseCases) and (pdf-2019-Architecture&DesignIntro)
- Video: (video-2019)
- Lecture 8 (25-Oct-2019) - Architecture and Design II
- Slides: (pdf-2019)
- Video: (video-2019)
- Two videos on software design given by Erik Jogi (Codeborne) in the course on Systems Modeling (2015):
- Part 1: http://www.uttv.ee/naita?id=22772
- Part 2: http://www.uttv.ee/naita?id=22820
- Two videos on the architectural pattern MVC:
- Two videos on software design given by Erik Jogi (Codeborne) in the course on Systems Modeling (2015):
- Code example of a simple MVC implementation in Java: MVC example
- Here is a link to a series of mini-tutorials (~15 min each) by Derek Banas about design patterns: (link)
- Examples of Java implementations of design patterns: (link)
- Example of a SW Architecture Description from a student project: Course Registration System
- Example DSSA Reference Architecture: MURA
- Short overview of first generation Architecture Description Languages: ADLs
- Attribute-Driven Design method by SEI: ADD and ADD Example
- Lecture 9 (01-Nov-2019) - Verification and Validation (Testing) I
- Slides: (pdf-2019)
- Video: (video-2019)
- JUnit4 tutorials with IntelliJ IDEA by Brian Fraser:
- JUnit4 Tutorial 1 -- Basics
- JUnit4 Tutorial 2 -- Testing Exceptions, Code Coverage, Test Fixtures
- JUnit5 User Guide
- Lecture 10 (08-Nov-2019) - Verification and Validation (Testing) II
- Slides: (pdf-2019) -- the last slides of the lecture will be covered next week!
- Video: (video-2019)
- Link to book on TDD and ATDD (=BDD): (TDD book) -- Note: you have to create an account to be able to read all chapters (it's free of charge)
- Link to BDD Tool Cucumber Tutorial: (Cucumber)
- The Ten Most Critical Web Application Security Risks: PDF
- Lecture 11 (15-Nov-2019) - Refactoring (and TDD)
- Slides: (pdf-2019)
- Video: (video-2019)
- Introduction to TDD by Scott Ambler: (TDD-Ambler)
- Introduction to TDD by Bob Martin: (TDD-Martin)
- List of Refactorings for Code Smells: (link)
- For self-study: Introductory refactoring example by Fowler: (pdf)
- (video-2017: Refactoring Demo Part 1) -- 12:15 min
- (video-2017: Refactoring Demo Part 2) -- 9:03 min
- (video-2017: Refactoring Demo Part 3) -- 6:39 min
- (video-2017: Refactoring Demo Part 4) -- 3:18 min
- (video-2017: Refactoring Demo Part 5) -- 2:48 min
- (video-2017: Refactoring Demo Part 6) -- 2:54 min
- (video-2017: Refactoring Demo Part 7) -- 5:27 min
- (video-2017: Refactoring Demo Part 8) -- 11:52 min
- Lecture 12 (22-Nov-2019) - Agile/Lean Methods
- Slides: (pdf-2019) -- Note: the part on Lean Development will be covered in the first 10 min of Lecture 14
- Video: (video-2019) -- the first few minutes seem to have no sound
- Scrum Guide
- Agile life-cycle models
- Interesting blog entry comparing Scrum with Kanban in a Finnish organisation: (link)
- Link to PivotalTracker for backlog management: https://www.pivotaltracker.com
- Blog entry on '7 Wastes' of Agile Software Development: (link)
- Interesting videos about the agile/lean software development approach at Spotify (13 min each):
- Lecture 13 (29-Nov-2019) - Agile Practice in Industry (Guest Lecture) -- "How an idea gets shipped" by Karl-Aksel Puulmann and Uku Pattak (eAgronom)
- Announcements:
- Slides: pdf-announcement-slides
- Guest Lecture:
- Slides: (pdf-2019)
- Video: (video-2019) -- Unfortunately, the audio quality is very low.
- Announcements:
- Lecture 14 (06-Dec-2019) - Course wrap-up, review and exam preparation (with training quiz)
- Slides: (pdf-2019)
- Video: (video-2019) -- The first 13 min of the video is about Lean SW Development (last part of Lecture 12)
- There will also be a practice quiz (to prepare for the exam)!
- The quiz is voluntary and you won't get marks for it. :)
- The answers to the questions in the training quiz will be given in the lecture but will not be included in the uploaded slides.
- Lecture 15 (13-Dec-2019): no lecture! (but there are assessment labs during week 15)