Csoport neve: TM
Feladat sorszáma: 4
Feladat címe: C++ FORRÁSKÓD ELEMZŐ
FELHASZNÁLÓI KÉZIKÖNYV
-TMSA (TM Source Analyser)-
Gyakorlatvezető:
KRIZSÁN ZOLTÁN
Csoport tagok:
Kovács Zsolt |
G-3S7I NK.: Y11Z0L |
|
Horváth Ábel |
G-3S7I NK.: XSTVU5 |
|
Lénárt József |
G-4S5 NK.: W5LMPB |
|
Miklán Orsolya |
G-4S5 NK.: AI54B2 |
|
Molitorisz János |
G-3S7I NK.: CDPMLH |
|
Mongyik Dávid |
G-3S7I NK.: TWBYP0 |
2006-03-24
TÖRTÉNET
Dátum |
Verzió |
Leírás |
Szerző |
2006-03-24 |
0.1 |
Kezdeti verzió |
TM |
|
|
|
|
TARTALOMJEGYZÉK
A csoport által kiválasztott feladatunk a C++ forráskód elemző, amely megírt forráskódot elemezi megadott szempontok alapján, és az esetlegesen felmerülő hibák javítására megoldást kínál, mégpedig egy jelentés generálásával, amely választható nyelven közli a felhasználóval, a szükséges módosításokat, melyek elvégzése a kívánt ellenőrzési feltételeknek illetve az Általános Informatikai Tanszék C++ szabványának megfelelően, a forráskód hibamentes működését biztosítja.
Számos módszer és eszköz létezik arra, hogy a forráskódon automatizált változtatásokat hajtsunk végre. A legegyszerűbb eszközök közvetlenül a forráskód szövegén dolgoznak.
A következő lépcsőfok az automatizált forráskód-transzformációban egy olyan eszköz lenne, amely még mindig közvetlenül a forráskódon dolgozik, de már ismeri a forráskódot, tudja annak bizonyos szabályait, szintaktikáját.
A legfejlettebb megoldás az, amikor első lépésként egy elemző, analizáló programmal létrehozzuk a forráskódnak egy olyan magasabb szintű reprezentációját, amely minden információt tartalmaz a program-transzformációhoz. Ehhez való analizátor létrehozása igen bonyolult feladat, különösen egy olyan bonyolult nyelv estén, mint a C++.
Először is meg kell említenünk, hogy az alkalmazásunk (C++ forráskód elemző) nem a fordító szerepét kívánja átvenni, így annak feladatait nem hivatott elvégezni. Elsősorban az olvashatóságot és az általánosan használt formázási normákat igyekszik ellenőrizni, melyeknek betartása a kezdő programozók számára kissé nehézkesnek, és kényelmetlennek tűnhet. Valamint bizonyos szintaktikai hibákra is felhívja majd a figyelmet.
A programunk kialakítása során fontos szerepet játszott, az hogy az olyan felhasználók vagy kezdő programozók is megértsék, akik eddig az ilyen fajta részekkel még nem foglalkoztak behatóan. Ennek érdekében megpróbáltuk úgy kialakítani, hogy a „kezdő” programozóknak ne kelljen csak a kód funkcionális részeire összpontosítaniuk így megkönnyítve munkájukat, és ezzel együtt lehetővé tennénk számukra, hogy több időt tudjanak szentelni a funkcionális részekre. Ennek köszönhetően programunk lehetővé teszi, hogy önmagukat lényegesebben könnyebb módon tudják ellenőrizni, viszont fontos megemlíteni azt a fő szempontot is, hogy az általunk elkészített program nem oldja meg helyettük a szabványosítást. Ennek az a fő oka, hogy a már kész kódot, és annak minden egyes függvényét és fájlját külön ellenőrizni meglehetősen nehéz, és ennek következtében előfordulhatnak olyan esetek, amikor egy-egy egység véletlenül kimarad.
Fontos szempontunk volt az is hogy legfőképp az Egyetemi hallgatóságot célozzuk meg, mint lehetséges felhasználókat. Nem felejtkeztünk el azonban a gyakorlatvezetőkről sem , hisz az Egyetemen a hallgatók többnyire évközi feladatok beadásával kapcsolatban végeznek feladatokat, így tehát úgy alakítottuk ki programunkat hogy az hasznossá váljon a beadott feladatok ellenőrzésénél.
A programunk tehát olyan grafikus segédprogram, amely lehetővé teszi a C++ forrásfájlok ellenőrzését. A programunk megírásánál arra próbáltunk figyelni, hogy a gyakorlati haszna legfőképp az időmegtakarításon alapuljon.
A programot mindazon felhasználónak (érintettnek) szánjuk, aki valaha a C++ programozási nyelvvel valamilyen módon kapcsolatba kerülnek, kimondottan azoknak a programozóknak, akik C++ forráskód írásával foglalatoskodnak.
Elsősorban a Miskolci Egyetem azon hallgatói a program célfelhasználói, akik valamilyen módon közelebbi kapcsolatba kerülnek a C++ nyelvvel. Akár itt az egyetemen - C++ gyakorlatok keretében - akár otthoni programírásuk közben, illetve azon oktatók, gyakorlatvezetők akik ezen diákok forráskódjának helyességét szeretnék ellenőrizni (házi-szabványnak való megfelelést is beleértve).
Felhasználóknak (érintetteknek) számítanak, továbbá mindazon személyek, akik szeretnék, hogy programjuk jól áttekinthető, hosszú idő eltelte után is mindenki számára könnyen érthető, értelmezhető, egyértelmű, illetve világos legyen. Ezen szabályok betartásával programok mások számára is könnyen felhasználható, könnyebben bővíthető, átalakítható.
A termék platform-független, de elsősorban Microsoft Windows alatti használata a cél. Hardverigénye:
128 MB vagy annál nagyobb RAM memória
300 MHz órajelű processzor (Intel Pentium/Celeron, AMD K6/Duron/Athlon) vagy egy ezekkel kompatibilis processzor
CD-ROM- vagy DVD-meghajtó
SVGA (800 x 600 képpont) vagy egy ennél nagyobb felbontású videokártya és monitor
billentyűzet és egér
Egyfelhasználós alkalmazás! (Egy példányt, egy időben csak egy felhasználó használhat!)
Java futtató környezet szükséges (JRE)!
Viszont nem igényel egyedi hardwert!
A Java futtató környezet hardverigénye:
Platformok: JDS, Windows 98, Windows ME, Windows 2000 (SP4+), Windows XP, Windows 2003, Solaris SPARC, Solaris x86, Red Hat Linux, SUSE Linux
A programhoz mellékelt könnyen használható telepítőprogrammal, a „TMSA_Setup0_1.exe” fájl futtatásával történik az installáció. Amely használata nem igényel különösebben hosszabb betanítást, csupán kisebb tájékoztatást. A telepítés során a telepítés helye opcionálisan megadható, illetve alapesetben ez a „c:\Program Files\TMSA” jegyzék. Ezt követően a program indítása a megadott jegyzékből, illetve az asztalon elhelyezett parancsikonnal indítható.
A programunk C++ forráskódot ellenőriz, ügyelve olvashatóságára, a forráskód szintaktikájára és annak hibamentességére. Mindezt felhasználóbarát módon, grafikus és ablakozó felülettel teszi minden felhasználó kedvére téve.
A windows-os beállításokhoz igazodik a program ablakának mérete. Ennek legfelső sorában található a főmenü. Ennek első eleme a „Fájl” menü. Ezen belül található a „megnyitás” opció, amely segítségével a számítógépen lévő bármely C++ forrásfájl megnyitható ellenőrzésre. Ez után egy ablakban megjelenik a vizsgálandó állomány tartalma, hogy vizuális képet kapjunk a program tartalmáról. Ezután a „Futtatás” menüből indíthatjuk az ellenőrzést. Itt lehet választani a követelmények közül. Ezeket az adott opciókat különböző modulok biztosítják. Ezek a karbantartást is elősegítik. Ezek az alábbi modulok:
A globális változókat ellenörző:
Megkeresi a forráskódban lévő golbális változókat, mivel ezek használata elkerülendő, ezért letitja azokat.
kód / komment arány ellenőrző:
Ellenőzi a forráskódban lévő kód / komment arányt. Vizsgája azok mennyiségét, egymáshoz viszonyitott arányát. Azért hasznos, mert egy gyengén kommentált forráskód olvasása nagy erőfeszítést igényel, nehezen értelmezhető, például ha más akarja továbbfejleszteni a programot. Viszont a túlkommentált, sallangos forráskódot is elég körülményes feldolgozni, ha a kommentek között elveszik maga a kód, a lényeg.
A változók elnevezését ellenőrző:
A vátozók elnevezésének ellenőrzését végzi a C++ házi szabvány szerint.
- A név mindig utaljon az általa azonosított elem funkciójára.
- A makrók neve mindig csupa nagybetűből álljon.
- A több szóból álló neveket egybe kell írni, és minden szót nagybetűvel kell kezdeni.
- stb.
A függvény illetve fáljkommentek meglétét ellenőrzö:
A programozó által definiált saját függvények helyes kommentálását vizsgálja. Ezeket a függvényeket megfelelően kell a megjegyzéseket odaírni, hogy ha később újra elővesszük, akkor ne legyen gond a funkciójának és helyes használatának felelevenítésére. Vagy ha más programozó szeretné felhasználni, akkor könnyebb legyen a megértése.
Header fájolkat ellenörző:
Ellenőrzi a header fájlok meglétét, illetve a forráskódban használt függvények meglétének ellenőrzése a header fájlokban a másik feladata.
A nevezett szempontok elsődlegesen a forrásfájl kinézetére, olvashatóságára vonatkoznak, nem pedig a szintaktika helyes alkalmazására, hiszen ezeket a C++ fordítója ellenőrzi, és ezen módon a hibák kijavítására kötelezi a felhasználót. Így egy hibáktól mentes, a kódolási szabványnak megfelelő forráskódot kapunk. Az alábbi opciók közül többet is megjelölhet a programozó saját igényei szerint. A program majd ezek alapján végzi el a különféle ellenőrzéseket. Ellenőrzés közben az eredeti állományba semmilyen körülmények között nem tesz kárt, mert csak olvasásra nyitja meg, módosítani nem tud. Tehát az eredeti forráskód változatlan marad. A program futása nem függ a forráskód méretétől, futása közben nem okoz problémát. A feldolgozás bármely pillanatában megszakítható. Folyamatosan tájékoztat arról, hogy melyik fájl ellenőrzésénél jár és egy folyamatjelző biztosít arról, hogy dolgozik és hogy hol jár a feldolgozásban. Ennek eredményét egy újabb ablakban lehet megtekinteni, mely egy “jelentés fájlba” is mentésre kerül. Hiba esetén egy egyszerű szövegszerkesztővel javítható a probléma.
A hibákat a forráskód ellenőrző program jelzi, és ajánlatokat tesz azok javítására. A korrigálás útán újra lefuttatható a vizsgálat, ha mindent rendben talál, újakat nyithatunk meg ellenőrzésre.
A program többnyelvűséget biztosít, tehát a magyar nyelven kívűl további nyelveken is megtekinthetőek az információk. Ez a funkció nyelvi fájlok használatával valósul meg. Ez a “beállítások” menüből változtatható. Alap verziója magyar és angol nyelven lesz elérhető, de a későbbiekben további nyelvek beépítését tesszük lehetővé.
A “fájl” menüben található kilépés funkciót ellátó menüpontra kattintva zárhatjuk be a programot.