500 likes | 637 Views
5. Előadás 1. rész. Műszaki informatika. Előző órán. Rendszerszintű és segédszoftverek Vírusölők, kémelhárító szoftverek Tűzfalak Titkosítók és e-szignók Tömörítők Irodai alkalmazások PDF. Óravázlat. Szoftverfejlesztés általában Objektum-orientáltság Programozási nyelvek
E N D
5. Előadás1. rész Műszaki informatika
Előző órán • Rendszerszintű és segédszoftverek • Vírusölők, kémelhárító szoftverek • Tűzfalak • Titkosítók és e-szignók • Tömörítők • Irodai alkalmazások • 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)
Szoftverfejlesztési eszközök • Módszer/módszertan: • Számos, pl. SSADM, OOSD • Gyors fejlesztés: Rapid ApplicationDevelopment (RAD), Rapid Prototyping (RP) • Fejlesztői környezet: • Sokféle, általános elnevezés: IDE (IntegratedDevelopmentEnvironment) • Fejlesztőkészletek: • SDK (Software Development Kit) • API (ApplicationProgrammingInterface)
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
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 • UnifiedModelingLanguage • Vizuális modellezés szimbólumrendszerrel • Fontosabb diagramok (pl.): • Osztálydiagram (class diagram) • Komponensdiagram (component diagram) • Állapotdiagram (statespace) • Használati eset diagram (usecase)
Ú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
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
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…
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 • Prefix: • Sub(Mul(b,b),Mul(4,Mul(a,c))) • Postfix: • b b * 4 a c * * -
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
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 • (ArtificialIntelligence – 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
A CAD feladata • Alapvetően: (Computer Aided Design)számítógéppel segített tervezés (!):2D-3D • Szolgáltatások: • Drótvázasgeometriaképzés • 3D parametrikusalaksajátosságonalapulómodellezés, szilárdtestmodellezés • Szabadformájúfelületmodellezés • Műszakirajzkészítés a szilárdtestmodellből • Tervrészletekújbólifelhasználása • Szabványosalkatrészekautomatikusgenerálása • Műhelyrajzokésdarabjegyzékekkészítése • Alkatrészekésösszeállításokkönyvtáránakkezelése • Ábrázolásisegítségekbiztosítása (sraffozás, elfordítás, takartvonalakeltávolításastb.) • …
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) • 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 • BentleyMicroStation • Speciális: • GraphisoftArchiCAD • Siemens SiCAD • IntergraphSolidEdge • SewCAD • Pro/ENGINEER
2D-s CAD rendszer BME K épület II. emelet Északi szárny