Transcript Letöltés
5. előadás Műszaki informatika Előző órán • Számítógépes biztonság, trendek – Vírusok, SPAM, botnet, adathalászat stb. • Vírusölők, tűzfalak • Mobil biztonság • Titkosítási módszerek • Tömörítők • Irodai alkalmazások, LibreOffice • PDF Óravázlat • • • • • • • Szoftverfejlesztés általában Objektum-orientáltság Programozási nyelvek Mesterséges intelligencia CAD-rendszerek Számítógépes grafika Digitális képfeldolgozás Miért beszélünk a programozásról? • Steve Jobs szerint: “Learning to program teaches you how to think. Computer science is a liberal art.” Szoftverfejlesztés • (software engineering) • Definíció: tudományos eredmények és módszerek alkalmazása a valós problémák számítógéppel támogatott megoldásában • Ágai: – Rendszerfejlesztés (system engineering) – Információfeldolgozás (information engineering) – Tudásalapú információfeldolgozás (knowledge engineering) Vízesés-modell V-modell Szoftverfejlesztési eszközök • Módszer/módszertan: – Számos, pl. SSADM, OOSD – Gyors fejlesztés: Rapid Application Development (RAD), Rapid Prototyping (RP) • Fejlesztői környezet: – Sokféle, általános elnevezés: IDE (Integrated Development Environment) • Fejlesztőkészletek: – SDK (Software Development Kit) – API (Application Programming Interface) Microsoft IDE Eclipse IDE Arduino IDE SSADM Structured System Analysis and Design Method Szabvány vagy ajánlás Jellemzői: Termékorientált Elvárásnak megfelelés igénye (együttműködés a felhasználóval) Erőforrás-kihasználás Elkülönülő logikai és fizikai tervezés Dokumentálás OOSD • Object Oriented Software Design • (Object Oriented Programming – OOP) • Alapelvek: – Egységbezárás (encapsulation) – Öröklés (inheritance) – Polimorfizmus (polymorphism) • Elemek: – Osztály (class) – Példány (instance) • www.gamemaker.nl Game Maker Objektum-osztályok • Szuperosztály – osztály • Elemei: – Név – Adatok, állapotok (argumentumok) – Tagfüggvények (metódusok) • Konstruktor-destruktor CASE • Computer Aided Software Engineering (Számítógéppel segített szoftverfejlesztés) • Elemei: – Probléma-definiálás, - elemzés – Tervezés, modellezés – Tesztelés, követés,karbantartás – Dokumentálás, ellenőrzés, összehasonlítás • UML UML Unified Modeling Language Vizuális modellezés szimbólumrendszerrel Fontosabb diagramok (pl.): Osztálydiagram (class diagram) Komponensdiagram (component diagram) Állapotdiagram (state space) Használati eset diagram (use case) Újrafelhasználhatóság Megtervezett vagy kidolgozott modellelemek ismételt felhasználásra Repository Programozás „mintázattal” (program patterns) Programozási példák • Nem algoritmus áttekintés! • Makró programozás • A Windows alatti programozás • Programozás a web számára Makró programozás (MS Word) • A példa: kijelölés megvastagítása Még hasznos makrók • Példa – kiadványszerkesztés: Springer LNCS sablon Fordító? Értelmező? • Fordító (compiler): a forráskód közvetlen gépi végrehajtásra alkalmassá tétele • Szerkesztő (linker): objektumkód, könyvtárak, erőforrások összeszerkesztése • Értelmező (interpreter): fordítás+szerkesztés+végrehajtás „Fordítós” fejlesztés Egyszerű programfutás • Indítás • Utasítások szekvenciális (!) végrehajtása • Befejezés Futtatás Windows alatt • Eseményvezérelt (!) program • MFC-elemek a GUI-hoz Microsoft Foundation Classes • Előre elkészített OO elemkönyvtár • Cél: főként a grafikus felület elkészítése Android rendszer-architektúra Programozás Wizard-dal • • • • • Megjegyzések (pl. TODO) elhelyezése Alapértelmezések beállítása Minimális funkcionalitás biztosítása Paraméter-állítás GUI-n keresztül Változó és függvénykezelés Hatékony fejlesztői eszközök • • • • • Debugger - Hibakereső Profiler – Teljesítmény-mérő SourceSafe – Verziózó és kódarchiváló InstallShield – Telepítőkészlet varázsló Visual Modeler – objektum-modellező (UML) Programozási nyelvek története • • • • • • • • • • Plankalkül (1944) Fortran (1954): FORmula TRANslator Algol (1958) Basic (1964): Beginners All-purpose Standard Instruction Code Lisp (1969): LIst Processing C (1972) Pascal (1973) C++ (1980) Java (1990) Visual Basic (1994) Programozási nyelvek csoportjai • Imperatív, procedurális nyelvek: – C, C++, Fortran, Algol, Pascal, Cobol… • Applikatív, funkcionális nyelvek: – Lisp… • Objektumorientált nyelvek: – Ada, Modula, Simula, Smalltalk, Java… • Szabály alapú, logikai nyelvek: – Prolog… • Vizuális programozás: – LabView, Simulink, VPL, NXT… Vizuális programozási példák Top 10 programozási nyelv Top10 programozási nyelvek (2014) Nyelvi elemek • Vezérlési szerkezetek: – Ciklusok, elágazások, vezérlésátadás • Típusok – Elemi: skalár, mutató – Összetett • Alprogramok Egy példa: for-ciklus • Pascal: for i:=0 to n do (lépés=1!) • Basic: for i=0 to n step m • C: for(i=0;i<n;i+=m) • Matlab: for i=0:m:n Operátortípusok Infix: b*b–4*a*c b 4 ac 2 Prefix: - * b Sub(Mul(b,b), Mul(4,Mul(a,c))) * b 4 * Postfix: a c bb*4ac**- Web-programozás • Cél: a weben elérhető (megnövelt) funkcionalitás (pl. dinamikus oldal) • Eszköz: HTML + programnyelv • Programnyelv: – Általános célú: pl. C++ – Script: pl. VBScript – Speciális: pl. PHP Web-es programnyelvek • • • • • • Java – Applet, Script… Perl (Practical Extraction Report Language) CGI (Common Gateway Interface) PHP (PHP Hypertext Preprocessor) VBScript HTML - VRML PHP példa Web-program Algoritmus • Definíció: előírás, amely adott feladattípus megoldásához szükséges műveletek megfelelő sorrendű összessége • Jellemzői: – Hatásosság (feladatkörök bővítése) – Hatékonyság (idő-tár használat) – Komplexitás (méretnövekedés hatása) Mesterséges intelligencia (Artificial Intelligence – AI) Fejezetei: Neurális hálózatok (ANN) Fuzzy logika Genetikus algoritmusok (GA), programozás (GP) Következtető rendszerek: ○ Szemantikus hálók, tételbizonyítók, logikai programnyelvek,valószínűségi hálók, szakértői rendszerek (ES) Hibrid megoldások Wumpus-játék • Objektumok: – Gödör, Wumpus, arany • „Érzékelés”: – Fény, bűz, szél • Cél: – Megtalálni az aranyat rövid úton Stratégiai játék A CAD feladata Alapvetően: (Computer Aided Design) számítógéppel segített tervezés (!):2D-3D Szolgáltatások: Drótvázas geometria képzés 3D parametrikus alaksajátosságon alapuló modellezés, szilárdtest modellezés Szabad formájú felületmodellezés Műszaki rajz készítés a szilárdtest modellből Tervrészletek újbóli felhasználása Szabványos alkatrészek automatikus generálása Műhelyrajzok és darabjegyzékek készítése Alkatrészek és összeállítások könyvtárának kezelése Ábrázolási segítségek biztosítása (sraffozás, elfordítás, takart vonalak eltávolítása stb.) … CAD-kapcsolatok • CAM (Computer Aided Manufacturing): – Gyártás, pl. NC-programozás, CNC-vezérlés • CAE (Computer Aided Engineering): – Elemzés, pl. végeselem-módszerek (FEM), áramlástani szimulációk (CFD), kinematika, optimalizálás • CIM (Computer Integrated Manufacturing): – Mindenféle gyártási fázisban alkalmazott számítógépek, pl. raktározás, erőforrás-tervezés stb. Top 10 AEC (világszerte) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Autodesk Bentley Systems Intergraph Nemetschek AVEVA Group Fukui Computer Fujitsu Tekla Tririga Graphisoft Group Architecture Engineering Construction Forrás: Gartner Group, Nemetschek Néhány gyakori CAD-rendszer • Általános célú: – Autodesk AutoCAD – Bentley MicroStation • Speciális: – – – – – Graphisoft ArchiCAD Siemens SiCAD Intergraph SolidEdge SewCAD Pro/ENGINEER 2D-s CAD rendszer BME K épület II. emelet Északi szárny 3D-s CAD rendszerek Forrás: Homola Dávid, HungaroCAD Civil3D Forrás: Darabos Péter Civil3D C+I közműhálózat tervező Forrás: Knolmár Marcell SEWCAD Nemetschek Forrás: Szoboszlai Mihály ArchiCAD BIM • Building Information Modeling – épület/építés • Komplex 3D épület/szerkezet modell – Kommunikációs felület a szakágaknak • • • • • Virtuális kivitelezés Ütközésvizsgálat biztosítása Kivitelezés ütemezése; idő kezelése Üzemeltetés Szoftverek, formátumok, adatbázisok Forrás: directionsmag.com SolidEdge CATIA A számítógépes grafika • Computer Graphics (CG) • Feladata: – Előzetes információknak (tudásnak) megfelelő mesterséges (látvány)kép vagy azok sorozatának előállítása a képszerkesztés folyamán alkalmas rajzelemtár segítségével – „Fénykép készítése egy virtuális világról – A világ leírása a modellezés” (Szirmay-Kalos László) Néhány szoftver 3D Studio Max Maya Blender 3D Legfontosabb műveletek • Geometriai primitívek létrehozása, transzformációi • Felületi jellemzők beállítása (textúra, anyag…) • Kiegészítő hatások (részecskék, haj, robbanás…) • Világítás beállítása • Animációs beállítások • Rendering Textúrázás (3DSM) Rendering-változatok (Blender) Ellenőrző kérdések 1. Mit fejeznek ki a szoftverfejlesztés modelljei? 2. Mi a fordítós és értelmezős programfejlesztés közötti különbség? 3. Nevezzen meg néhány programozási nyelvet! 4. Mi a CAD célja, mennyiben támogatja az építőmérnök tevékenységét? 5. Mi a feladata a számítógépes grafikának és a digitális képfeldolgozásnak? Gyakorlati felmérők pótlása (!) • Ideje: 2014.12.16. (kedd) 8:15-9:45 és 10:0011:45 • Helye: K.I.83 A és B terem • Jelentkezés: a tanszéki bejárat (K.I.31) melletti asztalkánál az utolsó héttől • Részletekről plakát a tanszéken! • Különeljárási díjas pótlás: 2014.12.18. (csütörtök) 8:15-10:00 K.I.83 A és B terem (elmélet is) Nagyzárthelyi infók (!) • Helye: K. 234 • Ideje: 2014.12.9.(kedd) – Névsor A-L: 12:15-13:00 (40 perc munkaidő) – Névsor M-Z: 13:00-14:00 (40 perc munkaidő) • Mi kell hozzá? – A3-as borító névvel és Neptun-kóddal – Fényképes igazolvány • Elméleti anyag: – A tárgy honlapján: EA ppt, segédlet pdf (!) • ZH pótlása: 2014.12.15. (hétfő) – 10:15-12:00 Kmf79 (mindenkinek) – Nem kell rá külön jelentkezni! – Írók számának függvényében 2 turnusban Köszönöm a(z egész féléves) figyelmet!