SzoftTechKonzi2009jan12 1

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


Szofttech konzi 2009.jan.12 13:30tól 14:30ig

Ide teheted fel a kérdéseket, amiket meg szeretnél kérdezni a konzultáción.Ezeket fogjuk nagy részt megoldani.

Aki feltesz itt kérdést az legyen olyan szíves és konzi után írja be ide a választ is rá!

Így no a tudásbázis és ha úgy alakul, biztosan nem felejted el a kovetkezo vizsgáig.


Mielott kérdezel nézd meg ,h ez az az idopont ahol meg fogsz jelenni!
Mielott kérdezel nézd meg ,h nem kérdezte e már meg valaki!
Mindenképp írd oda a kérdésed mellé a teljes neved!

1.) Szekvencia diagram szerkesztésénél honnan lehet megállapitani, hogy egy hivás aszinkron vagy szinkron? És hogyan működik a hierarchikus számozás? (Sükösd Endre)

Szinkron (tele fejű nyil): a szinkron hivást call-nak nevezik, mert általában egy függvényhivás, melynek lesz visszatérési értéke, és erre várunk. Várakozás közben nem csinálunk mást. At-most-once tipusú, tehát maximum egyszer hajtódik végre. Példa: amikor az órás odaadja neked a megjavitott órát, hogy próbáld ki, akkor ez az órás részéről szinkron hivás, mert meg fogja várni, hogy próbáld ki és mond meg a véleményedet (térj vissza a visszatérési értékkel).

Aszinkron (rendes V fejű nyil): az aszinkron hivást message-nek nevezik, mert ez egy üzenet küldés, kérés, rendelés, amelyet csak kiadunk és utána nem várunk rá választ, eredményt, hanem csinálhatunk mást. Best-effort tipusú. Példa: amikor a postán feladsz egy levelet, bedobod a postaládába, akkor részedről ez egy aszinkron hivás. Feladod és mész utána a dolgodra, nem fogod várni, hogy jöjjön a postás kivegye, majd kézbesitse, majd jelezze vissza neked, hogy sikerült.

Hierarchikus számozás: Ha EGY példányból küldünk üzeneteket egymás után (lefele mozdulunk el), akkor nőni fog a a szám, illetve a legutolsó számjegy (1, 2, 3 vagy 2.1.1, 2.1.2, 2.1.3). Ha egy forrás_példányból küldött üzenet hatására a cél_példány küld egy üzenetet (oldalra mozdulunk el), akkor új pontot teszünk, és elölről kezdjük a számokat (3 -> 3.1 vagy 2.3 -> 2.3.1).

<a href = "UnderworldAnecdote.png">Vicces példa:)</a>

2.) Algebrai axiómáknál, miután behelyettesítettük a kontruktorokat a többi függvénybe, mitől függ, hogy axióma lesz-e vagy sem? (Gulyás Máté)

Először is felírjuk, hogy melyik hogy melyik függvény konstruktor, melyik modifier vagy behaviour. Kontruktorok az a legszűkebb halmaz, amellyel előállítható bármely formája az adott halmaznak. Például egy lista esetében a CRT() és az ADD(s) függvények kontruktorok, mert velük bármilyen összetételű lista létrehozható, mivel előbbivel egy üres listát tudunk létrehozni, utóbbival pedig a lista végére rakhatunk be elemeket. Ha ezzel megvagyunk, elkezdjük belerakosgatni a kontruktorokat a másik két ípusú függvényekbe, az alábbi séma szerint:

Behavior(Constructor(..)) =

Modifier(Constructor(..)) =

Van néhány kivételes eset, amikor ez az ökölszabály nem működik. Ilyen az, ha például van egy SUBSTR(s1,s2) és egy CRT() függvényünk, ahol a SUBSTR(s1,s2) igaz értékkel tér vissza, amennyiben s2 megtalálható s1-ben, a CRT() függvény pedig egy új, üres stringgel tér vissza. Ekkor a SUBSTR(CRT(),CRT()) függvény nem axióma, mivel ez csak egy szűkített esete a SUBSTR(s1,CRT()) axiómának, ami mindenhol igaz lesz, így akkor is ha s1 üres string.


3.)Hogyan jeloljuk UML2 szekvencia diagramon a feltételt?

Kreálunk egy keretet "alt" címkével(alt mint alternate).
Kettéosztjuk egy szaggatott vonallal.
Felso részébe írunk egy feltételt és berajzoljuk a felso részbe azt aminek a feltétel teljesulése esetén kell torténnie.
A másik részbe( szaggatott vonal alá) beírjuk ,h "else" és berajzoljuk ami a feltétel be nem kovetkezése esetén torténik.
Lásd az ábrán:
uml2_sec_feltetel.jpeg


4.) Hogyan jeloljuk UML2 szekvencia diagramon az iterációt?

A fentebb levo alt nevu kerethez hasonlóan(szaggatott vonal nélkul) csinálunk egy keretet és a "loop" címkével látjuk el.
Majd pedig belerajzoljuk azt a részt aminek ismétlodnie kell.
Ha meg akarjuk adni, h hányszor fusson le az iterácó akkor a keretet "loop (x)" címkével látjuk el, ahol az x az iterációk száma.

5.) Hogyan kell megszámozni a szekvencia diagramon az uzeneteket?

Ha átmegyunk másik példány életvonalára akkor 1., 1.1 , 1.1.1 ... Ha idoben megyunk lefele, akkor 1.1 után 1.2 , 1.1.1 után 1.1.2 attól fuggoen melyik példány életvonalán megyun lefelé az idoben.

6.) Miért vannak a példány életvonalán levo téglalapokon újabb téglalapok (execution specification) ?

Mert ha meghívunk egy másik fuggvényt a példányon belul, akkor abban elofordulhat ,h új váltózókat kell létrehozni és azokat tárolni a stackben.
Ezeket az új változókat jelenti a fuggvényhívás hatására keletkezett téglalapocska a másik téglalapon.


7.) Asszinkron hívás után mindig meghal az objektumpéldány?Hogyan mukodik ez szinkron esetében?

Nem, nem mindig.Attól fugg,h mikor hal meg,h hány utasítást kell még végrehajtania ezután.
Ameddig utasításokat hajt végre addig él az objektumpéldány is.(ergo rajzon vagy van vagy nincs téglalpocska az életvonalon a hívás után)

Szinkronnál csak akkor érhet véget a futás ha megérkezett a válasz.( <--- válasznyíl után a hívó objektum példánya meghalhat, de ez sem szukségszeru, addig viszont mindenképp él).Erre példa a 3.) kérdés ábrájának else ágában.

8.) Miért kell ures négyzetnek lennie az ábrán a digit * helyett?

jsd_pelda.jpeg


Azért mert egy szinten csak egyfajta entitás lehet.A digit meg a digit * kulonbozo entitások.

9.) JSD-s példák:


Mindig a legfelso téglalap mondja el mirol is szol az egész JSD diagram. jsd_alma.jpeg

A leszed ° és a leesik ° szelekcióra példák.Vagy az egyik vagy a másik torténik meg.

jsd_alma2.jpeg