<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=6._OO_metrik%C3%A1k</id>
	<title>6. OO metrikák - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=6._OO_metrik%C3%A1k"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=6._OO_metrik%C3%A1k&amp;action=history"/>
	<updated>2026-05-17T20:40:45Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=6._OO_metrik%C3%A1k&amp;diff=150231&amp;oldid=prev</id>
		<title>Ferrero, 2013. január 7., 23:16-n</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=6._OO_metrik%C3%A1k&amp;diff=150231&amp;oldid=prev"/>
		<updated>2013-01-07T23:16:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. január 8., 01:16-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1. sor:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1. sor:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{GlobalTemplate|Infoszak|OotOOMetrikak}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__TOC__&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__TOC__&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==6.1. Tervezési elvek==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==6.1. Tervezési elvek==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ferrero</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=6._OO_metrik%C3%A1k&amp;diff=139595&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotOOMetrikak}}  __TOC__ ==6.1. Tervezési elvek== ===Csatolás=== * függőségek minimalizálása * package, osztály, objektum * D(ARP)C = …”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=6._OO_metrik%C3%A1k&amp;diff=139595&amp;oldid=prev"/>
		<updated>2012-10-21T20:43:56Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotOOMetrikak}}  __TOC__ ==6.1. Tervezési elvek== ===Csatolás=== * függőségek minimalizálása * package, osztály, objektum * D(ARP)C = …”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoszak|OotOOMetrikak}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==6.1. Tervezési elvek==&lt;br /&gt;
===Csatolás===&lt;br /&gt;
* függőségek minimalizálása&lt;br /&gt;
* package, osztály, objektum&lt;br /&gt;
* D(ARP)C = Direct (Attribute, Reference, Parameter) Based Coupling &lt;br /&gt;
Azon különbözo osztályok száma, amelyeknek attribútumát, metódusát paraméterként érjük el&lt;br /&gt;
&lt;br /&gt;
* DCC = Direct Class Coupling&lt;br /&gt;
Azon osztályok száma, amikhez egy A osztály attributum deklaracioin keresztul, vagy az A metodusainak parameterlistain keresztul csatolva										  van.&lt;br /&gt;
&lt;br /&gt;
* CBO = Coupling Between Objects&lt;br /&gt;
A csatolt osztalyok szamat veszi, ahol a vizsgalt osztaly akkor szamit csatolt osztalynak egy masik osztalyhoz, ha hasznalja annak attributumat, VAGY metodusat.&lt;br /&gt;
&lt;br /&gt;
* Instability (RMI) = kimenő_csatolás / (bejövő_csatolás + kimenő_csatolás)&lt;br /&gt;
===Osztály csatolás===&lt;br /&gt;
* NUCD = Number of used classes by dependency relation&lt;br /&gt;
* TNUCD = Total number of evidences for Used classes by dependency relation&lt;br /&gt;
* RNUCD = NUCD / TNUCD&lt;br /&gt;
* öröklés: mélysége, gyerekek száma&lt;br /&gt;
* asszociáció: NAC = Number of associated classes with a class&lt;br /&gt;
* TACU = Total associated class Usages&lt;br /&gt;
===Kohézió===&lt;br /&gt;
* Egy egységbe (modul, osztály, blokk) tartozó elemek közötti kapcsolat erőssége.&lt;br /&gt;
* Modulokban: információs, funkcionális, kommunikációs, procedurális, időbeli, logikai, eseti &amp;lt;/br&amp;gt;&lt;br /&gt;
			információs: &amp;lt;/br&amp;gt; &lt;br /&gt;
			funkcionális: A modul egyetlen jól definiált célt szolgál. Ideális. pl:sqrt(); &amp;lt;/br&amp;gt;&lt;br /&gt;
			kommunikációs: A modulhoz tartozó műveletek azonos adatokkal dolgoznak. &amp;quot;Ha már lekérdeztük az adatot akkor ellenőrizzük rajta ... is&amp;quot; - filozófia &amp;lt;/br&amp;gt;&lt;br /&gt;
			procedurális: A modul által végrehajtott műveletek egymás után következnek. &amp;quot;Nyomtató beállítása, nyomtatás...&amp;quot; &amp;lt;/br&amp;gt;&lt;br /&gt;
			temporális: A modul által végrehajtott műveletek egyszerre elvégezhetőek. &amp;quot;Fájl lezárás, hiba-log írás, hiba képernyőre írás&amp;quot; - téma azonos, sorrend mindegy. &amp;lt;/br&amp;gt;&lt;br /&gt;
			logikai: A modul műveletei között csak logikai kapcsolat van. &amp;lt;/br&amp;gt;&lt;br /&gt;
			eseti:  &amp;lt;/br&amp;gt;&lt;br /&gt;
* |P|| = {(Ai,Aj) Ai metszet Aj = 0} függvények száma, nincs közös attribútum, &lt;br /&gt;
* |Q|| = {(Ai,Aj) Ai metszet Aj &amp;lt;&amp;gt; 0} függvények száma, közös attribútummal&lt;br /&gt;
* LCOM = |P|| - ||Q (ha az eredmény pozitív), különben 0.&lt;br /&gt;
===Egyéb===&lt;br /&gt;
* CC = Cyclomatic Complexity: metódus bonyolultsága&lt;br /&gt;
* WMC = Weighted methods per class = \x{2211} CC (minden metódusra)&lt;br /&gt;
* RFC = Response for a class: metódusok száma&lt;br /&gt;
* RMA = Abstractness: absztrakt / nem absztrakt (package)&lt;br /&gt;
==6.2. Cocomo==&lt;br /&gt;
===Effort===&lt;br /&gt;
* Effort = 2.94 * EAF * (KSLOC)&amp;lt;sup&amp;gt;E&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Effort (PersonMonth, PM)&lt;br /&gt;
* EAF = Effort Adjustment Factor&lt;br /&gt;
* KSLOC = kilo source LOC&lt;br /&gt;
* E = exponens&lt;br /&gt;
===Duration===&lt;br /&gt;
* Duration = 3,67 * (Effort)&amp;lt;sup&amp;gt;SE&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Duration - (PM-ben)&lt;br /&gt;
* Effort (PersonMonth, PM)&lt;br /&gt;
* SE = schedule equation exponent&lt;br /&gt;
==6.3. CDP==&lt;br /&gt;
===6.3.1. Locking minták===&lt;br /&gt;
====Lock====&lt;br /&gt;
* probléma: biztonságos lock felszabadítás&lt;br /&gt;
* megoldás: saját guard osztály&lt;br /&gt;
====Double check====&lt;br /&gt;
* egymásba ágyazott dupla ellenőrzés&lt;br /&gt;
* prob: vagy nem tudunk singletont impl, vagy nem hatékony, vagy compiler nem tudja kioptimalizálni&lt;br /&gt;
====Thread-safe lock====&lt;br /&gt;
* prob: komponensen belülről és kívülről is egyaránt használható legyen. Cél:holtpont elkerülése, hatékonyság&lt;br /&gt;
* mo: két interfész: külső ellenőriz, belső (privát) elfogad&lt;br /&gt;
====Bedrótozott lock====&lt;br /&gt;
* mo: run-time szinkronizáció&lt;br /&gt;
===6.3.2. Konkurencia minták===&lt;br /&gt;
====Monitor objektum====&lt;br /&gt;
* több kliens esetén&lt;br /&gt;
* mo: minden objektumnak van monitora + várakozási sora (lásd Objektum): synchronized blokk&lt;br /&gt;
====Aktív objektum====&lt;br /&gt;
* metódushívás nem blokkolhat&lt;br /&gt;
* mo: hívás és végrehajtás szétcsatolása, végrehajtás saját szálon (kell valami üzenetsor)&lt;br /&gt;
====Reactor====&lt;br /&gt;
* 1 szerver, több kliens&lt;br /&gt;
* mo: szinkron események demultiplexelése&lt;br /&gt;
====Vezető-követő====&lt;br /&gt;
* események konkurrensen&lt;br /&gt;
* mo: szálcsokor, szinkron események demultiplexelése&lt;br /&gt;
===6.3.3. Esemény minták===&lt;br /&gt;
====Proactor====&lt;br /&gt;
* mint a Reactor, csak itt esemény&lt;br /&gt;
* mo: mint a Reactor (szinkron események demultiplexelése)&lt;br /&gt;
====Csatlakozó (acceptor-connector)====&lt;br /&gt;
* összefonódik a kapcsolódás és kommunikáció&lt;br /&gt;
* mo: külön szedni (szinkron vagy aszinkron kapcsolódás)&lt;br /&gt;
==6.4. Visitor Combinator==&lt;br /&gt;
* Sequence(Identity, v) = v&lt;br /&gt;
* Sequence(v, Identity) = v&lt;br /&gt;
* Sequence(Fail, v) = Fail&lt;br /&gt;
* Sequence(v, Fail) = Fail  //ha v -nek nincs mellékhetása&lt;br /&gt;
* Choice(Fail, v) = v&lt;br /&gt;
* Choice(v, Fail) = v&lt;br /&gt;
* Choice(Identity, v) = Identity&lt;br /&gt;
* Try(v) = Choice(v, Identity)&lt;br /&gt;
* [[IfZeroAddOne]] = Try(Sequence(IsZero, AddOne))&lt;br /&gt;
&lt;br /&gt;
-- [[MeszegetoBalazsIstvan|MeszegetoBalazsIstvan]] - 2008.05.27.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosTamas|Velias]] - 2009.05.27.&lt;br /&gt;
&lt;br /&gt;
-- [[MetykoCecilia|Ciana]] - 2010.05.31&lt;br /&gt;
&lt;br /&gt;
-- [[KovacsAdam|Csádám]] - 2010.05.31.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>