CS-C3150 - Software Engineering, Lecture, 2.9.2024-29.11.2024
Kurssiasetusten perusteella kurssi on päättynyt 29.11.2024 Etsi kursseja: CS-C3150
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.
-
This module has of one compulsory and nine recommended videos.
- Module introduction and overview by Casper Lassenius (40 min)
Recommended (highly recommended in bold font) videos - Derek Banas UML 2.0 Tutorial
- UML 2.0 Tutorial - Use Case Diagrams (13 min)
- UML 2.0 Activity Diagrams (12 min)
- UML 2.0 Class Diagrams (17 min)
- UML 2.0 Sequence Diagrams (12 min)
- UML 2.0 Communication Diagrams (10 min)
- UML 2.0 Timing Diagrams (9 min)
- UML 2.0 Component Diagrams (18 min)
- UML 2.0 State Machine Diagrams (13 min)
- UML 2.0 Deployment Diagrams (8 min)
-
Lukuaineisto 1: Software Design Tiedosto PDFExcerpt from: Sommerville, I. (2016) Software engineering. Tenth edition. Boston, USA: Pearson.
-
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. -
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ä: 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.
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:
- 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()
- Käyttäjät vuorovaikuttavat sähköpostijärjestelmän kanssa.
- 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ä()
- Liite
- Kuvaa liitettä sähköpostissa.
- Jokaisella liitteellä on tiedostonimi ja tiedostokoko.
- Sähköpostilla
- Metodit: lataa(), näytäKoko()
- 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:
- 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ä()).
- 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.
- Jokaisella Käyttäjällä on yksi Postilaatikko mutta jokaisessa Postilaatikossa voi olla monia Sähköposteja
- 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ä)
- 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ä)
- Metodit:
- Sisällytä jokaiseen luokkaan metodit, jotka kuvaavat sen perustoimintoja (kuten lähetäSähköposti() käyttäjälle, lataa() Liitteelle).
- 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:
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:
- 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.
- 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
- 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).
- Annosteluvaihe
- Valmistuksen jälkeen, laite annostelee valitun kahvin (Espresso, Cappuccino tai Latte) käyttäjälle.
- Kun annostelu on tehty, laite palaa joutotilaan.
- Virhetila
- Jos valinnan yhteydessä tulee ongelma (kuten ainesosien puute tai epäkelpo valinta), laite menee virhetilaan
- Ongelman ratkaisun jälkeen laite palaa joutotilaan
- Jos valinnan yhteydessä tulee ongelma (kuten ainesosien puute tai epäkelpo valinta), laite menee virhetilaan
Vaatimukset:
- Tilat:
- Tunnista ja mallinna kahvikoneen eri tilat (jouto, kahvinvalinta, valmistus, annostelu, virhe).
- Tunnista ja mallinna kahvikoneen eri tilat (jouto, kahvinvalinta, valmistus, annostelu, virhe).
- Lähtötila:
- Kaavion tulee alkaa lähtötilasta, joka johtaa joutotilaan.
- Kaavion tulee alkaa lähtötilasta, joka johtaa joutotilaan.
- Kahvinvalinta:
- Mallinna selvästi kahvinvalintatila, jossa käyttäjä valitsee Espresson, Cappuccinon tai Latten.
- Mallinna selvästi kahvinvalintatila, jossa käyttäjä valitsee Espresson, Cappuccinon tai Latten.
- Yhdistevaihe:
- Mallinna valmistusprosessia yhdistetilana, jossa on kaksi samanaikaista aktiviteettia: veden lämmitys ja papujen jauhaminen.
- Mallinna valmistusprosessia yhdistetilana, jossa on kaksi samanaikaista aktiviteettia: veden lämmitys ja papujen jauhaminen.
- Samanaikaiset tilat
- Kuvaile veden lämmitystä ja papujen jauhamista samanaikaisina tiloina valmistusprosessin aikana.
- Kuvaile veden lämmitystä ja papujen jauhamista samanaikaisina tiloina valmistusprosessin aikana.
- 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.
- Käyttäjä
-