Programozási technológia I. Dr. 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
Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem 1
Programozási technológia I.
Tartalom
Dr. 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
Dr. 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
Dr. 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
Dr. Szendrei Rudolf
˝ Elérhetoségek Információk Bevezetés
• Honlap: http://swap.web.elte.hu • E-mail:
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
5
[email protected] • Személyesen: Programozáselmélet és Szoftvertechnológiai Tanszék, 2.602
Programozási technológia I.
Információk
Dr. 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
Dr. Szendrei Rudolf
Programozási technológiai eszközök áttekintése 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
7
• Szoftvertechnológia • Története • Ágazatai • 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
Dr. 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.) • Gyártósorok vezérlé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
• A termelési folyamathoz kapcsolódó ügyviteli feladatok, a
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
Dr. 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
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
a kisvállalkozások, az oktatás, a játék, a szórakozás stb.
• Globális kommunikációs alkalmazások • 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
Dr. Szendrei Rudolf
Hardver
A hardver követte az igényeket:
Információk Bevezetés
• egységek integrációja
Szoftvertechnológia A szoftvertechnológia kialakulása
• eroforrások ˝ kapacitásának növelése nagyságrendekkel
A szoftvertechnológia ágazatai
• méret csökkentése
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
Dr. Szendrei Rudolf
Szoftver • Az egyszemélyes 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
Dr. Szendrei Rudolf
A probléma megoldása
A probléma megoldásához a szakembereknek fel kellett ismerniük, hogy • a program termékké vált, • az eloállításához ˝ technológiára van szükség.
Információk Bevezetés Szoftvertechnológia 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
Dr. 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
Dr. Szendrei Rudolf
˝ Szoftver 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: a kezelhetok ˝ összefüggései stb. programegységek, 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
Dr. 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 Modellezés, modellezo˝ eszközök
• elore ˝ meghatározott költségen történo˝ eloállítása. ˝
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
15
Programozási technológia I.
A szoftvertechnológia kialakulása
Dr. Szendrei Rudolf
˝ A szoftvertechnológia összetevoi Információk
1
Módszerek a programkészítés különbözo˝ fázisai számára.
Bevezetés
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. Programeszközök, egységes rendszert alkotó programfejlesztési környezet, amelyek megkönnyítik és biztonságosabbá teszik az emberi munkát.
Szoftvertechnológia A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai Szoftvertervezés Modellezés, modellezo˝ eszközök
3
Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
4
16
Irányítási módszerek a programkészítés folyamatának vezérlésére, szervezésére.
Programozási technológia I.
A szoftvertechnológia ágazatai
Dr. Szendrei Rudolf
Feladatok
Információk Bevezetés
• Követelményelemzés
Szoftvertechnológia
(specifikáció készítése)
A szoftvertechnológia kialakulása A szoftvertechnológia ágazatai
• Tervezés
Szoftvertervezés Modellezés, modellezo˝ eszközök Tervminták ˝ UML tervezoeszközök ˝ JAVA fejlesztoeszközök és -környezetek
17
Kivitelezés • Szoftvermenedzsment • Fejlesztési folyamat • Tervezoeszközök ˝
• Fejlesztés
• Szoftverminoség ˝
• Tesztelés
• Formális módszerek,
• Karbantartás
programszintézis
Programozási technológia I.
Szoftvertervezés
Dr. Szendrei Rudolf
Szoftvertervezési elvek Információk Bevezetés
• Absztrakció
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
Dr. Szendrei Rudolf
Szoftvertervezési szempontok • Újrafelhasználhatóság
Információk 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
Dr. 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
Dr. 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
Dr. Szendrei Rudolf
˝ UML tervezoeszközök • ArgoUML - http://argouml.tigris.org/ Információk
• StarUML - http://staruml.io/
Bevezetés
• Umbrello UML - https://umbrello.kde.org/
Szoftvertechnológia A szoftvertechnológia kialakulása
• PowerDesigner (fizetos) ˝ -
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://go.sap.com/product/data-mgmt/powerdesigner-datamodeling-tools.html • Microsoft Visio (fizetos) ˝ http://office.microsoft.com/hu-hu/visio/ • (Eclipse UML Tools) • (NetBeans)
22
Programozási technológia I.
˝ JAVA fejlesztoeszközök és -környezetek
Dr. Szendrei Rudolf
Gyakorlaton használt eszközök • JAVA Development Kit (JDK)
http://www.oracle.com/ index.html • JAVA dokumentáció -
Információk
http://docs.oracle.com/javase/8/docs/api/
Bevezetés 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/ • JCreator - http://www.jcreator.com/ • JBuilder • IntelliJ IDEA - http://www.jetbrains.com/idea/
23
Programozási technológia I.
˝ JAVA fejlesztoeszközök és -környezetek
Dr. Szendrei Rudolf
Netbeans gyorsbillentyuk ˝ Információk
• Futtatás:
F6
Bevezetés
• 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: • Átnevezés:
Alt + Enter 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
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