Design II. Dagsplan. Design processen – Arkitektoniske krav Arkitektur og overordnet design Detail design (klassediagrammer og sekvens diagrammer) 12.00 – 12.30 Frokost Design af model komponenten Design af en use-case Komponenter, lav kobling og høj samhørighed Test
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Dagsplan • Design processen – Arkitektoniske krav • Arkitektur og overordnet design • Detail design (klassediagrammer og sekvens diagrammer) 12.00 – 12.30 Frokost • Design af model komponenten • Design af en use-case • Komponenter, lav kobling og høj samhørighed • Test • Design standarder og produktreviews SAD design II
Systemanalyse og design Arkitektur Et godt system er et system uden væsentlige mangler SAD design II
Delsys 1 Delsys 2 BGF SGF SGF BGF Funktion Funktion Model Model Eksempler på helhedsbeskrivelser af systemet Desuden: Design klasse diagrammer, samt System Architecture Document SAD design II
Faktor tabel • For at kunne lave en arkitektur uden ”væsentlige svagheder” ved • at skaffe sig overblik • at undgå at glemme noget • at undgå at undervurdere noget • bevidst at kunne afveje alle faktorer SAD design II
Arkitektoniske krav /faktorer • Kravspecifikationen fra analysen • Funktionelle (nogle) og IKKE-funktionelle krav (stort set alle) • Design kriterier … fra OOA&D • Tekniske muligheder for produktet • Udstyr (eksisterende og nyt, genbrugbare indkøbte eller freeware komponenter) • Udviklingsforhold • Folk (kompetencer og erfaring) • kram (adgang til passende værktøjer) • Organisatorisk (kontrakter, planer for videreudvikling) Samles i en FAKTOR-tabel (over faktorer der kan påvirke arkitekturen), beskrives, vurderes og prioriteres Udfra disse søges løsnings muligheder. SAD design II
Videnskab og kunst • Videnskaben er at finde og beskrive • Kunsten er at finde passende løsninger • Løsninger beskrives i tekniske memo’er: • Afvej hensyn • Afhængigheder (U-) • Alternativer SAD design II
Arkitektur processen Læg planer for HELHEDEN KRAV • Arkitektur produkter • Undervejs • Faktortabel • Tekniske memo’er • Kørende dele af systemet • Design beskrivelser af dele af systemet (seq-diag., kl-diag.) • Resultat – en række views /beskrivelser • Logisk • Process • Deployment • Data • Use case • Implementering • Flere? Prøve, undersøge, etc. Test på DELE VALG SAD design II
Afvej hensyn, evaluer løsninger, afprøv arkitekturen, evaluer arkitekturen Afvejhensyn Uafvigelige krav og betingelser Forretningshensyn alle andre hensyn Evaluer del-løsninger • tekniske eksperimenter • Ekspertråd • reviews etc. Afprøv arkitekturen • vælg de dele af systemet som ”spænder arkitekturen ud” • Lav dem • Evaluer arkitekturen mhp. dem Evaluer arkitekturen Pick your battles – don’t goldpate SAD design II
Arkitektur OOA&D • Principper at udarbejde en arkitektur: • Fastlæg og prioriter kriterier /faktorer • Byg bro mellem kriterier/faktorer og teknisk platform • Afprøv designet så tidligt som muligt • Principper for et godt design • Et godt design har ingen væsentlige svagheder • Et godt design balancerer flere kriterier (ønskede egenskaber ved en arkitektur) • Et godt design er brugbart, fleksibelt og forståeligt SAD design II
Delsys 1 Delsys 2 BGF SGF SGF BGF Funktion Funktion Model Model Arkitektur og komponent design • Komponent: en samling programdele, som udgør en helhed og har et veldefineret ansvar • S.198: • Modelkomponenten: model af problemområdet • FunktionskomponentenFunktionalitet på modellen • Grænsefladekomponenten: Interaktion mellem funktion og og brugere • Beskrives i klassediagram SAD design II
Afhængigheder mellem komponenter: Forbind klasser • Komponent:En samling af programdele, der udgør en helhed og har et veldefineret ansvar • Forbindelse:Realisering af en afhængighed mellem komponenter. • Aggregering • Specialisering • Kald SAD design II
Tilstræb lav Kobling • Ideal: lav kobling • To klasser/komponenter har høj kobling, hvis ændring i den ene kræver ændring i den anden • Faldende koblingsgrad: • Kobling fra siden (ikke Java) • Kobling nedefra • Kobling indefra • Kobling udefra • (side 267) SAD design II
Tilstræb høj Samhørighed • Ideal: høj samhørighed • Egenskaber ved høj samhørighed: • Delene er begrebsmæssigt beslægtede • Delene udgør funktionelle helheder • Delene beskriver velafgrænsede tilstande • Operationer bruger hinanden • Opdeling af klasser eller komponenter med høj samhørighed fører til høj kobling SAD design II
Repræsenter private hændelser • Sekvens og selektion • Repræsenter disse hændelser som en tilstandsattribut i den klasse, som beskrives ved tilstandsdiagrammet. • Hver gang en af hændelserne forekommer, skal systemet tilordne en ny værdi til tilstandsattributten. • Integrer hændelsernes attributter i klassen. • Iteration • Repræsenter disse hændelser som en ny klasse, der med en aggregeringsstruktur knyttes til den klasse, som beskrives ved tilstandsdiagrammet. • Hver gang hændelsen forekommer, skal systemet generere et nyt objekt af den nye klasse. • Integrer hændelsens attributter i den nye klasse. SAD design II
Repræsentation af private hændelser • Hændelsen ‘adresse ændret’ er privat for klassen Kunde og indgår som en iteration i klassens tilstandsdiagram • Repræsenteres som en ny klasse • Hændelsen ‘kreditgodkendt’ er privat for klassen Kunde og indgår som en sekvens • Repræsenteres som en attribut SAD design II
Repræsenter fælles hændelser • Fælles hændelser • Hvis hændelsen indgår i tilstandsdiagrammerne på forskellig måde, repræsenteres den i tilknytning til den klasse, som giver den enkleste repræsentation. • Hvis hændelsen indgår i tilstandsdiagrammerne på samme måde, må du afveje de mulige repræsentationer i forhold til hinanden. SAD design II
Repræsentation af fælles hændelser: Løsning A • Hændelserne ‘indsat’ og ‘hævet’ indgår som iteration i to klasser. • Hændelserne kan repræsenteres som nye klasser under Konto SAD design II
Omstrukturer klasser (1) • Det reviderede klassediagram kan repræsentere den information, som findes i tilstandsdiagrammerne. • Klassediagrammet kan ofte forenkles uden tab af information SAD design II
C(lass)R(esponsibility)C(ollaboration)-kort • Rolle spil om fordeling af ansvar og opgaver • En gruppe designere • Hver spiller en klasse • Fordeler ansvaret for en opgave, som stilles (en henvendelse fra “skærmen” – stillet af en usecase) SAD design II
At teste er ... • Man afprøver programmer for at finde flest mulige fejl? • Man tester for at sikre sig at programmer fungerer fejlfrit? • Et program er fejlfrit - indtil det modsatte er bevist. • En test er vellykket, når - ingen fejl blev afsløret! • Et program er altid fejlbehæftet - og den sidste fejl er ikke fundet endnu! • En test er vellykket, når - der er afsløret flest mulige fejl! SAD design II
Hvad er fejl? • Programmet gør ikke hvad det skal • Programmet gør noget, det IKKE skal • Programmet gør hvad det skal, men det, det skal gøre, er forkert specificeret eller designet SAD design II
BlackBox Testning Black Box Output Input Udtømmende inddata-testning med kontrol af resulterende output og af programmets reaktion SAD design II
Korrekt /fuldstændig Blackbox testning forudsætter: Uendelige datamængder: • formelt valide • formelt invalide • logisk valide • logisk invalide • relevante • irrelevante • i varierende volumen • i legal sekvens • i illegal sekvens SAD design II
WhiteBox-testning Output Input Trace- list Logisk, styret afprøvning af alle programmets knudepunkter og ruter SAD design II
Korrekt / Fuldstændig WhiteBox testning: • Alle logiske veje afprøves • Alle knudepunkter afprøves • Alle programinstruktioner afprøves • Alle berørte programvariables værdi kontrolleres før og efter hver enkelt instruktions udførelse • Ulempe: antallet af kombinationsmulig-heder bliver hurtigt astronomisk stort! SAD design II
Test i projekter Testplanlægning Accept test Modultest: Unit test, brugsmønster test Integrationstest SAD design II
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.