180 likes | 384 Views
Kvalitet. i almindelighed og i relation til softwareudvikling. Kvalitet i almindelighed. En specifik egenskab ved et objekt Det væsentlige ved et objekt Det overlegne ved et objekt Selve begrebet overlegenhed. Definition af kvalitet.
E N D
Kvalitet i almindelighed og i relation til softwareudvikling
Kvalitet i almindelighed • En specifik egenskab ved et objekt • Det væsentlige ved et objekt • Det overlegne ved et objekt • Selve begrebet overlegenhed
Definition af kvalitet • De fire definitioner hentyder til forskellige rammer, hvor begrebet kvalitet anvendes: • Teknisk • Filosofisk • Praktisk • Metafysisk
Noget positivt • Ordet kvalitet forbindes normalt med noget positivt • I filosofisk forstand enten noget subjektivt eller objektivt • Baseret på en fornemmelse eller noget målbart • Eller repræsenterer en eviggyldigt sandhed
Kvalitetskriterier • Kvaliteten af noget afhænger af de kriterier man anvender ved vurderingen • Det er brugbart • Det er smukt • Det findes • Alle genkender kvalitet, når de ser det; men ikke alle kan definere, hvorpå kvaliteten beror
Software kvalitet • Her defineres kvalitet ofte således: • Graden hvormed en applikation matcher sit formål • Forudsætter kendskab til formålet • Kender man formålet, kan passende kvalitetskriterier udledes
Kvalitets faktorer (1) • Forståelighed • Komplet (færdigudviklet) • Minimalt (ressourceforbrug) • Portabilitet (flere platforme) • Konsistent • Vedligeholdelsesvenligt
Kvalitets faktorer (2) • Testbart • Brugbart • Pålidelighed • Struktureret • Effektivt • Sikkert
Måling af kvalitet • Kvalitetsfaktorerne er vagt defineret og umulige at vurdere objektivt • Faktorerne kan suppleres med passende spørgsmål, som kan besvares entydigt • Spørgsmål der kan besvares med ja/nej • Svar der indeholder optællinger
Brugerens perspektiv • Slutbrugerens opfattelse af kvaliteten er i sidste ende den vigtigste • Det vigtigste kriterium i forhold til brugerens opfattelse af kvalitet er brugbarhed
Formelle metoder • Matematisk funderede teknikker til specifikation, design, realisering og verifikation af software og hardware • Motiveret af den forventning, at matematiske analyser kan bidrage til designets pålidelighed og robusthed • Kostbart at udvikle på den måde
Formel specifikation • Et af de største problemer med specifikationer er beskrivelsen af systemets semantik • Semantik er læren om beskrivelsen af sprogets betydning • Syntaks er læren om beskrivelsen af sprogets opbygning
Verifikation og bevis • En idé er at opbygge en specifikation, som samtidig kan fungere som verifikation eller bevis på, om programlogikken er korrekt • Rekursive specifikationer er langt lettere at bevise end specifikationer med iterationer
Algebraisk specifikation • En abstrakt datatype (Objektklasse) • En specifikation af de invariante forhold • Funktioner opdeles i • Accessors • Modifiers • Alt specificeres som funktioner
Eksempel: Stack • Modifiers: Init, Push, pop • Accessors: Top, Empty • Empty(Init) -> true • Empty(Push(Init),A) -> false • Empty(Pop(Push(Init),A)) -> true • Top(Init) -> Illegal • Top(Push(Init),A) -> A • Top(Pop(Push(Init),A)) -> Illegal
De 10 bud • Formålet med de 10 bud var • Opmuntring • Praktisk anvisning • Statusopgørelse efter 10 år
Formalismens 10 bud • Vælg en passende notation • Undgå overformalisering • Omkostningerne skal estimeres • Hav en ”guru” i baghånden • Man skal ikke opgive de traditionelle udviklingsmetoder
10 bud (2) • Lav tilstrækkelig dokumentation • Gå ikke på kompromis med kvalitets standarder • Vær ikke dogmatisk • Test, test og test igen • Genbrug