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

Preview:

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

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}

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)

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.

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).

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.

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.

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ő;)

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).

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.

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"!)

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;

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.

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.

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.

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

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

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};

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.

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.

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.

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;

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

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".

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.

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)).

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

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;

Recommended