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