Szoftver projekt laboratórium
2025. tavaszi félév
A labor célja
Objektumorientált alkalmazás készítése UML (Unified Modeling Language) leírással, C++-ban (vagy Javaban) megvalósítva, iteratív és inkrementális folyamat alapján. A hallgatók 5 fős csoportokban dolgoznak és készítik el a dokumentumokat a megadott ütemezés szerint. A dokumentumokat az ütemezésben megadott formátumban, általában nyomtatott változatban kell beadni.
Laborfeladat
A csapatok megalakulása
A tárgyat felvevő hallgatók a neptunban a tárgy indulásáról üzenetet kapnak. A csapatok kialakítása a tárgyfelelős dolga, aki ennek során maximálisan igyekszik figyelemmel lenni a hallgatók javaslatára. Kivételes helyzetektől eltekintve a hallgatók javaslata lesz elfogadva. Egy csapatban 5 tag lehet. Egy hallgató csak egy csapatnak lehet tagja. A megalakult csapat nevet és vezetőt (kapcsolattartót) választ magának.
A csapatot az első oktatási héten péntek 12.00-ig regisztrálni kell a csapat vezetőjének. A csapatok a https://devil.iit.bme.hu:9181/hercules/ weblaprol indulva vehetők fel, felhasználva a JPortán publikált egyéni jelszót.
A csapatnak azt a kívánságát, hogy mikor (szerdán 10-től vagy szerdán 12-től) kíván konzultálni, a csapatalakítás során az űrlap MEGJEGYZÉS rovatába lehet beleírni ("DE" vagy "DU"). Ezt a megjegyzést a csapatok foglalkozásokhoz való rendelésekor igyekszünk figyelembe venni, de oktatói és teremkapacitás-korlátok miatt előfordulhat, hogy a csapat nem a preferált alkalomra lesz beosztva.
Az IMSc programban részt vevő csapatok esetén a délutáni időpontot tekintjük alapértelmezésnek, de az IMSc csapatok a délelőtti időpontot is jelölhetik. A besorolás során az IMSc csapatok időpontkérelme élvez előnyt.
Az a csapat számít IMSc-s csapatnak, ahol az IMSc-s hallgatók többségben vannak (minimum 3 IMSc-s hallgató).
Azon hallgatók csapatba sorolásáról, akik a megadott időpontig nem tudtak csapathoz kapcsolódni, de a tárgyat a NEPTUNban felvették, a tárgyfelelős dönt.
Csapatok beosztása
A csapatok és tagjainak felsorolása a https://devil.iit.bme.hu:9181/hercules/ weblaprol indulva érhetők el legkésőbb a második oktatási hét hétfő estétől.
Konzultációk
A tárgy oktatói (továbbiakban konzulensek) szerdán 10.15 és 11.45 valamint 12.15 és 13.45 között a HSZK termeiben konzultációt tartanak.
A konzultációk 70%-án kötelező a csapatből legalább egy fő megjelenése. A konzultáción a hallgatók kérdéseket tehetnek fel. A konzulensnek jogában áll a csapatot konzultációra berendelni. A berendelt csapat tagjainak a megjelenés kötelező. Az egyes csapatok konzulensét a tárgyfelelős jelöli ki. A konzulens a félév közben nem változtatható.
Az első oktatási héten szerdán 10:15-kor és 12:15-kor az IB26 előadóban fakultatív eligazítás lesz, ahol bárki választ kaphat kérdéseire.
Kapcsolattartás
- A subject mező legyen: projlab=CSAPATNÉV (vagy NEPTUN-kód, egyéni levél esetében). A csapatnév csak angol karaktereket tartalmazhat.
- Minden levél törzsének elején szerepelnie kell:
- a csapat neve,
- a tagok neve, NEPTUN-kódja, e-mail címe,
- a csapat konzulensének neve
A félév során 11 feladatot kell megoldani. 11 beadandó anyag (8 dokumentáció, 3 dokumentáció+szoftver) mindegyike feltétele egy-egy konzultáció sikeres teljesítésének (beugró). Az egyes feladatok elfogadásának szükséges feltétele, hogy a csoport az összes előző feladatát sikerrel teljesítse
A Szkeleton, Prototípus és Grafikus változat teljesítésének szükséges feltétele, hogy a feladatra a kapható pontok legalább 41%-át a csoport megkapja. A többi feladat esetén a sikeres teljesítés szükséges feltétele, hogy a nyomtatott dokumentációt a konzulens megkapja és elfogadja.
Egy konzultáció alkalmával csak egy otthoni feladatot lehet kiadni. Minden nap késedelemért az adható pontok értékének 10 %-ával megegyező negatív pont jár. A napforduló 14:15-kor van, a szombat és a vasárnap együttesen egy napnak számít. 10 napon túli késéssel is leadható a feladat, mivel ez feltétele a többi feladat elfogadásnak.
Dokumentumokkal kapcsolatos tudnivalók
Valamennyi lap oldalszámozással ellátott, tartalmazza az anyag címét, a csapat nevét és a címlapon szereplő dátumot. A nyomtatott lapokat nem szabad összetűzni, hanem lefűzhető, átlátszó műanyag irattartóban (bugyi) kell beadni.
Minden leadott anyag végén a csapat naplója áll. Naplót a leadott anyaghoz MINDIG kell készíteni, függetlenül attól, hogy a részletes feladatdefinícióban van-e erre vonatkozó utalás. A napló tartalmazza az előző beadás óta eltelt időszak történéseit időrendben. A naplóból egyértelműen ki kell derülnie, hogy az egyes anyagrészeket ki és mennyi idő alatt készítette.
A napló bejegyzésekből áll. Minden bejegyzésnek tartalmaznia kell:
- a történés kezdetének időpontját, nap-óra pontossággal
- a történés időtartamát, óra felbontással
- a szereplő(k) nevét (Kérjük a szereplők VEZETÉKNEVÉT használni)
- a tevékenység leírását.
Amennyiben a tevékenységben több szereplő vesz részt, akkor az a tevékenység jellemzően csak értekezlet lehet, amelynek az eredményei DÖNTÉSEK. A döntéseket precízen meg kell szövegezni (Pl.: Az X objektum Y és Z metódusainak kódját W készíti el Q határidőre).
Ha a bejegyzés egyetlen személyhez kötődik, akkor meg kell adni, hogy a tevékenység milyen dologra irányul. A dolog a feladat kapcsán elkészítendő termék (dokumentáció, forráskód stb.), amelynek az (esetleg korábban) beadott anyagban megtalálhatónak kell lenni.
A naplóbejegyzés felbontásának egysége szöveges, rajzos anyag esetében az ábra, diagram, vagy kb. fél-egy oldalnyi szöveg. Kódban az egység a metódus. (Pl.: A 3. ábrán látható szekvencia-diagram kidolgozása, vagy az X objektum Y és Z metódusainak kódolása és belövése.)
Az elkészítendő anyagok között az egyes szakaszok zárásakor szerepel ÉRTÉKELÉS. Az értékelés megadja a csapat tagjainak a projekt kezdete óta az értékelésig eltelt időben elért eredményhez történő hozzájárulásának százalékos mértékét. Az értékelés tehát egy táblázat, amely tartalmazza valamennyi csapattag nevét és minden névhez egy százalékos értéket. A százalékértékek összegének 100-nak kell lenni. Az értékelést a csapatnak közösen kell megtennie. Nyomtatott anyag esetén az anyag címoldalán a tagok aláírása azt is jelenti, hogy az aláíró tag az értékeléssel egyetért.
A konzulensek bármikor előírhatják, hogy a csapat az előrehaladásról, annak esetleges akadályairól, a projekt állásáról jelentést, riportot, jegyzőkönyvet készítsen.
Amennyiben az elkészült anyag bármely részével kapcsolatosan a csapat tagjai nem jutnak egyezségre, akkor az egyéni álláspontokat dokumentálni kell és a konzulens segítségét kell kérni.
A nyomtatott anyagokat általában a hét első munkanapján 14:00 és 14:15 között az I épület földszintjén kell átadni az IIT munkatársának.
Osztályozás
A beadott dokumentumokat a konzulensek pontozzák. A pontozáskor figyelembe veszik a kidolgozás helyességét, minőségét és az ütemezettséget. (ld. a késedelemről szóló részt). A három rész (szkeleton, proto, grafikus) aránya: 30 - 50 - 20, a megszerezhető pontok száma részenként 100.
Mindegyik részből minimálisan 41 pontot kell elérni, valamint mindegyik részben a programra kapható pontok 41 %-át meg kell szerezni (program nélkül nincs jegy!).
Ha a csapat bármely részre vonatkozóan nem teljesíti a fenti minimum követelményt, akkor az egyéni közreműködés mértékétől függetlenül valamennyi tag elégtelen osztályzatot kap.
A csapatok a három értékelés alkalmával meghatározzák a tagok munkában való részvételét, egymáshoz viszonyított arányait. Az arányoknak a naplóbeli bejegyzésekkel arányosnak kell lennie. Ezen arányok utólagos megváltoztatása nem lehetséges. A csapatokon belüli eredő arányt az értékelések 1, 1.5 és 2-szeres súlyozásával számoljuk. Különlegesen kivételes helyzetekben (amennyiben az értékelés nem igazítható a naplóban dokumentált tevékenységekhez, a csapat szétesett, illetőleg a felvett jegyzőkönyvek tartalma alapján) a konzulens a csapat tagjainak meghallgatásával, esetenként anélkül is, az eredő arányt megváltoztathatja. A csapat által megszerzett pontszámot szorozzuk a csapat tagjainak számával, majd ezt arányítjuk az eredő arány szerint. Az így kapott pontszámok alapján az alábbi táblázat szerint határozzuk meg a jegyet.
Pont Jegy 0-40 1 41-54 2 55-68 3 69-82 4 83- 5
A három lépcső
A kiadott feladatot három lépcsőben kell megvalósítani.
- szkeleton
- prototípus
- grafikus
A szkeleton változat célja annak bizonyítása, hogy az objektum és dinamikus modellek a definiált feladat egy modelljét alkotják. A szkeleton egy program, amelyben már valamennyi, a végső rendszerben is szereplő business objektum szerepel. Az objektumoknak csak az interfésze definiált. Valamennyi metódus az indulás pillanatában az ernyőre szöveges változatban kiírja a saját nevét, majd meghívja azon metódusokat, amelyeket a szolgáltatás végrehajtása érdekében meg kell hívnia. Amennyiben a metódusból valamely feltétel fennállása esetén hívunk meg más metódusokat, akkor a feltételre vonatkozó kérdést interaktívan az ernyőn fel kell tenni és a kapott válasz alapján kell a továbbiakban eljárni. A szkeletonnak alkalmasnak kell lenni arra, hogy a különböző forgatókönyvek és szekvencia diagramok ellenőrizhetők legyenek. Csak karakteres ernyőkezelés fogadható el, mert ez biztosítja a rendszer egyszerűségét.
A prototípus program célja annak demonstrálása, hogy a program elkészült, helyesen működik, valamennyi feladatát teljesíti. A prototípus változat egy elkészült program kivéve a kifejlett grafikus interfészt. Ez a program is parancssorból futtatható és karakteres ernyőkezelést alkalmaz. A változat tervezési szempontból elkészült, az ütemezés, az aktív objektumok kezelése megoldott. A business objektumok - a megjelenítésre vonatkozó részeket kivéve - valamennyi metódusa a végleges algoritmusokat tartalmazza. A megjelenítés és működtetés egy alfanumerikus ernyőn vezérelhető és követhető, ugyanakkor a vezérlés fájlból is történhet és a megjelenítés fájlba is logolható, ezzel megteremtve a rendszer tesztelésének lehetőségét. Különös figyelmet kell fordítani a parancssori interfész logikájára, felépítésére, valamint arra, hogy az mennyiben tükrözi és teszi láthatóvá a program működését, a beavatkozások hatásait.
A teljes ( grafikus ) változat a prototípustól elvileg csak a kezelői felület minőségében különbözhet. Ennek változatnak az értékelésekor a hangsúlyt sokkal inkább a megvalósítás belső szerkezetére, semmint a külalakra kell helyezni.
Az ütemterv ezen három-lépcsős felbontásnak megfelelően az adott határidőre elkészítendő feladatokat jelöli ki.
IMSC-pontok
A tárgyból az IMSC-pontokat a csapat gyűjti. Minden új (az ütemezésben csillaggal jelölt) beadandóra jár IMSC-pont, amennyiben az anyag az elérhető pontok 80%-ánál többet ér. Ebben az esetben az elérhető pontok százalékában mért eredmény 80% feletti részében 10%-pont ér egy IMSC-pontot. Pl. 85% 0,5 IMSC-pont, 93% 1,3 IMSC-pont, 100% 2 IMSC-pont. Az így szerzett pontokat összeadjuk és a félév végén a tárgyból jelest szerző hallgatók külön-külön megkapják a csapatuk által szerzett IMSC-pontokat.