Programozási technológia I. Szendrei Rudolf
Programozási technológia I. Bevezetés Információk Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem 1
Programozási technológia I.
Tartalom
Szendrei Rudolf
1 Információk Információk
2 Bevezetés
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása
3 Szoftvertechnológia
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
2
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
Programozási technológia I.
Információk
Szendrei Rudolf
Információk a tárgyról • Képzés: Programtervezo˝ Informatikus BSc nappali tagozat, C szakirány Információk
• Tárgykód: IP-08cPROGT1
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása
• Elofeltétel: ˝ ˝ Programozás tárgy (eros)
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• Kreditszám: 6 • 3 óra eloadás ˝ • 2 óra gyakorlat • 1 óra konzultáció • Cél: • Objektumelvu˝ alkalmazások tervezéséhez szükséges
szoftvertechnológiai eszközök megismerése • Az elkészített terv JAVA platformon történo˝
implementálásához szükséges ismeretek elsajátítása 3
Programozási technológia I.
Információk
Szendrei Rudolf
Számonkérés • Gyakorlati jegy alapján megszerezheto˝ vizsgajegy
Információk
(összevont számonkérés)
Bevezetés
• 2 db beadandó feladat bemutatása dokumentációval,
Szoftvertechnológia A szoftvertechnológia kialakulása
˝ határidore
A szoftvertechnológia ágazatai
Csak a kituzött ˝ feladatot megoldó, önállóan megvalósított, ˝ letesztelt program fogadható el. hibátlanul muköd ˝ o,
Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• 1 db évfolyam géptermi zárthelyi Egyszer javítható • A félév végi jegy a beadandók és a dupla súllyal vett
zárthelyi jegy átlaga.
4
Programozási technológia I.
Információk
Szendrei Rudolf
˝ Elérhetoségek Információk
• Honlap: http://swap.web.elte.hu • E-mail:
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai
[email protected]
Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
5
• Személyesen: Programozáselmélet és Szoftvertechnológiai Tanszék, 2.602
Programozási technológia I.
Információk
Szendrei Rudolf
˝ Eloadás tematikája • Bevezetés • Statikus modell, objektumdiagram • Statikus modell, osztályok, objektumok
Információk Bevezetés
• Osztálydiagram, osztályok közötti kapcsolatok
Szoftvertechnológia
• Öröklodés, ˝ absztrakt osztályok, interfészek, polimorfizmus
A szoftvertechnológia kialakulása
• Osztály szintu˝ elérés, adatok beolvasása
A szoftvertechnológia ágazatai Szoftvertervezés
• Fájlkezelés, kivételkezelés
Modellezés, modellezo˝ eszközök
• Gyujtemények, ˝ algoritmusok
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• Grafikus felhasználói felületek • Eseménykezelés • Grafikus felhasználói felületelemek kommunikációja • Párbeszédablakok, vezérloelemek, ˝ egér stb. • Netbeans GUI tervezo˝ felülete • Netbeans GUI rajzolás felhasználói felületen
6
Programozási technológia I.
Bevezetés
Szendrei Rudolf
Programozási technológiai eszközök áttekintése Információk
• Szoftvertechnológia • Története • Ágazatai
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
7
• Szoftvertervezés, programozási technológia • Tervezési elvek • Tervezési szempontok • Modellezés, modellezo˝ eszközök • Tervminták
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
Szoftvertechnológiát igénylo˝ feladatok • Katonai számítások (ENIAC, JONIAC) • Számítás igényes tudományos és muszaki ˝ feladatok
Információk
• Mechanikusan ismétlod ˝ o˝ ügyviteli feladatok
Bevezetés Szoftvertechnológia
• Fizikai folyamatok adatainak gyujtése ˝ és az eredmények
A szoftvertechnológia kialakulása
kiértékelése alapján folyamatok vezérlése (hadiipar, urkutatás, ˝ gépjármuipar ˝ stb.)
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök
• Gyártósorok vezérlése
Tervminták
• A termelési folyamathoz kapcsolódó ügyviteli feladatok, a
˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
megrendelések, a megrendelésekhez szükséges raktárkészletek, szállítások ütemezése (logisztika automatizálása) • Komplex termelés-irányítási rendszerek létrehozásának
igénye
8
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
Szoftvertechnológiát igénylo˝ feladatok • Szolgáltató rendszerek (banki szolgáltatások, biztosítás) • A PC megjelenésével elotérbe ˝ kerültek • a kisvállalkozások, • az oktatás, • a játék, • a szórakozás • stb. • Globális kommunikációs alkalmazások
Információk Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• multimédia • távmunka • kommunikációs platformok (ICQ, MSN, Skype, Viber stb.)
• Osztott rendszerek, hálózati alkalmazások, multimédia,
mobil eszközök
9
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
Hardver
A hardver követte az igényeket:
Információk Bevezetés
• egységek integrációja
Szoftvertechnológia
• eroforrások ˝ kapacitásának növelése nagyságrendekkel
A szoftvertechnológia kialakulása
• méret csökkentése
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
10
• ember-gép interfészek • Monitor • Billentyuzet, ˝ egér, trackball, joystick, kormány . . . • Hangkártya • VR sisak, Google glass
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
Szoftver • Az egyszeméelyes feladatokkal a magasan képzett Információk
szakemberek képesek voltak megbirkózni.
Bevezetés
• Nagy rendszerek esetén, amikor több ember
Szoftvertechnológia
együttmuködésével ˝ lehet befejezni a fejlesztést, a létezo˝ módszerek alkalmatlanná váltak a feladatok megoldására:
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés
• a határidok ˝ nem voltak tarthatóak,
Modellezés, modellezo˝ eszközök Tervminták
• az elkészült programban rejtett hibák maradtak,
˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• az eloállítási ˝ ˝ megbecsülhetetlen módon költség elore
növekedett. • Szoftverkrízis
11
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
A probléma megoldása
A probléma megoldásához a szakembereknek fel kellett ismerniük, hogy
Információk
• a program termékké vált,
Bevezetés Szoftvertechnológia
• az eloállításához ˝ technológiára van szükség.
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai
A program, mint termék
Szoftvertervezés Modellezés, modellezo˝ eszközök
Mit jelent az, hogy a program termék?
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• van szolgáltatási funkciója, • van minosége, ˝ • van eloállítási ˝ költsége, • van eloállítási ˝ határideje.
12
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
A szoftvertechnológia célja Információk
• Tervezési paraméterek meghatározása • funkció • minoség ˝ • költség • határido˝
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök
• A tervezési paramétereknek megfelelo˝ termék
Tervminták
˝ eloállításának biztosítása
˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• A szoftvertechnológia tárgya tehát a nagy méretu˝
˝ programrendszerek eloállítása.
13
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
˝ Nagy méretu˝ programrendszerek jellemzoi
Információk Bevezetés
• Nagy bonyolultságú rendszer, azaz fejben tartva nem
Szoftvertechnológia
˝ a kidolgozás során felhasználandó részletek: kezelhetok ˝ összefüggései stb. az objektumok, azok jellemzoi,
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés
• Csapatmunkában készül.
Modellezés, modellezo˝ eszközök
• Hosszú élettartamú, amelynek során számos változatát
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
14
˝ kell eloállítani, azokat követni, karbantartani stb. kell.
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
Információk
A szoftvertechnológia célkituzése ˝
Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása
• Eloírt ˝ minoség ˝ u˝ programtermék,
A szoftvertechnológia ágazatai
• elore ˝ megállapított határidore, ˝
Szoftvertervezés
• elore ˝ meghatározott költségen történo˝ eloállítása. ˝
Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
15
Programozási technológia I.
A szoftvertechnológia kialakulása
Szendrei Rudolf
˝ A szoftvertechnológia összetevoi Információk Bevezetés
1
Módszerek a programkészítés különbözo˝ fázisai számára.
2
Szabványok (kidolgozási, dokumentációs stb.), amelyeket a program kidolgozása során kötelezo˝ betartani; és ajánlások, amelyek hozzájárulhatnak a program ˝ minoségének javításához.
3
Programeszközök, egységes rendszert alkotó programfejlesztési környezet, amelyek megkönnyítik és biztonságosabbá teszik az emberi munkát.
4
Irányítási módszerek a programkészítés folyamatának vezérlésére, szervezésére.
Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
16
Programozási technológia I.
A szoftvertechnológia ágazatai
Szendrei Rudolf
Feladatok Információk
• Követelményelemzés
Bevezetés
(specifikáció készítése)
Szoftvertechnológia A szoftvertechnológia kialakulása
• Architektúra
A szoftvertechnológia ágazatai
• Tervezés
Szoftvertervezés Modellezés, modellezo˝ eszközök
• Fejlesztés
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• Tesztelés • Karbantartás
17
Kivitelezés • Szoftvermenedzsment • Fejlesztési folyamat • Tervezoeszközök ˝ • Szoftverminoség ˝ • Formális módszerek,
programszintézis
Programozási technológia I.
Szoftvertervezés
Szendrei Rudolf
Szoftvertervezési elvek Információk
• Absztrakció
Bevezetés Szoftvertechnológia
• Modularitás
A szoftvertechnológia kialakulása
• Architektúra
A szoftvertechnológia ágazatai Szoftvertervezés
• Vezérlési hierarchia
Modellezés, modellezo˝ eszközök
• Adatszerkezetek
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
18
• Információ elrejtés
Programozási technológia I.
Szoftvertervezés
Szendrei Rudolf
Szoftvertervezési szempontok Információk
• Újrafelhasználhatóság
Bevezetés
• Bovíthet ˝ ˝ oség
Szoftvertechnológia
• Hibaturés, ˝ robosztusság
A szoftvertechnológia kialakulása
• Karbantarthatóság
A szoftvertechnológia ágazatai Szoftvertervezés
• Modularitás
Modellezés, modellezo˝ eszközök
• Megbízhatóság
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• Kompatibilitás • Biztonság • Használhatóság, felhasználóbarátság
19
Programozási technológia I.
Modellezés, modellezo˝ eszközök
Szendrei Rudolf
Modell
A specifikációnak és a tervezési elveknek és szempontoknak ˝ megfelelo˝ terv, mely alapján a program elkészítheto.
Információk Bevezetés
Modellezo˝ nyelv
Szoftvertechnológia A szoftvertechnológia kialakulása
Olyan mesterséges nyelv, amely strukturált információt képes kifejezni, mely struktúrát a specifikáció határozza meg.
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták
Unified Modeling Language (UML)
˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
20
Általános modellezo˝ nyelv (nem csak szoftvermodellezésre alkalmas), szerkezet és viselkedés szempontjából is leírja a modellt. Grafikus megjelenéssel rendelkezik. ˝ automatikus programgenerálás is lehetséges. UML-bol
Programozási technológia I.
Tervminták
Szendrei Rudolf
Tervezés és minták használata • Az önálló tervezés hatékony, ugyanakkor újra
Információk
felhasználható tervhez ötleteket kitalálni nehéz.
Bevezetés Szoftvertechnológia
• A korábban már bevált tervek alapján viszont könnyebb
A szoftvertechnológia kialakulása
dolgozni.
A szoftvertechnológia ágazatai
• Újra felhasználható tervek megismeréséhez,
Szoftvertervezés Modellezés, modellezo˝ eszközök
elsajátításához sok gyakorlatra van szükség.
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• Ezek a tervrészletek a tervminták. • Tervezéskor hasonlóan használhatóak, mint programozás
közben az újrafelhasználható kódrészletek.
21
Programozási technológia I.
˝ UML tervezoeszközök
Szendrei Rudolf
˝ UML tervezoeszközök • ArgoUML - http://argouml.tigris.org/ • StarUML - http://staruml.sourceforge.net/en/
Információk
• Umbrello UML - http://uml.sourceforge.net/
Bevezetés Szoftvertechnológia
• PowerDesigner (fizetos) ˝ -
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
http://www.sybase.com/products/modelingdevelopment/ powerdesigner • Microsoft Visio (fizetos) ˝ http://office.microsoft.com/hu-hu/visio/ • Visual Paradigm (fizetos) ˝ http://www.visualparadigm.com/product/vpuml/ • (Eclipse UML Tools) • (NetBeans)
22
Programozási technológia I.
˝ JAVA fejlesztoeszközök és -környezetek
Szendrei Rudolf
Gyakorlaton használt eszközök • JAVA Development Kit (JDK)
http://www.oracle.com/technetwork/java/javase/downloads/ index.html • JAVA dokumentáció -
Információk Bevezetés
http://download.oracle.com/javase/6/docs/api/
Szoftvertechnológia
• NetBeans -
A szoftvertechnológia kialakulása
http://netbeans.org/
A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök
További eszközök
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
• JAVA Runtime Environment (JRE) • Eclipse - http://www.eclipse.org/ • JDeveloper - http://www.oracle.com/technetwork/ developertools/jdev/overview/index.html
• JCreator - http://www.jcreator.com/ • JBuilder - http://www.embarcadero.com/products/jbuilder • IntelliJ IDEA - http://www.jetbrains.com/idea/ 23
Programozási technológia I.
˝ JAVA fejlesztoeszközök és -környezetek
Szendrei Rudolf
Netbeans gyorsbillentyuk ˝ Információk Bevezetés Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
24
• Futtatás:
F6
• Kódkiegészíto: ˝
Ctrl + szóköz
• Kódgenerálás:
Alt + Insert
• Kód formázása:
Alt + Shift + F
• Hibajavítási tippek:
Alt + Enter
• Átnevezés:
Ctrl + R
• Változó kiemelése kifejezésbol: ˝
Alt + Shift + V
• Attribútum kiemelése kifejezésbol: ˝
Alt + Shift + E
• Függvény készítése kódrészletbol: ˝
Alt + Shift + M