Osion kuvaus

  • This module covers software modeling and implementation, and consists of one lecture, two chapters in the book, one quiz and one written assignment.

    • Sivu icon

      This module has of one compulsory and nine recommended videos. 

      1. Module introduction and overview by Casper Lassenius (40 min)

      Recommended (highly recommended in bold font) videos - Derek Banas UML 2.0 Tutorial

      1. UML 2.0 Tutorial - Use Case Diagrams (13 min)
      2. UML 2.0 Activity Diagrams (12 min)
      3. UML 2.0 Class Diagrams (17 min)
      4. UML 2.0 Sequence Diagrams (12 min)
      5. UML 2.0 Communication Diagrams (10 min)
      6. UML 2.0 Timing Diagrams (9 min)
      7. UML 2.0 Component Diagrams (18 min)
      8. UML 2.0 State Machine Diagrams (13 min)
      9. UML 2.0 Deployment Diagrams (8 min)
    • Tiedosto icon
    • Saatavilla vasta, kun: You are a(n) Opiskelija
      Tiedosto icon
      Lukuaineisto 1: Software Design Tiedosto PDF

      Excerpt from: Sommerville, I. (2016) Software engineering. Tenth edition. Boston, USA: Pearson.

       

    • Saatavilla vasta, kun: You are a(n) Opiskelija
      Tiedosto icon
      Lukuaineisto 2: UML@Classroom Tiedosto PDF

      Supporting material for the written exercise. Use it to support your work in doing the exercises, and read-only as much as required. Tip: use it as a reference manual.

      Seidl, M. et al. (2015) UML@Classroom: an introduction to object-oriented modeling. New York, NY: Springer.

    • Quiz -tehtävä icon
      Moduuli 7 tietovisa Quiz -tehtävä



      Tietovisa ohjelmiston mallinnuksesta ja toteutuksesta

      Älä tee tätä tietovisaa ennen kuin olet lukenut lukuaineistot JA kuunnellut luennon.

      Tietovisassa on 30 minuutin aikaraja.

      Saat kaksi yritystä. Paremman arvosana otetaan huomioon. Näet vastaukset kysymyksiin vasta kun tietovisa on sulkeutunut.



    • Tehtävä icon
      Tehtävä: Ohjelmiston Mallintaminen

      Tässä tehtävässä tulet sekä lukemaan että luomaan ohjelmistosuunnitteludiagrammeja. Käytä Lukuaineistoa 2: UML@Classroom ja linkitettyjä erilaisten diagrammityyppien selitysvideoita apunasi.

      Tässä tehtävässä on neljä alatehtävää. Käytä luentovideoita ja Lukuaineistoa 2: UML@Classroom apunasi.

      1. Selitä seuraava käyttötapausdiagrammi.

      Use-case diagram

      2. Luokkakaavio

      Mallinna yksinkertaista sähköpostijärjestelmää käyttämällä UML luokkakaaviota. Järjestelmä koostuu useista ydinkomponenteista, jotka vuorovaikuttavat keskenään. Luokkakaaviosi tulee kuvata näitä komponentteja, näiden suhteita ja tärkeitä yksityiskohtia, kuten attribuutteja ja metodeja.

      Komponentit Mallissa:

      1. Käyttäjä
        • Käyttäjät vuorovaikuttavat sähköpostijärjestelmän kanssa.
        • Jokaisella käyttäjällä on uniikki käyttäjänimi ja sähköpostiosoite.
        • Käyttäjät voivat lähettää ja vastaanottaa sähköposteja.
        • Metodit: lähetäSähköposti(), vastaanotaSähköposti()
      2. Sähköposti
        • Kuvaa sähköpostiviestiä
        • Jokaisella sähköpostilla on lähettäjä, vastaanottaja, aihe ja sisältö.
        • Sähköposteissa voi olla liitteitä.
        • Metodit: lisääLiite(), poistaLiite(), lähetä()
      3. Liite
        • Kuvaa liitettä sähköpostissa.
        • Jokaisella liitteellä on tiedostonimi ja tiedostokoko.
        • Sähköpostilla
        • Metodit: lataa(), näytäKoko()
      4. Postilaatikko
        • Jokaisella käyttäjällä on postilaatikko, johon saapuneet sähköpostit varastoidaan.
        • Postilaatikko voi sisältää lukuisia sähköposteja.
        • Metodit: lisääSähköposti(), poistaSähköposti()

      Vaatimukset:

      1. Yleistäminen:
        • Mallinna yleistyssuhde Käyttäjän ja mahdollisen alaluokan välille, Järjestelmänvalvojalle, jolla on lisämetodeja järjestelmän käyttäjien hallinnan välille. (kuten lisääKäyttäjä(), poistaKäyttäjä()).
      2. Suhteet ja paljoudet:
        • Jokaisella Käyttäjällä on yksi Postilaatikko mutta jokaisessa Postilaatikossa voi olla monia Sähköposteja
        • Jokaisella Sähköpostilla voi olla yksi lähettäjä (Käyttäjä) ja yksi tai useampi vastaanottaja (Käyttäjät)
        • Kuvaa suhteita käyttämällä oikeita lukuja.
      3. Attribuutit:
        • Jokainen luokka sisältää ainakin kaksi attribuuttia, jotka kuvaavat tärkeitä piirteitä (kuten käyttäjänimeä Käyttäjällä, aihetta Sähköpostissa, tiedostonimeä Liitteessä)
      4. Metodit:
        • Sisällytä jokaiseen luokkaan metodit, jotka kuvaavat sen perustoimintoja (kuten lähetäSähköposti() käyttäjälle, lataa() Liitteelle).

      Piirretyn kaavion lisäksi kirjoita lyhyt kuvaus, joka selittää tärkeimmät suhteet ja suunnittelupäätökset, jotka teit.

      3. Sekvenssikaavio

      Selitä seuraava sekvenssikaavio:

      Sequence diagram

      4. Tilakaavio

      Piirrä UML-tilakaavio joka mallintaa kahvikoneen toimintaa. Laite antaa käyttäjän valita eri kahvityypeistä, jauhaa pavut ja annostelee kahvin. Kaavion tulee näyttää kahvikoneen mahdolliset eri tilat ja miten se siirtyy näiden tilojen välillä.

      Kahvikoneen Toiminta:

      Kahvikone voi siirtyä eri tiloihin sen toiminnan aikana. Alla on esitetty kuvaus näistä sisällytettävistä tiloista ja valinnoista:

      1. Joutotila
        • Laite aloittaa tyhjäkäynnillä, odottaen käyttäjän valitsevan kahvin.
        • Se siirtyy pois tästä tilasta kun käyttäjä valitsee kahvityypin.
      2. Kahvinvalintatila
        • Käyttäjä valitsee saatavilla olevista kahvityypeistä: Espresso, Cappuccino tai Latte
        • Valinnan jälkeen laite vahvistaa, että sen sisällä on tarpeeksi ainesosia kahvin valmistukseen.
        • Mikäli valinta on ok ja ainesosia on riittävästi, laite siirtyy valmistusvaiheeseen. Jos ei, se siirtyy virhetilaan
      3. Valmistusvaihe (yhdistevaihe)
        • Onnistuneen valinnan jälkeen, kone siirtyy jauhamistilaan. Tämä vaihe koostuu kahdesta samanaikaisesta toiminnasta:
        • Vedenlämmitys: Laite lämmittää veden
        • Papujen jauhaminen: Laite jauhaa kahvipavut.
        • Valmistusprosessi voi vaihdella hieman riippuen valitusta kahvityypistä (kuten enemmän maitoa Latteen tai vaahtoa Cappuccinoon).
      4. Annosteluvaihe
        • Valmistuksen jälkeen, laite annostelee valitun kahvin (Espresso, Cappuccino tai Latte) käyttäjälle.
        • Kun annostelu on tehty, laite palaa joutotilaan.
      5. Virhetila
        • Jos valinnan yhteydessä tulee ongelma (kuten ainesosien puute tai epäkelpo valinta), laite menee virhetilaan
        • Ongelman ratkaisun jälkeen laite palaa joutotilaan

      Vaatimukset:

      1. Tilat:
        • Tunnista ja mallinna kahvikoneen eri tilat (jouto, kahvinvalinta, valmistus, annostelu, virhe).
      2. Lähtötila:
        • Kaavion tulee alkaa lähtötilasta, joka johtaa joutotilaan.
      3. Kahvinvalinta:
        • Mallinna selvästi kahvinvalintatila, jossa käyttäjä valitsee Espresson, Cappuccinon tai Latten.
      4. Yhdistevaihe:
        • Mallinna valmistusprosessia yhdistetilana, jossa on kaksi samanaikaista aktiviteettia: veden lämmitys ja papujen jauhaminen.
      5. Samanaikaiset tilat
        • Kuvaile veden lämmitystä ja papujen jauhamista samanaikaisina tiloina valmistusprosessin aikana.
      6. Siirtymät:
        • Mallinna siirtymiä tilojen välillä, sisältäen tapahtumat jotka aikaansaavat tilan muutoksen (kuten valinta tehty, valmistus tehty, virhe kohdattu).

      Kaavion lisäksi kirjoita lyhyt selite kuvailemaan kaaviota, keskittyen kahvinvalinta-, yhdistämis- ja samanaikaisiin tiloihin.


    • Tiedosto icon

      Gorschek, T, Tempero, E. and Angelis, L. 2014. On the use of software design models in software development practice: An empirical investigation. Journal of Systems and Software 95 (2014), pp. 176-193.

      An interesting study on the real-world use of design models.