Systemudvikling Flashcards
Relationel database
Data organiseres i rækker og kolonner. Hver værdi er: atomisk, har samme datatype. Ingen rækker er identiske.
ER model + hvad viser vores?
ER-modellen giver en oversigt over, hvordan data struktureres i databasen, og hvordan tabellerne er forbundet gennem primære og fremmede nøgler (PK og FK). Den hjælper med at designe databasen, så den understøtter systemets funktioner og forretningslogik.
Normalisering
kvalitetsikringprocess til at skabe godt databasedesign
1.normalform - atomiske værdier og ingen repeterende kolonner
- normalform – Fuld funktionel afhængighed
kun en primærnøgle
- normalform - Ingen transitiv afhængighed(En ikke primærnøgle attribut er ikke afhængig af en anden ikke primærnøgleattribut)
her splittes de attributter der ikke har en direkte tilknytning til primærnøglen i tabellen, ud i deres egne nye tabeller.
Hvordan kommer man fra ER-model til relationel model?
Hver entitet bliver til én tabel(typisk én tabel)
Alle tabeller skal have en entydig primærnøgle- indsæt autogenereret ID (kaldes surrogatnøgle, eller kunstig nøgle) hvis der ikke findes attribut, der vil være entydig og som med garanti aldrig ændrer sig
UI/UX
UI er visuelt Hvor lækkert det ser ud, UX er funktionelt Hvor lækkert det er at bruge
Singleton
Singleton betyder ‘kun en instans af en klasse’
hvorfor anvende?
hurtigere svartid når vi forbinder til databasen fra vores java program ved kun at have en global forbindelse åben hele tiden.
en klasse bliver singleton ved:
-Gøre konstruktøren privat eller beskyttet, så andre klasser ikke kan oprette nye instanser direkte.
-Oprette en statisk metode (ofte kaldet getInstance()), som returnerer den eneste instans af klassen.
Integrationstest
Målet med integrationstest er at sikre, at de enkelte dele af applikationen integrerer korrekt og kommunikerer som forventet.
vi testet repositories for at sikre vores repositories fungerer korrekt med databasen.
De er ikke så ”skrøbelige” som UI tests, men de er heller ikke lige så præcise som unit tests. Hvis en integrationstest fejler, kan man ikke altid vide, hvor fejlen er opstået.
Automatiseret vha. JUnit
JUnit leverer flere assertions, som er udtryk for at teste værdier og forventede resultater:
Manuelt med endpoints
med HTTP Client i IntelliJ
IntelliJ’s HTTP Client er et praktisk værktøj til at teste API-endpoints manuelt. Ved at oprette en .http-fil kan du skrive, sende og se HTTP-forespørgsler og -svar direkte i IDE’en, hvilket gør det nemt at teste og fejlsøge API’er under udvikling.
Unit test (Arrange, Act, Assert)
Tester små isolerede enheder af kode, for at sikre at de fungerer som forventet.
De er små, hurtige og præcise tests på kodeniveau. Hvis en unittest fejler, ved man hvor tingene går galt.
Grænseværdianalyse
Tester grænserne af et inputområde. da det ofte er her der kan opstå fejl.
Ækvivalenspartitionering
Vi inddeler inputs i grupper, hvor vi tror, at de opfører sig på samme måde.
Så i stedet for at teste hvert enkelt input, tester vi bare ét fra hver gruppe.
På den måde sparer vi tid og undgår unødvendige tests.
Fremgangsmåde
1.Opdel inputs i grupper
2.Vælg én værdi fra hver gruppe
3.Test disse værdier
DTO
Vi vil gerne mappe 1..N relationer
❏ Formålet med DTO-er er at adskille eksternt view (web front-end) fra entity
objekter
❏ skjule attributter, som ikke
skal være tilgængelige for front-end, f.eks password i et user objekt, eller en
beregnet værdi som age
Klassediagram
UML-diagram, der anvendes til softwareapplikationsudvikling.
De viser systemets klasser, deres attributter, operationer (eller metoder) og relationerne mellem klasserne.
Det viser ansvarsfordelingen mellem controller-, service- og repository-lagene, hvor:
-Controllers håndterer brugerens anmodninger.
-Services indeholder forretningslogikken.
-Repositories står for dataadgang og interaktion med databasen.
Klasseegenskaber og metoder:
Aktivitetsdiagram
Aktivitetsdiagrammer illustrerer flowet af kontrol.
beskriver, hvordan forskellige brugere navigerer gennem systemet og udfører specifikke opgaver.
-Den illustrere brugerrejser:
-Den definere arbejdsprocesser:
-Den skaber overblik