lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

1. Problembeskrivning

Idag är det många som pendlar med cykel, antingen hela vägen från hemmet till sitt arbete, eller genom att ställa cykeln vid en busshållplats eller järnvägsstation för att åka vidare med kollektivtrafik. Detta är också något som bl a kommunerna vill uppmuntra. Därför är det ett problem om cykelställ vid till exempel järnvägsstationer är överfulla, antingen bara för att belastningen på dem är för stor, eller för att där står cyklar som inte längre används eller till och med är oanvändbara. Ett annat problem är risken för stöld i publika cykelställ. 

Sammantaget innebär detta att det finns ett behov av förvaltade cykelgarage, där det är möjligt att begränsa antalet tillåtna cyklar, kontrollera vem som är ägare till en viss cykel, kontrollera vilka cyklar som inte har använts under mycket lång tid, se hur många cyklar som för tillfället är i garaget, etc. 

I kursen ska du anta att du arbetar på ett företag som under ganska lång tid har försökt sälja ett koncept med datorstyrda cykelgarage till kommuner och stora arbetsplatser. Företaget du arbetar på har nu lyckats sälja sin lösning till en järnvägsstation i den södra delen av Sverige. 

I det här företaget ingår du i ett projekt med målsättningen att utveckla mjukvaran för systemet. Andra projekt arbetar med att avgöra vilka hårdvarukomponenter som ska användas och att utveckla drivrutiner för hårdvaran. Ditt projekt och projektet för hårdvaran har samma deadline. 

Eftersom hårdvaran och drivrutinerna utvecklas parallellt med mjukvaran har gränssnittet mellan hårdvara och mjukvara definierats i detalj. Dessa gränssnitt måste följas och de kan inte ändras under projektets gång. 

Mjukvarans exakta funktioner är inte lika tydliga. Kunden har gjort en högnivåbeskrivning (avsnitt 2, 3 och 4) av vad som bör fungera, som underlag för att ta fram mer detaljerade krav. 

Kunden är ganska flexibel när det handlar om exakt vilka funktioner som ska ingå i programmet så länge det är rimligt. Dessutom är kunden inte riktigt klar över vilka affärsmål och produktmål man har för anläggningen. Kunden har flera olika väl genomtänkta alternativ och vil ha projektets hjälp även med det: Kända alternativ för affärsmål kan kortfattar rubriceras:

  • Public service: Kostnadsfritt för den pendlande användaren med smidig access, låg säkerhet och utan garantier.
  • Gated community: Betalande användare som garanteras plats och en säker förvaring av sina exklusiva cyklar.
  • Skalbarhet: Förberett för uppskalning till en serie sammanlänkade garage där cykelägaren har fri tillgång.
  • Billig drift: Stabilt och enkelt att underhålla, låg service till cykelägarna
  • Cykelgarage som produkt: Ägaren ska enkelt kunna generera och konfigurerar nya och inbördes oberoende garage.

Men även om kunden inte är så precis angående funktionerna avser företaget du arbetar på att fortsätta utvecklingen av systemet, samt sälja det till andra kunder. Därför är det viktigt att kraven som specificeras är fullständiga och korrekta. Detta innebär att projektet, utöver att leverera en fungerade programvara till kundens anläggning har som projektmål levera programkod och produktdokumentation i ett sådant skick att det är smidigt för ett annat efterföljande utvecklingsteam att vidareutveckla systemet.