„4. OO metrikák (2012)” változatai közötti eltérés
| (7 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) | |||
| 50. sor: | 50. sor: | ||
* Early Desing (architektúra változatok), Funcation Pointból és SLOC-ból indul | * Early Desing (architektúra változatok), Funcation Pointból és SLOC-ból indul | ||
* Post-Architecture (megoldás ismeret), Function Pointból és SLOC-ból indul | * Post-Architecture (megoldás ismeret), Function Pointból és SLOC-ból indul | ||
===Effort=== | ===Effort (munka mennyisége)=== | ||
* Effort = 2.94 * EAF * (KSLOC)<sup>E</sup> | * Effort = 2.94 * EAF * (KSLOC)<sup>E</sup> | ||
* Effort (PersonMonth, PM) | * Effort (PersonMonth, PM) | ||
* EAF = Effort Adjustment Factor | * EAF = Effort Adjustment Factor, hangolási tényezök határozzák meg (termék, platform, stáb, projekt), (7,17) | ||
* KSLOC = kilo source LOC | * KSLOC = kilo source LOC | ||
* E = exponens | * E = exponens, skaláris tényezök határozzák meg (procedens, fejlesztés rugalmassága, kockázatkezelés, csoport kohézió, process érettsége) | ||
===Duration=== | ===Duration (fejlesztési idö)=== | ||
* Duration = 3,67 * (Effort)<sup>SE</sup> | * Duration = 3,67 * (Effort)<sup>SE</sup> | ||
* Duration - (PM-ben) | * Duration - (PM-ben) | ||
| 63. sor: | 63. sor: | ||
* SE = schedule equation exponent | * SE = schedule equation exponent | ||
==CDP== | ==CDP minták== | ||
=== Locking minták=== | === Locking minták=== | ||
====Lock==== | ====Lock==== | ||
| 92. sor: | 92. sor: | ||
====Proactor==== | ====Proactor==== | ||
* mint a Reactor, csak itt esemény | * mint a Reactor, csak itt esemény | ||
* mo: mint a Reactor | * mo: mint a Reactor, csak itt aszinkron események demultiplexelése jön létre | ||
====Csatlakozó (acceptor-connector)==== | ====Csatlakozó (acceptor-connector)==== | ||
* összefonódik a kapcsolódás és kommunikáció | * összefonódik a kapcsolódás és kommunikáció | ||
| 98. sor: | 99. sor: | ||
==Visitor Combinator== | ==Visitor Combinator== | ||
=== Alap visitor combinatorok === | |||
* Identity: semmit sem csinál (non-iterating default visitor) | |||
* Sequence(v1, v2): szekvenciálisan végrehajtja v1-et majd v2-t | |||
* Fail: Raise exception | |||
* Choice(v1, v2): megpróbálja v1-et, ha nem sikerül, akkor megpróbálja v2-t | |||
* All(v): engedélyezi visitor v-t szekvenciálisan minden azonnali részfára | |||
* One(v): engedélyezi visitor v-t szekvenciálisan az azonnali részfára amíg sikeres | |||
Forrás: http://homepages.cwi.nl/~markvdb/courses/SoftwareConstruction/JJTraveler.pdf | |||
=== Kombinátor algebra === | |||
* Sequence(Identity, v) = v | * Sequence(Identity, v) = v | ||
* Sequence(v, Identity) = v | * Sequence(v, Identity) = v | ||
| 107. sor: | 120. sor: | ||
* Try(v) = Choice(v, Identity) | * Try(v) = Choice(v, Identity) | ||
* IfZeroAddOne = Try(Sequence(IsZero, AddOne)) | * IfZeroAddOne = Try(Sequence(IsZero, AddOne)) | ||
=== Bejáró kombinátorok === | |||
==== Mindegyik közvetlen gyermekre ==== | |||
<pre> | |||
class All implements Visitor { | |||
Visitor v; | |||
public All(Visitor _v){ v = _v; } | |||
public void visit_Leaf(Leaf leaf) throws VF { } | |||
public void visit_Fork(Fork fork) throws VF { | |||
fork.left.accept(v); | |||
fork.right.accept(v); | |||
} | |||
} | |||
</pre> | |||
==== TopDown(v) = Sequence(v, All(TopDown(v)) ==== | |||
<pre> | |||
class TopDown extends Sequence { | |||
public TopDown(Visitor v) { | |||
super(v, null); | |||
then = new All(this); | |||
} | |||
} | |||
</pre> | |||
==== BottomUp(v) = Sequence(All(BottomUp(v)), v) ==== | |||
<pre> | |||
class ButtomUp extends Sequece { | |||
public BottomUp(Visitor v) { | |||
super(null, v); | |||
first = new All(this); | |||
} | |||
} | |||
</pre> | |||
-- [[MeszegetoBalazsIstvan|MeszegetoBalazsIstvan]] - 2008.05.27. | -- [[MeszegetoBalazsIstvan|MeszegetoBalazsIstvan]] - 2008.05.27. | ||