HOGYAN HASZNÁLHATJUK FEL A VIZUÁLIS PROGRAMOZÁS (.NET C#) TANÍTÁSÁHOZ AZ UML-ALAPÚ MODELLEZÉST?



Hasonló dokumentumok
Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Az UML2 és a modell-vezérelt alkalmazásfejlesztés

01. gyakorlat - Projektalapítás

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Név: Neptun kód: Pontszám:

Programozás 1. 2.gyakorlat

UML (Unified Modelling Language)

Metamodellezés. Simon Balázs BME IIT, 2011.

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Neumann János Egyetem GAMF Műszaki és Informatikai Kar

A Java EE 5 plattform

C++ programozási nyelv

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

Programozási alapismeretek 4.

S01-7 Komponens alapú szoftverfejlesztés 1

Object Orgy PROJEKTTERV 1 (9) Adattípusok menedzselése Palatinus Endre

Modell alapú tesztelés mobil környezetben

Interfészek. PPT 2007/2008 tavasz.

S01-8 Komponens alapú szoftverfejlesztés 2

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Előzmények

Programozás I. 2. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programfejlesztési Modellek

Szoftvertechnológia ellenőrző kérdések 2005

Modellalkotás UML-ben

OOP. Alapelvek Elek Tibor

gyakorlatban Nagy Gusztáv

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Objektumorientált paradigma és a programfejlesztés

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

Utolsó módosítás:

OOP #14 (referencia-elv)

Tamagocsi Projektterv

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Programozási technológia

Utolsó módosítás:

A dokumentáció felépítése

Szoftvertechnológia 2008/2009. tanév 2. félév 2. óra. Szoftvertechnológia

Bevezetés a programozásba

Mérnökinformatikus alapszak (BSc)

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

C++ programozási nyelv

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Bevezetés a Python programozási nyelvbe

SZÁMVITEL INTÉZETI TANSZÉK TANTÁRGYI ÚTMUTATÓ. Komplex elemzés. Pénzügy és számvitel alapszak Nappali tagozat 2015/2016. tanév II.

Programozás III. - NGB_IN001_3

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

MÉRNÖKINFORMATIKUS ALAPSZAK TANULMÁNYI TÁJÉKOZATÓ 2017.

Már megismert fogalmak áttekintése

Objektumorientált paradigma és programfejlesztés Bevezető

Bevezetés a programozásba előadás: Alapvető programtervezési elvek

Információtartalom vázlata

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

SZAKDOLGOZAT. Kiss Albert

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Autóipari beágyazott rendszerek Dr. Balogh, András

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Kedvenc Linkek a témakörben: MySQL mindenkinek Vizuális adatbázis tervezés

MÉRLEG- ÉS EREDMÉNYELEMZÉS c. tárgy tanulmányozásához

Tartalom. Szoftverfejlesztési. Szoftver = Termék. módszertan. la Rational XDE CASE eszköz. Az előállításához technológiára van szükség

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

Az azonosító számú, Internetes alkalmazásfejlesztő megnevezésű elágazás szakmai követelménymoduljainak

"Vizuális informatikai tantárgyak" oktatási tapasztalatai

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

VIZUÁLIS MÓDSZEREK OKTATÁSÁNAK HATÁSA A HALLGATÓK PROGRAMOZÁSI HIBÁIRA

R ENDŐRTISZTI F ŐISKOLA SZÁMÍTÁSTECHNIKAI ÉS INFORMATIKAI KÖZPONT T ÁJÉKOZTATÓ ÉS T EMATIKA

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Komplex záróvizsga témakörök Gazdaságinformatikus szak Pénzintézeti informatikus szakirány 2018

OOP és UML Áttekintés

Haladási utasítások Programozási nyelvek

Ismeretanyag Záróvizsgára való felkészüléshez

KOMPLEX ELEMZÉS c. tárgy tanulmányozásához

BOC Information Technologies Consulting GmbH. Minőségmenedzsment

Szoftver-technológia I.

A TANTÁRGY ADATLAPJA

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Objektum Vezérelt Szoftverek Analízise

Kölcsönhatás diagramok

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

A TANTÁRGY ADATLAPJA

TANTÁRGYI KÖVETELMÉNYEK

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Szoftverfejlesztő képzés tematika oktatott modulok

Miért érdemes váltani, mikor ezeket más szoftverek is tudják?

A DIPLOMAMUNKA FORMAI KÖVETELMÉNYEI JAVASLAT

ALKALMAZÁS KERETRENDSZER

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

TÁJÉKOZTATÓ. a programozó matematikus hallgatók szakdolgozatával és záróvizsgájával (államvizsgájával) kapcsolatos tudnivalókról

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

Java programozási nyelv 6. rész Java a gyakorlatban

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

A TANTÁRGY ADATLAPJA

Informatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező

A szoftverfejlesztés eszközei

Átírás:

HOGYAN HASZNÁLHATJUK FEL A VIZUÁLIS PROGRAMOZÁS (.NET C#) TANÍTÁSÁHOZ AZ UML-ALAPÚ MODELLEZÉST? Szabolcsi Judit - Johanyák Zsolt Csaba főiskolai adjunktus, főiskolai adjunktus Kecskeméti Főiskola, GAMF Kar, Kalmár Sándor Informatikai Intézet Absztrakt: Tapasztalataink szerint mérnök-informatikus hallgatóink a szoftverfejlesztés során kevés figyelmet fordítanak a tervezésre, modellezésre és módszeres megközelítésre legyen szó egy egyszerű órai feladatról, zárthelyi dolgozatról vagy éppen szakdolgozatról. Cikkünkben az eddig alkalmazott kétfajta gyakorlatvezetési módszer áttekintését és értékelését követően egy olyan új megközelítést mutatunk be, amely a Vizuális programozás néven futó, haladó szintű és komplex objektum-orientált feladatokat felvonultató programozás központú tantárgy és a tervezésre összpontosító Szoftvertechnológia összehangolása által próbál javítani a jelenlegi helyzeten. BEVEZETÉS Főiskolánkon a mérnök-informatikus hallgatók a mintatanterv szerint három félév C és C++ programozás után (a kreditrendszer miatt csak elvileg) a negyedik félévben kezdik a Vizuális programozás című tárgyat hallgatni. A tárgy heti két óra előadásból és két óra géptermi gyakorlatból áll. A tantárgyat csak a programozás szigorlat után lehet felvenni, ami lezárja a három félév C/C++-t. Szintén a szigorlat teljesítése után kezdhető el a Szoftvertechnológia nevű tárgy, ami a szoftverfejlesztés (Software Engineering) alapfogalmait és az UML diagramjait mutatja be. Célunk, hogy a két tárgyat összekapcsoljuk, és mind a vizuális programozásban, mind a szoftvertechnológiában elmélyítsük és gyakorlatiassá tegyük az oktatást. A gyakorlatiasság hiánya főleg a Szoftvertechnológia tárgynál okoz gondot, mivel ez csak előadásból áll. Véleményünk szerint szükség lenne a gyakorlati alkalmazásra, hiszen a szoftverfejlesztést is tartalmazó szakdolgozatok elkészítésénél valamint a későbbi, esetleg programfejlesztési feladatokat is magába foglaló munkahelyi feladatok során sokaknak gondot okoz a módszeres megközelítés hiánya, valamint a felhasználói és fejlesztői dokumentáció elkészítése. A Vizuális programozás oktatása során a Microsoft Visual Studio 2005-ös fejlesztőkörnyezetét használjuk, így eleve kézenfekvő, hogy az általa a programkódból automatikusan generált osztálydiagramot felhasználjuk. Innen már csak egy lépés, hogy bemutassuk, miért egyszerűbb jól megtervezett modellek alapján kódolni, mint egyből nekiesni a feladatnak. Terveink között szerepel, hogy a két tárgy felvételét egymáshoz kössük, és amennyiben minden hallgató párhuzamosan teljesíti ezeket (jelenleg is sokan járnak párhuzamosan mindkét tárgyra, de nem mindenki), lehetőség lesz olyan 2-3 fős csoportokban teljesíthető félév végi gyakorlat- és vizsgajegy-szerző feladatok kiadására, amelyek lefedik a használati eset modelltől a kész kódig a szoftverfejlesztés teljes folyamatát. A C# NYELV A C# erősen típusos nyelv [1]. Ennek és még több más tulajdonságának (pl. a System.Object-ből kiinduló és minden osztályt magában foglaló, logikusan felépített osztály-hierarchiának, az automatikus kezdőértékadásnak, vagy a nem nyilvános adattagok elérésére használt tulajdonságoknak) köszönhetően szerintünk kezdőknek sokkal

praktikusabb programozási nyelv, mint a főiskolánkon jelenleg elsőként oktatott C/C++. A C/C++ filozófiája azt támogatja, hogy a programozó döntse el mit akar csinálni, és a nyelv ehhez adjon szabad kezet és minél több eszközt. Ez egy profi programozó esetében hasznos is. Viszont egy elsőéves informatikus hallgató, akinek az ismeretei a játékprogramok, a chat és levelezés témakörében merülnek ki, nem tud mit kezdeni egy ilyen jellegű nyelvvel. A C# filozófiája más, hatékony és mégis egyszerű, és több támogatást nyújt egy logikus nyelvhasználat elsajátításához. Ha megnézzük pl. az érték és a hivatkozási típusok megválasztásának módját, a következőket láthatjuk: a C++-ban minden típus érték típusú, viszont később keresztbe-kasul hivatkozhatunk rá, akár mutatókon, akár referenciákon keresztül. Ha érték szerint adjuk át a függvényparamétereket, és kapjuk meg a visszatérési értéket, az hatékony, de ha egy leszármazott típusú objektumot használunk az alaptípus helyett, akkor részleges másolás történik, így elveszítünk minden információt, amelyet az objektum leszármazott része hordozott. Javaban pedig minden hivatkozási típusú, ami következetes, de rettentően lerontja a teljesítményt. Itt minden egyes változóért memóriafoglalással és szemétgyűjtéssel fizetünk. Beláthatjuk, hogy vannak olyan típusok, ahol felesleges a hivatkozási típust erőltetni, de Javaban ezek is hivatkozási típusúak lesznek, mert nincs más választási lehetőségünk. A C# nyelvben választhatunk, hogy struct (vagyis érték típusú) vagy class (vagyis hivatkozási típusú) legyen az új típusunk. Ha a típusnak az adattárolás lesz a fő feladata, csak olyan tulajdonságai lesznek, amik az adattagok elérését és módosítását végzik, nem akarunk belőle leszármazottat készíteni és nem akarjuk többalakúként kezelni, akkor legyen értéktípus. Az alkalmazás viselkedésének meghatározására szolgáló típusok pedig legyenek osztályok [1] [2]. A nyelv egy másik kényelmes szolgáltatása a jellemzők (attribútumok) használata. A jellemzőkkel a kijelentő stílusú programozást (deklaratív) támogatjuk a felszólító stílusú programozás (imperatív) helyett. Nem kell tagfüggvényeket írni, amik meghatározzák a program viselkedését, hanem csak odaírjuk a [WebMethod], [Serializable] vagy a [NonSerialized] attribútumot az adott függvény, osztály vagy adattag elé és ezzel elérjük, hogy a.net futásidejű környezet hozzátegye a megfelelő viselkedést helyettünk. Ez könnyebben megvalósítható, olvasható és karbantartható kódot eredményez. A létező jellemzők mintájára sajátokat is létrehozhatunk, és ezek valamint a visszatekintés felhasználásával mi magunk is írhatunk kijelentő stílusú programszerkezeteket [1]. A C # ÉS A.NET OKTATÁSA A Vizuális programozás tantárgy keretén belül a nyelv fentebb említett alapjaitól indulva gyorsan eljutunk a Windows Form-os alkalmazásokhoz, az ADO.NET-hez, a sorosításhoz és a webszolgáltatásokhoz. Ezeknek a témáknak a bemutatásához nyilván összetettebb példaprogramok szükségesek. Két stratégiát próbáltunk ki ezeknek az programoknak a hallgatók számára érthetővé tételére: az első alapján minden egyes példaprogramhoz egy 8-10 oldalas leírás tartozik, amely lépésről lépésre, sok képernyőképpel illusztrálva leírja, illetve bemutatja az elkészítés menetét (beleértve azt is, hogy a Visual Studio mely részeit és hogyan használjuk, pl.: Felület kialakítása A főablak neve legyen Name=UgraloGombForm, az őt definiáló állomány nevét is változtassuk meg UgraloGombForm.cs-re. Solution Explorerben jobb egérgomb a Form1.cs-n, majd a név átírása. ). Ebben az esetben a hallgatók papíron megkapják ezt a leírást, és egyéni munkában

végigcsinálják a leírtakat. Ennek a módszernek az az előnye, hogy a hallgató nem marad el a többiektől, a saját tempójában dolgozhat, bármikor vissza tud lapozni, és a későbbiekben bármikor végigcsinálhatja a gyakorlatot. A gyakorlatvezető az óra elején ismerteti a feladatot, a javasolt megoldás fő elemeit, majd a későbbiekben segítséget nyújt az egyéni tempóban haladó hallgatóknak egyenként. A módszer hátránya az, hogy egyrészt az anyagok elkészítése a tanár igen sok idejét felemészti, másrészt pedig a hallgatók nem igazán fogják fel, hogy mit csinálnak, nem olvassák el az áttekintő bevezető részt, ami a tervezési megfontolásokat taglalja, csak mechanikusan gépelnek vagy másolnak (CTRL+C/CTRL+V), amennyiben elektronikus formában is rendelkezésre áll a dokumentum. A második stratégia szerint a programkódot a tanár a táblára írja fel, és közben felhívja a figyelmet a hangsúlyosabb elemekre, osztályokra, azok használatának buktatóira. Ennek előnye, hogy interaktívabb, jobban kiderül, hogy mit nem ért a csoport; hátránya viszont, hogy elsősorban a másolásra koncentrálnak, és a lassabban gépelők elmaradnak, illetve a gyakorlatvezetőnek nem jut elegendő ideje arra, hogy külön-külön foglalkozzon az egyes hallgatókkal. Az eddigi tapasztalataink szerint egyik fentebb vázolt módszer sem váltotta be teljes mértékben a hozzá fűzött reményeket. Emiatt merült fel egy harmadik megközelítés, amit az utolsó fejezetben fejtünk ki. [3] SZOFTVERFEJLESZTÉS ÉS UML A hazai oktatási rendszerben sokszor elfelejtkezünk arról, hogy a programozni tudás nem azonos azzal, hogy képesnek lenni a kódolásra. A végzett mérnökinformatikusoknak azzal is tisztában kell lenniük, hogy a szoftver egy termék, tehát mint minden termék előállításához, ehhez is technológiára van szükség. Emellett a terméknek tervezési paraméterei is vannak: mire képes (szolgáltatási funkció), milyen a minősége, mekkora az előállítási költsége és mi az elkészítés határideje. A technológiának éppen azt kell biztosítania, hogy a kész termék megfeleljen a tervezési paramétereknek [4]. A szoftvertermék dokumentálása szintén egy kardinális kérdés, amire a mostani tantárgystruktúrában nem igazán fordítunk figyelmet. Ez hamar meg is bosszulja magát, rögtön a szakdolgozat-készítésnél, majd később az iparban, amennyiben valaki fejlesztői munkakörben helyezkedik el [5]. Az UML (Unified Modeling Language) elsajátítása mind a tervezést, mind a dokumentálást megkönnyíti, és emellett szabványos és nyílt is [6]. Az UML-re épül az MDA (Model Driven Architecture), amely elkülöníti az üzlet-orientált és a platform-függő döntéseket, mivel egy MDA specifikáció egy platform-független UML modellből (Platform Independent Model PIM ) és egy vagy több platform-specifikus modellből (Platform Specific Model PSM) áll. Egy PIM tulajdonképpen teljes alkalmazás specifikáció, amely platform-független. Egy PIM egy PSM-be képződik le, amely a rendszer-architektúra infrastruktúráját biztosítja. Ez a leképezés a PIM implementációját jelenti, azaz a végrehajtható alkalmazás generálását. A PIM lehetővé teszi számunkra a megoldás vizuális modellezését magas absztrakciós szinten. Szükségtelen az alkalmazás újraírása egy új technológia megjelenésekor. Mindössze újra kell generálni az alkalmazást, azaz elvégezni a modell leképezését az új környezetbe. Sok népszerű technológiai platform, mint a CORBA, J2EE vagy.net számára lehetséges PIM PSM leképezést definiálni. Ezzel elérhetjük a régóta óhajtott célt a modellből automatikusan kód generálható,

emberi közreműködés nélkül! Térjünk vissza még egy kicsit az UML nyelvhez. Az UML csak egy nyelv és nem módszertan, ahogy az a fentiekből már kiderült. Az UML 2.0 (az UML jelenleg aktuális verziója) a rendszer viselkedését és a szerkezetét egyaránt képes modellezni. A szerkezeti modellt a következő diagramtípusok alkotják: osztálydiagram (Class Diagram) objektum diagram (Object Diagram) telepítési diagram (Deployment Diagram) csomag diagram (Package Diagram) komponens diagram (Component Diagram) Composite Stucture Diagram (új, az UML 1.x-hez képest) A rendszer viselkedését pedig a következőkkel lehet modellezni: szekvencia diagram (Sequence Diagram) kommunikáció (együttműködési) diagram (Communication Diagram) aktivitás diagram (Activity Diagram) interakció áttekintés diagram ( Interaction Overview Diagram) állapotgép diagram (Statemachine Diagram) idődiagram (Timing Diagram) használati eset diagram (Use Case Diagram) A felsorolt diagramtípusok közötti összefüggést is megadhatjuk UML jelöléssel, ezt mutatja az 1. ábra. 1. ábra Az UML 2.0 diagramfajtái maga az ábra is egy osztálydiagram Az UML 2.0-nak is nyilván vannak hiányosságai, gyengeségei, nem ez az univerzális csodaszer. A nyelv továbbra sem rendelkezik formális definícióval, még az alapelemek esetében sem, pedig ez volt a régebbi UML verzióban a leginkább kritizált pont. Az UML használhatósága nem nőtt azzal, hogy több új eleme lett és újabb diagramok jelentek meg. A diagramok között sokszor átfedés figyelhető meg. Az objektum diagram ugyanazt

ábrázolja, mint a kommunikációs diagram, kivéve az üzenetek áramlását. Az interakció áttekintés diagram pedig az aktivitás diagram egy speciális esete. A modellt alkotó diagramok közötti függőség sincs explicit módon definiálva, a felelősséget a modellezőre vagy az eszközre hagyva, hogy ellenőrizze, valóban konzisztens modell jött-e létre. Így viszont a modell tesztelése okoz gondokat. A SZOFTVERTECHNOLÓGIA ÉS A VIZUÁLIS PROGRAMOZÁS ÖSSZE- KAPCSOLÁSA Véleményünk szerint a hallgatók a különböző tárgyak órái alatt sok hasznos és korszerű eszközt megismernek, viszont arra már nincs idő, hogy azt is megmutassuk nekik, ezeket mire tudják használni. Ezért nem áll össze bennük a kép, nem tudják, hogy mi mire jó, mikor lenne értelme használni és mikor értelmetlen vele próbálkozni, csak azt az egy konkrét felhasználási lehetőséget képesek elképzelni, amiben ők találkoztak vele. Ez komoly hiányosság. Ha konkrétan a fentebb említett két nagy témakört nézzük, a következő kérdés merül fel. Mi értelme modellezni? Nyilván nem a modellezésért önmagáért tesszük, ahogy a hallgatók a Szoftvertechnológia tárgy során látni vélik. Viszont ha felhasználnánk egy-egy bonyolultabb (C# nyelvű) program megtervezésére az ott tanult módszereket, akkor a gyakorlatban is látnák a hasznát onnantól kezdve nem csak programsorok begépelése és egérrel történő kattintgatás lenne a programfejlesztés. Ahogy Maksimchuk és Naiburg írja: Nézzük más szempontból: van olyan, aki megépítene egy házat tervrajz nélkül? Lehet, hogy nem építjük meg előbb a ház kisméretű változatát, de biztosan a kezünkben (vagy az építész, illetve az építő kezében ) lennének a tervrajzok, építészeti tervek és a mérnöki vélemények, mielőtt elkezdenénk az építkezést. A házak ugyanolyanok, mint a programok. [ ] A programtervezés hasonló kihívást jelent. Biztosítanunk kell, hogy a tervek és a rajzok megvalósítása végül megfelelő, felépítésük pedig időtálló legyen, továbbá arról is gondoskodnunk kell, hogy ha változtatásokat kell végeznünk, azok is tartósak legyenek. Azzal is tisztában kell lennünk, hogy milyen módosítások borítják fel a tervet. Ha egy új összetevővel bővítjük a rendszert, ügyelnünk kell, hogy az ne omoljon össze ennek eredményeként. [7] Az UML alapú modellezésre összpontosító Szoftvertechnológia és a C# nyelvű Vizuális programozás összehangolásával kapcsolatos elképzeléseinket az alábbi pontokban foglatuk össze. 1. Kötelezővé tesszük a két tárgy párhuzamos felvételét hallgatóink számára. Mivel a tanterv kialakításában a fentieken túl még sok más szempont is szerepet játszik, valószínűleg ez nem a legkönnyebben megvalósítható célok közé tartozik. 2. A Szoftvertechnológia előadásokon olyan modellezési példákat mutatunk be, amelyek C# nyelvű és vizuális módszerekkel történő implementációjára a Vizuális programozás gyakorlatokon kerül sor. 3. Néhány Vizuális programozás gyakorlaton a hallgatókkal közösen lépésről-lépésre végigmegyünk a teljes tervezési-implementálási folyamaton. 4. Olyan projekt jellegű féléves nagyfeladatokat adunk ki 2-3 fős hallgatói csoportoknak, amelyben a megadott specifikációból/megrendelői igényekből és megadott módszertant követve kell elkészíteniük és dokumentálniuk a szoftvert. Ezen feladatok sikeres megoldása mindkét tárgyból érdemjegyet eredményezne.

ÖSSZEFOGLALÁS Mérnök-informatikus hallgatóink programozási gyakorlatának vizsgálata és a programfejlesztést tartalmazó szakdolgozatok konzultációs tapasztalatai ahhoz a felismeréshez vezettek, hogy változtatnunk kell eddigi oktatási módszereinken és gyakorlatunkon. Elképzeléseink kialakítása során az a cél vezérelt bennünket, hogy idejében rávezessük a hallgatókat a tervezés szükségszerűségére, és javítsuk ezen ismeretek elsajátításának hatékonyságát. Négy pontban összefoglalt elképzeléseink alapgondolata az, hogy a jelenleg túlságosan elvontnak és elméletinek tartott szoftvertechnológiai ismereteket nyújtó tantárgyat egy gyakorlatközpontú, haladó szintű feladatokkal foglalkozó programozási tárggyal hangoljuk össze, és emellett olyan átfogó jellegű projektfeladatokat tűzünk ki hallgatóinknak, amelyek megoldásához mindkét témakör ismerete szükséges. IRODALOM [1] WAGNER, B.: Hatékony C#. Budapest. Kiskapu Kiadó, 2005. 1-40. old., 135-139. old. [2] ALBERT, I. (szerk.): A.NET Framework programozása. Budapest, Szak Kiadó, 2004. 37-62. old., 312-352. old. [3] SHARP, J.: Microsoft Visual C# 2005 lépésről lépésre. Budapest, Szak Kiadó, 2005. [4] SIKE, S. VARGA, L.: Szoftvertechnológia és UML. Budapest, ELTE Eötvös Kiadó, második, bővített kiadás, 2003. 13-17. old. [5] SIKE, S. VARGA, L.: Szoftvertechnológia és UML. Budapest, ELTE Eötvös Kiadó, második, bővített kiadás, 2003. 59-62. old. [6] http://www.omg.org, Unified Modeling Language: Superstructure. Version 2.1.1 2007-02-03 [7] MAKSIMCHUK, R. A. - NAIBURG, E. J.: UML földi halandóknak. Budapest, Kiskapu Kiadó, 2006. 7-8. old.