Friday, 28 July 2017

D:\Documents\rhymeApp
a baromfiraa bölömbikaa főmuftiraa kalobiotika
a kígyópatikaa krumpliraa matematikaa metropolita
a postakocsibaa proserpinaa statisztikaa szarvasbika
a tükörsimaah zsuzsikaahol kukoricaahol palika
aki annyiraakik olyannyiraakit annyiraalig arasznyira
állomásnyiraami politikaamit annyiraaranykarika
az esztétikaaz étkezőkocsibaaz istennyilaaz offenziva
az óriásiraaz ornamentikaaz osztrigabaja zsuzsika
cár szalonkocsijacisztercitacon mentiracsak annyiba
csak annyiracsak lagziracsak lórikacsak mancika
de olyannyiraegy angelicaegy arasznyiraegy futamatnyira
egy hajszálnyiraegy húzóharmonikaegy kocsibaegy kopjányira
egy kőhajításnyiraegy makszimaegy metropolitaegy órányira
egy talyigaegy ujjnyiraegy vasarijaépp annyira
és acélkarikaés dominikaés ezüstkarikaés hajlandóságira
és marcellinaés matematikaés seraphinaétkezőkocsiba
ezen annyiraezüstkarikafel annyirafog kocsiba
fogyatkozásirafordulásirafutamatnyiragondolatiba
hajlandóságirahajszálnyirahát annyirahát baromira
hat cseréppipahely annyirahogy amerikahogy angelica
hogy annyirahogy banditahogy favoritahogy palika
hogy szonikahogy zuritahold olyannyirahúzóharmonika
ime seraphinais zsuzsikaitt annyiraitt muzsika
jobb másikakalobiotikakell annyirakét annyira
két arasznyirakét balerinakétkopjányirakézfogásnyira
kígyópatikakozmopolitakőhajításnyiraköt seraphina
le zsuzsikalesz amerikaliii maximalvii maxima
lxii maximalxix maximalxvi maximalxxi maxima
lxxv maximamajd lóriramajd palikamár annyira
már kétkopjányiramár másodikameg annyirameg paprika
meg zsuzsikamert amerikamert annyiramert palika
mert pántlikamese annyirametropolitamíg annyira
mint zuritamisi misicamost afrikanap annyira
nem amerikanem annyiranem kocsisanép muzsika
neve annyiranos annyiranők annyiraornamentika
postakocsibaprogressivarám annyiras olyannyira
se angelicasebe annyirasportkocsibastatisztika
szalonkocsijaszarvasbikate seraphinatehertaxira
túl szkutaribauram kalamárisavagy visitavagy zurita
változásiravan annyijavan annyiraviii maxima
volt annyiravolt janikavolt muzsikavolt olyannyira
volt zsuzsibaxcix maximaxcvi maximaxliv maxima
xlix maximaxlvi maximaxvii maximaxxii maxima
xxiv maximaxxix maximaxxvi maximazene annyira
zöldpaprika

Wednesday, 19 July 2017

.NET, C#, OO, Java, Javascript Interview questions and answers - ROUND 2 motherfuckerz......

What is .NET?!

A Microsoft Framework what is the best to create Windows applications....

What is Object?!

Object is reference to a quasi "memory allocattion" where your value stored psichically, ...

What is the main principal's of OO programming?

-Abstraction
-Encapsulation
-Polymorfism
-

Tuesday, 18 July 2017

Web applications high act at the internet development extremely fast speed


Diplomamunka

I. - Az Internetről általában


1.1. - Az Internet kialakulása, működése és fejlődése


Az internet olyan nemzetközi hálózat, amely világszerte már megközelíti a 160 millió felhasználót. Naponta milliók használják a hálózat adta lehetőségeket és számos szolgáltatást vesznek igénybe.

A kezdeményező nem más volt, mint a hadsereg, az internet őse bizony katonai megfontolásból született meg az 1960-as években. Később az egyetemi, kutatói szféra volt az, amely – amellett, hogy rendelkezett számítógépekkel – igényelte is az összekapcsolódást.

Az internet mintegy 20 évvel ezelőtt született egy kísérleti hálózatból, melyet az Advanced Research Projects Agency fejlesztett ki, s ezért az ARPANET nevet kapta. Ezt a rendszert, hadászati szempontokat figyelembe véve alkották meg. Az volt a cél, hogy azt ne egy központi számítógép köré szervezzék - hiszen így azt megsemmisítve gyakorlatilag az egész hálózat működésképtelenné tehető - hanem teljesen önálló és egyenrangú számítógépek, más néven csomópontok, vagy host-ok összekapcsolásából álljon a rendszer.
Az egyes hostok több másikkal is összeköttetésben lehetnek, és két host között akár több út is létezhet. Egy-egy csomópont kiesésével, csak egy (esetleg egy csoport) felhasználó marad ki a kapcsolatból, míg a hálózat egésze működőképes marad.

Az ARPANET-en többé nem komputeres információcsere zajlott. Ehelyett hírek és személyes üzenetek árasztották el a hálózatot. A kutatók közös projektek kiépítésére használták az ARPANET-et, elküldözgették egymásnak kutatási eredményeiket, vagy egyszerűen csak pletykáltak, cseverésztek. Az emberek saját accountot és személyre szóló e-mail címet szereztek az ARPANET számítógépekhez. Mindenki nagy előszeretettel használta privát kommunikációra az ARPANET-et, jóval nagyobb lelkesedéssel fogadva ezt a szolgáltatást, mint a táv-komputerezést.
Nem sokkal később megszületett az ARPANET levelezési listája is, azaz új szóró technika, amelynek segítségével ugyanazt az üzenetet egyszerre több hálózati előfizetőknek is el lehetett küldeni.

Ekkor a DCA (Defense Communications Agency) meghatározta, hogy minden ARPANET host a TCP/IP protokollt használja.

Mivel így az információ-csomagok formája szabványosítva lett, ez azt jelentette, hogy új hálózatokat lehet hozzákapcsolni a rendszerhez, anélkül, hogy az eddigi felépítést meg kellene változtatni.
Az Internet tehát az ARPANET-ből indult, s magába foglalt más hálózatokat, úgymint az NSFNET-et (a National Science Foundation által támogatott hálózat), a NEARNET-et, és másokat is.


Később az NSFNET egyetemek és kereskedelmi intézmények szuperszámítógépei között teremtett nagykapacitású összeköttetést, amelyek köré helyi hálózatokat szerveztek. Így az NSFNET is „hálózatok hálózata” lett, mint az Internet, amelynek részét képezi. Az ARPANET pedig, amelyből az egész rendszer kiindult, mint szervezet 1990-ben megszűnt létezni.
Amint az alábbi ábrán is jól látható, a 90-es évek elején robbanásszerűen megnőtt az internetes hostok száma, jól mutatva ezzel az internet elterjedésének meghatározó mértékét.

http://old.pte.hu/~uhi/kurzus/informatika/hosts2002.gif
Az Internetben regisztrált hostok számának alakulása.

Az internet fejlődésének és elterjedésének üteme egyedinek mondható, kirívóan gyorsan hódította meg mind a felhasználók, mind a szoftver- és hardverfejlesztő cégek gondolkodáspolitikáját. Mindez a haladás, változás, már a kezdetektől megfigyelhető volt:

Az NSFNET gerinchálózatán 1995 áprilisában mért 13 404 656,5 MB adatforgalmának megoszlását mutatja a jelentősebb szolgáltatások szerint a következő táblázat:

Szolgáltatás
Adatforgalom (MB)
%
WWW
3 518 742
26,25
FTP
2 886 742
21,53
NNTP
1 160 496
8,66
SMTP
620 450
4,63
Telnet
339 404
2,53


A későbbiek folyamán ez a fejlődés nem állt meg, sőt még inkább teret hódított magának az internet az I.T. cégek körében.

Tim Berners-Lee és Robert Cailliau elgondolásai alapján olyan rendszer született, ami az elmúlt tíz évben forradalmasította a kommunikációt. 1998-ra mintegy 300 millióra nőtt a web dokumentumok száma, és a web naponta további másfél millióval bővül.

Az ős-internet ingyenessége nem azonos az ingyen kínált termékekre, szolgáltatásokra épülő "dot-com" üzlettel".
A '90-es évek közepe, az internet "elüzletiesedése" előtt a neten megjelenő ingyenes tartalom túlnyomó többsége közvetlenül a szerzőktől származott, illetve egyszer már felhasznált (és kifizetett) anyagokat tartalmazott. Mivel tehát a tartalom maga nem került pénzbe, terjesztésére pedig már létező, a tudományos intézetek közti kommunikáció infrastruktúráját vették igénybe, működtethető volt az ingyenes tartalomszolgáltatási modell.
Miután 1991-ben a National Science Foundation, az internet "gazdája" feloldotta a hálózat üzleti használatának tilalmát, majd 1995-ben teljesen vissza is vonult a területről, teljesen átalakult a világ.
A hálózat növekedés meghaladta az évi 300 százalékot, kitört az "internet boom". Az üzletemberek hamarosan felfigyeltek az - ingyenes - kereső szolgáltatások köré kiépülő, rengeteg látogatót vonzó portálokra.
1995-ben a Wired hálózati magazin „feltalálta" a hirdetési csíkot (banner). Innentől már egyenes út vezetett az üzleti tevékenység nélkül pénzt termelő gazdasági örökmozgó modelljéhez: A felhasználók számának növekedése vonzó hirdetési felületté tette a legforgalmasabb weboldalakat. Az új sztárok, az AOL, a Yahoo!, és társaik sikerein felbuzdulva nem csak újabb és újabb "start-up" vállalkozások indultak el, de beszálltak a (remélt) üzletbe a legnagyobb távközlési és informatikai cégek is.
Hirtelen megváltozott az értékrend. Az interneten át eljuttatott üzenet értéke helyett a weboldalra vonzott látogatók száma lett az abszolút mérce. A virtuális gyarmatbirodalom, a látogatószám növelése érdekében egyesülési és felvásárlási hullám kezdődött.

2000 tavaszán elindult a dot-com lavina, kiderült, hogy az internetes alkímia csak illúzió, üzleti tevékenység nélkül az „Új Gazdaság” sem képes pénzt termelni. A legtöbben belátták, hogy a csupán nagy forgalomra és a hirdetésekre alapozott üzleti modell nem működik. Az elmúlt hónapok hírei arról szólnak, hogy a megrendült, de életben maradt, korábban ingyenesen szolgáltató cégek szép lassan elkezdtek áttérni a „Régi Gazdaságból” örökölt, jól bevált fizetéses modellre.
Az ingyenesség megszűntének súlyosabb következménye egy újabb digitális szakadék kialakulása. Nyilván sokan lesznek majd, akik nem képesek majd megfizetni az üzleti alapon nyújtott szolgáltatásokat. Az elmúlt években ráadásul jelentősen átalakult az információhoz való jutás módja is.
Akik megszokták, megszerették az ingyenes szolgáltatásokat, most érthetően csalódottak, tiltakoznak
„a szolgáltatók mohósága" miatt.


1.2. - A Web 2.0 ,mint új média és jellemzői


A XXI. Században a mozgató rugója az embereknek a kommunikáció lett. Említhetnénk a pénzt, a szeretet vagy a boldogságot is, de a legfontosabb, amiért nap-mint- nap küzdenek az emberek az a kommunikáció. Ez eddig a kommunikáció iránya egyirányú volt, a médiamodulok, szerkesztők határozták meg, hogy mit olvassunk, nézzünk, és persze, hogy mindezt mennyiért.
 Ez indította el
a kommunikációs forradalmat, melyet a kisemberek indítottak el.
Az utóbbi időben megjelent, és mára már hatalmas teret hódító YouTube, MySpace, Facebook oldalak,
valóban kétirányú interaktív médiumoknak számítanak, és ezekkel a társasági oldalakkal valóban mi lehetünk, egyszerű felhasználók, akik kialakítjuk, tulajdonképpen ez a médium mindenkié. Az internet megváltoztatta a világot megjelenésekor és elterjedésekor. Ma már azonban az internetes felhasználók változtatják meg a világhálót.

A YouTube internetes videómegosztó-portál megjelenése, és rohamos elterjedése a televíziót erősen hátraszorította. Jelmondatuk a „Kerülj képbe” felkiáltás volt.
Említést kell tenni arról az óriáscégről, amely felvásárolta a YouTube közösségi portált, és ezzel meg is kezdődött a
Google sikertörténete.
Említésre méltó a DIGG
internetes hírportál, amelyet a Web 2.0 szellemiségében a felhasználók szerkesztenek, valamint értékelnek. Ezek alapján az értékelések alapján határozzák meg a cikkek sorrendiségét.
Majd megjelent a Facebook nevezetű internetes-társasági oldal, amely pillanatok alatt a csúcsra került. Titka a saját kapcsolathálózat, valamint, hogy az élet részévé nőtte ki magát.

A 1970-es évek közepétől a zenére tevődött át a hangsúly, sok fiatal megelégelte, hogy egy vagy maximum két jó zenéért vegyenek meg egy CD-t vagy egy kazettát.

Ekkor került a képbe Steve Frankl, aki kollégista létére létrehozta a „Nepster” hálózatot. A Nepster tulajdonképpen egy fájlcserélő hálózat volt, ami eleinte, csak a kollégiumokon belül, kollégiumok között működött, de kinőtte magát és az egész világon elterjedt lett. Természetesen ez magával hozta a jogi vitákat, elsősorban a tiltott zene-cserekereskedelméért. Ezek kivétel nélkül jogvédett tartalmak voltak (zenék, filmek).

A robbanásszerű elterjedés:


Google Analytics – látogatottsági statisztika
Forrás: http://kgk.bmf.hu/system/files/20_Tarcsi.pdf

Az előbbi grafikon illetve ábra alapján levonhatjuk a következtetést, hogy az informatikai fejlődés minden szempontból kiugró, robbanásszerű, ezzel nagy hatást gyakorolva mindenre, a hétköznapi, a tudományos életre a kutatás-fejlesztés módszertanára, a kommunikációra és nem utolsó sorban a médiára.

A Web 2.0-s alkalmazások fő jellemzője nem feltétlenül a kínált funkcionalitások összességében határozhatóak meg:
A közösségi munka segítségével bárkiből válhat alkotó, az alkotás értékét szintén a közösség értékeli majd, az interaktivitással a passzív fogyasztók aktivizálhatóak. Mindig az alkalmazás aktuális, legújabb verziója érhető el és az adatok köre is a lehető legszélesebb.

Az Internet, a világháló a platform, a megjelenítéshez böngészőre van szükség, bárhol elérhető, ahol van Internet hozzáférés. A kliensgép egyéb specialitásai –többnyire – csak kis mértékben határozzák meg az alkalmazás által megvalósítható funkciókat.

  • Címkézéssel egyszerre több szempontból osztályozhatunk, jelölhetünk meg fogalmakat.
  • A Web 2.0 demokratizáló hatású, hiszen az elérhető terjesztési csatornák, szolgáltatások, eszközök helytől függetlenek.
  • A Web 2.0 segítségével a marketing szerepe is megváltozik, a kevés fajta, de nagy mennyiségben eladható termékek (a slágertermékek) uralmát felváltja a nagyon sokféle, egyenként nagyon kis mennyiségben fogyó, rétegszükségletet kielégítő termékek piaca.
  • Jellemző a Web 2.0-s szolgáltatásokra, az összeépíthetőség. A több helyről összeintegrált információkat és szolgáltatásokat mashup-oknak nevezzük, melyekkel összetett funkciókat érhetünk el.
    Forrás: MEB 2009 – 7th International Conference on Management, Enterprise and Benchmarking June 5-6, 2009 , Budapest, Hungary

II. – Közösségi oldalak, A készített projekt


2.1. – A közösségi portálok és céljuk


Lassan az internet térhódításával kikerül a média kezéből az irányítás. A Net, a saját tartalom közzététele, videók tömkelegének megosztása létszükségletté vált. Így ezek az oldalak teljes mértékben kétirányú interaktív hálózattá fejlődtek, mindez egyértelműen leszűrhető a jellegzetes „Web Kettes” szolgáltatásokból, és általuk teremtett mérhetetlen lehetőségekből.

Amint az alábbi ábra is mutatja, a szolgáltatások, és a velük kapcsolatos funkciók, illetve ezek kombinációja rengeteg lehetőséget biztosít, mind a fejlesztőknek, mind a felhasználóknak.
Forrás:
http://www.myshakthi.com/site/my_web20/images/web1.jpg

Ezek közül a szolgáltatások közül a legfontosabb, hogy a tartalmat a felhasználó teszi közzé, és hozza létre. Ezzel új korszak nyílt az internet történelmében, amit WEB 2.0-nak hívnak.

Megjelent a MySpace, a FriendSter, melyek teljes mértékben WEB 2.0- alapú oldalak voltak.
Az
akkoriban nem túl nagy jelentőséget tulajdonítottak ezeknek a társasági oldalaknak, ennek ellenére 2005-ben hatalmas érdeklődés, és hatalmas összegű ajánlatok kerültek napvilágra, amikor ugyanis Robert Murdok 650 millió dollárt ajánlott fel a MySpace-nek, ami már eddigre 27 millió regisztrált felhasználóval rendelkezett.
 Meg kell említeni, hogy
Robert Murdok „túl nagy felhajtásnak” nevezte még fél évvel az ajánlata előtt a MySpace-t.

Természetesen itt sem lett vége a közösségi oldalak harcának, ugyanis megjelent a FaceBook. Mark Zuckerberg nevéhez fűződik, aki csapatával, 2 hét alatt megteremtette az első verziót.
Jelentősége rendkívüli, egy univerzális kapcsolatrendszeren alapul, határtalan lehetőségeket biztosít, mind fejlesztőknek, felhasználóknak, és persze a reklámiparnak.

Ezen oldalak szemlátomást küzdenek a legjobb címért, de ebben a csatában csak az új média csap össze az újjal, és nem a régi médiával, mint ahogy az internet elüzletiesedése korai korszakában megtörtént szerzői jogi perek rengetege jellemezte.
Nem csak a közösségi oldalak, hanem egyéb más, például apróhirdetésekkel foglalkozó oldalak, amelyek igencsak összekuszálta az újságok költségeit, hiszen itt mindent megtalálni ingyenesen, szemben az újsággal, ahol szinte minden pénzbe kerül
Ha a nagyobb cégekre gondolunk, kíváncsian várhatjuk például a MySpace és a FaceBook „
csatáját” a felhasználókért, de mindez már a jövő zenéje…(a közeljövőé)

2.2. – A készített projekt célja, felépítése


A készített program (alkalmazás) egy: „olyan alkalmazás, amely egy webkiszolgálón fut, s amelynek felhasználói felületét egy általános célú ügyfélalkalmazás, például egy böngésző adja. A webalkalmazás legyártja a HTML-lapokat az aktuális igényeknek megfelelően”

Forrás: Angster Erzsébet:Elosztott Alkalmazások (Alkalmazásfejlesztés-technológióa)

Ez a webalkalmazás fogalma, működésének megértéséhez nyújt segítséget az alábbi ábra:

A Webkiszolgáló futtatja a webalkalmazást

Egy web alkalmazás felépítésére jellemző, hogy böngészőből futtatható, van kezdőlapja, ahonnan további lapok érhetők el. A lapok többsége dinamikus, hiszen ettől alkalmazás. A webes alkalmazást és annak saját erőforrásait tipikusan egy – az alkalmazás nevét viselő – mappa tartalmazza.

Web alkalmazások között is különbséget lehet tenni több szempont szerint is, ebből az egyik legfontosabb, a dokumentumot előállító program nyelve, amely ebben az esetben a Java-technológiát jelenti.
A Java-technológia egyszerre jelenti magát a programozási nyelvet és a különböző alkalmazásfejlesztési és –futtatási platformokat. A Java-technológia szabványos megoldásokat ad biztonságos, hordozható, megbízható és skálázható alkalmazások fejlesztésére és telepítésére, elosztott környezetben.

A készített webes alkalmazás célja, hogy bemutassa a közösségi portálok jelentőségét és nagyszámú látogató felhasználók érdeklődési centrumát, regisztrált felhasználók által rááldozott időtartam nagy mennyiségét. Emellett láthatóak lesznek, a közösségi portálok hátulütője is.
Ez alatt értem a rengetek személyes adatot, a felhasználóról elmentett szokásokat, felkeresett témákat, elérhetőségeit, baráti körét stb.

Példaként említeném az amerikai hírszerzéssel (CIA) kapcsolatban ért vádakat, miszerint, a Wikileaks alapítója szerint a FaceBook, a Google és a Yahoo szerverein is szabadon jár ki-be az amerikai hírszerzés, a média pedig folyamatosan megvezeti a közvéleményt, és kiszolgálja a hatalmat.


2.3. – A „site” által nyújtott szolgáltatások


Az általam készített közösségi oldal lehetőséget nyújt az ingyenes regisztrációra, amely a belépéshez és saját felhasználói név „birtoklásához” feltétlenül szükséges, természetesen megfelelő szerződés elfogadásával, amely a megadott adatok, kapcsolatok biztonságos kezelésével, valamint a felhasználó biztosítja, hogy rendeltetésnek megfelelően használja jogosultságait.
A regisztrált felhasználók belépés után témákat indíthatnak, olvashatnak, melyek célja a segítségnyújtás, fórumokban feltett kérdések formájában.
Lehetőség nyílik ismerősök megjelölésére, üzenetek küldésére, valamint egyéni profil létrehozására, amely pár soros érdeklődési kör, fényképek feltöltése, és egyéb opcionális adat megadásából áll.

Az oldalon a szokásos közösségi portálok szolgáltatásai mellett pontokat szerezhetnek a felhasználók, amellyel rangokat vehetnek, valamint alkalomszerűen tényleges ajándékokra licitálhatnak.
Pontokat lehet szerezni, helyes válasszal (megoldja a témában elemzett problémát), valamint más felhasználók által jóra értékelt hozzászólásokért.

Az általam készített alkalmazást a WEB 2.0 típusú közösségi portálok, fórumok, üzenetküldési lehetőségek ötlete adta. Az ötlet egy olyan közösségi portál létrehozása, melynek témája az informatika, ahol a regisztrált felhasználók a közösségi portálok minden funkcióján túl segíthetik egymást, ötleteket, megoldásokat nyújthatnak egymásnak. Mindemellett, az oldal pontozásos rendszerben működik, ahol a pontok adják az adott felhasználó „rangját”, azaz megbízhatóságát, szakértőségét és elismertségét.

A portál által nyújtott „szokásos” közösségi szolgáltatások a saját profil létrehozása, üzenetküldés regisztrált felhasználók között, más felhasználó „ismerősként” való „bejelölése”, ami megkönnyíti, vagy lehetővé teszi az egyéb funkciók használatát, valamint fórumokban, témákban (topic) való részvétel, témákba való beleszólás, hozzászólás (commentezés).
Ne feledjük, a portál témája az I.T., az informatika minden ága (a programozástól a szövegszerkesztésig, a hardver tippektől a tényleges hardverhibák kezeléséig), így nem is nagy meglepetés, hogy az oldal szlogenje, jelmondata: „
Tartozz közénk!”

A „web-application”, vagyis webalkalmazás az E@syWeb nevet kapta, ennek nyilvánvaló oka, hogy minden felhasználó felteheti kérdését, legyen az kezdő, vagy profi, biztos választ kap, a pontozási rendszernek köszönhetően.

Érdemes még szót ejteni a pontozási rendszerről, ami a különlegességét jelenti az oldalnak, ugyanis, más hasonló közösségi portálok, vita-portálok esetében a felhasználó által kapott, megszerzett pontok csupán a már említett elismerés célját létesítik.
A több ponttal rendelkező felhasználók újabb, több jogosultságot kapnak.(Pl.: webes felület testre szabása, moderátori jogosultságok vagy az adminisztráció lehetősége, a legtöbb ponttal rendelkezők különböző - ingyenes vagy nem túl drága - „ajándékot” kapnak, segíthetnek az oldal fejlesztésében, stb.)

Azoknak a felhasználóknak, akik nem érik el a időszakos pont-limitet, meghatározott ideig nem léphetnek be a portálra, súlyos esetben regisztrációjuk törlésre kerül.

Az E@syWeb pontozási rendszere a következő:

Pontot kap az aki:

  • valamely fórumban, egy adott problémára megoldást talál, és ezt válaszként ott publikálja
  • olyan problémát, kérdést vett fel, amely a legjártasabb szakembereknek is nehézséget okoz (különböző feladatok leírása)
  • minden héten a legtöbb jó, hasznos hozzászólással, kapcsolattal rendelkezők illetve az oldalon töltött idő arányában kap pontot.
    Pontot veszít:

  • aki a héten legkevesebb hozzászólással, ismerőssel rendelkezik
  • a portálon, a héten legkevesebb időt eltöltő felhasználók
  • rossz választ, haszontalan információt, segítséget ad
  • kulturálatlan magatartás, a „netikett” megszegése

III. - Programozói eszközkészlet, programozási nyelv,
 és fejlesztői környezet


3.1. – A Java programozási nyelv előnyei, hátrányai


A Java programozási nyelv segítségével magas-szintű forráskódot (forrásprogramot) lehet írni, amelynek a lefordított bájtkód változata képes futni akár böngészőben, akár asztali számítógépen, szerveren vagy valamely fogyasztói eszközön (Pl.: mobiltelefon, PDA, stb.).
Egy Java programot (bájtkódot) nem a natív operációs rendszer futtat közvetlenül, hanem a Java virtuális gép (JVM), biztosítva ezzel a platformfüggetlenséget.


A JVM működése és platformfüggetlensége

A Java platform egy szoftverekből álló környezet, amely adott hardverkörnyezetre épül, és Java alkalmazások fejlesztését, telepítését, illetve futtatását célozza. Mivel a hardver platformok nagyon specifikusak, a különböző hardver környezetre speciális Java platformok készültek. Minden egyes platform a speciális hardver környezet Java virtuális gépén alapszik. Ezért, ha egy tetszőleges platformon megírunk egy Java programot, az módosítás nélkül futtatható egy JVM-mel rendelkező másik hardver környezetben.

Forrás: Angster Erzsébet:Elosztott Alkalmazások (Alkalmazásfejlesztés-technológióa)

3.2. – Szükséges eszközkészletek, modulok fejlesztők és felhasználók számára


Szükséges eszközök felhasználók számára:

Egy JAVA nyelven írt program, alkalmazás (asztali vagy webes) megtekintése, elindítása, bárki számára lehetséges „feltételektől függ”.
Szükség van először is internetkapcsolatra, valamint egy GWT-plugin kompatibilis böngészőre. Ez sajnos a manapság zajló böngészőháború miatt csak adott fajta és verziószámú lehet. Kompatibilis böngészők pl.: Internet Explorer, Google Chrome, Mozzila Firefox, Safari, de nem telepíthető például Opera bizonyos típusaira.

A böngésző program az adott webes alkalmazás megnyitásakor azonnal felajánlja a GWT böngésző plugin(ingyenes) letöltését és beépítését az aktuális böngészőbe.

Az internetes alkalmazás JAVA- nyelven íródott, AJAX-komponensek és egyéb kiegészítők felhasználásával. A legfontosabb kiegészítő a Google cég által készített Google Web Toolkit, ami egy AJAX fejlesztői eszköztár (toolkit). Ezt az eszköztárat felhasználták a Google Base, és a Google Checkout bizonyos részeinek, illetve a Google Mashup Editor egészének fejlesztésében is.


Egy GWT projekt struktúrája

A fő újdonság a Java-JavaScript fordítóban van: a fejlesztő elvégezheti a kódolást és a felhasználói felület hibakeresését Java nyelvet használva, majd legenerálja a végleges HTML/JavaScript kódot és használhatja.
Az elkészült webes
AJAX-os alkalmazás majdnem az összes modern böngészőt támogatja.
A
JavaScript programkönyvtár, ami letöltődik a működéshez, kb. 100 Kbyte méretű. Az eredeti UI widgetek támogatják a CSS-t, és új widgetekkel, valamint egyedi JavaScript függvényekkel is lehet bővíteni őket. A toolkitben található egy RPC protokoll-megvalósítás, a JSON, valamint a böngésző előzményeinek a kezelése.

Az alkalmazás alapjául egy MySQL adatbázis fog szolgálni, elősegítve az egyes felhasználók nevének, jelszavának, pontjainak nyilvántartását, valamint a kiemelt felhasználók itt hozhatják létre saját adatbázisukat.

Fejlesztői környezetnek a Java nyelv programozásához az Eclipse IDE-t választottam, ami nyílt forráskódú, platform független szoftver-keretrendszer, amellyel úgynevezett vastag kliens (rich client) alkalmazásokat lehet készíteni. Ezt a keretrendszert eddig jellemzően integrált fejlesztőkörnyezetek (Integrated Development Environment, IDE) készítésére használták fel, mint például a Java IDE, a Java Development Toolkit (JDT) és compiler (ECJ), amelyet az Eclipse részeként terjesztenek (illetőleg az Eclipse fejlesztéséhez is használnak).
Az
Eclipse természetesen más kliensalkalmazások fejlesztéséhez is használható, mint például az Azureus nevű BitTorrent kliens.

Az Eclipse egyben egy felhasználói csoportot is takar, amely folyamatosan bővíti az Eclipse alkalmazási területeit. Ennek egyik példája az Eclipse Modelling Project, amely a modellvezérelt tervezés legtöbb területét lefedi.
Az
Eclipse alapja a Rich Client Platform (RCP). A rich client platform az alábbi komponensekből áll:

  • Core platform – Eclipse indítása, pluginek futtatása
  • OSGi– szabványos kötegelő (bundling) keretrendszer
  • JFace – fájl-bufferek, szövegkezelés, szövegszerkesztők
  • The Eclipse Workbench – nézetek, szerkesztők, perspektívák, varázslók.

A GWT (Google Web Toolkit) kiegészítőn (beszerezhető: http://code.google.com) kívül még egyéb kiegészítők-eszköztárak szükségesek, ezekről csak felsorolás szintjén: GWT-Ext (http://www.gwt-ext.com), MySQL-Connector, Ant-J-Unit, Apengine-SDK, GWT-ExtUs, GWTent, SmartGWT.

Természetesen a fejlesztői környezet futtatásához egyéb alkalmazások megléte, feltelepítése is szükséges, ilyen nyilvánvalóan a JRE (Java Runtime Environment) és a JDK (Java Developement Kit), amelyek biztosítják a Java kód futtatását. (http://java.sun.com)
Alkalmazásszerverre feltöltött (deployed) kész projekt esetében csak a böngészőbe szükséges egy GWT eszköztárat telepíteni a futtatáshoz.

Ezen kívül szükség van egy SQL-szerverre, jelen esetben egy MySQL szerverre.
A
MySQL, egy több-felhasználós, és többszálú, SQL-alapú relációs adatbázis-kezelő szerver.
A szoftver eredeti fejlesztője a svéd MySQL AB cég, amely kettős licencezéssel tette elérhetővé a MySQL-t; választható módon vagy a GPL, vagy egy kereskedelmi licenc érvényes a felhasználásra.
2008 januárjában a Sun felvásárolta 800 millió dollárért a céget. 2010. január 27-én a Sun-t felvásárolta az Oracle Corporation, így a MySQL is Oracle tulajdonba került.

A MySQL az egyik legelterjedtebb adatbázis-kezelő, aminek egyik oka, hogy a teljesen nyílt forráskódú LAMP(Linux–Apache–MySQL–PHP) összeállítás részeként, költséghatékony és egyszerűen beállítható megoldást ad dinamikus web helyek szolgáltatására.

Forrás: http://hu.wikipedia.org Beszerezhetőség: http://dev.mysql.com

IV. - Szoftverfejlesztés lépései, a szoftverfejlesztési módszertan


4.1. – Az objektum orientált szemlélet


Az objektumorientált szemlélet a strukturált programozás tulajdonságait továbbfejleszti, melynek eredményeképpen:

  • az általános és konkrét megoldás "hierarchiája" szerepel a végtermékben;
  • a műveletek és adatok sokkal szorosabb, zártabb egységként jelennek meg, amely a programot valóság hűbb kivitellel ruházza fel;
  • a komplexebb modulok és különböző absztrakciós szinteken megvalósított, egymásra épülő programmodulok hierarchiája együtt vagy bármilyen szinten "elvágva", jobban hordozhatók a különböző feladatmegoldások (programok) között;

Az objektumorientált programok objektumokból állnak, melyek működése, illetve együttműködése teljesíti a program feladatát.
Egy feladat elvégzését a programban egy, vagy több objektummal oldjuk meg. Az egyes objektumok a „nagy egészen” belül jól elhatárolt, önálló részfeladatot oldanak meg.
Az objektumok tervezésekor:

  • pontosan definiálnunk kell a rájuk eső részfeladatot,
  • az ennek teljesítéséhez végrehajtandó műveleteket, és
  • a műveletek számára szükséges adatokat.
    Forrás: Selmeci István: Objektumorientált-szoftverfejlesztés
    Online-tananyag
    A készített alkalmazás objektumorientált szemléletben készült , annak teljes mértékben és minden kritériumának megfelelve.
    A program függvényekből, eljárásokból áll, melyek utasításokat tartalmaznak. A függvények és eljárások a program (nagyjából) tetszőleges helyén felhasználhatók, “meghívhatók”.
    A strukturálatlan nyelvek a programozótól olyan gondolkodásmódot követelnek meg, amely főként a vezérlést tartja szem előtt, hiszen ezekben a nyelvekben ennek megszervezése a legnehezebb feladat.
    Az általam készített alkalmazásban a vezérlést az alkalmazás nevével megegyező osztályból – Easyweb.java – meghívott Maincontainer.java osztály végzi, illetve bonyolultabb komponensek esetén maga a meghívott komponens látja el függvény- és eljárásszükségletét.
    A strukturált programozástól a logikus továbblépés az, ha nem önálló adatokban, hanem adatok és műveletek együtteseiben gondolkozunk, ez pedig az objektumorientált programozás (object-oriented programing, röviden OO).
    Egy adat és a rajta végezhető műveletek együttesét az OO-ban objektumnak (object) nevezzük. Több olyan adat is létezhet, amelyhez ugyanazok a műveletek tartoznak, ezek az adatok és műveleteik objektumok egy osztályát (class) alkotják.
    Az osztály definiálja adatainak típusát, és az adatokon végezhető műveleteket. Az osztály példányai (instance) az objektumok. Egy objektumon belül az adatokat mezőknek (field), a műveleteket metódusoknak (method) nevezzük.

4.2. - Szoftverfejlesztés szakaszai, a fejlesztési ciklusok


Szoftvert azért készítünk, hogy a valós világban felmerült feladataink megoldását részben vagy egészben számítógéppel végeztessük el. A szoftverkészítésnél elkülönítjük a feladat megoldását és a megoldás valamilyen programozási nyelven való leírását (kódolás).

A fejlesztési feladat megoldásában az általános feladatmegoldás lépéseit és alapelveit alkalmazzuk. Ez így történt az általam készített alkalmazásban is.
Az alkalmazásom fejlesztését a RUP – Egységesített Eljárás – módszertan szemléletében készítettem,amely viszonylag új módszertan (90-es évek), szemlélete szerint a fejlesztési folyamat szakaszai:

    • a feladat megismerése, helyzetfelmérés, üzleti folyamatok modellezése;
    • követelmények feltárása;
    • elemzés és tervezés;
    • kivitelezés;
    • tesztelés;
    • átadás (a megoldás átadása, telepítése stb. a megrendelőnél, felhasználónál).
      A módszertan a fejlesztési folyamatot, az általam készített alkalmazást illetően a korábban ismertetett fejlesztési módszerek alkalmazását hangsúlyozza.
      Az Egységesített Eljárás „buckás" ábrája
      Az ábra szerint tehát a fejlesztés folyamatát fázisokra osztjuk (kezdet, kidolgozás, megvalósítás és átadás) – vízszintes tengely. Az egyes fázisokban a függőleges tengelyen jelzett fejlesztési munkatevékenységeket végezzük – csak a fázistól függően, eltérő intenzitással (az intenzitás mértékét a „buckák” mutatják). Minden egyes fázisban több fejlesztési ciklust (iteráció) is bejárhatunk, mire egyik fázisból a másikba jutunk. A fázisokat ún. „mérföldkövek” választják el – ezek olyan döntési pontok, ahol a fejlesztő csapat (a megrendelővel együtt) áttekinti az elért eredményeket és dönt a továbbhaladásról.
      Az egész fejlesztési folyamatot végigköveti a projektirányítás és a követelményváltozások figyelése, regisztrálása és érvényesítése. A módszertan munkafolyamatai (függőleges tengely) egyébként elég egyértelműen besorolhatók az alábbi (feladat-megoldási) kategóriákba:
      A megoldás létrehozásának lépései:

  1. A feladat elemzése, pontosítása
  2. A megoldás tervének elkészítése
  3. Kivitelezés (kódolás)
  4. Ellenőrzés (tesztelés)
    A teljes feladat, az alkalmazás nagyobb, összetettebb annál, hogy egyszerre, teljes egészében próbáltam volna megoldani; ezért

  • először átlátható, önállóan megoldható részekre bontjuk (feladat-modularizálás)
    Elsőként a megvalósítandó funkcióknak megfelelően hoztam részre osztályokat, illetve különböző package-eket, így amint már említettem, a nagyobb komponensek elkülönítve tartalmazzák a hozzájuk tartozó funkciók megvalósítását. Az alkalmazásomban a három fő csomagon belül, a „client” csomagban elkülönítettem a vezérlést megvalósító „Controller” csomagot, a felhasználói felületet reprezentáló „UI” csomagot, valamint a „server” és „public” főcsomagokkal kommunikáló „Connections” csomagot.
  • az egyes részeket a feladatmegoldás lépéseinek alkalmazásával megoldjuk, majd
    A „client” főcsomagon belül, a felhasználói felülettel foglalkozó „UI” package-ban először megterveztem a kinézetet azaz, hogy a felső részben egy állandóan látható logó helyezkedjen el. A középső részt ketté osztottam vertikálisan,(1/3:2/3) arányban ahol a menüt megvalósító StackPanel, illetve a többi funkciót megvalósító fülekre osztott TabbedPanel elnevezésű komponens helyezkedik el.
    A képernyő alsó részén egy állandóan látható - fő-funkciókat elérhetővé tevő – Footer nevezetű gombokat tartalmazó vízszintes eszköztár segíti a különböző problémákra a megoldásokat.
    Ez a rész az elemzés és tervezés fázisát fedi le. Ezt követte az implementáció (kódolás), valamint e közben folyamatos tesztelés. Majd a legvégén a későbbiek során említett tesztelés.
    Ezzel át is elemeztük a feladat megoldásainak részeit a felhasználói felületre vonatkozva.
  • a részekből összeállítjuk a teljes megoldást.
    A korábbi pontban említett implementáció során „merge”- jük össze, állítjuk össze a komplett projektet. Erre a következőekben visszatérek az egységesített eljárás kifejtése során, ahol saját vonatkozásokkal igazolom a „teljes megoldás összeállításának” fontosságát.
    Forrás: Selmeci István: Objektumorientált-szoftverfejlesztés
    Online-tananyag:
    A RUP módszertan három legelterjedtebb szoftverfejlesztési módszer egységesítésével jött létre 1997-ben (OMT + Booch + OOSE)-Rational Unified Process (RUP) IBM
    Világszerte elterjedt fejlesztési módszertan, nagyon sok előző módszertanból merít, és mindazt egyesíti.
    Keret módszertan azaz testre kell szabni, az általam készített applikáció főbb jellemzői:
    Használatieset-vezérelt (use case driven) fejlesztés
    Rendszer fejlesztésének elején meghatározott használati esetek végigkísérik a teljes fejlesztést
    Azt akarjuk elkészíteni, amire a felhasználónak szüksége van.
    Esetünkben szükségünk lesz:
    másik felhasználó státuszának,állapotának látására(online/offline)

  • üzenetküldési lehetőségre(azonnali vagy levél)
    fórumokhoz való hozzászólásra(
    Architektúra központú (architecture centric)
    Ezáltal a teljes fejlesztést meghatározza a rendszer architektúrája.
    Iteratív és inkrementális (növekvő).
    Az egyes iterációk során a rendszer újabb verzióit fejlesztjük, készítjük el, végighaladunk a fejlesztés fázisain, ahogyan az egyes iterációk munkafolyamatokból állnak.
    Egy-egy fázis elkészítése során több munkafolyamatot illetve diszciplínát érint, ugyanakkor az egyes diszciplínák a különböző fázisokban különböző intenzitásúak, erőforrás igényűek.
    Minden fázis vége a fejlesztés egy-egy jól meghatározott mérföldkövét (milestone) jelenti, azaz olyan pontot, ahol egy célt kell elérnünk, illetve ahol kritikus döntéseket kell meghozni.
    A fázisok további kisebb egységekre, iterációkra bonthatók. Minden iteráció egy teljes, illetve részben önálló fejlesztési ciklust jelent, mivel az iteráció végén egy működő és végrehajtható alkalmazásnak kell elállnia, az iteráció végén a rendszer újabb, bővített funkcionalitású verziója készül el.
    Minden egyes iteráció egy-egy mini fejlesztés.
    Az Egységesített Eljárás iterációi tervezettek és szigorúan ellenőrzöttek. Az iterációk számát és időtartamát, az egyes iterációk feladatát és az általuk előállított termékeket, az iterációs munkafolyamatok résztvevőit előre tervezi az Egységesített Eljárás.
    Az elkészítés fázisában a legnagyobb hangsúly a követelmények rögzítésére helyeződik, a többi tevékenység pedig jóval kisebb mértékben kap szerepet, tesztelés pedig gyakorlatilag nincs is.
    A későbbi iterációkban, illetve fázisokban ez a hangsúly fokozatosan áthelyeződik a technikaiabb jellegű tevékenységekre.
    Az átadás fázisában már elsősorban tesztelés zajlik, így elemzés, tervezés és implementáció a tesztekre vonatkozóan és azok eredményeitől függően válik szükségessé, míg a követelmények összegyűjtése már nem kap szerepet.
    A fejlesztés fázisai
    Előkészítés:
    A rendszer eredeti ötletét olyan részletes elképzeléssé dolgozzuk át, mely alapján a fejlesztés tervezhető lesz, a költségei pedig megbecsülhetők, ezáltal meg tudjuk fogalmazni, hogy a felhasználók milyen módon fogják használni a rendszert, itt azonosítjuk a kulcsfontosságú használati eseteket, azaz a rendszer alapvető szolgáltatásait, avagy milyen alapvető belső szerkezetet, architektúrát alakítunk ki.
    A Kidolgozást a „használati eseteket” részleteiben is kidolgozzuk, illetve az alap architektúra kialakítása (Executable Architecture Baseline) is ekkor válik esedékessé.
    A felépítés alapjainak segítségével a teljes fejlesztés folyamata ütemezhető, és a költségei is tisztázhatók:
    Megvalósítás

  • a rendszer iteratív és inkrementális növelése.
  • a teljes rendszert kifejlesztjük (tervezés, kódolás).
    Átadás

  • bétaváltozatok, tesztelés, módosítás
  • dokumentációk, egyéb kapcsolódó termékek
    A fázisok erőforrás- és időigénye, egy iteráció munkafolyamatai, a tevékenységbeli dimenzió, a módszertan statikus, tevékenység típusok szerinti tagozódása (ábra függőleges tengelye)
    Ez a munkafolyamatok (újabb megfogalmazás szerint diszciplínák), termékek, munkatársak szerinti tagozódás.
    Esetünkben a fejlesztés szakaszainak ismertetését lentről-felfelé fogom bemutatni. Az alkalmazás alapjául egy adatbázis szolgál, melynek ismertetését később részletezem.
    Így az első dolog az adatbázis, illetve tábláinak, kapcsolataiknak létrehozása, kiépítése volt. Ezeket a lépéseket MySQL parancssorban hajtottam végre, gondosan ügyelve a táblák közötti kapcsolatok, valamint első- és másodlagos kulcsok pontos definiálására.
    Az adatbázis létrehozása után, az egyes Java osztályok létrehozása a következő lépés.
    Ezt a folyamatot több csoportra osztva fogom bemutatni az átláthatóság érdekében.
    Először az RPC hívásokat megvalósító osztályok megírása élvez prioritást, persze ez az alkalmazás fejlesztése során újabb és újabb metódusokkal bővül. Ez két osztályt jelent a „client” csomagban(kliens oldali kódok), valamint egy osztályt a „server” package-ban (szerver oldali kódok). Ezek feladata, hogy megvalósítsák a távoli kéréseket, legfőbbként az adatbázissal való kommunikációt.
    Következő lépésnek veszem a felhasználói felületet alkotó osztályok kódolását. Ezek az osztályok a „client” package-ban, azon belül „UI” csomagban helyezkednek el, az átláthatóság kedvéért több csomagra szétosztva.
    Ilyen csomag a „panel” csomag, ahol a különböző widgeteket összefogó panelek, (horizontális, komplex, vertikális) helyezkednek el.
    Más lényeges csomagok például a „forms”, „tables”, „windows”, „buttons” csomagok, amelyek a csomagok nevének megfelelő Java osztályokat tartalmaznak, ilyenek: LoginForm, GroupedTable, SendMessageWindow, FooterButton, stb.
    A kliens és a szerver csomagon kívül van még egy „shared” nevű csomagunk is, ahol a „validálás”, az adatellenőrzés valósul meg egy osztály segítségével. A kliens csomagban létrehozott, az RPC hívásokat megvalósító osztályok, először ide, ebbe a csomagba küldik el az adatokat, és majd csak ezután továbbítják azt feldolgozásra a szervernek.(adatbázisnak)
    Ahogy azt említettem ezek a ciklusok többször megismétlődnek, folyamatosan bővítve az adott lépésben tárgyalt modult.

4.3. - Az alkalmazás architektúrájának felépítése


A háromrétegű architektúra rendelkezik a következő 3 „réteggel” (tiers):

  1. Megjelenítési szint
  2. Alkalmazás szint
  3. Logikai szint/Üzleti logika

Model-View-Controller modell: megjelenítés (felhasználói felület), tartománylogika és adatelérés

Modell

Az alkalmazás által kezelt információk tartomány-specifikus ábrázolása. A tartománylogika jelentést ad a puszta adatnak (pl. kiszámolja, hogy a mai nap a felhasználó születésnapja-e, vagy az összeget, adókat és szállítási költségeket egy vásárlói kosár elemeihez).

Sok alkalmazás használ állandó tároló eljárásokat (mint mondjuk egy adatbázis) adatok tárolásához. Az MNV nem említi külön az adatelérési réteget, mert ezt beleérti a modellbe.

Nézet

Megjeleníti a modellt egy megfelelő alakban, mely alkalmas a felhasználói interakcióra, jellemzően egy felhasználói felületi elem képében. Különböző célokra különböző nézetek létezhetnek ugyanahhoz a modellhez.

Vezérlő

Az eseményeket, jellemzően felhasználói műveleteket dolgozza fel és válaszol rájuk, illetve a modellben történő változásokat is kiválthat.

Az MNV gyakran látható webalkalmazásokban, ahol a nézet az aktuális HTML oldal, a vezérlő pedig a kód, ami összegyűjti a dinamikus adatokat és létrehozza a HTML-ben a tartalmat. Végül a modellt a tartalom képviseli, ami általában adatbázisban vagy XML állományokban van tárolva


MVC-modell általános reprezentációja


Az objektumorientált szemlélet egyik alappillérje, hogy az általános feladatmegoldásból indulunk ki, a mi esetünkben például:
A felhasználókról , mint objektumokról, felhasználói kapcsolatokról, mint objektumok viszonyáról, illetve az egyes felhasználók tulajdonságairól, mint egy objektum tulajdonságáról beszélhetünk. Ezt egy kicsit konkrétabban és bővebben kifejtve az alábbi ábra mutatja be:

Szövegdoboz: Objektum-kapcsolatok, viszonyok
Esetünkben üzenetküldés,véleményezés, bejelölés

felhasználó mint objektum
 

 


 


felhasználó mint objektum
 

objektum  (felhasználó) tulajdonságai
 
Tehát egy közösségi oldallal nagyvonalakban való felvázolása során, lesznek
felhasználóink, amelyek objektumoknak felelnek meg, mivel vannak tulajdonságaik
és egymás között viszonyok találhatók, melyek nagyban megszabják a két objektum ,azaz a két felhasználó kapcsolatának állapotát.
Az objektumok tulajdonságai nagyrészt megszabják az objektum jellegét(jellemét) és viselkedését, a köztük lévő viszony pedig meghatározhatja az egyes objektumok akciónak,cselekvésének szándékát, milyenségét.
Az objektumok által reprezentált szemlélet tulajdonképpen magát az emberi gondolkodást fűzi magához közel, amely nagyban megkönnyíti megértését és
készítését is, ezen szemléletű kiterjedtebb vagy kisebb komplexebb modulokat , programokat.

4.3.1. – A felhasználói felület felépítése


A felhasználói felület (User Interface) feladata az, hogy biztosítsa a felhasználóval való kapcsolattartást.

Ez, az „UI”, általában grafikus környezetben működik, így a továbbiakban a grafikus felületek általános jellemzőin keresztül mutatom be a felhasználói felületet.

 A grafikus felület fő jellemzői
A grafikus felületünk esetében az alábbi elemekkel találkozunk:

  • panelek
  • ikonok
  • menük (toolbar-ok,gombok)
  • táblák
  • ablakok
  • űrlapok
    A felhasználó a felülettel alapvetően kétféle módon érintkezik:

  • utasításokat vagy adatokat visz be a programba, illetve
  • adatokat, információkat kap a programtól a felületen keresztül.
    Felületünk eltakarja a felhasználó elől a program belső munkavégzését, a tényleges feldolgozásokat. A program belső működését a felületen keresztül irányítjuk, de a felületnek magának is van egy saját működési logikája. A felület elemeinek, objektumainak(pl. gombok, adatbeviteli mezők, menük) viselkedése, együttműködése sokszor ezen elemek egymásra hatásában jelentkezik.
    Az ilyen jellegű egymásra hatást fedezhetjük fel például menük egyes elemeinek engedélyezési/láthatási jelenségeiben, valamint adatfeldolgozás alatt(például egy űrlap elküldése) megjelenő animációra és ezzel egy időben a felület „elszürkítésében”(maszkolásában).
    A felület egyes elemei
    A webes alkalmazásunk elindítása(betöltése) után az elsőnek látható modul a belépési űrlapot tartalmazó panel, amely az űrlapon kívül egy már megszokott fejléc-képet valamint az alkalmazás jelképének számító képet tartalmazza. Ezen kívül található még két hivatkozás(link) is, a már megszokott regisztrációs űrlapra, valamint az elfelejtett jelszó elküldésére szolgáló űrlapra mutatva.
    Az űrlapunk adatainak elküldése után, feltételezve, hogy azok helyesek és érvényesek, egy ablak jelenik meg amely közli velünk a belépés sikerességét, illetve információt szolgáltat operációs rendszerünkről, böngészőnkről, amely biztosítja a felhasználót a szerverrel való aktív kapcsolattartásról. Ezt követően belépünk a fő képernyőképbe, másképpen mondva a „felhasználói fiókunkba”.
    Ez a központi része a felületünknek, ami vertikális elosztású panel (fejléckép – tartalom - alsó menüsor), amelyben a középső elem(tartalom) szintén el van osztva, de ez már horizontálisan.
    Az elosztása 25%-75% arányban történik egy bal oldali főmenü és egy jobb oldali tényleges tartalmat, aktuális funkciót mutató panelra. Ez a panel több „füllel” rendelkezik, ezzel egyszerűsítve a navigálást, gyorsítva a kívánt funkció elérését.
    Az említett alsó menüsor(footer) gombjai általános funkciókat látnak el, mint: megtekinthető saját adatlapunk, megváltoztathatjuk jelszavunkat, üzenetet küldhetünk az adminisztrátornak(üzemeltetőnek) valamilyen probléma esetén, és itt léphetünk ki a felhasználói fiókunkból visszatérve a belépési űrlaphoz. Ezek a gombok aktiválása során általában egy ablak(window) jelenik meg, űrlapot(jelszóváltoztatás,üzenetküldés), adatokat(profil megtekintése), vagy csak egy biztonsági kérdést tartalmazva (pl.: Biztos? Igen/Nem)
    A főmenüben aktiválhatóak a fontosabb, az oldal alapját képező funkciók. Maga a főmenü egy úgynevezett „StackPanel”, vagy „csúszómenü”. Ez lehetővé teszi a funkciók csoportosítását.
    Az első ilyen csoport a profillal kapcsolatos lehetőségek: módosítás, képfeltöltés, jelszóváltoztatás, profil törlése.
    Külön csoport az üzenetek kezelését biztosító hivatkozások: beérkezett üzenetek, elküldött üzenetek, megjelölt üzenetek, törölt üzenetek.
    Ez egy „tree” elem segítségével van megvalósítva, amely kiválóan alkalmas az e fajta csoportosítás megjelenítésére.
    Az ismerősök kezelését is külön csoportba foglalva láthatjuk: új ismerős felvétele, üzenet küldése, kép küldése, ismerősök kezelése(megtekintése-törlése). Ezen funkciók ablakokat(window) nyitnak meg előttünk, ahol elvégezhetőek a kívánt műveletek.
    Ezen kívül látható még egy statisztikai adatokat megjelenítő funkciócsoport, az oldalon eltöltött idő, felhasználók rangok szerinti megosztása, helyes-helytelen választ adók statisztikája. Ezek megjelenítésében szintén megjelenő „window”-ok segítenek.
    A fülekkel kategorizált „tartalom” résznek magától értetődő az elosztása: kezdőlap(hírek), fórumok(ezen belül fórumok kategorizálva, chat, top10 fórumtéma), legjobb felhasználók rangsora, beépített böngésző.
    A kezdőlap egy kombináltpanel, több részre, területre szétosztva, ezzel lehetőséget adva az aktuális információk, hírek, üdvözlés tartalmak jobban kiemelkedőbb elosztására.
    A fórumokon belül megnézhetjük az indított témákat kategorizálva egy „groupGrid” segítségével, chatet kezdeményezhetünk ismerőseink „tree” elembe foglalt megjelenésével, valamint egy sorszámozott tábla mutatja a legfelkapottabb témákat.
    A legjobb felhasználók rangsora egy sorszámozott táblázat, amely a legnagyobb rangú, ezen belül a legtöbb ponttal rendelkező felhasználók felsorolása. A figyelemfelkeltés céljával lett külön fülre téve, ezzel is tudatosítani a rangok, pontok jelentőségét.
    A beépített böngésző célja, hogy ne kelljen új böngészőablakot nyitni, elég legyen bejelentkezni, és innen is lehetővé téve a gyors keresést, információszerzést.
    A felhasználói felület dizájnjának, kiemelkedő formájának és az egyes elemek dekorativitásának az alapja a GWT modulok különösen sokszínű, szép elemei, valamint stíluslapok segítsége is hozzájárul.
     

4.3.2. – Java objektumok, osztályok viszonyai


Az alkalmazás számos Java osztályból áll, ezek átláthatóan csomagokba kategorizálva, mégis a belépési-pont (kiindulópont, első betöltendő fájl) egy HTML formátumú fájl lesz, melyben <div> „tag”-ekkel meghatározott felépítést alakítottam ki. Itt kerül összerendelésre a generált java script kód és a HTML oldal tartalma futási időben. A RootPanel reprezentálja a HTML oldalt ahol a script elhelyezkedik, ennek a get(id) metódusával kérhető el a HTML oldalon az adott azonosítóval megjelölt elem. Minden egyes <div> tag ’id’ - paramétere alapján lehetséges a megfelelő Java-elemeket, modulokat elhelyezni, elrendezni a képernyőn.
Ez a fájl az
Easyweb.html nevet viseli, amelyben meg van határozva, hogy az Entrypoint(kezdőpont) interfész onModuleLoad() – metódusa melyik osztály kiváltsága.
 Ez nem más, mint az Easyweb.java osztály, amely implementálja, megvalósítja az úgynevezett Entrypoint interfészt, ami biztosítja a  kezdőpontját, indulási pontját (metódusa) az alkalmazásnak.

Ennek betöltődésekor a megfelelő HTML – „tag”-ek által határolt területre bekerülnek az odarendelt komponensek.
A mi esetünkben ez egy üdvözlő-fejléc, valamint egy bejelentkezési űrlap, és ehhez tartozó regisztráció és elfelejtett jelszó cseréjének lehetőségét nyújtó hivatkozás.
A belépési űrlap elküldése után(a „Belépés” gomb megnyomásakor) az adatok átkerülnek egy ellenőrzést végző osztályhoz, a „shared” csomag FieldValidator osztályához amely ellenőrzi a helyességét a beírt adatoknak(ne legyen üres mező, minimum négy karakteres egy felhasználónév), és csak ezután küldi el a szerver oldali osztálynak ami a kapcsolatot biztosítja az adatbázissal. Sikerességnek megfelelő üzenet jelenik meg a képernyőn „window” formájában, hiba esetén utalva a hiba helyére, siker esetén pedig információt kapunk az operációs rendszerünkről, böngészőnkről ezzel nyugtázva a kliens-szerver kapcsolat működőképességét.
Ekkor betöltődik a „minden” elemet összefogó főpanel, ami a MainPanel nevet viseli. Ez vertikális tagolású, mely három részre osztja a képernyőt és magában foglal egy horizontális panelt, MainContentPanel néven.
Ez két részből áll, baloldali részében egy StackPanel osztály reprezentálja a főmenüt, jobb oldalon pedig TabbedPanel elnevezésű, fülekre osztott panel foglal helyet.
Az egyes fülekre katintva különböző osztályok reprezentálódnak, úgy mint GroupedGridPanel, ChatTreePanel, TopForumPanel, BrowserPanel, TopUsersPanel.
Ezen osztályok mindegyike „becsomagolja” az egyes modulokat(osztályokat) és így teszi őket megjeleníthetővé. Az átláthatóság kedvéért külön csomagokban helyezkednek el rendeltetésük szerint a Java osztályok.


Elkülönítés csomagokba funkció szerint

4.3.3. – Az adatbázis struktúrájának felépítése


Ha belülről kifelé jellemzem a készített oldal elkészítésének és megtervezésének menetét, akkor mindenképpen az adatbázis megvalósításával kell először foglalkoznom. Az adatbázis (későbbiekben szó lesz szükségességéről), alkotja a „site” alapját.
 Az adatbázisunk neve ’easyweb’, melyben létre kell hoznunk néhány nélkülözhetetlen táblát. Az adatbázis szerkezet
tárolja az egyszerű felhasználók nevét, jelszavát, és minden szükséges információt a felhasználókról.
Az első és legfontosabb a ’user’ nevű táblánk, melynek mezői: UserID (FK)(auto-increment), Username (varchar20), Password (varchar20).
Értelem szerűen ez az autentikációnál jut fontos szerephez. A UserID oszlop mezői automatikusan növekednek (auto-increment), amint új sor (új felhasználó) kerül a táblába. Ez lesz az egyedi azonítója minden felhasználónak. A Username és Password mezők maguktól értetődőek (szöveges mezők, not nulla beállítással). A tábla elsődleges kulcsa egy összetett kulcs, az ID és a Username tulajdonságokból áll, ezen kívül az ID külső kulcs szerepét is be fogja tölteni.

 Szükség lesz egy ’respect’ nevű táblára ahol a felhasználó pontjait, hozzászólásait, rangját, pontszerzés számát és a pontvesztés számát tartjuk nyilván. Ennek a táblának a mezői a következők: ID(PK), points(int,default:0), rank(smallint,10,default:5), post(int,default:100),good(int, default:0),wrong (int, default:0)

Kelleni fog egy ’about’ nevű tábla, amiben a felhasználó regisztráció során megadott adatait(Profilját) tároljuk.

Ezek:
 ID(int, PK),first(varchar,20),last(varchar,20),nick(varchar,20),email(varchar,15), birth(date),age(int),gender(varchar,8),country(varchar,20),city(varchar,20), street(varchar,30),pschool(varchar,40), sschool(varchar,40), hschool(varchar,40),job(varchar,20),descript(varchar,100).

A mezők magyarázatai:

  • first-Firstname(Keresztnév)
  • last-Lastname(Vezetéknév)
  • nick-Nickname(Becenév)
  • email-E-mail
  • birth- Date of Birth(Születésnap)
  • age-Age(kor)
  • gender-Gender(Male/Female)-(neme)
  • country-Country where lives(Ország)
  • city-City where lives(Város)
  • street-Street(utca)
  • pschool-Primary School(Általános iskola)
  • sschool-Secondary School(középiskola)
  • hschool-High School(egyetem/főiskola)
  • job-Job(munka)
  • descript-Description of own-self(leírás)
    Eddig megteremtettük a bejelentkezéshez, valamint a felhasználói információk eléréséhez a tárolási lehetőséget, de szükség van még egy ’time’ táblára.
    Ebben a logintime, logouttime, spendedtime mezők szerepelnek valamint az ID azonosító. Ez a tábla lesz segítségünkre az oldalon töltött idő kiszámításában, elsődleges kulcsa az ID (int, PK), külső kulcsa pedig a spendedtime(int, FK), a másik két mező (logintime(timestamp), logouttime(timestamp), csak az eltöltött idő kiszámításából illetve információszerzés szempontjából lényegesek.
    További három tábla kell még, ezek:
    - a pontok,rang,osztályozás
    - kapcsolatok
    - fórumhozzászólások
    Tárolásához és frissítéséhez szükséges adatokat tartalmaznak..
    A ’points’ táblában, mint nevéből is adódik, a pontok (points, int,default:100), valamint az ebből következő rang (rank, varchar, default: ’’Beginner”), és a mások általi véleményekből kalkulált értékelés (rating, int(10), default:5) szerepel. Elsődleges kulcsa a ’ID’ mező,(int, PK), másodlagos kulcsként szerepel a ’points, ’rank’, illetve ’rating’ mező.
    A kapcsolataink, - „ismerőseink, kontaktjaink” - táblájának (’contacts’ tábla) létrehozásához csak egy ’ID’ (int), egy contactID (int), és egy ’type’ (varchar(30)) mezőre van szükség. z elsődleges kulcs ennél a táblánál összetett kulcs, amit az ID és a contactID mező ad együttesen. E kettő ismeretében behatárolható pontosan egy kapcsolat létezése.
    Hozzászólások „adminisztrációját végzi” (tárolás, számítás, stb.) a ’posts’ tábla, amely a hasznos és nem hasznos hozzászólások, valamint az összes hozzászólások számának, valamint az ezekből kiszámítható - hozzáadható, vagy elvehető - pontok számának táblázata.
    A szükséges mezők tehát:

  • ID (int, PK) - azonosító
  • goodposts (int) – hasznos, jó hozzászólások száma
  • badposts (int) – haszontalan, rossz hozzászólások száma
  • postnum (int)- összes hozzászólás
  • postpnts (int,FK )  – a többi mező alapján kiszámítható postok írásáért, aktív részvételért (hozzászólásokért) járó pontszám

Az elsődleges kulcsot az ID mező szolgáltatja, eme lett a ’postpnts’ mező külső kulcsként hivatkozik a ’respect’ táblára.

Ezzel létre is hoztuk internetes alkalmazásunk adatbázis-alapját, nincs mást tenni, mint feltölteni néhány teszt-adattal.

Az adatbázis szerkezetét, a táblák közötti kapcsolatokat, valamint egyéb információkat az architektúráról az alábbi ábra mutatja:

//adatbázis-szerkezeti ábra

Az adatbázis létrehozását MySQL parancssorban, valamint PHPMyAdmin segédprogrammal készítettem.
Hasznos kiegészítők találhatók, és persze
MySQL szerver is a „Wamp” nevű ingyenes szoftverben.

4.4 – Az alkalmazáslogika


Mindezek alapján az általam készített webes alkalmazás alkalmazáslogikája a következőképpen írható le.
Mindaz, ami az alkalmazásra jellemző, ami az alkalmazás lényegét alkotja. Az alkalmazás logika független a kezelői felülettől, és már nem tartalmazza az egész üzleti környezetre, az egész adatbázisra jellemző elemeket sem.

Logikailag jellemzően vezérlő jellegű komponensek alkotják.

Az alkalmazás-logika általában megoszlik a kliens és a szerver alkalmazás között.
A kliensoldalon jellemzően önálló java osztályokkal, időnként komponensekkel vagy adatmodulokkal valósítjuk meg, míg a szerver oldalon jellemzően tárolt eljárások, triggerek, nézetek csomagok formájában jelenik meg.

  • A program
  • Az üzleti folyamat
  • Az üzleti logika
  • Az üzleti szabályok
    Két rétegű architektúra

  • Felxibilis megjelenítési réteg
  • Stabil, publikált API
    A klasszikus elosztott alkalmazásmodell a kliens-szerver modell. Ebben a modellben egy számítógép mindig tisztán a kliens vagy a szerver szerepét játszza. A szervereket bizonyos konkrét részfeladatok elvégzésére specializálják, pl. fájlok tárolására, nyomtatásra, adatbázis műveletekre, stb.
    A klienseken futó alkalmazások tartalmazzák magát az alkalmazáslogikát, ez az alkalmazáslogika valósítja meg magát a felhasználói funkcionalitást, eközben szervereken tárolt erőforrásokat használ fel.
    Jellegzetes kliens-szerver modell a tradicionális adatbáziskliens-adatbázisszerver felállás, ahol a kliens SQL mondatokat küld a szervernek és az eredményeket pedig felhasználja a felhasználóval való kommunikációban.
    A J2EE célja, hogy egy gazdag szerveroldali API-készletet nyújtson a fejlesztőknek. A szabványsorozat legfontosabb elemei a következők:

  • Java szervlet/JSP
  • Enterprise JavaBeans (EJB)
  • Java Message Service (JMS)
  • Java Database Connectivity (JDBC)

Ezen felül a szabványsorozat tartalmaz XML és web services API-kat, menedzsment specifikációkat, e-mail kezelési lehetőséget, stb.
A J2EE architektúra az előző fejezetben említett négyrétegű modellre alapul. A J2EE-ben a rétegek a következőképpen néznek ki.

Kliens: Ha a kliens webes, vagy HTTP alapú, akkor a web szerver réteghez kapcsolódik ("vékony kliens"). Másik lehetőség, hogy saját felhasználói felülettel rendelkezik és HTTP-t nem akar használni, ekkor csatlakozhat közvetlenül az alkalmazásszerverhez is.

  • Web-réteg. Ez web szervert és a benne futó alkalmazáslogika-részt, tipikusan felhasználói felülettel kapcsolatos vagy HTTP forgalom kezelésével kapcsolatos részt jelent. Ennek a rétegnek az alkalmazásmodellje a szervlet/JSP.
  • Alkalmazásszerver réteg. Itt az alkalmazáslogika felhasználói felülettől független részei vannak. Ennek a rétegnek az alkalmazásmodellje az Enterprise JavaBeans (EJB).
  • Erőforrásszerver. Habár a J2EE tetszőleges erőforrásszervert tud használni, igazából SQL adatbázisszerverekre van kihegyezve
     

5 – Fejlesztői dokumentáció


A készített webes-alkalmazás, az EasyWeb továbbfejlesztéséhez, illetve módosításához megfelelő szoftverek, kiegészítő csomagok, illetve plugin-ek  szükségesek.
Elengedhetetlen a már korábban említett JVM és JRE Java futtató és fejlesztői csomag, valamint egy IDE, azaz egy fejlesztői környezet, amely lehet Eclipse, vagy NetBeans szoftver amely természetesen freeware, ingyenesen beszerezhető.

Linkek:

  •           http://www.netbeans.org
  • A továbbiakban szükség van még a Google által készített, és ingyenesen piacra dobott, és letölthető eszköszkészletre a GWT-re, illetve ennek különböző verzióira: GWT-Ext, SmartGwt.
    A felhasználók adatainak és a különböző pontszámítási módszerekhez feltétlenül szükséges egy adatbázis, azaz a fejlesztéshez szükség lesz egy adatbázis szerverre is. Mivel az általam készített adatbázis MySql adatbázis, amely ingyenesen biztosított, MySql-szerverre.
    Természetesen a fejlesztés közbeni teszteléshez szükség van egy GWT-kompatibilis böngészőre, illetve egy GWT pluginra ehhez a böngészőhöz. A Mozzila Firefox böngészőt és az ehhez tartozó GWT plugint javasolnám.
    Az alkalmazás böngészőben való indítása után egy bejelentkező panel(LoginPanel) tárul elénk, a megszokott Username,Password szövegmezőkkel, és természetesen egy ’Login’ feliratú gombbal. Ezeken kívül egy rejtett panel,amely lenyitásra jelenik meg, tartalmazza a feltétlenül szükséges ’Forgot password’ és ’Register’ opciókat. Az ablak közepén egy ’Belong To Us’ feliratú kép látható.
    //Kép-loginpanel
    Sikertelen belépés esetén, egy ablak jelenik meg, amely közli belépési szándékunk sikertelenségét. Az ablakon szöveg, egy ikon és egy ’OK’ feliratú gomb látható.
    Sikeres belépés esetén is ugyanez az ablak-példány jelenik meg, de persze más szöveggel és ikonnal.
    //Kép-dialog

5.1 - Modulok részletes bemutatása, és kapcsolataik, viszonyaik fejlesztői szemszögből


Mind, a későbbiekben említésre kerülő illetve már említett fogalmak a következőképpen valósulnak, vagy feleltethetőek meg az általam készített programnak. Létezik egy jelölő nyelv (UML), ami különböző diagramok segítségével modellezi az objektumok tulajdonságait, viselkedésüket és egymáshoz fűződő kapcsolatukat. Erre mutat példát az alábbi ábra, az alkalmazásra vonatkoztatva, amelyek sorrendben:

Komponens-modell

ComponentModell.gif

 

Használati eset modell
usecasemodell.gif

 

businessprocessmodell.png
Üzleti  folyamat modell

 

A moduláris felépítés lényege, hogy Olyan - a felhasználó igényeitől függően - bővíthető komplex egységek amely egymástól függetlenül működtethető, önálló működésre alkalmas részekből (objektumokból) áll .
A szemlélet rendszerint első sorban egy általános szintű megoldás,amely a feladatban konkretizálódik, testesül meg, de az általános megoldásnak számtalan implementációja lehet.
Maga a feladat (program,probléma)
megoldása modulszerkezetű, így tartalma és szerkezete logikai és implementációs szinten áttekinthető, karbantartható, továbbfejleszthető, hordozható;

 

Objektumdiagramm:

  • Olyan osztálydiagram, amelyben szerepel legalább egy objektum.

Az objektumdiagram segítségével szemléltethetjük az alkalmazás adott időpillanatban felvett állapotának bizonyos részleteit. Jelölhetjük az attribútum értékeket, a közöttük fennálló kapcsolatokat.

Tetszőleges objektum ábrázolása esetén a kettőspont előtti helyet üresen hagyjuk.
Megadhatók az attribútumok és a műveletek a konkrét értékekkel. Az összetett értékeket zárójelek között adjuk meg.



 

 

Az objektum az állapotával is jellemezhető Az objektum időbeli változását a <become> függőséggel ábrázoljuk.



Az objektumok közötti kapcsolatokataz asszociációkhoz hasonlóan vonallal jelöljük.

 

 

Ha egy objektum több azonos osztályba tartozó objektummal való kapcsolatát szeretnénk ábrázolni, akkor a multi objektum jelölést használjuk.

Megkülönböztetünk aktív és passzív objektumot.


Lekerekített téglalapbuborék: Multiobjektumm


 


Aktív objektum: más objektumoknak is küldhet üzenetet (vastagított vonallal jelöljük)

Passzív objektum: csak hívás esetén kapja meg a vezérlést.

  • Az alkalmazás strukturális szerkezetét írja le
  • Az osztályokat, valamint a közöttük levő viszonyokat ábrázolja
  • Nem a felhasználó, hanem a fejlesztő számára készül
  • Az attribútumokat és műveleteket közös néven jellegzetességeknek nevezzük.
  • A jellegzetesség mellett elterjedt még a felelősség elnevezés is. E szempontból nézve az attribútumnak adattárolási illetve adatszolgáltatási felelőssége van, a műveletek felelőssége pedig az osztály céljának megvalósítása.

 

6 – Felhasználói dokumentáció


6.1 - Komponensek bemutatása, használatuk


A komponensek bemutatását természetesen a beléptető kapuval, az úgynevezett LoginPanel-lel kell kezdenem. Ez a modul teszi lehetővé a felhasználók bejelentkezését a portálra, valamint biztosítja az egyes felhasználók személyi adatainak védelmét. Itt a felhasználó a user-nevének és jelszavának megadásával beléphet, illetve ha még nincs regisztrálva a közösségi oldalon itt ezt megteheti. Ez a komponens lehetőséget nyújt még az elfelejtett jelszó újragenerálására is.

                                                //Kép a LoginPanel-ről

Sikeres bejelentkezést követően a főképernyő, az úgynevezett MainPanel képe tárul elénk, és a komponensek bemutatásának sorát ezzel folytatnám. A MainPanel egy logikailag vertikálisan kettéosztott panel, melynek bal oldalán a menü (MenuPanel), jobb oldalán pedig az éppen aktuális műveletünk „képe” látszódik egy fülekre osztott panelen, mely a könnyebb navigációt hivatott biztosítani (TabbedPanel). A fő-interfész horizontálisan is kettéosztható logikailag, ugyanis a felső részében helyezkedik el a portál logója, a középső részen a már említett két további komponens, illetve alul a egy funkciógombokkal ellátott „lábléc”, úgynevezett Footer található.

Visszatérve a fő-interfészhez a bal oldalon található menü egy úgynevezett csúszó menü vagy StackPanel, mely funkciói a gyors kapcsolatfelvétel, üzenetküldés, profilmódosítás, illetve ismerősök kezelése. Ezen funkciók használata nincs összefüggésben a képernyő jobb oldalán lévő fülekkel tagolt panellal.

                                                //Kép a fő-interfész ablakról(MainPanel)

A TabbedPanel, vagy más néven fülekkel tagolt panel főbb funkciói a következők: Az első, és egyben automatikusan megjelenő fül a hírportál, amely az oldalon történt, történő változásokat, röviden a szabályokat és híreket szolgál összefoglalni. A második fülön a chatezési lehetőségek jelennek meg, „tree”  komponens használatával, szintén megkönnyítve ezzel az átláthatóságot és a könnyű kezelést. Itt válthatunk azonnali üzeneteket, bonyolíthatunk le beszélgetéseket ismerőseinkkel, persze a „tree” elem lehetőséget szolgáltat a különböző csoportokba rendezéshez is.
A harmadik fülön egy GroupedGrid komponens vagy más néven csoportosított táblázat ad lehetőséget a különböző témájú, aktuális fórumok áttekintésére, és természetesen az ezekbe való belépésre, hozzászólásra.

                                                //Kép a GroupedGrid-ről

Az utolsó fülön egy egyszerű táblázat (Grid) mutatja a legtöbb ponttal rendelkező felhasználókat, pontjukat, rangjukat, illetve az oldalon töltött idejüket ezzel is inspirálva a többi felhasználót, hogy minél több időd töltsenek a portálon, minél többet foglalkozzanak az ott zajló eseményekkel.

Végül a már korábban említett Footer elemeiről kell említést tegyek, ezen úgynevezett főfunkció gombok találhatóak, mint például: Kilépés, Kézikönyv, On-line segítség, Rendszerüzenetek. Ez a komponens állandóan látható a portálon való tartózkodás ideje alatt, így lehetővé téve a legfontosabb funkciók állandó elérését.




6.2 - Komponensek tulajdonságai, feladatai


7 – Tesztelés


7.1 - Alkalmazott tesztelési típusok


Az általam alkalmazott tesztelési típusok közül a leggyakoribban használt az egyéni tesztelés volt, mivel ezt fejlesztés közben is, minden kisebb módosítás után végrehajtottam. Bizonyos módosítások után többször is, törekedve arra, hogy minden lehetséges eshetőséget lefutassak.

Majd amikor a projekt alkalmas volt az „önálló” működésre(csak kevesebb funkcióval, esetleg nem jól működő funkciókkal), akkor publikáltam a Google által lehetővé tett domainre és így az alkalmazást a tesztfelhasználók is elérhették az interneten. Egyetlen hátránya a Google által nyújtott szolgáltatásnak, hogy korlátozott a tárhely(maximum 3000 fájl tölthető fel), illetve egyéb korlátozások is definiálva vannak(Pl.:bizonyos méretű fájlnál nagyobb nem tölthető fel). Így egy idő után nem lehetett tovább bővíteni, illetve csak komplikáltan, különböző kiskapukat használva(Pl.:JAR fájlok esetében, a nagyméretűeket fel kellett darabolni).

és szoftverrel való tesztelés.

7.2 – Publikálás, teszt-felhasználók bevonása, tesztelő szoftver eredményei


//publikálás (deploy) folyamata

Apache Tomcat egy nyílt forráskódú servlet-container, amely rendelkezik a servletek futtatásához szükséges eszközkészlettel, valamint a JSP fájlok előfordítását elvégző Jasper fordítóval.

7.3 – Folyamatos kapcsolattartás, visszajelzések javítása


Gondot jelentett például, hogy az adatbázist tesztadatokkal töltsem fel. Ebben nagy segítséget nyújtott a DBUnit maven plugin, melynek segítségével az adatbázis teljes tartalmát egy paranccsal kiírhatom egy XML fájlba, valamint egy másik paranccsal visszatölthetem az adatokat.

Az elkészült kód minőségét a CheckStyle statikus kódelemző segítette. Rendszeresen futtattam fejlesztés közben a kódelemzőt, amelyről diagram is készült.

8. – Összefoglalás


Az elkészített alkalmazás ellátja a kezdeti tervben definiált funkciókat, több irányba is továbbfejleszthető. Az architektúra kialakításakor igyekeztem arra törekedni, hogy minél könnyebben lehessen a későbbiek során bővíteni.
Érdekes lehetőség például az a továbbfejlesztési irány, hogy a magasabb rangú felhasználók a létrehozott menüfunkciók mellett lehetőséget kapjanak egy „admin” felület használatára, amellyel korlátozottan kezelhetnék a fórumokat, jutalmazhatnának, illetve büntethetnének felhasználókat.

9. – Irodalomjegyzék, melléklet


3. oldal: Forrás: http://old.pte.hu/




8. oldal: Forrás: MEB 2009 – 7th International Conference on Management, Enterprise and Benchmarking June 5-6, 2009 , Budapest, Hungary

 

Skyrim Show II. - Don Playa'

Dear Company,I am a software developer in Java language with 4 years experience and Object-oriented view. I was a web-application develope...