Laboration 3
Introduktion
Syftet med denna laboration är att fortsätta öva på processen: beskrivning -> klassdiagram -> stubbar -> sekvensdiagram -> implementation. Där vi tillsammans utgår från ett kortare exempelcase och hjälps åt genom att diskutera kring de olika stegen i processen för att komma till ett resultat.
Det uppmuntras att arbeta i par för att kunna aktivt diskutera och komma fram till lösningar.
Exempelcase
Tanken är att vi ska modellera och implementera ett mindre program för en butik. Butiken innehåller från början endast en typ av produkt (dock ska vi i framtiden enkelt kunna lägga till fler). Vi ska kunna lista alla produkter och även kunna lägga till nya.
Ni ska därmed modellera en butik (Shop) som säljer elektronikprodukter (Product), mer specifikt i detta fallet är endast en produkt - ett usb (Usb, som är av typen Product). Alla produkter har ett produktnummer, namn och pris. Unikt för ett usb är storleken i GB. Dessa produkter befinner sig i butikens inventarium (Inventory). Det innebär att butiken kommer innehålla ett inventarium som i sin tur består av produkter.
Tänk att butiken är huvudklassen för programmet. Det är denna klass som har ett inventarie för att lägga till eller hämta alla produkter för utskrift. Produkter som läggs till komma placeras i inventariet och ska vara instanser av Usb-klassen (som i sin tur ärver av klassen Product).
Genomförande
- Identifiera vilka klasser vi har, vilket innehåll (attribut) och funktionalitet (metoder)
- Skissa ner ett klassdiagram innehållande relationer, kardinalitet, samt attribut och metoder för respektive klass
- Skapa stubbar för alla klasser
- Skapa ett sekvensdiagram utifrån klassdiagrammet och stubbarna
- Behöver vi revidera klassdiagram, stubbar och sekvensdiagram?
- Implementera programmet i Python
Tips
Det finns fyra stycken klasser som tillsammans utgör programmet. Den slutgiltiga funktionaliteten för programmet är att lägga till produkter (dessa behöver inte sparas i någon fil/databas, endast temporärt) och att kunna lista de sparade produkterna. Försök att komma fram till vilka metoder som behövs och koppla samman dessa till ert sekvensdiagram innan ni börjar implementera för att ha en bra grund - dock kommer dessa säkerligen att ändra sig när ni väl börjat och kanske kommer på / inser att en annan lösning passar bättre.