27
Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok. -Szervezés. Múlt alkalommal: Programfejlesztés = leírások készítése. 2.) A számítógép, a külvilág és az ügyfél. számítógép forgalmi lámpa Specifikációs interface {pjel, zjel} következmények: inteface {stop, go}

Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

  • Upload
    kalani

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

Múlt alkalommal:. Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok. -Szervezés. Programfejlesztés = leírások készítése. 2.) A számítógép, a külvilág és az ügyfél. számítógép. forgalmi lámpa. - PowerPoint PPT Presentation

Citation preview

Page 1: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Az informatikus munkája inkább mérnöki munka.

Technológia kell.

-Módszer.

-Szabályok.

-Szervezés.

Múlt alkalommal:

Programfejlesztés = leírások készítése.

2.) A számítógép, a külvilág és az ügyfél.

számítógép forgalmilámpa

Specifikációs interface {pjel, zjel} következmények: inteface {stop, go}

Page 2: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Részleges domén leírás:

1: ~ stop ~ go

2: stop ~ go

3: ~ stop go

Zjel Zjel

Pjel

Pjel

A domén leírás áthidalja a szakadékot a követelmény és a specifikáció között.

(Követelményben: lámpa; Specifikációban: pulzus)

Page 3: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Három leírás:

követelmény, specifikáció, domén (tartomány) leírás.

Mindhárom foglalkozik a valóságos világ jelenségeivel.

domén leírás specifikáció követelmény;

(Ha a gép specifikáció szerinti és

a probléma-világunk az, amit leírtunk,

akkor teljesül a követelmény is).

Kell-e három leírás?

Egy összevont leírás:

-Általában áttekinthetetlen.

-Különböző követelmények jelennek meg egy leírásban.

Page 4: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Megkívánt tulajdonságok leírása: követelmény + specifikáció.

(Példánkban: követelmény: stop, go váltakozva,

specifikáció: Pjel, Zjel váltakozva).

Kijelentő tulajdonságok leírása: domain leírás.

(példánkban a lámpa színeknek és a pulzusjeleknek az

összekapcsolása; (stop, Pjel), (go, Zjel).

Page 5: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A valóság leírása, amelyben a probléma létezik.

Domain jelenségek leírása (informális);

Követelmények leírása (informális);

Specifikáció (formális).

Mind a három foglalkozik a tekintetbe vett világban lejátszódó

jelenségekkel és állapotokkal. (Első kettő különbözik a harmadiktól).

A specifikációs jelenségek közösek a gépi világ jelenségeivel: Ezek

formálisaknak tekintendők.

A specifikációval szemben támasztott követelmény:

Teljes és egyértelmű legyen:

mint a program és az azt végrehajtó gép.

Page 6: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A világ jelenségei informálisan mutatkoznak meg.

A szoftver fejlesztőjének kell a formalizálást kigondolnia.

Dijkstra:

„One of the greatest difficulties in software development is

formalization – capturing in symbolic representation a worldly

computational problem so that the statements obtained by

following rules symbolic manipulation are useful statements

once translated back into the language of the world.”

Formalizáció: (általában elhanyagolt a szoftver fejlesztésében)

- Deszignációk (megnevezések).

- Formális definíciók.

Page 7: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Deszignáció (jelenségek leírása, pontos megnevezése).

A követelményekben és valós világ leírásában szereplő jelenségek

leírása.)

A deszignációban formális terminusokat használunk, (pl. matlogika);

és –szükség szerint informális- szabályokat, amelyek a valóságos

jelenségek példányait egyértelműen azonosítják.

Példa.

Egy öröklődési rendszer részproblémája:

mother(x,y) x is the mother of y.

Ez még sok féle lehet, ezért

mother(x,y) x is the human generic mother of y.

(Ez így kevés lehet: adaptációs, pótmama, mostoha, nevelő szülő;)

Page 8: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Alapvető fontosságú:

Leírás legyen adekvát.

(A domén leírások és

a követelmények alapjainak leírása esetén).

(Ha ez nem megy akkor a választott osztályszerkezet miatt másikkal

kell próbálkozni).

Pl. Egy nemzetközi cég, amely iroda bútorokkal foglalkozik.

Deszignáció:

chair(x) is a single unit of furniture whose primary use is to provide

seating for one person.

(Filozófusok szoktak ezzel játszani, hogy az élő nyelvekben ez egyolyan szó, amelynek a jelentésében lévő bizonytalanságot szintelehetetlen megszüntetni. Csak szöveg-környezetben derül ki, hogymiről van szó. De egy cég esetében a fenti definíció elég lehet).

Page 9: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Formális definíciók.

(A deszignációkban megadtuk a jelenségeket,

pontos, viszonylag kis számú szükséges a világunk leírásához).

A formális definíciókban ezeket használjuk fel számunkra hasznos

továbbiak jelenségek definiálásához.

Például:

Definíció:

sybling(a,b) = ab ( p,q)( (mother(p,a) mother(p,b))

(father(q,a) father(q,b))).

Deszignáció – definíció.

Deszignáció: megfigyelések egy osztályát írja le.

Definíció: kényelmesen használható terminológiákat vezet be.

Page 10: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Példa: leltár.

Feltevés.

Adottak a deszignációk:

Bevétel(e,q,t) e az az esemény, amely t időpontban következett be,

amikor a raktárba q darab egység érkezett be.

Kiadás(e,q,t) e az az esemény, amely t időpontban következett be,

amikor a raktárból q darab egység kiadásra került.

A raktárban lévő készlet definíciója:

Mennyiség(sum,t);

Mennyiség(sum,tt) = (e | ((Bevétel(e,q,t) Kiadás(e,-q,t)) t<tt) = sum;

(Nem mond újat ez a definíció a "világról"!)

Page 11: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Deszignáció és definíció:

Deszignáció:

Instock(qty,tt) tt időpontban a raktárban lévő ládák száma.

Definíció:

Instock(0,t0);

(qty,tt)(Instock(qty,tt) (e |((receive(e,q,t)) issue(e,-q,t)) t tt) = qty;

Page 12: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Modell.

Analitikus modell. A tartomány analitikus modellje egy olyan formális

leírás, amelyből a tartomány további tulajdonságai következtethetők.

Pl. Differenciál egyenletekkel leírt rendszer;

Pl. Az ital automata működését diagram írja le.

Ikon modell. A tartomány ikon modellje egy olyan reprezentáció,

amely a tartomány külső megjelenését mutatja be.

Pl. A tervező elkészíti az épület külső megjelenésének rajzát.

Analóg modell. Egy helyettesítő tartományban elkészített modell

azzal a céllal, hogy a megalkotandó rendszer működését szimuláljuk

információ nyerés céljából.

Page 13: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Példa. Lift kijelző rendszer egy szállodában.Követelmény.

A rendszer tartsa nyilván haladási irányát (fel, le) és a szintekazonosítóját (hol(i)), ahol tartózkodik.

A lift tartózkodási helye és haladási iránya legyen folyamatosanlátható a hallban kihelyezett panelen.

Page 14: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A lift össze van kötve egy számítógéppel, amely

egy információs panelt vezérel a hallban.

A liftet minden szinten figyeli egy érzékelő és az adja a jelet apanelre).

Az itt várakozó láthatja:

• Melyik szinten van a lift.

• Milyen irányban haladva állt meg az adott szinten.

Page 15: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A lift egy modellje.

A lift össze van kötve egy számítógéppel, és egy információs panellel

a hallban.

(A liftet minden szinten figyeli egy érzékelő és az adja a jelet a

panelre).

Hotel lift

Lobby display

Információs-gépDisplay-lift

a

b

c

d

a: {szenzor(f)} b: {lámpabe(p), lámpaki(p)}

c: {fel, le, hol(f)} d: {lámpa állapotok}

f: emelet azonosító; p: piros

Page 16: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A hotel liftnek és a lift modelljének nincsenek közös fenoménjei.

Az állapotjelenség a lift esetében: f.

Az állapot jelenség a modell esetében: c.

Ezeket meg kell egymásnak feleltetni.

A lift állapotai: fel, le, hol(f).

A modell állapotjellemzői: Mfel, Mle, Mhol(c);

Ezekre is rendre meg kell egymásnak feleltetni.

Kézenfekvő a modellt két részre bontani

Page 17: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A lift pozícióját mutató display.

Hotel lift

Lift modell

modell-gépModel lift

a

e

c

f

Lift model

Lobby display

display-gép Displaymodel

g

b

f

d

a: {szenzor(f)}; c: {fel, le, hol(f)}; b: {lámpabe(p), lámpaki(p)}; d: {állapotok}

e: {liftmod konstr. oprs}; g: {liftmod accessoprs}; f: {liftmodel állapotok};

Page 18: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A gyakorlati kérdések megoldása számos problémát vet fel amegfeleltetésnél.

hol(f) = T, ha a lift az f-edik szinthez minden más szintnél közelebb

van.

Ennek alapján kellene megfeleltetni. hol(f) és Mhol(c)-t.

A közelséget a szenzor mutatja.

Mhol(c) = T akkor és csak akkor, ha senzor(f) = T.

A helyes megoldás:

Ha a lift megy az első szintről a második szintre, akkor Mhol(1)mindaddig igaz marad, amíg a lift nem ért elég közel a másodikszinthez. Amikor ezt a közelséget a senzor(2) jelzi, azaz állapotot vált,akkor lesz az Mhol(2) értéke igaz.

Page 19: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Modellezési relációs viszonyok.

valóságos világ(domain)

modell világ(model domain)

jelenségek közötti

megfeleltetés

egyszerű

valós jelenségek

Pl. lift. f = 0,1,...,8;

hol(f)

modell jelenségek

Mf = 0,1,...,8;

Mhol(c); c = Mf;

Mhol(f) akkor és csak akkor igaz, ha hol(f) igaz.

Page 20: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

A gyakorlati kérdések megoldása számos problémát vet fel amegfeleltetésnél.

hol(f) = T, ha a lift az f-edik szinthez minden más szintnél közelebb

van.

Ennek alapján kellene megfeleltetni: hol(f) és Mhol(c) értékét.

A közelséget a szenzor mutatja.

Mhol(c) = T akkor és csak akkor, ha senzor(f) = T.

A helyes megoldás:

Ha a lift megy az első szintről a második szintre, akkor Mhol(1)mindaddig igaz marad, amíg a lift nem ért elég közel a másodikszinthez. Amikor ezt a közelséget a senzor(2) jelzi, azaz állapotot vált,akkor lesz az Mhol(2) értéke igaz.

Nehezebb: (fel : Mfel), (le : Mle) megfeleltetés.

Page 21: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Induláskor: Mfel ~Mle; Nyilvántartandó: Hhol(k) értéke.

Legyen az épület 8 emeletes.

Mhol(n+1) igaz lesz, ha Mhol(n) előtte igaz volt (n = 0,...,6): Mfel ~Mle;

Mhol(8) igaz lesz, ha Mhol(7) előtte igaz volt Mle ~Mfel;

Mhol(n-1) igaz lesz, ha Mhol(n) előtte igaz volt (n = 2,...,8): Mle ~Mfel;

Mhol(0) igaz lesz, ha Mhol(1) előtte igaz volt Mfel ~Mle;

Mhol(n) igaz lesz már x second óta folyamatosan (n = 1,...,7): ~Mle ~Mfel;

Page 22: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

4. Modellezési relációs viszonyok. Valós világ és modell világ.

Probléma dekompozíció. Szemléltető példa: öntöző rendszer

Page 23: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Ebben az előadásban eddig mi elsősorban azzal foglalkoztunk,hogy miképpen írjuk le a mi világunkban jelentkező problémát éskevésbé a gép által végrehajtandó szoftver rendszermegtervezésével.

Kérdés vajon ez a szoftverfejlesztő feladata-e?

Barry Boehm (1994):"While the hardware and systems engineers sat around the tablediscussing their previous system architectures, the softwareengineers sat on the side, waiting for someone to give them aprecise specification they could turn into code".

Page 24: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Kérdés vajon ez a szoftverfejlesztő feladata-e?

Alkalmazási terület szakembere: Specifikációs tűzfal előtti.

Szoftverfejlesztő: Specifikációs tűzfal és ami utána.

•A szoftver fejlesztő szakember nem lehet minden alkalmazási területen

specialista. (Például az általunk tárgyalt közlekedési átkelésnél a

közlekedési mérnök feladata a közlekedési adatok elemzése alapján az

átkelés megtervezése, paraméterek meghatározása).

•A nagy bonyolultságú gyakorlati problémák bonyolultságának kezelése a

gép oldaláról nézve szinte reménytelen vállalkozás.

•A specifikációs tűzfal utáni mechanikusan végrehajtott programozási

feladat - a valóságos probléma ismerete nélkül - számos

hibalehetőséget rejt magában.

Page 25: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

informálisan megfogalmazott probléma

(valóságos világban: domain)

A probléma formálisan leírt megoldása

(számítógépen)

Tevékenységek láncolata

Követelmény interfész:

(az ügyfél kívánságának a megfogalmazása

a valóságos világban; (stop, go)).

Specifikációs interfész:

(a gép számára megírt megoldás

a formális világban; (elektromos jelek: piros, zöld)).

Page 26: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

informálisan megfogalmazott probléma

(valóságos világban: domain)

A probléma formálisan leírt megoldása

(számítógépen)

Tevékenységek láncolata

Informálisan megfogalmazott

probléma + korlátok.

A géppel történő megoldás

specifikációja

Page 27: Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok

Informálisan megfogalmazott

probléma, korlátok.

A géppel történő megoldás

specifikációja

helyesség ellenőrzéseSzoftverfejlesztő

Értelmesség.

Órajel; kimenőjel ...X1ff; ...; bejövőjel ...X207; ...

Órajel; kimenőjel ...read27; ...; bejövőjel ...boton 8;

Követelmény szerinti helyesség;

Ellentmondás mentesség;

Teljesség;