Nehogy csak ezeket tanuljuk vizsgára! A ketteshez ez kevés! 1. Mi a vízesésmodell lényege? A 70-es években alakul ki, egy szekvenciális modell. Az egyes fázisok eredményei különböző dokumentumok. Ezeket mindkét félnek jóvá kell hagynia: aláírás. Elvileg akkor indulhat a következő fázis, amikor az előző sikeresen befejeződött, a gyakorlatban azonban ezek átfedhetik egymást. Lehet, hogy vissza kell lépnünk egy korábbi fázisra: tervezés közben derül ki, hogy módosítanunk kell a specifikációt, implementáció közben derül ki, hogy módosítanunk kell a tervet. A szoftverfolyamat általában nem lineáris folyamat, hanem többszörös iterációk sorozata. Mik a hátrányai a vízesésmodellnek? - Nehéz a változó megrendelői igényekhez igazodni, mert a projekt nehezen változtatható részegységekből áll. - Ez a modell akkor hasznos, ha a követelmények jól ismertek és csak nagyon kis változások lehetségesek a fejlesztés során. - Sajnos csak kevés üzleti rendszernek vannak stabil követelményei. - A vízesés modellt főleg nagy rendszerek fejlesztése során használják, ahol a fejlesztés több helyszínen történik. Honnan kapta a nevét a vízesésmodell? Minden következő lépés csak az előző befejezése után indul, így egymást követő szakaszok sorozata a projekt. Ha ezt felrajzoljuk, olyan mintha egy vízesést kapnánk.
2. Hogyan kezelné azt, hogy a megrendelő, állandó módosításokat szeretne, hiába le van már dokumentálva minden? Minden dokumentumot, miután elfogadta a megrendelő, alá kell vele íratni. Ha ezen módosítani akar, akkor elő tudjuk venni és hivatkozhatunk rá, hogy ezt már egyszer elfogadta. Ha mégis módosítani kell, akkor, vázoljuk fel neki a következményeket, hogy milyen dokumentumokat, munkafázisokat kell e miatt újra elkészíteni, és hogy az mekkora többletköltséggel jár. Egy online áruház elkészítésénél mire kell nagy figyelmet fordítani? Ha fizetni is lehet az oldalon, akkor nagy figyelmet kell fordítani a biztonságra, nehogy esetleg illetéktelenek hozzáférjenek a vásárlóink adataihoz, vagy hogy hamis rendeléseket adjanak le. Mit tud egy alap web áruház? Egy alap web áruház termékeket kell, hogy tudjon megjeleníteni, kategorizáltan, továbbá termékeket meg lehet venni egy virtuális kosár segítségével.
3. Az 1-es tétel kérdései is jók ide Milyen folyamatmodelleket (életciklusmodelleket) ismer? - vízesés modell - evolúciós modell o feltáró prototípuskészítés
1/8
o eldobható prototípuskészítés - formális fejlesztési modell - újrafelhasználás-alapú modell - iteratív modellek o spriális fejlesztési modell o inkrementális fejlesztési modell Milyen folyamatmodellt alkalmazna abban az esetben, ha maga a megrendelő sem tudja pontosan hogy mik az igényei, mit vár el a programtól? Ilyenkor eldobható prototípusokat kell készíteni. Ezek gyorsan elkészülnek, a megrendelő hamar ki tudja próbálni és el tudja mondani, hogy ezt szeretné-e megvalósítani, vagy teljesen másra gondolt. Ebben a megközelítésben az első prototípusok a legkevésbé megértett, legkevésbé feltárt rendszerelemekkel kezdődnek azért, hogy a felhasználó kitalálja, mit akar.
4. Miért jó az objektum orientált szemléletmód? Átláthatóbb és biztonságosabb kódot eredményez. Megkönnyíti a programozó dolgát, a bezárási eszközrendszerrel. Egy osztályt csak egyszer kell megírni, de akárhányszor példányosítható. Mi az a bezárási/láthatósági eszközrendszer? A bezárási szeközrendszer megvalósítsára van egy láthatóság befolyásoló eszközrendszer. Általában 3 szintű bezárás van: - publikus láthatóság: minden osztály láthatja az osztály eszközeit. A kliens osztályok is. Ebben az esetben pl. ha a kabrió eszközei publikusak akkor az űrhajó osztály láthatja a kabrió eszközeit. - privát láthatóság: kívülről nem látható. Az eszközöket csak az adott osztály látja. Ebben az esetben pl. ha az autó eszközei privátak akkor csak maga az autó osztály látja azokat, a leszármazottja (kabrió) és a kliens osztályok (űrhajó), nem látják az autó osztály eszközeit. - védett láthatóság: az osztály és a leszármazottjai férhetnek hozzá az eszközökhöz. Ebben az esteben pl. ha az autó eszközei védettek, akkor maga az autó osztály látja az eszközeit és a leszármazottjai a kabrió osztály. Hogyan jelöli az UML nyelv a bezárási szinteket? + publikus - privát # védett
5. Felhasználó felület tervezése esetén milyen szempontokat venne figyelembe Átlátható, letisztult legyen, természetesen a megrendelő igényeit kielégítse, de törekedjünk arra, hogy minél könnyebben eligazodjanak rajta a felhasználók. Mire való a fogalomszótár rendszerfejlesztésnél? A fogalomszótár olyan dokumentum, amely az adott szakterület idegen szavait egyértelműen leírja. Mind a megrendelőnek és mind a tervezőnek nagy segítség lehet.
2/8
Például ha egy bank számára kell elkészítenünk egy oldalt, jó ha tisztában vagyunk olyan fogalmakkal mint például abszolút hozam, hozamgarancia, stb. Vagy az ellenkező irányba hogy például a megrendelővel tisztázzuk, hogy ki a felhasználó, admin, vezető stb. Segítségével megakadályozható, hogy az ügyfél és a programozók ne beszéljenek el egymás mellett. Egy weboldal menüjének elkészítésénél milyen szempontokat venne figyelembe, milyen technológiákat részesítene előnyben más technológiákkal szemben? A menüpontok jól elkülöníthetők legyenek az oldal többi részétől, hogy felhívják magukra a figyelmet. Könnyen lehessen használni őket. Felhasználó barát legyen. Navigációs menük, elkészítésére nem érdemes olyan technológiákat használni, amihez külön program letöltése és telepítése szükséges (pl. flash), mert amíg ezt a felhasználó nem telepíti, nem érheti el az oldal többi részét, ami komoly hátrány. Helyette olyan technológiákat érdemes használni, amikhez nem szükséges külső program és a régebbi böngészők is támogatják, pl css, javascript, php
6. Egy weboldal esetén milyen hardver követelmények lehetnek a szerveroldalon? Szélessávú internet elérhetőség, gyors HDD, esetleg SSD, sok memória és erős processzor, habár ezek az adatok erősen függenek attól, hogy milyen jellegű oldalt akarunk a gépről üzemeltetni. Általában egy gép több weboldalt is kiszolgál, ezért szoktak jóval erősebb gépek, lenni a szervergépek egy átlagos PC-től. Milyen szoftver követelmények merülhetnek fel a szerveroldalon? Szintén függ az adott weboldaltól, hogy milyen technológiákat használtunk a megvalósítás során. Általában egy mai egyszerű weboldal esetében valamilyen szerver oldali nyelv mint például a PHP, és valamilyen adatbázis-kezelő például mysql .
7. Milyen CASE eszközt használna adatbázis tervezésre és miért? Pl.: MySQLWorkbanch program, mert grafikusan lehet benne táblákat tervezni, a táblák közötti kapcsolatokat is grafikusan lehet „összedrótozni”, majd a teljes mysql kódot a program legenerálja nekünk. Tehát az-az előnye, hogy nem kell kódokat írnunk, az adatbázis megtervezésénél. Vagy pl.: Microsoft Acces program is hasonlóan működik. Milyen CASE eszközt használna egy objektumorientált program elkészítése során az osztályok objektumok modellezésére, és miért? Bármilyen szoftvert, amely UML diagramok modellezését meg tudja valósítani. Pl, amit órán is használtunk a Pacestar UML diagrammer. Azért érdemes lemodellezni a készülő program osztályait és objektumait, mert egy komplexebb program esetén rengeteg osztályt és objektumot használhatunk, ha ezek le vannak modellezve jobban átlátható és nyomon követhető a program. Projekttervezés, ütemezés elősegítésére milyen szoftvert használna és miért
3/8
Pl.: Microsoft Project, mert ebben a programban közgazdaságtani formulák is be vannak integrálva, amelyek megkönnyítik a kockázatelemzést, segítenek lemodellezni a gazdasági folyamatokat, kritikus pontokat megkeresi. Nevezzen meg néhány UML diagrammot és röviden jellemezze őket Osztálydiagramok A rendszerben használt osztályokat mutatja azok attribútumaival együtt. Az osztálydiagram tartalmazza továbbá az osztály szintű kapcsolatokat. Objektumdiagramok A modellezett rendszer egy adott időpillanatbeli állapotát mutatják az objektumdiagramok. Az objektumdiagram pillanatfelvétel a rendszer állapotáról. Aktivitásdiagramok Az aktivitásdiagramok a munkafolyamatot (idegen szóval workflow-t) modellezik use case diagramok A use case diagramok fogalmazzák meg a rendszer használati eseteit.
8. Miért van szükség beágyazott ciklusokra? Pl.: Kétdimenziós vagy több dimenziós tömbök bejárására. A keresési, rendezési algoritmusokat érdemes fejleszteni? Igen, mert a számítógép rengeteg ilyen algoritmust futtat le még ha látszólag nem is azt csinálja, ezért, minél gyorsabbak ezek az algoritmusok, annál gyorsabb lesz a gép működése. Hogyan oldják meg a többdimenziós tömbök kezelését azon programnyelvek, amelyekben nincs többdimenziós tömb? Úgy hogy az egydimenziós tömböknek az elemei további egydimenziós tömbök és így tovább. Mi a rekurzió? Azt a szituációt, amikor egy aktív alprogramot hívunk meg, rekurziónak nevezzük. A rekurzióval megvalósított algoritmus mindig átírható iteratív algoritmussá (ciklusos verzióra). Az iteratív algoritmusok általában gyorsabbak, mivel kevesebb memóriafoglalással járnak. (Konyhanyelven a rekurzióra egy példa, amikor egy függvény önmagát hívogatja meg)
9. Mi az, hogy szintaktika? Mint minden beszélt nyelvnek, úgy a programozásban használt nyelveknek is vannak szabályai, amelyeket be kell tartani. Ezeket a szabályokat összefoglaló néven szintaxisnak (syntax) nevezünk. Minden programozási nyelvben mások a szabályok, amelyeket meg kell tanulni az adott nyelv használata érdekében. Például Pascalban minden utasítást pontosvessző (;) zár. Mi az, hogy szemantika? Egy kódrészlet szemantikájának a kódrészlet által végrehajtott feladatot nevezzük. A kódrészlet jelentését. Például a:=b+c; Pascal utasításnak ugyanaz a szemantikája, mint a a=b+c; C utasításnak. Ha egy változót vagy függvényt átnevezünk egy új, még nem használt
4/8
névre (beleértve az összes hívás helyét), akkor a program szemantikája nem változik. Tehát a=b+c; és d=e+f; szemantikája is ugyanaz.
10. Mi az IDE (Integrated Development Environment)? Az IDE olyan programfejlesztő környezetek, amelyek megkönnyítik a programozásnál megszokott szerkesztés-fordítás-hibakeresés munkaciklust: a szövegszerkesztő (editor), fordító (compiler), és hibakereső (debugger) egy helyen találhatók és jól együttműködnek. Milyen fejlesztő környezeteket ismer? Melyikben milyen programnyelven lehet fejleszteni? Dev c++: c,c++ Netbeans, Eclipse: java, php, HTML Notepad++: nagyon sok nyelv, bár fordítót nem tartalmaz Soroljon fel pár objektum orientált nyelvet! C++, Java, C#, Delphi
11. Ismer-e olyan online szolgáltatást, amivel dokumentumokat oszthat meg? Google Dokumentumok, vagy most már Drive, ahol 5Gb tárhelyet kap az ember, ráadásul a dokumentumokat egyszerre többen is szerkeszthetik online. Dropbox esetén szintén online tudunk fájlokat megosztani 2Gb tárhellyel. 2/1 es kérdés Hogyan kezelné azt, hogy a megrendelő, állandó módosításokat szeretne, hiába le van már dokumentálva minden? Minden dokumentumot, miután elfogadta a megrendelő, alá kell vele íratni. Ha ezen módosítani akar, akkor elő tudjuk venni és hivatkozhatunk rá, hogy ezt már egyszer elfogadta. Ha mégis módosítani kell, akkor, vázoljuk fel neki a következményeket, hogy milyen dokumentumokat, munkafázisokat kell e miatt újra elkészíteni, és hogy az mekkora többletköltséggel jár.
12. Felugró ablakokat érdemes-e használni weboldalon? Nem, mert zavaró lehet a sok felugró ablak, a felhasználók nem szeretik a felugró ablakokat. Főleg mert általában a felugró ablakokban mostanság reklámok vannak, ráadásul fontos területeket takarnak ki a weboldalról. Hogyan teszi egyértelművé, a weboldalon egy elemről, hogy az egy gomb, egy link? Ha felé viszi a felhasználó az egeret, megváltozik az egérmutató, esetleg a gomb színe, háttérszíne stb. Mekkora minimum felbontásra érdemes tervezni egy weboldalt? Manapság már 1000-950px szélesre lehet tervezni, hiszen a legtöbb felhasználó már rendelkezik a minimum 1024*768 felbontással. Azért kisebbre tervezzük, mint 1024, mert oldalt a görgetősáv és esetlegesen egyéb eszköztárak szűkíthetik ezt a méretet.
5/8
Horizontális görgetősávot érdemes-e használni weboldalon? Nem, mert zavaró lehet, hogy mindkét irányba lehet görgetni, ráadásul az egéren általában csak egy görgő van, ami a függőleges görgető sávot kezeli.
13. 14. Milyen adatbázis kezelőket ismer? Oracle, MySql, Microsoft Access Milyen adatbázis készítő szoftvereket ismer? MySql workbanch, Ms SQL Mondjon néhány példát az adatbázis kezelőkben előforduló típusokra! MS Accessben: szám, szöveg, feljegyzés, OLE objektum, igen/nem, dátum MySql-ben: int, varchar, text, mediumtext, longtext, varbinary, blob, date, bool, binary Egyed-kapcsolat milyen ábrákkal jelöljük az egyedet, a tulajdonságot és a kapcsolatot? téglalap - egyed rombusz - kapcsolat ellipszis – tulajdonság (attribútum) Milyen lehet a kapcsolatok számossága: 1-1 1-N N-M Mi az elsődleges kulcs? Az a tulajdonság, aminek az értéke minden rekordnál különböző értéket vesz fel.
15. Soroljon fel pár PHP függvényt, amivel adatbázist tud kezelni és mondja el röviden mire szolgál! mysql_connect MySQL adatbázishoz lehet vele csatlakozni mysql_select_db Adatbázis kiválasztása mysql_query() A függvény kérést küld a megadott kapcsolat-azonosítójú szerver aktív adatbázisához mysql_error() Az utolsó MySQL művelet hibaszövegével tér vissza, vagy '' (üres karakterlánccal) ha nem volt hiba. Mi a külső kulcs? Olyan attribútum, ami egy másik táblának az elsődleges kulcsa. Két táblának az összekapcsolására szolgál. Mi a redundancia, káros redundancia? Felesleges adatismétlődés.
6/8
16. Mikor van értelme végtelen ciklust használnunk? Ha például egy esemény bekövetkezését kell a programnak folyamatosan figyelnie. Ha bekövetkezik a várt esemény, akkor egy break utasítással kiugorhatunk. Természetesen végtelen ciklus nélkul is meglehet ugyanezt valósítani. Ha van két if utsaítás rövid alakban (nincs benne else ág), ezek egymásba vannak ágyazva, akkor a második if tevékenysége mikor fut le? If (feltétel1) if (feltétel2) tevékenység Ha mind a két if feltétele igaz. Mi történik a switch case szerkezet használatával C nyelvben, ha nem rakunk a case ágakba break-et? Lefut a megfelelő case ág, majd az összes többi utána lévő tevékenység. (Tehát a többi case ág tevékenységei is lefutnak)
17. Mi az előnye és hátrány a szétszórt ábrázolású lista adatszerkezeteknek? Az előny az, ha egy elemet be kell szúrni egy listába egy bizonyos helyre, akkor nem kell adatokat mozgatnunk, csak az előző adatelem mutatóját ráirányítani az új adatelemre, és az új adatelem mutatóját a rá következőre. Hátránya, hogy szétszórt ábrázolás esetén nem tudunk a listában index alapján megfogni egy elemet, azt meg kell keresni. A sor adatszerkezet: Az egymás után beírt adatokat a beírás sorrendjében vehetjük ki. • FIFO – First In First Out • Például: Nyomtatási sor. Egyszerre csak egy dokumentumot tudunk kinyomtatni, addig a többi dokumentum egy sorban helyezkedik el. A verem adatszerkezet: A verem olyan adatszerkezet, amely több elemet is tartalmazhat, de mindig csak az utolsónak belerakott (legfelső) eleme érhető el. Nevét is erről kapta. • LIFO – Last In First Out • Stack –nek is szokták nevezni • Sok helyen használják pl.: Operációs rendszerek, Függvények hívása
18. Osztály diagrammban hogyan jelöljük a publikus, privát és védett adattagokat? + publikus - privát # védett Use-case diagramm A use-case diagramm eszköz a rendszer elvárt működésének specifikációjához. Tipikusan a követelmények feltárására használják: Mi az amit a rendszernek tudnia kell.
7/8
A use-case diagrammban mi az aktor? Felhasználók és más rendszerek, amelyek kapcsolatba lépnek a rendszerrel. Mindig a rendszeren kívül van. Szerepet, szerepkört definiál. Nem feltétlenül fizikai entitás. Jelölése: pálcikaember
8/8