Arvutiteaduse instituut
  1. Kursused
  2. 2021/22 sügis
  3. Tarkvaratehnika (LTAT.05.003)
EN
Logi sisse

Tarkvaratehnika 2021/22 sügis

  • Main
  • Lectures
  • Labs
  • Message Board (Slack)
  • Exams
  • Grading
  • Reading

Lectures

The handouts and materials are partly from last year's lecture (2020). Updated sides, videos, and materials will be posted as we go (and where appropriate).

  • Lecture 1 (03-Sep-2021) - Introduction to Software Engineering
    • Course Organization: (pdf-2021-1) (video-2021-1)
    • Overview of Software Engineering: (pdf-2021-2) (video-2020-2) - video is from 2020; no significant content changes occurred since then
    • Background / Motivation of Homework Assignment 1: (pdf-2021-3) (video-2020-3) - video is from 2020; no significant content changes occurred since then
    • 2021 BBB Lecture Recording: can be found in Moodle
  • Lecture 2 (10-Sep-2021) - Requirements Engineering I
    • 2021 Slides (whole lecture): (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019) -- irrelevant materials (for 2021) have been cut out from the 2019 recording at the beginning and at the end
      • 2020 Video: (zoom-video02-2020) -- note that some calendar dates mentioned in the video are incorrect because they refer to the year 2020
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Study Materials:
      • Lean requirements (by Atlasssian)
      • INVEST in good Stories, and SMART Tasks (by Bill Wake)
      • Hints on how to write testable requirements
    • 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 (17-Sep-2021) - Requirements Engineering II
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019) -- irrelevant materials (for 2021) have been cut out from the 2019 recording at the beginning and at the end
      • 2020 Video: (zoom-video03-2020) -- Note that we lost internet connection at around 50:00 min into the recording. Therefore, there is approx. 1 min in the recording where you just see my video staring into the camera and no slides. After 1 min the normal presentation continues. Also note that some calendar dates mentioned in the video are incorrect because they refer to the year 2020.
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Study Materials:
      • Balsamiq - A tool for developing wireframes (Mockups)
  • Lecture 4 (24-Sep-2021) - Analysis
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019) -- irrelevant materials (for 2021) have been cut out from the 2019 recording at the beginning and at the end
      • 2020 Video: (zoom-video04-2020)
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Study Materials:
      • Old but still very informative summary on how to come up with a domain model: http://csis.pace.edu/~marchese/CS616/Lec5/se_l5a.htm
      • 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 (01-Oct-2021) - Development Infrastructure - Development/Build/Collaboration Tools - by Hina Anwar
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content but with different level of detail):
      • 2021 Video (split up into five parts): Part 1, Part 2 , Part 3, Part 4, Part 5
      • 2021 BBB Lecture Recording: can be found in Moodle
    • 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:
      • Git branching
      • Git branching from Bitbucket
      • Atlassian Git Tutorial - Branches
      • Atlassian Git Tutorial - Comparing Workflows
      • Pull request tutorial
      • Git versus Mercurial (Mercurial Tutorial)
  • Lecture 6 (08-Oct-2021) - Continuous Development & Integration - by Kristiina Rahkema
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019)
      • 2021 BBB Lecture Recording: can be found in Moodle
  • Lecture 7 (15-Oct-2021) - Project Estimation / Architecture and Design I
    • 2021 Slides:
      • (pdf-2021-EstimationWithUseCases) -- Part 1: This is a follow-up to Lecture 03 describing a method for project estimation based on Use Case models/descriptions
      • (pdf-2021-Architecture&DesignIntro) -- Part 2: This is an introduction to the topic software architecture and design (will be continued in Lecture 08)
    • Videos:
      • 2019 Video of Part 1 & Part 2 (full lecture): (video-2019)
      • 2020 Video of Part 1: (zoom-video07-2020-EstimationWithUseCases)
      • 2021 BBB Lecture Recording: can be found in Moodle
  • Lecture 8 (22-Oct-2021) - Architecture and Design II
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019)
      • 2020 Video Part1: (zoom-video08-2020) -- The lecture does not cover the topic "Design Patterns"; I cover the topic "Design Patterns" in a separate video (see below).
      • 2020 Video Part2: (zoom-video08-2020-DesignPatterns)
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Materials:
      • In the Object-Oriented Programming course you probably learned already about object-oriented design principles. Here is a summary: OO design principles revisited (apologies for the spamming with advertisements)
      • 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:
        • Mini-tutorial (with code example) of MVC pattern by Derek Banas: (link) (13 min)
        • JavaFX Software Tutorial: Calculator (MVC): (link) (30 min)
      • Here is a link to a series of mini-tutorials (~15 min each) by Derek Banas about design patterns: (link)
      • Code examples:
        • Code example of a simple MVC implementation in Java: MVC example
        • Code example of Publisher/Subcriber pattern without Observer Pattern, with Observer Pattern, and with PropertyChangeListener (relevant since Java9): Publisher-Subscriber (Observer Pattern) example
        • Examples of Java implementations of design patterns: (link)
      • Example of a SW Architecture Description from a student project: Course Registration System
      • Example DSSA Reference Architectures:
        • MURA (Microsoft Upstream Reference Architecture)
        • AUTOSAR (AUTomotive Open System ARchitecture)
      • Short overview of first generation Architecture Description Languages: ADLs
      • Attribute-Driven Design method by SEI: ADD and ADD Example
      • Software Architecture QuickGuide: Link to Guide
      • Tutorial on Clean Architecture for mobile app development (Android): https://www.raywenderlich.com/3595916-clean-architecture-tutorial-for-android-getting-started#toc-anchor-002
  • Lecture 9 (29-Oct-2021) - Verification and Validation (Testing) I
    • 2021 Slides: (pdf-2021) - Testing Basics (rest will be covered in Lecture 10)
    • Videos (2019/20 videos cover Testing Basics & Testing Levels):
      • 2019 Video: (video-2019)
      • 2020 Videos: (zoom-video09-2020-Part1) + (zoom-video09-2020-Part2) -- Note: Due to a broken internet connection in the middle of the lecture, two videos had to be made (the actual content of Part2 starts after 40 sec).
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Materials:
      • 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 (05-Nov-2021) - Verification and Validation (Testing) II
    • 2021 Slides: (pdf-2021) - Testing Levels & Testing Methods & Testing Types & Testing Artefacts & Metrics)
    • Videos (2019/20 videos cover Testing Methods & Testing Types & Testing Artefacts & Metrics):
      • 2019 Videos: (video-2019-TestingMethods+TestingTypes) (video-2019-TestingArtefacts+Metrics)
      • 2020 Video: (zoom-video10-2020) -- Only the slides of section "Testing Methods" (black-box and white-box testing) were covered; for the rest see 2019 videos
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Additional Materials:
      • 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 an explanation of TDD
      • Link to BDD Tool Cucumber Tutorial: (Cucumber)
      • The Ten Most Critical Web Application Security Risks: PDF
  • Lecture 11 (12-Nov-2021) - Refactoring (and TDD)
    • 2021 Slides: (pdf-2021)
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019) -- the topic "Refactoring" starts approx. at minute 33:00
      • 2020 Video: (zoom-video11-2020)
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Introduction to TDD by Scott Ambler: (TDD-Ambler)
    • Introduction to TDD by Grant Winney: (TDD-Winney)
    • 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 (19-Nov-2021) - Agile/Lean Methods
    • 2021 Slides: (pdf-2021)
      • Note: During the first 5 min of the lecture, Lota Vana will give a brief introduction into the Estonian Youth School (Noored Kooli) Foundation. These are her slides: NooredKooli slides - this is not part of the course materials.
    • Videos (whole lecture - all videos cover the same subject matter content):
      • 2019 Video: (video-2019) -- the first few minutes seem to have no sound
      • 2020 Video: (zoom-video12-2020) + (zoom-video12-Kanban+Lean-2020)
      • 2021 BBB Lecture Recording: can be found in Moodle
    • Scrum Guide
    • Agile life-cycle models
    • 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):
      • Spotify Software Engineering Culture (Part 1)
      • Spotify Software Engineering Culture (Part 2)
  • Lecture 13 (26-Nov-2021) - Agile Practice in Industry (Guest Lecture by Anton Keks, Codeborne) -- confirmed
    • Lecture Topic: 'Software Craftsmanship, the Codeborne Way' - by Anton Keks (Codeborne)
    • 2021 Slides: (pdf-2021)
    • 2021 Video: (video-2021)
    • Other materials:
      • Elements of agile working at Codeborne: https://codeborne.com/2015/08/10/working-agile.html
      • Codeborne promo video: https://codeborne.com/et/
      • Codeborne Blog: https://codeborne.com/blog/ -- Mira is one of Dietmar's former MSc students
  • Lecture 14 (03-Dec-2021) - Course wrap-up, review and exam preparation (with training quiz)
    • 2021 Slides: (pdf-2021)
    • 2020 Video: (video-2020)
    • 2021 BBB Lecture Recording: can be found in Moodle
    • 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 (10-Dec-2021): Exam consultation time on request (NB: there are assessment labs during week 15)
    • I will be available in BBB at the beginning of the lecture time. If nobody shows up and asks questions I will leave after 10 min.
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused