Kravspecifikation Hur man söker fram poängbidrag för en given Område studiedokumentation 2010-06-10 Status: Första utkast
Martin Edlund 2010-06-10 2 (8) Ändringshistorik Datum Av Kommentar Godkännare 2010-06-10 Martin Edlund Första utkast -
Martin Edlund 2010-06-10 3 (8) Innehållsförteckning 1 INLEDNING... 4 1.1 SYFTE... 4 1.2 AVGRÄNSNINGAR... 4 1.3 FÖRUTSÄTTNINGAR... 4 1.3.1 Sökargument... 4 1.4 FÖRKLARINGAR... 5 1.4.1 Förklaringar av terminologi... 5 2 FRAMSÖKNING AV POÄNGBIDRAG... 5 2.1 ALLMÄNNA KRAV... 5 2.2 KRAV PÅ FLÖDE... 6 2.2.1 Framsökning av poängbidrag vid terminsregistrering... 6 2.2.2 Framsökning av poängbidrag vid... 7 3 KRAVFÖRTECKNING... 7
Martin Edlund 2010-06-10 4 (8) 1 Inledning 1.1 Syfte Anledning till att ha en algoritm som beskriver hur man söker fram poängbidrag för en given är att det är ett återkommande problem att söka fram poängbidrag för registreringar. Genom att ha ett tydligt uttalat sätt att omhänderta det behöver vi inte oroa oss för att det kan skilja mellan olika funktioner som utför det som algoritmen beskriver och vi behöver heller inte uppfinna hjulet på nytt om denna funktionalitet skall implementeras någon annanstans. 1.2 Avgränsningar Algoritmen skall inte beröra poängbidrag för registreringar på inresande utbytesstudenter. När det gäller en utsökning för inresande utbytesstudenter är det enkelt att ta med uppgiften om registreringens poängbidrag i utsökningen som tar fram registreringen. I de fall där utbildningsmomentet definieras med hjälp av fritextfälten direkt i tabellen UBINDRG definieras också poängen i densamma och när utbildningsmomentet är en referens från UBINDRG till ett prov inom en kurs definierad i Ladok finns poängbidraget i tabellen PROV. Så den som vill ta fram poängbidraget för denna typ av registrering gör det enklast i utsökningen. Det är således ingen poäng med att ha en variant för inresande utbytesstudenter i algoritmen som letar fram en registrerings poängbidrag. 1.3 Förutsättningar I och med att det är besvärligt att söka fram en registrerings poängbidrag i samma utsökning som tar fram registreringarna är det klokt att fylla på de framsökta registreringsposterna med denna uppgift i ett andra steg. Så vi utgår här ifrån att vi är i ett läge där en utsökning på registreringar redan gjord. 1.3.1 Sökargument För att kunna söka fram poängbidraget för en registrering behöver denna bestå av vissa uppgifter. Dessa är: - Personnummer - Kurskod - Termin i ordning (avser kurstillfället) - Kalendertermin - Programkod (ej enstaka kurs) - Programinriktning (ej enstaka kurs) - Starttermin - Kurstakt - Kurstid
Martin Edlund 2010-06-10 5 (8) - Undervisningsform - Ort - Kursomgång - Finansieringsform/Kurstyp 1.4 Förklaringar 1.4.1 Förklaringar av terminologi Ord R[kravnummer] R[kravnummer]-T R[kravnummer]-K Förklaring Beteckning för ett krav som gäller både termins- och Beteckning för ett krav där terminsregistrering används Beteckning för ett krav där används 2 Framsökning av poängbidrag 2.1 Allmänna krav R1 Algoritmen skall börja med att söka där det är rimligast att hitta poängbidraget Algoritmen skall börja med att söka där det är rimligast att hitta poängbidraget för en registrering. Och så länge vi inte hittar det fortsätter vi. Vid träff avbryter vi. R2 Algoritm skall klara av de sätt som kan användas för att registrera en student Algoritm skall klara av att söka fram poängbidrag oavsett det sätt studenten är registrerad på. Typer som skall kunna hanteras: terminsregistrering R3 Algoritmen skall kunna ta hand om förstagångs-, och fortsättningsregistreringar Algoritmen skall kunna ta hand om följande varianter på registreringar: förstagångsregistreringar omregistreringar fortsättningsregistreringar R4 Algoritmen skall ta i beräkning på det sätt en kurs kan ges Algoritmen skall ta i beräkning på det sätt en kurs kan ges. Det är följande sätt: fristående inom ett program
Martin Edlund 2010-06-10 6 (8) 2.2 Krav på flöde R5 Ta först reda på om kurs- eller terminsregistrering används 1. Om en är knuten till ett program a. Läs i tabellen LINJE med programkoden. Om LINJEREG= J så genomför framsökning av poängbidrag vid terminsregistrering (se rubrik 2.2.1), annars genomför framsökning av poängbidrag vid (se rubrik 2.2.2) 2. Om en inte är knuten till ett program så genomför framsökning av poängbidrag vid (se rubrik 2.2.2) R9 Poängbidraget kan inte överstiga 30 Poängbidraget kan inte överstiga 30. Om det skulle göra det, så rundar vi av det till 30 för att det skall bli mer korrekt. Notera att vi i vissa lägen inte har någon exakt uppgift utan snarare har som enda alternativ att utföra något av en kvalificerad gissning och då kan detta inträffa. 2.2.1 Framsökning av poängbidrag vid terminsregistrering R6 Sök efter poängbidrag för en registrering utifrån hur den fördelats på aktuell termin Vi söker i tabell KTILLP på olika sätt. Så fort vi får träff kan vi avbryta. 1. Läs KTILLP med fullständig nyckel (kurskod, starttermin, programkod, programinriktning, termin i ordning) 2. Om utebliven träff, hämta personens eventuella andra inriktningar på programmet från ANTINR och slå i KTILLP med var och en av dessa a. Slå i tabell ANTINR med personnummer och programkod b. För var och en av de träffar vi får, slå i KTILLP med fullständig nyckel, där vi tar programinriktning från ANTINR 3. Om utebliven träff, läs KTILLP med fullständig nyckel där vi låter programinriktning vara blankunderscore ( _ ). 4. Om utebliven träff, kolla i PROGPLH om kurs är inom ett program där alla inriktningar får väljas. Då läser vi KTILLP med nyckel förutom inriktning. a. Hämta programtermin i. Läs tabellen FFGLIN med personnummer, programkod och termin ii. Om utebliven träff, läs tabellen OMREGLIN med personnummer, programkod och termin iii. Om utebliven träff, använd registreringens termin i ordning b. Läs tabell PROGPLH med fullständig nyckel i. Om träff och ALLAINR = J, dvs kurser där alla inriktningar får väljas, läs KTILLP med fullständig nyckel men där inriktning utelämnas. Vi tar poängen från första bästa post.
Martin Edlund 2010-06-10 7 (8) R7 Sök efter poängbidrag för en registrering utifrån programplan/kurs/kurstillfälle Sök efter poängbidraget genom att kontrollera om kursen finns i programplanen. Om så är fallet hämta poängen ur tabellen KURS. Om så inte är fallet hämta poängen från definitionen av kurstillfället. 1. Läs tabellen PROGPLK med fullständig nyckel (program, programinriktning, termin och kurskod) a. Om träff, läs tabell KURS och hämta poängen därifrån 2. Om utebliven träff, utför sökning enligt rubrik 2.2.2 a. Om det rör kurstillfällets termin ett i. Läs tabell KTILL2 med fullständig nyckel ii. Om utebliven träff, läs tabell KTILL2 med fullständig nyckel men där finansieringsform/kurstyp är blank-underscore ( _ ) iii. Om utebliven träff, läs tabell KURS med kurskod b. Om det rör kurstillfällets termin två eller senare i. Läs tabell KTFORT2 med fullständig nyckel ii. Om utebliven träff, läs tabell KTFORT2 med fullständig nyckel men där finansieringsform/kurstyp är blank-underscore ( _ ) 2.2.2 Framsökning av poängbidrag vid R8 Sök efter poängbidrag för en registrering utifrån kurstillfälle/kurs 1. Om det rör kurstillfällets termin ett a. Läs tabell KTILL2 med fullständig nyckel b. Om utebliven träff, läs tabell KTILL2 med fullständig nyckel men där finansieringsform/kurstyp är blank-underscore ( _ ) c. Om utebliven träff, läs tabell KURS med kurskod 2. Om det rör kurstillfällets termin två eller senare a. Läs tabell KTFORT2 med fullständig nyckel b. Om utebliven träff, läs tabell KTFORT2 med fullständig nyckel men där finansieringsform/kurstyp är blank-underscore ( _ ) 3 Kravförteckning R1 ALGORITMEN SKALL BÖRJA MED ATT SÖKA DÄR DET ÄR RIMLIGAST ATT HITTA POÄNGBIDRAGET... 5 R2 ALGORITM SKALL KLARA AV DE SÄTT SOM KAN ANVÄNDAS FÖR ATT REGISTRERA EN STUDENT... 5 R3 ALGORITMEN SKALL KUNNA TA HAND OM FÖRSTAGÅNGS-, OCH FORTSÄTTNINGSREGISTRERINGAR... 5 R4 ALGORITMEN SKALL TA I BERÄKNING PÅ DET SÄTT EN KURS KAN GES... 5 R5 TA FÖRST REDA PÅ OM KURS- ELLER TERMINSREGISTRERING ANVÄNDS... 6
Martin Edlund 2010-06-10 8 (8) R9 POÄNGBIDRAGET KAN INTE ÖVERSTIGA 30... 6 R6 SÖK EFTER POÄNGBIDRAG FÖR EN REGISTRERING UTIFRÅN HUR DEN FÖRDELATS PÅ AKTUELL TERMIN... 6 R7 SÖK EFTER POÄNGBIDRAG FÖR EN REGISTRERING UTIFRÅN PROGRAMPLAN/KURS/KURSTILLFÄLLE... 7 R8 SÖK EFTER POÄNGBIDRAG FÖR EN REGISTRERING UTIFRÅN KURSTILLFÄLLE/KURS... 7