Programmering

Programmering og sekvensdiagram

19. december 2015 af Mikkel2345

Hej,

er der nogle som kan hjælp mig med at lave kode om til  sekvensdiagram 

PLZZZZZZZZZ HJÆLP 


public void saveInsulin(View view) { double insulin = Double.parseDouble(insulin2.getText().toString()); String dateI= e7.getText().toString(); String timeI = e8.getText().toString(); userDbHelper=new InsulinDbHelper(context); sqLiteDatabase=userDbHelper.getWritableDatabase(); userDbHelper.addinnInsulin(insulin, dateI, timeI, sqLiteDatabase); Toast.makeText(getBaseContext(), "Data gemt", Toast.LENGTH_LONG).show(); userDbHelper.close(); }
 


Brugbart svar (1)

Svar #1
20. december 2015 af Therk

I hvilket sprog?

Har du ikke lært om kodeformatering (...)?


Brugbart svar (0)

Svar #2
20. december 2015 af Toonwire

Skrevet op læseligt:
---------------------------------

public void saveInsulin(View view) {

     double insulin = Double.parseDouble(insulin2.getText().toString());
     String dateI= e7.getText().toString();
     String timeI = e8.getText().toString();

     userDbHelper=new InsulinDbHelper(context);
     sqLiteDatabase=userDbHelper.getWritableDatabase();
     userDbHelper.addinnInsulin(insulin, dateI, timeI, sqLiteDatabase);
     Toast.makeText(getBaseContext(), "Data gemt", Toast.LENGTH_LONG).show(); userDbHelper.close();
}
 


Brugbart svar (0)

Svar #3
20. december 2015 af Toonwire

For mig at se er det skrevet i Java med henblik på Android (toasts & context).

Et sekvens diagram er såmænd bare et diagram der giver dig et overblik over programmets kald-struktur.
Dvs. hvilke metoder, i hvilke klasser, der kaldes og hvornår, samt hvad der returneres.

Her er et eksempel på et sekvensdiagram fra et tidligere projekt af mine:

Et sekvensdiagram tager oftest kun udgangspunkt i et enkelt metodekald. I ovenstående eksempel ser du sekvensdiagrammet for metoden \text{createProject()}. Husk at angive hvilke parametre metoden bruger.


Svar #4
20. december 2015 af Mikkel2345

ok tak for hjælpen. jeg lavet et sekvensdiagram ud fra koden ,men jeg ved ikke om det som jeg har lavet er korrekt. jeg kan sender dig sekvendigrammet. vil du så gerne se om det er korrekt, det som  jeg har lavet 

Jeg håber at du vil hjælp mig 

Vedhæftet fil:sekvensdiagramme78.PNG

Svar #5
20. december 2015 af Mikkel2345

jeg sender lige det rigtigt sekvendigram til dig 

Vedhæftet fil:sekvensD.PNG

Svar #6
20. december 2015 af Mikkel2345

sproget er Android programmering 


Brugbart svar (1)

Svar #7
20. december 2015 af Toonwire

Nu er det svært at bedømme om det er korrekt, idet jeg ikke kan se hele koden.
Eksempelvis kender jeg ikke noget til Insulin klassen og den nævnes ikke i det brudstykke af koden du har opgivet her.

Der er flere ting angående dit diagram.

Patienten ser ud til at være en klasse i dit diagram (der findes metodekald herfra), og bør derfor have en klassetilordning i diagrammet ligesom :Insulin og :InsulinDbHelper.

Blandt andet er \text{makeText()} en metode der findes i Toast klassen, men ifølge dit diagram kaldes den af Insulin-klassen? 

Det ser generelt meget rodet ud, selvom der af diagrammet ikke fremgår meget information, og skaber ikke rigtig klarhed omkring strukturen af dit programs metodekald.


Det ville være nemmere at hjælpe hvis du oplyste mere kode.


Brugbart svar (1)

Svar #8
20. december 2015 af Toonwire

Nu så jeg lige at du havde oprettet et tidligere indlæg (https://www.studieportalen.dk/forums/thread.aspx?id=1651041)

Hvis du ikke selv ved hvorledes koden virker, hvordan vil du så formå at give andre indblik i det?


Svar #9
20. december 2015 af Mikkel2345

ok. jeg sender dig hele koden,som zip fil. du skal kun kigge på Insulin og InsulinDbHeloer klassen 


Svar #10
20. december 2015 af Mikkel2345

her er zip filen


Svar #11
20. december 2015 af Mikkel2345

her er zip filen


Svar #12
20. december 2015 af Mikkel2345

her er koden


Svar #13
20. december 2015 af Mikkel2345

sorry her der den rigtig kode

Vedhæftet fil:packagecom.pdf

Brugbart svar (0)

Svar #14
20. december 2015 af Toonwire

Okay, så de væsentligste ting at få med er interaktionen mellem Insulin og InsulinDbHelper. Sørg for at de rigtige klasser kalder de rigtige metoder, i dit sekvensdiagram.

Problemet er dog at den metode du laver sekvensdiagram over, er metoden saveInsulin(View view).
Det i sig selv er ikke problematisk, men denne metode kaldes aldrig i programmet..
Lad os nu sige at det bare er en implementation der først kommer senere og vi bare vil forklare hvordan metoden virker, uden at sige noget om hvor den kommer fra, så kig på hvilken klasse der indeholder saveInsulin(View view) metoden. I sekvensdiagrammet tegnes så en pil med metoden som "vægten" af pilen, fra klassen. Pilen går så videre til InsulinDbHelper(Context context) og vender tilbage til Insulin klassen. saveInsulin() bruger ialt 4 kald til InsulinDbHelper klassen, så der skal tegnes 4 tilbagevendende pile fra Insulin klassen til InsulinDbHelper klassen.

Efter 3 kald hertil kaldes Toast klassen (inden SQLiteOpenHelper lukkes ved userDbHelper.close()), så husk også at tegne den.
Programmet kører sekventielt, så sørg for at tegne tingene i den rigtige rækkefølge.

Håber det er nogenlunde forståeligt, ellers må du skrive igen og jeg skal forsøge at uddybe.


Svar #15
20. december 2015 af Mikkel2345

saveInsulin(view) er en knappe som patienten trykker på når patienten vil gemme de data som patienten indtaster. 

Jeg forstår ikke helt hvordan jeg skal tegn den. 


Brugbart svar (0)

Svar #16
20. december 2015 af Toonwire

Knappen skal ikke være til stede i sekvensdiagrammet, du er kun interesseret i at formidle strukturen bag metodekaldet. Følg metoderne enkeltvis og tegn hvad de hver især gør (kalder en ny metode, returnerer data etc).

Forstil dig at tegne en gren på et træ; hvergang du ser en kvist, tegn den og gå tilbage til grenen og tegn videre (hvis denne primitive analogi hjælper dig...)


Svar #17
20. december 2015 af Mikkel2345

ok. kan du fortælle mig hvad skevensdiagrammet mangler som jeg har sendt til dig 


Brugbart svar (0)

Svar #18
20. december 2015 af Toonwire

#17

Rigtig meget...

Lad mig sige det sådan her; intet af det der er i dit nuværende sekvensdiagram er korrekt.

De tre metoder, getWritableDatabase(), addinnInsulin og close() er alle metoder der udfra fra userDbHelper's kald til en instans af et SQLiteOpenHelper objekt. 
getWritableDatabase() er altså et kald i SQLiteOpenHelper klassen og returnerer et SQLiteDatabase object.
Det samme gælder for addinnInsulin() og close(), som begge dog er af typen void (sådan ser det ihvertfald ud til at addinnInsulin også er skruet sammen) og altså ikke returner noget.

Desuden er der, før de 3 ovenstående metodekald, selve oprettelsen af en instans af et InsulinDbHelper objekt. Det er på objektet her de tre metoder kaldes, det skal også med i diagrammet.

Udover dette oprettes en popup (Toast), hvilken i diagrammet skal tegnes som en forbindelse til Toast klassen og dennes metode makeText() som returnerer et nyt statisk Toast objekt, pass'er det til contextens View og viser toasten vha. endnu et kald til Toast klassen (show() metoden).


Det lader ikke til at selv har skrevet programmet og har styr på hvad der foregår. Java er et objektorienteret programmeringssprog og derfor burde sekvensdiagrammer være ganske overskuelige, hvis du har styr på sproget. Hvis dette sekvensdiagram er en essentiel del af dit projekt, vil jeg kraftigt anbefale at du får styr på objektorienteret programmering eller forstår principperne i det. 


Svar #19
20. december 2015 af Mikkel2345

det en opgave som jeg har fået, hvor jeg skal lave kode om til sekvendigram. det en opgave som jeg har fået. det er første gang jeg laver sekvendiagrammer. så er det derfor jeg spørger om hvordan man laver kode om til sekvensdiagrammer. hvis du gider at hjælp mig med at forklar mig hvordan man laver sekvendiagrammer fra kode ,vil det være en stor hjælp 

Tak for hjælpen


Svar #20
20. december 2015 af Mikkel2345

forbindelse mellem aktør og insulin klassen. hvad skal der være af metoder 


Forrige 1 2 Næste

Der er 29 svar til dette spørgsmål. Der vises 20 svar per side. Spørgsmålet kan besvares på den sidste side. Klik her for at gå til den sidste side.