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

Tarkvaratehnika 2025/26 sügis

  • Main
  • Lectures
  • Labs
  • Quizzes
  • Message Board
  • Exams
  • Grading
  • Reading

Lectures

Lectures will be conducted online. The link to join the online lectures will be available in Moodle from September 2025.

  • Lectures: Fridays 10:15-12:00, Online (via Moodle)

The handouts and materials are partly from last year's lecture (2024). Notice: Updated slides, videos, and materials will be posted on Moodle.

  • Lecture 1 (05-Sep-2025) - Introduction to Software Engineering
    • Course Organization
    • Overview of Software Engineering
    • Background / Motivation of Homework Assignment 1
  • Lecture 2 (12-Sep-2025) - Requirements Engineering I
    • Additional Study Materials:
      • Lean requirements (by Atlasssian)
      • 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 (19-Sep-2025) - Requirements Engineering II
    • Additional Study Materials:
      • Balsamiq - A tool for developing wireframes (Mockups)
  • Lecture 4 (26-Sep-2025) - Analysis
    • 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 (3-Oct-2025) - Development Infrastructure - Development/Build/Collaboration Tools
    • 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 (10-Oct-2025) - Continuous Development & Integration - by Kristiina Rahkema
  • Lecture 7 (17-Oct-2025) - Project Estimation / Architecture and Design I
  • Lecture 8 (24-Oct-2025) - Architecture and Design II
    • Additional Materials:
      • Eric Freeman and Elisabeth Robson : Head First Design Patterns: A Brain-Friendly Guide (2nd Edition) , 2021
      • Alexander Shvets: Dive Into Design Patterns , 2018
      • 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 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)
      • Attribute-Driven Design method by SEI: ADD and ADD Example
      • Software Architecture QuickGuide: Link to Guide
  • Lecture 9 (31-Oct-2025) - Verification and Validation (Testing) I - by Dietmar Pfahl
    • Additional Materials:
      • JUnit5 User Guide
      • Free Coursera Tutorial on Java Unit Testing using JUnit5: https://www.coursera.org/learn/unit-testing-in-java/ungradedLti/BDxG6/unit-testing-in-java
  • Lecture 10 (07-Nov-2025) - Verification and Validation (Testing) II - by Dietmar Pfahl
    • Additional Materials:
      • Link to TDD/BDD Tool Cucumber Tutorial: https://toolsqa.com/cucumber-tutorial
      • The Open Worldwide Application Security Project (OWASP) - Top 10 Security Risks: https://owasp.org/www-project-top-ten/
  • Lecture 11 (14-Nov-2025) - Refactoring (and TDD)
    • 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
    • List of Refactorings for Code Smells: (link)
  • Lecture 12 (21-Nov-2025) - Agile/Lean Methods I
    • https://scrumguides.org/scrum-guide.htmlwithm Guide
    • Agile life-cycle models
    • 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 (28-Nov-2025): Guest Lecture by Luis Cruz (Assistant Professor at TU Delft), Topic Sustainable/Green Software Engineering
  • Lecture 14 (05-Dec-2025): Course wrap-up, review and exam preparation (with training quiz)
  • 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