Alapfogalmak, tudománytörténet
1. előadás
IMPERATÍV PROGRAMOZÁS © Bánsághi Anna
[email protected]
1. ELŐADÁS - TUDOMÁNYTÖRTÉNET, PARADIGMÁK
2014 © Bánsághi Anna
1 of 80
Alapfogalmak, tudománytörténet
1. előadás
IRODALOM Reiter István: C# jegyzet devportal.hu/download/E-bookok/csharp%20jegyzet/csharp.pdf
C# Tutorials msdn.microsoft.com/en-us/library/aa288436%28v=vs.71%29.aspx
C# Fundamentals for Absolute Beginners channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners
2014 © Bánsághi Anna
2 of 80
Alapfogalmak, tudománytörténet
1. előadás
TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma Procedurális paradigma Generikus paradigma III. STRUKTÚRÁLT PROGRAMOZÁS Moduláris paradigma Objektumorientált paradigma
2014 © Bánsághi Anna
3 of 80
Alapfogalmak, tudománytörténet
1. előadás
I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET 1. 2. 3. 4. 5.
2014 © Bánsághi Anna
Számítási modellek, absztrakció Programozási nyelvek alapfogalmai Programozási nyelvek fejlődése Szoftverminőség Szoftverfejlesztési folyamat
4 of 80
Alapfogalmak, tudománytörténet
1. előadás
1. SZÁMÍTÁSI MODELLEK, ABSZTRAKCIÓ
2014 © Bánsághi Anna
5 of 80
Alapfogalmak, tudománytörténet
1. előadás
A FELADAT ÉS A PROGRAM a programozási feladat egy számítógépen megoldandó probléma a program a feladat számítógépen végrehajtható megoldása
A SZÁMÍTÁSI MODELL a problémaleíró modell a probléma (a feladat) leírási módja a végrehajtási modell a megoldás (a számítások) végrehajtásának módja
2014 © Bánsághi Anna
6 of 80
Alapfogalmak, tudománytörténet
1. előadás
SZÁMÍTÁSI MODELLEK az imperatív modell megadja, hogy hogyan kell a feladatot megoldani egymás után végrehajtható lépések vezetnek a megoldáshoz a deklaratív modell megadja, hogy mi a feladat a feladatban fellelhető tények és összefüggések adják a megoldást
2014 © Bánsághi Anna
7 of 80
Alapfogalmak, tudománytörténet
1. előadás
IMPERATÍV PROGRAMOZÁS a számítógép matematikai absztrakciója a Turing-gép, mely áll egy végtelen memóriaszalagból, annak író-olvasó egységéből és a számításokat végző végrehajtási egységből program = állapotátmenetek sorozata a program informatikai absztrakciója a Neumann-elvű modell, mely szerint a program adatok és utasítások halmaza, és az adatokon az utasítások sorozata végez módosításokat program = adatokat módosító utasítások sorozata
2014 © Bánsághi Anna
8 of 80
Alapfogalmak, tudománytörténet
1. előadás
A PROGRAM VÉGREHAJTÁSA az egyszerű utasításokat a gép processzora hajtja végre, miközben a memóriával kommunikál, és segédtárakat használ
2014 © Bánsághi Anna
9 of 80
Alapfogalmak, tudománytörténet
1. előadás
ABSZTRAKCIÓ a gépi kódú adathalmaz és utasításkészlet a programozó számára értelmezhetetlen, ennél magasabb szinten lenne jó a programokat megírni az absztrakció folyamata az, amikor az általános tulajdonságokat kiemeljük, míg a specifikusakat mellőzzük az utasításabsztrakció teszi lehetővé, hogy összetett parancsokat és vezérlési szerkezeteket adjunk meg az adatabsztrakció teszi lehetővé, hogy az adatokat különféle típusokba soroljuk, megadva a típus értéktartományát és a típuson megengedett műveleteket
2014 © Bánsághi Anna
10 of 80
Alapfogalmak, tudománytörténet
1. előadás
PARADIGMA útmutató az absztrakciók létrehozására, szabályok és konvenciók halmaza a programozási paradigmák folyamatosan fejlődnek, az új paradigmák beépítik a korábbiak tapasztalatait, eszközeit
2014 © Bánsághi Anna
11 of 80
Alapfogalmak, tudománytörténet
1. előadás
PROGRAMOZÁSI NYELVEK FEJLŐDÉSE
2014 © Bánsághi Anna
12 of 80
Alapfogalmak, tudománytörténet
1. előadás
2. PROGRAMOZÁSI NYELVEK ALAPFOGALMAI a programozási nyelv meghatározza az absztrakció szintjét, a használható típusok és utasítások halmazát, melyek egy adott nyelven belül rögzítettek, de a programozó által általában kiterjeszthetőek a nyelvet meghatározza a célja, vagyis az, hogy milyen feladatosztályra alkalmazható, továbbá a nyelv rendelkezik egy kifejezőerővel, vagyis azzal, hogy milyen összetett számításokat képes kifejezni
2014 © Bánsághi Anna
13 of 80
Alapfogalmak, tudománytörténet
1. előadás
NYELV ÉS PROGRAM a nyelv szintaxisa azoknak a szabályoknak az összessége, melyek az adott nyelven írható összes lehetséges, formailag helyes jelsorozatot (programot) definiálják a nyelv szemantikája azoknak a szabályoknak az összessége, melyek a programok jelentését definiálják a forráskód egy programozási nyelv szintaktikai és szemantikai szabályainak megfelelő szöveg
2014 © Bánsághi Anna
14 of 80
Alapfogalmak, tudománytörténet
1. előadás
PROGRAMOK FORDÍTÁSA a programozó és a számítógép különböző nyelvet beszélnek, ezért a programozási nyelven írt programot le kell fordítani a processzor nyelvére, gépi kódra az interpreter utasításonként fordítja és hajtja végre a programot, a kód gépfüggetlen lesz, viszont lassan fog futni a fordítóprogram átalakítja a forráskódot egy vele ekvivalens formára, a számítógép által közvetlenül végrehajtható gépi kóddá, a kód gépfüggő, viszont gyors a futásidejű fordítás esetén a fordítás egy gépfüggetlen, alacsony szintű köztes nyelvre történik, amely majd futtatáskor kerül interpretálásra a futási idejű környezet (virtuális gép) által
2014 © Bánsághi Anna
15 of 80
Alapfogalmak, tudománytörténet
1. előadás
PROGRAMOK VÉGREHAJTÁSA a fordítási idő az az idő, amely alatt a fordítóprogram a forráskódból gépi kódú programot készít a szintaktikai szabályok ellenőrzésével a futási idő a program végrehajtásához szükséges idő a szemantikai szabályoknak megfelelően
2014 © Bánsághi Anna
16 of 80
Alapfogalmak, tudománytörténet
1. előadás
TÍPUS NÉLKÜLI ÉS TÍPUSOS NYELVEK a dinamikusan típusos nyelvek esetén a változók típusa futási időben értékelődik ki var x = 8 var s = "szöveg"
a statikusan típusos nyelvek esetén a változók típusa fordítási időben meghatározott integer i = 8 string s = "szöveg"
2014 © Bánsághi Anna
17 of 80
Alapfogalmak, tudománytörténet
1. előadás
HIBÁK A programkód rendszerint számos hibát rejt: a szintaktikai hibákra fordítási időben fény derül, a fordítóprogram végzi az ellenőrzést, és megadja a lehetséges okot és a hiba helyét a szemantikai hibák nagy részére futási időben derülhet fény, ember végzi az ellenőrzést, a tesztelést
2014 © Bánsághi Anna
18 of 80
Alapfogalmak, tudománytörténet
1. előadás
PROGRAMKÖNYVTÁRAK már gépi kódra fordított szabványos programcsomagok, melyek alapvető szolgáltatásokat nyújtanak a programozó számára aritmetikai, logikai, relációs műveletek, billentyűzetről olvasás, képernyőre írás, ... erős minőségi elvárások, jól dokumentáltság
2014 © Bánsághi Anna
19 of 80
Alapfogalmak, tudománytörténet
1. előadás
INTEGRÁLT FEJLESZTŐI KÖRNYEZET a programozást megkönnyítő eszköz szintaxisorientált szövegszerkesztő szintaktikus és szemantikus kódkiemelés automatikus kódkiegészítés, javítás fordítóprogram, interpreter hibakeresés, nyomkövetés, töréspontok, figyelőablakok teljesítményfigyelés (memória, verem, szálkezelés) grafikus fejlesztői felület dokumentáció generálás kódból és megjegyzésekből beépített teszteszközök, a tesztelés támogatása csapatmunka támogatása, verziókezelés
2014 © Bánsághi Anna
20 of 80
Alapfogalmak, tudománytörténet
1. előadás
3. A PROGRAMOZÁSI NYELVEK FEJLŐDÉSE
2014 © Bánsághi Anna
21 of 80
Alapfogalmak, tudománytörténet
1. előadás
ASSEMBLY 1940-ES ÉVEK a gépi kód helyett mnemonikus kód alkalmazása
MOV, ADD, MUL
gépfüggő, alacsonyszintű nyelv, a gép regisztereit használja, a memóriát cím szerint éri el gépfüggő gépi kód generálható belőle automatikusan, 1:1 leképezéssel probléma, hogy nagyon távol áll az emberi gondolkodástól, rengeteg hibalehetőséggel
2014 © Bánsághi Anna
22 of 80
Alapfogalmak, tudománytörténet
1. előadás
AUTOMATIKUS PROGRAMOZÁS 1950-ES ÉVEK, AUTOCODE, FORTRAN az első magasszintű nyelvek megjelenése gépfüggetlen a nyelv, de gépfüggő kód generálható belőle számítások automatikus elvégzése A=B+C minden program egy önálló szeletet kap a memóriából, ahol a program utasításai és adatai helyezkednek el
2014 © Bánsághi Anna
23 of 80
Alapfogalmak, tudománytörténet
1. előadás
ADATABSZTRAKCIÓ a memória egy byte-sorozat, ahol minden byte-nak sorszáma van, ez a memóriacím ezen memóriarekeszek absztrakciója a változó és a konstans változó, konstans = memóriacím + azonosító + érték
a program futása során a változó értéke változhat, míg a konstansé nem a fejlettebb nyelvekben megjelenik a típus fogalma is, ekkor változó, konstans = memóriacím + azonosító + típus + érték
2014 © Bánsághi Anna
24 of 80
Alapfogalmak, tudománytörténet
1. előadás
UTASÍTÁSABSZTRAKCIÓ a processzor által értelmezhető utasítások a regiszterbe töltés, az üres utasítás, a hiba, stb. most megjelenik az értékadás, amellyel változóhoz értéket rendelünk i = 8
és megjelennek az aritmetikai és logikai kifejezések is j = 8 + 2 l = ¬true
2014 © Bánsághi Anna
25 of 80
Alapfogalmak, tudománytörténet
1. előadás
DEKLARÁCIÓ ÉS DEFINÍCIÓ a változókat és a konstansokat deklarálni kell, azaz használat előtt meg kell adni az azonosítójukat (és típusukat) a változókat és a konstansokat definiálni kell, azaz meg kell adni az értéküket integer i, j i = 8 j = i + 3 character c = 'a'
2014 © Bánsághi Anna
// // // //
deklaráció definíció definíció deklaráció és definíció együtt
26 of 80
Alapfogalmak, tudománytörténet
1. előadás
ADATOK TÍPUSA Az adattípus meghatározza a felvehető értékek halmazát és az alkalmazható műveletek körét
2014 © Bánsághi Anna
adattípus = értékehalmaz
+
művelethalmaz
Integer
=Z
+
{ + - * / unáris mínusz }
Boolean
= { true, false }
+
{¬∧∨→}
27 of 80
Alapfogalmak, tudománytörténet
1. előadás
IMPERATÍV PARADIGMA, ALGOL 60 1960-AS ÉVEK olcsóbb számítógépek, időosztásos OS a generált kód hardverfüggetlen a nyelv szintaxisa és szemantikája egyre jobban különválik, formálisan definiált
2014 © Bánsághi Anna
28 of 80
Alapfogalmak, tudománytörténet
1. előadás
UTASÍTÁSABSZTRAKCIÓ megjelennek a vezérlési szerkezetek, a szekvencia, az elágazás és a ciklus szekvencia utasítások egymás utáni végrehajtása elágazás feltételtől függő végrehajtás, lehet egy-, két- vagy többágú ciklus utasítások ismételt végrehajtása
2014 © Bánsághi Anna
29 of 80
Alapfogalmak, tudománytörténet
1. előadás
PARADIGMÁK BURJÁNZÁSA 1970-ES ÉVEK megjelennek a mai nyelvek főbb tulajdonságai: C az egyik rendszerprogramozási nyelv Simula az első objektumorientált nyelv kialakul a deklaratív számítási modell és az azt támogató paradigmák: Prolog az első logikai nyelv ML az elsők között lévő funkcionális nyelv
2014 © Bánsághi Anna
30 of 80
Alapfogalmak, tudománytörténet
1. előadás
ADATABSZTRAKCIÓ az elemi típusokból összetett típusok alkothatók a típuskonstrukciók segítségével különböző típusok direktszorzata különböző típusok uniója ugyanazon típus tömbje
2014 © Bánsághi Anna
31 of 80
Alapfogalmak, tudománytörténet
1. előadás
PROCEDURÁLIS PARADIGMA, PASCAL, C UTASÍTÁSABSZTRAKCIÓ a programban előbb-utóbb felbukkannak olyan utasításcsoportok, melyeket újra és újra leírunk, mert gyakran kell őket együtt végrehajtani az ilyen utasításcsoportokat kiemelhetjük a főprogramból, névvel látva el, és a kódban csupán erre a névre hivatkozva hívjuk meg ezeket az ún. alprogramokat nő a program áttekinthetősége
2014 © Bánsághi Anna
32 of 80
Alapfogalmak, tudománytörténet
1. előadás
ALPROGRAMOK tetszőleges utasításokból épülnek fel, hívhatnak más alprogramokat (akár önmagukat), és kommunikálhatnak azokkal az eljárások végrehajtanak egy utasítássorozatot az függvények kiszámítanak valamilyen értéket, és megadják annak eredményét
2014 © Bánsághi Anna
33 of 80
Alapfogalmak, tudománytörténet
1. előadás
FUNKCIONÁLIS PARADIGMA, ML program = függvény(kompozíció) függvényn(...függvény2(függvény1()))
a program végrehajtása a függvény kiszámítását jelenti a végrehajtás elve a redukció egyre egyszerűbb kifejezésekre cserélés egy függvény lehet egy másik függvény paramétere vagy értéke műveletek: függvény-összehasonlítás, rekurzió, feltételes kifejezés támogatja az automatikus helyességbizonyítást, ezért nagy kockázatú rendszereknél használják
2014 © Bánsághi Anna
34 of 80
Alapfogalmak, tudománytörténet
1. előadás
LOGIKAI PARADIGMA, PROLOG a predikátumkalkulus programnyelvi megvalósítása automatikus tételbizonyítás program = tények + szabályok + eldöntendő kérdés program futása = rezolúciós módszer alkalmazása a megoldandó feladat egy logikai (eldöntendő) kérdés megválaszolása
2014 © Bánsághi Anna
35 of 80
Alapfogalmak, tudománytörténet
1. előadás
PÁRHUZAMOS PARADIGMA program = egymással kommunikáló és párhuzamosan végrehajtható szálak/processzek a program végrehajtása nemdeterminisztikus
SZÁLAK KOMMUNIKÁCIÓJA közös memóriaterületen, ütemezett, védett hozzáféréssel üzenetküldéssel és szinkron vagy aszinkron üzenetfogadással
2014 © Bánsághi Anna
36 of 80
Alapfogalmak, tudománytörténet
1. előadás
ESEMÉNYVEZÉRELT PARADIGMA a környezet határozza meg a vezérlést a program egy kezdeti inicializációs rész után vár, és a bekövetkező eseményekre reagál
ESEMÉNYEK LEHETNEK felhasználói interakciók más programok üzenetküldései ütemezett mérések eredményei
2014 © Bánsághi Anna
37 of 80
Alapfogalmak, tudománytörténet
1. előadás
SZOFTVERKRÍZIS 1980-AS ÉVEK NAGY SZOFTVERFEJLESZTÉSI CÉGEK nagy teamek, monumentális, komplex kód nincsen a kódnak „gazdája” nehézkes kommunikáció az eljárások közt adatszerkezetek és eljárások elszakadnak felülről lefelé építkezik lassú, rugalmatlan, újrafelhasználhatatlan
2014 © Bánsághi Anna
38 of 80
Alapfogalmak, tudománytörténet
1. előadás
KIS GARÁZSCÉGEK kis csapat, kis kapacitás azonnali produkciós kényszer alulról felfelé építkezés gyors, rugalmas, újrafelhasználható
2014 © Bánsághi Anna
39 of 80
Alapfogalmak, tudománytörténet
1. előadás
STRUKTÚRÁLIS PARADIGMA a komplex feladatokat és az azokat megoldó szoftverrendszereket struktúrálni kell az áttekinthetőség és az újrafelhasználhatóság érdekében felülről lefelé történő struktúrálás: az összetett feladatot egyre kisebb és jól körülhatárolt részfeladatokra bontjuk alulról felfelé történő struktúrálás: beazonosítjuk a feladat alapelemeit és azok műveleteit, majd az elemeket hasonlóságuk alapján osztályokba soroljuk
2014 © Bánsághi Anna
40 of 80
Alapfogalmak, tudománytörténet
1. előadás
STRUKTÚRÁLIS PARADIGMA FAJTÁK moduláris paradigma struktúrálás az utasításabsztrakció mentén, felülről lefelé objektumorientált paradigma struktúrálás az adatabsztrakció mentén, alulról felfelé a két paradigma ortogonális egymásra, azaz nincsenek egymásra hatással, nem befolyasolják egymás kifejezőerejét
2014 © Bánsághi Anna
41 of 80
Alapfogalmak, tudománytörténet
1. előadás
MODULÁRIS PARADIGMA jól körülhatárolt részfeladatot végrehajtó modulok létrehozása a program egymástól jól elkülöníthető részegységek halmaza, melyeket hierarchikus rendbe tagulhatunk (solution-ök, projektek, névterek) a programegységek önállóan is értelmes egységet alkotnak a programegységeknek van egy kívülről látható része (felület/interfész), és egy belső megvalósítása (implementáció)
2014 © Bánsághi Anna
42 of 80
Alapfogalmak, tudománytörténet
1. előadás
OBJEKTUMORIENTÁLT PARADIGMA a programozó létrehozhat absztrakt adattípusokat, azaz osztályokat a program egymással kommunikáló objektumok halmaza, amelyek valamilyen relációban állnak egymással az egységbezárás elve szerint a külvilág nem férhet hozzá egy objektum belső adataihoz az osztályokat hierarchiába sorolhatjuk, az alosztály örökli az ősosztály tulajdonságait és műveleteit
2014 © Bánsághi Anna
43 of 80
Alapfogalmak, tudománytörténet
1. előadás
OBJEKTUMORIENTÁLT PARADIGMA KRITIKÁJA 1990-ES ÉVEKTŐL dinamikus kötés és fordítási idejű típusellenőrzés egyidejűleg az osztályhierarchia nehezen bővíthető hatékonyság kárára váló elvszerűség
2014 © Bánsághi Anna
44 of 80
Alapfogalmak, tudománytörténet
1. előadás
ÚJ PARADIGMÁK MEGJELENÉSE funkcionális programozás újraéledése aspektusorientált programozás generikus programozás template metaprogramozás szándékelvű programozás multiparadigma elvű rendszerek
2014 © Bánsághi Anna
45 of 80
Alapfogalmak, tudománytörténet
1. előadás
ASPEKTUSORIENTÁLT PROGRAMOZÁS új struktúrálási elvek megjelenése a modularizáción és az objektumorientáltságon túl szétszórt, de funkcionálisan összefüggő kódrészletek karbantarthatósága program = osztályok + aspektusok kód blokkok
2014 © Bánsághi Anna
aspektusok
46 of 80
Alapfogalmak, tudománytörténet
1. előadás
GENERIKUS PROGRAMOZÁS az utasításabsztrakció újabb megnyilvánulása a parametrikus polimorfizmus, azaz az alprogramok paraméterezésének kiterjesztése két módon: típussal történő paraméterezés alprogrammal történő paraméterezés Példa: C# generikus iterált típusai
2014 © Bánsághi Anna
47 of 80
Alapfogalmak, tudománytörténet
1. előadás
TEMPLATE METAPROGRAMOZÁS programok, melyek más programokat manipulálnak fordítási idejű optimalizálás futási idejű hibák elkerülése aktív könyvtárak rendkívül hatékony
2014 © Bánsághi Anna
48 of 80
Alapfogalmak, tudománytörténet
1. előadás
FAKTORIÁLIS SZÁMÍTÁS FUTÁSI IDŐBEN int factorial( int n) { return (n == 0) ? 1 : n * factorial(n-1); } int main() { cout << factorial(5) << endl; return 0; }
2014 © Bánsághi Anna
49 of 80
Alapfogalmak, tudománytörténet
1. előadás
FAKTORIÁLIS SZÁMÍTÁS FORDÍTÁSI IDŐBEN template enum { }; template enum { };
struct Factorial { value = N * Factorial::value }; <> struct Factorial<0> { value = 1 };
int main() { const int fact5 = Factorial<5>::value; std::cout << fact5 << endl; }
a függvényhívás ekvivalens a következő értékadással: const int fact5 = 120;
2014 © Bánsághi Anna
50 of 80
Alapfogalmak, tudománytörténet
1. előadás
SZÁNDÉK ALAPÚ PROGRAMOZÁS újabb absztrakciós szint a kód és a specifikáció között a programterv és a programkód közötti határok csökkentése
2014 © Bánsághi Anna
51 of 80
Alapfogalmak, tudománytörténet
1. előadás
MULTIPARADIGMA PROGRAMOZÁSI NYELVEK több paradigmát ötvöznek C++, C#, Java: procedurális, objektumorientált, funkcionális
2014 © Bánsághi Anna
52 of 80
Alapfogalmak, tudománytörténet
1. előadás
4. SZOFTVERMINŐSÉG ISO/IEC 25010:2011 SZOFTVER TERMÉK ALAPÚ MINŐSÉGÜGYI SZABVÁNY ALAPJÁN funkcionális alkalmazhatóság hatékonyság kompatibilitás használhatóság hordozhatóság karbantarthatóság biztonság megbízhatóság
2014 © Bánsághi Anna
53 of 80
Alapfogalmak, tudománytörténet
1. előadás
FUNKCIONÁLIS ALKALMAZHATÓSÁG funkcionális teljesség követelményeknek, specifikációnak való megfelelés funkcionális helyesség az elvárt hibahatáron belül teljesíti feladatát funkcionális megfelelőség a különleges esetekkel, helyzetekkel való megbírkózás
2014 © Bánsághi Anna
54 of 80
Alapfogalmak, tudománytörténet
1. előadás
HATÉKONYSÁG időszükséglet válaszidő, futási idő, áteresztő képesség erőforrás-kihasználás felhasznált típusok és erőforrások mennyisége kapacitás a szoftver használatának felső korlátai
2014 © Bánsághi Anna
55 of 80
Alapfogalmak, tudománytörténet
1. előadás
KOMPATIBILITÁS együttműködő képesség a környezetben futó más programokkal rendszerbe integrálhatóság képessége integrált komponensként
2014 © Bánsághi Anna
56 of 80
Alapfogalmak, tudománytörténet
1. előadás
HASZNÁLHATÓSÁG érthetőség a szoftver céljának beazonosíthatósága a felhasználók által megtanulhatóság a szoftver kockázattűrő és hatékony elsajátíthatósága működtethetőség a könnyű kezelést elősegítő paraméterek, személyre szabhatóság felhasználói hibavédelem felhasználói felületi esztétika hozzáférhetőség felhasználók széles köre képes a használatra
2014 © Bánsághi Anna
57 of 80
Alapfogalmak, tudománytörténet
1. előadás
HORDOZHATÓSÁG adaptálhatóság különféle hardver és szoftver környezetbe telepíthetőség telepíthetőség hatékony és sikeres telepítése és eltávolítás kiválthatóság ugyanazon környezetben, ugyanazon célú egyéb szoftverek
2014 © Bánsághi Anna
58 of 80
Alapfogalmak, tudománytörténet
1. előadás
KARBANTARTHATÓSÁG modularitás önálló, zárt, lecserélhető komponensek mértéke újrahasznosíthatóság adott egység többszöri felhasználása elemezhetőség hibakeresés és beazonosítás hatékonysága, gyorsasága módosíthatóság a szoftver hiba nélküli, gyors változtathatósági képessége tesztelhetőség tesztelési kritériumoknak megfelelő ellenőrzés
2014 © Bánsághi Anna
59 of 80
Alapfogalmak, tudománytörténet
1. előadás
BIZTONSÁG bizalmasság felhasználói adatok jogosultsági rendszere feddhetetlenség jogosulatlan hozzáférések tiltása letagadhatatlanság az adathozzáférések bizonyító erejűek elszámoltathatóság adathozzáférések naplózása hitelesség az erőforrások igazolni tudják magukat
2014 © Bánsághi Anna
60 of 80
Alapfogalmak, tudománytörténet
1. előadás
MEGBÍZHATÓSÁG érettség normális működés alatt elvárt funkcionalitás elérhetőség a szoftver rendelkezésre állása, amikor szükséges hibatűrő képesség hardver vagy szoftver hibák ellenére is működőképes szoftver helyreállíthatóság váratlan hiba utáni adat- és rendszer helyreállás
2014 © Bánsághi Anna
61 of 80
Alapfogalmak, tudománytörténet
1. előadás
HASZNÁLATBELI MINŐSÉG hatékonyság termelékenység elégedettség kockázatmentesség alkalmazási környezetfedettség
2014 © Bánsághi Anna
62 of 80
Alapfogalmak, tudománytörténet
1. előadás
A JÓ PROGRAMOZÁSI NYELV világos, egyszerű, következetes ortogonális tulajdonságok, paradigmák algoritmus logikája és a nyelv nyelvtana közötti megfelelés adat- és utasításabsztrakció támogatása megbízható, következetes szintaxis, szemantika hordozható programok írására alkalmas fejlesztői környezet is létezik hozzá
2014 © Bánsághi Anna
63 of 80
Alapfogalmak, tudománytörténet
1. előadás
5. SZOFTVERFEJLESZTÉSI FOLYAMATOK A feladat bonyolultságától függően kell megtervezni a megoldáshoz vezető lépéseket egyszerű, algoritmizálható feladatok megoldása komplex szoftverrendszerek tervezése
2014 © Bánsághi Anna
64 of 80
Alapfogalmak, tudománytörténet
1. előadás
EGYSZERŰ, ALGORITMIZÁLHATÓ FELADAT a megoldandó feladatok gyakran hasonlítanak egymásra, így a megoldásuk is hasonló célszerű a feladatokat általánosan megfogalmazni és megoldani célszerű az eltéréseket, a kis változtatásokat könnyen kezelhetővé tenni így elég egyszer megoldani egy általánosabb feladatot, és ezt a megoldást használni azokra a konkrét feladatokra, melyek visszavezethetők az általános feladatra
2014 © Bánsághi Anna
65 of 80
Alapfogalmak, tudománytörténet
1. előadás
ALGORITMUSTERVEZÉS mára már több ezer nevezetes feladat bizonyítottan helyes megoldása létezik, érdemes ezek közül minél többet megismerni 1. A feladat elemzése, formalizálása, azaz a specifikálása 2. A specifikáció alapján megtervezhető az algoritmus 3. Az algoritmus implementálása a megfelelő programozási nyelven 4. Teszteljük a megoldóprogramot, és javítjuk a hibákat
2014 © Bánsághi Anna
66 of 80
Alapfogalmak, tudománytörténet
1. előadás
1. FELADAT SPECIFIKÁCIÓ a feladat helyes, egyértelmű, pontos, teljes leírása, szemléletes, érthető, tömör, formális módon bemenő adatok halmaza kimenő adatok halmaza előfeltétel a bemenő adatokra utófeltétel a kimenő adatokra
2014 © Bánsághi Anna
67 of 80
Alapfogalmak, tudománytörténet
1. előadás
2. ALGORITMUS MEGADÁSA történhet folyamatábrával, struktogrammal, pszeudokóddal
2014 © Bánsághi Anna
68 of 80
Alapfogalmak, tudománytörténet
1. előadás
FOLYAMATÁBRA
2014 © Bánsághi Anna
69 of 80
Alapfogalmak, tudománytörténet
1. előadás
STRUKTOGRAM
2014 © Bánsághi Anna
70 of 80
Alapfogalmak, tudománytörténet
1. előadás
PSZEUDOKÓD ha van könyved akkor Olvasd a könyvet ciklus amíg nem utolsó oldal Jegyzetelj Olvasd a könyvet ciklus vége különben Szerezz egy könyvet elágazás vége
2014 © Bánsághi Anna
71 of 80
Alapfogalmak, tudománytörténet
1. előadás
3. IMPLEMENTÁCIÓ a választott programozási nyelven kódoljuk a programot
2014 © Bánsághi Anna
72 of 80
Alapfogalmak, tudománytörténet
1. előadás
4. TESZTELÉS az algoritmusokat egységtesztnek vetjük alá, például a bemenő adatok szélsőértékeire is ellenőrizzük, hogy terminál-e a program, és helyes megoldást kapunk-e
2014 © Bánsághi Anna
73 of 80
Alapfogalmak, tudománytörténet
1. előadás
KOMPLEX SZOFTVERRENDSZEREK TERVEZÉSE ÉS FEJLESZTÉSE különféle szabványos fejlesztési folyamatmodellek léteznek, fő alapgondolatuk, hogy több menetben, fokozatos közelítéssel tervezzük, modellezzük, implementáljuk és teszteljük a programot a részfeladatokat fontossági sorrendjükben valósítjuk meg elengedhetetlen a folyamatos megrendelői visszacsatolás
2014 © Bánsághi Anna
74 of 80
Alapfogalmak, tudománytörténet
1. előadás
SPIRÁLIS SZOFTVERFEJLESZTÉSI MODELL
2014 © Bánsághi Anna
75 of 80
Alapfogalmak, tudománytörténet
1. előadás
SZOFTVERTERVEZŐ ÉS -TESZTELŐ ESZKÖZÖK speciális tervezőeszközök a rendszer statikus és dinamikus tulajdonságainak leírására különféle nézetek (adat, folyamat, architektúra, komponens) egyidejű megjelenítése a tesztelés mára már egy önálló tudományág, automatizálható tesztekkel
2014 © Bánsághi Anna
76 of 80
Alapfogalmak, tudománytörténet
1. előadás
TESZTELÉSI MÓDSZEREK a statikus tesztelés során a program kódját vizsgáljuk át, lehetséges logikai bukfenceket, formai vagy tartalmi hibákat keresve a dinamikus tesztelés során futás közben vizsgáljuk a programot, és működési rendellenességeket keresünk, illetve ellenőrizzük, hogy a program teljesíti-e az előírt minőségi mutatókat
2014 © Bánsághi Anna
77 of 80
Alapfogalmak, tudománytörténet
1. előadás
STATIKUS TESZTELÉS statikus elemzés, szóbeli és technikai beszámoló, vizsgálat
DINAMIKUS TESZTELÉS fekete doboz: a specifikáción alapuló funkcionális tesztek fehér doboz: a forráskódon alapuló struktúrális tesztek tapasztalati alapú: hibabecslés és -felderítés speciális tesztek: biztonsági, stressz, regressziós
2014 © Bánsághi Anna
78 of 80
Alapfogalmak, tudománytörténet
1. előadás
A TESZTELÉS SZINTJEI egységteszt: a programegységeket külön-külön teszteljük a funkcionális és a nem-funkcionális követelményeknek megfelelően integrációs teszt: a programegységek felületének és az integrált komponensek közötti kommunikáció vizsgálata rendszerteszt: az egész rendszer viselkedésének nem-funkcionális tesztje (minőségügyi attribútumok alapján) elfogadási teszt: a rendszer tesztelése a kihelyezett környezetben, a végfelhasználók által
2014 © Bánsághi Anna
79 of 80
Alapfogalmak, tudománytörténet
1. előadás
HELLO WORLD using System;
//
namespace Nevter {
szabványos C# függvénykönyvtár, moduláris paradigma //
public class Osztaly {
moduláris paradigmát támogató nyelvi eszköz //
objektumorientált paradigmát támogató nyelvi eszköz
public static void Main() {
// az alkalmazás "főprogramja"
// a System nodul Console osztálya WriteLine metódusának hívása Console.WriteLine( "Hello World" ); // a System modul Console osztálya ReadLine metódusának hívása // csak azért, hogy ne záródjon be a konzol ablak Console.ReadLine(); } } }
2014 © Bánsághi Anna
80 of 80