Szoftver projekt laboratórium

Tárgykód:
Tárgyfelelős:
Goldschmidt Balázs
Szak:
Mérnök informatikus
Képzési szint:
BSc
Képzés féléve:
4
Kategória:
Szakmai törzsanyag
Leírás:

2024. tavaszi félév


Utolsó módosítás: 2024-02-05


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


Csapatsorszámok

 

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 tárgy e-mail címe: projlab KUKAC iit.bme.hu A laborral kapcsolatos minden levelet, beleértve a tárgyfelelősnek szóló leveleket is, a fenti e-mail címre kell küldeni.

  • 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
Aki a fentiektől eltér, annak a csapatától a végső pontszám számításakor hibás levelenként 5-5 pontot vonunk le.

A feladatok leadása, késedelem

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

A dokumentumokat mind papírra kinyomtatva be kell nyújtani, mind a hercules rendszerben PDF fájlként fel kell tölteni. A kétféle beadás közül a későbbi számít az anyag tényleges beadási időpontjának. A beadás határidejét a jelen honlapon megtalálható ütemterv definiálja.

Valamennyi leadott dokumentum címoldala a letölthető sablon szerintinek kell lennie (minta és sablon a modulok között található). Amennyiben a címoldal a sablonban megadottól eltér, a dokumentumot figyelmen kívül hagyjuk. A dokumentumokat a közreadott sablonok kibővítésével kell elkészíteni.

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. 

Az átvételre kijelölt személy az anyag átadójával aláírat egy listát. Aláírás hiányában az anyag beadásával kapcsolatos reklamációt nem fogadunk el. Késedelem esetén az anyagot közvetlenül a konzulensnek kell átadni (eseti megállapodás alapján) vagy leadható az IIT oktatási adminisztrációja melletti gyűjtőben (IB316). Az átvétel ideje ezekben az esetekben a konzulens általi kézhezvétel időpontja.

A 15. oktatási hét péntek 13 óra után semmiféle anyagot nem fogadunk el.

Beadandó szoftverek
A programok a https://devil.iit.bme.hu:9181/hercules/ weblapról indulva tölthetők fel. A feltöltendő anyagot egyetlen zip fájlba kell becsomagolni. Egyéb kompressziós eljárásokkal (tar, rar, 7z, arj, stb) készült csomagokkal nem foglalkozunk. A feltöltésre vonatkozó határidő megegyezik az írásos dokumentum beadásának határidejével.

A feltöltés legvégső határideje mindegyik szakaszra az utolsó oktatási hét péntekén 13.00 óra. Ezt követően semmilyen anyagot nem lehet feltölteni.

Minden szakaszhoz maximum 3 alkalommal lehet anyagot feltölteni. Az elsőt követő változatok érvényességére vonatkozóan a konzulensekkel történő megállapodás a mértékadó.

A forrásprogramnak a kari felhőben (https://niif.cloud.bme.hu/ vagy https://fured.cloud.bme.hu/, Windows 10 20H2 - JDK-Eclipse-WSU sablon) biztosított (nem a hallgatók által írt package hozzáadása nélküli) környezetben, az ott megtalálható JDK alatt (parancssorból) lefordíthatónak és futtathatónak kell lenni. A forráskódok mellett meg kell adni szükség szerint valamennyi olyan installálási útmutatást és kezelési leírást, amelynek alkalmazásával a fenti környezetben a tárgykód előállítható és futtatható.


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.

PontJegy
0-401
41-542
55-683
69-824
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.