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

kovacs4@iit.uni-miskolc.hu

Horváth Ábel

G-3S7I NK.: XSTVU5

horvath14@iit.uni-miskolc.hu

Lénárt József

G-4S5 NK.: W5LMPB

lenart3@iit.uni-miskolc.hu

Miklán Orsolya

G-4S5 NK.: AI54B2

miklan@iit.uni-miskolc.hu

Molitorisz János

G-3S7I NK.: CDPMLH

molitorisz@iit.uni-miskolc.hu

Mongyik Dávid

G-3S7I NK.: TWBYP0

mongyik@iit.uni-miskolc.hu



2006-03-24






TÖRTÉNET



Dátum

Verzió

Leírás

Szerző

2006-03-24

0.1

Kezdeti verzió

TM











TARTALOMJEGYZÉK



1. Bevezetés

2. Az alkalmazás helye

2.1 Az elkészült termék helye

3. Érintettek és felhasználók

4. Felhasználói környezet

5. Installáció

6. A végtermék jellemzői, biztosított szolgáltatások




1. Bevezetés


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++.




2. Az alkalmazás helye


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.





2.1 Az elkészült termék helye


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.



3. Érintettek és felhasználók


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ó.



4. Felhasználói környezet


A termék platform-független, de elsősorban Microsoft Windows alatti használata a cél. Hardverigénye:

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:



5. Installáció


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ó.




6. A végtermék jellemzői, biztosított szolgáltatások


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:

Megkeresi a forráskódban lévő golbális változókat, mivel ezek használata elkerülendő, ezért letitja azokat.

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á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 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.

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.