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!