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

Tarkvaratehnika 2018/19 sügis

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

Lectures

  • Lecture 1 (07-Sep-2018) - Introduction to Software Engineering
    • Course Organization: (pdf-2018-1)
    • Overview of Software Engineering: (pdf-2018-2)
    • Homework Assignment 1: (pdf-2018-3)
    • Video: (video-2018)
  • Lecture 2 (14-Sep-2018) - Requirements Engineering I
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • 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 (21-Sep-2018) - Requirements Engineering II
    • Slides: (pdf-2018) - Note: The part "Project Estimation with Use Cases" will be covered at the beginning of Lecture 7 (Architecture and Design).
    • Video: (video-2018)
  • Lecture 4 (28-Sep-2018) - Analysis
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • 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 (05-Oct-2018) - Development Infrastructure I - Development Tools - by Stepan Bolotnikov, Guardtime
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • Topics:
      • Basics of IDE (focus on IntelliJ IDEA)
      • Version control (focus on Git)
    • 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
      • Git versus Mercurial (Mercurial Tutorial)
  • Lecture 6 (12-Oct-2018) - Development Infrastructure II - Build and Collaboration Tools - by Stepan Bolotnikov, Guardtime
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • Topics:
      • Build scripts (focus on Gradle)
      • Issue tracker (focus on Bitbucket)
      • Communication tools (focus on Bitbucket wiki)
  • Lecture 7 (19-Oct-2018) - Architecture and Design
    • Slides: (pdf-2018-EstimationWithUseCases) and (pdf-2018-Architecture&Design)
    • Video: (video-2018)
      • 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)
    • 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 8 (26-Oct-2018) - Verification and Validation (Testing) I
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • JUnit4 tutorials with IntelliJ IDEA by Brian Fraser:
      • JUnit4 Tutorial 1 -- Basics
      • JUnit4 Tutorial 2 -- Testing Exceptions, Code Coverage, Test Fixtures
  • Lecture 9 (02-Nov-2018) - Verification and Validation (Testing) II
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • 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)
  • Lecture 10 (09-Nov-2018) - Continuous Development & Integration - by Svetlana Omelkova, Taxify
    • Slides: (pdf-2018) (video-2018)
    • Topics:
      • What is Continuous Integration
      • Why to use CI
      • CI best practices
    • Demos:
      • Jenkins CI in Taxify
      • CI for open source projects with Travis CI (link: https://github.com/omelkova/CI_travis_demo)
  • Lecture 11 (16-Nov-2018) - Refactoring (and TDD)
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • Introduction to TDD by Scott Ambler: (TDD-Ambler)
    • Introduction to TDD by Bob Martin: (TDD-Martin)
    • TDD tutorial on Eclipse (very basic TDD example): (tutorial-link)
    • Link to web-page with Test-Driven Development (TDD) resources: (TDD-link)
    • List of Refactorings for Code Smells: (link)
    • 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 (23-Nov-2018) - Agile/Lean Methods
    • Slides: (pdf-2018)
    • Video: (video-2018)
    • 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
    • Interesting 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)
  • No lecture on 30-Nov-2018
  • Lecture 13 (07-Dec-2018) - Software Craftsmanship, the Codeborne Way - by Anton Keks, Codeborne
    • Announcements:
      • pdf-announcement-slides
      • video-announcment (10 min)
    • Slides of Anton Keks' talk: (pdf-2018)
    • Video of Anton Keks' talk: (video-2018)
    • Elements of agile working at Codeborne: https://codeborne.com/2015/08/10/working-agile.html
    • Codeborne promo video: https://codeborne.com/et/
  • Lecture 14 (14-Dec-2018) - Course wrap-up, review and exam preparation (with training quiz)
    • Slides: (pdf-2018) - Note: The answers to the questions in the training quiz will be given in the lecture.
    • There will also be a practice quiz (to prepare for the exam)! The quiz is voluntary and you won't get marks for it. :)
  • 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