Skip to content

Latest commit

 

History

History
273 lines (159 loc) · 9.71 KB

kuvat.md

File metadata and controls

273 lines (159 loc) · 9.71 KB

                                     Luento 10

                                    28.11.2023

SAFe: paljon rooleja

{ width=450 }

SAFe: paljon artefakteja

{ width=450 }

LeSS

{ width=430 }

Spotifyn malli

{ width=350 }

                                     Luento 9

                                    29.11.2023

Lean thinking house

{ width=300 }

Perimmäisen syyn analyysi: five whys

{ width=400 }

                                     Luento 8

                                    21.11.2023

Laadukkaan koodin tuntomerkkejä

. . .

  • Laadukkaalla koodilla joukko yhteneviä ominaisuuksia, tai laatuattribuutteja, esim. seuraavat:
    • kapselointi
    • korkea koheesion aste
    • riippuvuuksien vähäisyys
    • toisteettomuus
    • testattavuus
    • selkeys

                                     Luento 7

                                    20.11.2023

Kerrosarkkitehtuuri

  • Kerros on kokoelma toisiinsa liittyviä olioita, jotka muodostavat toiminnallisuuden suhteen loogisen kokonaisuuden

{ width=200 }

Mikropalveluarkkitehtuuri

{ width=250 }

  • sovellus koostataan useista (jopa sadoista) pienistä verkossa toimivista autonomisista palveluista

                                     Luento 6

                                    14.11.2023

Test driven development (TDD)

{ width=340 }

  1. Kirjoitetaan sen verran testiä että testi ei mene läpi
  2. Kirjoitetaan koodia sen verran, että testi menee läpi
  3. Jos huomataan koodin rakenteen menneen huonoksi refaktoroidaan koodin rakenne paremmaksi
  4. Jatketaan askeleesta 1

Testit asiakkan kielellä

{ width=400 }

Deployment pipeline

  • Vaiheet, joiden suorittaminen edellytetään, että commitattu koodi saadaan siirrettyä staging/tuotantoympäristöön

{ width=400 }

Canary release

  • Kaksi rinnakkaista tuotantoympäristöä, joista uudet ominaisuudet viedään toiseen

{ width=400 }

                                     Luento 5

                                    13.11.2022

Testauksen tasot

  • Yksikkötestaus (unit testing)

    • Yksittäisten luokkien, metodien ja moduulien testaus erillään muusta kokonaisuudesta
  • Integraatiotestaus (integration testing)

    • Yksittäin testattujen komponenttien liittäminen yhteen eli integrointi ja kokonaisuuden testaus
  • Järjestelmätestaus (system testing)

    • Toimiiko ohjelmisto vaatimuksiin kirjatulla tavalla?
    • Tutkii järjestelmää kokonaisuudessaan: end to end -testaus
    • Jakautuu useisiin alalajeihin
  • Käyttäjän hyväksymistestaus (user acceptance testing)

    • Loppukäyttäjän tuotteelle suorittama testaus

Testisyötteiden valinta: palautussovellus

  • Mitä testitapauksia kannattaisi valita palautussovelluksen testaamiseen?

{ width=350 }

Ohtuvarasto: tyhjä, puolitäysi, täysi

class Varasto
    def __init__(self, tilavuus, alku_saldo = 0):
        self.tilavuus = tilavuus
        self.saldo = alkusalto

    def ota_varastosta(self, maara):
        if maara < 0:
            return 0.0

        if maara > self.saldo:
            kaikki_mita_voidaan = self.saldo
            self.saldo = 0.0
            return kaikki_mita_voidaan

        self.saldo = self.saldo - maara
        return maara

  • Rakenteeseen perustuva integraatio

{ width=100 }

  • Ominaisuuksiin perustuva integraatio

{ width=100 }

"V-malli"

{ width=400 }

                                     Luento 4

                                    7.11.2022

Hyvä product backlog on DEEP

  • Detailed appropriatly
  • Estimated
  • Emergent
  • Prioritized

{ width=350 }

Sprint backlog

{ width=400 }

WIP-rajoitteet

{ width=400 }

WIP-rajoitteet

{ width=400 }

                                     Luento 3

                                    6.11.2023

Ohjelmiston elinkaari (software lifecycle)

  • Vaatimusten analysointi ja määrittely
  • Suunnittelu
  • Toteutus
  • Testaus
  • Ohjelmiston ylläpito ja evoluutio

Vaatimusmäärittely 2010-luvulla: Lean startup

{ width=250 }

User story

  • Mike Cohn:

    • A user story describes functionality that will be valuable to either user or purchaser of software.
  • User stories are composed of three aspects:

    1. A written description
    2. Conversations
    3. Tests

Hyvän storyn kriteerit

  • Bill Wake INVEST in good User Stories, kuusi toivottavaa ominaisuutta
    • Independent
    • Negotiable
    • Valuable to user or customer
    • Estimable
    • Small
    • Testable

                                     Luento 2

                                    31.10.2022

Scrum kuvana

{ width=440 }

                                     Luento 1

                                    30.10.2022

Ohjelmiston elinkaari (software lifecycle)

Riippumatta tyylistä ja tavasta, jolla ohjelmisto tehdään, käy ohjelmisto läpi seuraavat vaiheet

  • Vaatimusten analysointi ja määrittely
  • Suunnittelu
  • Toteutus
  • Testaus
  • Ohjelmiston ylläpito ja evoluutio

Vaiheista muodostuu ohjelmiston "elinkaari"

Vesiputousmalli

Winston W. Royce: Management of the development of Large Software, 1970

{ width=440 }

Roycen kahden iteraation malli

{ width=400 }

Iteratiivinen ohjelmistokehitys

{ width=400 }