TDDI02: PM FÖR DESIGNDOKUMENT ============================= Designdokumentet (-specifikationen) ska återspegla kravspecen. Den ska utgöra en 'ritning' på hur systemet ska byggas, så att man i stort sett kan 'koda av' den (fast så enkelt är det givetvis inte). Men den ska i princip vara språkoberoende. Specifikationen ska vara ett dokument i enlighet med någon standard för dokument. Inte 'lösa papper'. BESTÅNDSDELAR: Allmänt: Försättsblad, innehållsförteckning och sådant. Som vanligt en mycket kort presentation av uppgiften och en referens till andra dokument (= kravspecen). En arkitektur: - Systemets/programmets indelning i STÖRRE moduler (klasser, funktionella moduler, andra slags). - En liten textlig beskrivning, mycket översiktlig, av resp moduls uppgift(er). - Relationer mellan moduler, t ex vilka som används av vilka, arv och liknande. Men inte detaljerat, utan så att 'arkitekturen' framstår tydligt. En DETALJERAD (lågnivå) modulspec, per modul ('modulkontrakt'): - Modulens namn, uppgifter. - Dess 'ingångar', i allmän mening; det som kan hanteras på ytan (eller 'utifrån'), metoder (motsv.), variabler(?), ... - För var och en: namn, funktionalitet, parametrar, typer, värden, ..., och eventuella externa effekter (I/O). - I den händelse det kan behövas även 'ritningar' på särskilt komplicerade datastrukturer. Mer komplicerade än raka, länkade listor. I synnerhet om sådana ska 'delas' mellan flera moduler. Det är här som namn på olika storheter slutligen fastställs, liksom det 'utlovade' interfacet mot andra moduler. Skilj alltså noga på det övergripande, dvs arkitekturen, och detaljerna, i modulspecen. Design av ANVÄNDARGRÄNSSNITT i den händelse detta inte redan skett (krav från användare). Detta ska nu vara detaljerat. T ex menyers faktiska utseende, vilka kom- mandoorden är, dess parametrar. Eller utseendet av GUIs. Design av DATABAS/FILSTRUKTURER: Behövs i de fall data måste lagras externt. Också tämligen i detalj. VERIFIKATION/VALIDERING: Ja, man behöver ju kolla, så långt det går, att denna spec verkligen är en 'avbild' av kravspecen. Inget fråndraget, inget tillagt, all funktionalitet i enlighet med kravspec. Ställ dig frågan "kan verkligen nån annan nu implementera programmet utifrån desigdokumentet?"