øOHWLúLP.DWPDQÕ@ @ %XQXQOD ELUOLNWH ELUoRN E\N |OoHNOL SURMHGH VRQ UQ KDOLQH JHWLULOPLú \D]ÕOÕPÕQ VRQ NDOLWHVL KDNNÕQGD \DUJÕ\D YDUDELOPHN LoLQ JHUoHNOHPH DúDPDVÕ EHNOHQPHN ]RUXQGDGÕU ùSKHVL] NL \D]ÕOÕP NDOLWHVL KDNNÕQGD -PPNQVH WDVDUÕP DúDPDVÕQGD- JHUoH÷H \DNÕQ ELU \DUJÕ\D VDKLS ROPDNoRNE\NELUDUWÕGH÷HURUWD\DoÕNDUDFDNWÕU%XQXVD÷ODPDQÕQ yolu ise, tasa- UÕPNDOLWH|]HOOLNOHULQLLQFHOHPHNYHNXOODQÕODQ\D]ÕOÕPPLPDULOHULQLQYHúDEORQODUÕQÕQ EX NDOLWH |]HOOLNOHULQH RODQ HWNLOHULQL EHOLUOHPHNWLU %X NRQX |]HOLQGH WDUWÕúPDODUÕQ \DSÕOGÕ÷Õ|QFOoDOÕúPDODUGDYDUGÕU>@DQFDNEXoDOÕúPDODUÕQE\NoR÷XQOX÷X, son ürün DúDPDVÕQGDNDOLWH|]HOOLNOHULQHRGDNODQDUDN\D]ÕOÕPÕQ NDOLWHVLQLWDUWÕúPÕúWÕU %XPDNDOHGHøOHWLúLP.DWPDQÕ@, QHVQH\H GD\DOÕ, LOHWLúLP NDWPDQ YH SURWRNROOHUL WDVDUÕPÕ LoLQ NXOODQÕODQ ELU \D]ÕOÕP PLPDULPRGHOLQLQWDVDUÕPNDOLWH|]HOOLNOHULQHHWNLVLDUDúWÕUÕOPÕúWÕU%XDPDoODø.<0 NXOODQÕODUDNLoLQGHLNLDQDSURWRNRO(TCP ve UDP) EDUÕQGÕUDQ7&3/,3WDúÕPDNDWPD QÕWDVDUODQPÕúWÕUø.<0WDEDQOÕEXWDVDUÕPÕQsürdürülebilirlik, test edilebilirlik, yeni- GHQ NXOODQÕODELOLUOLN DQODúÕODELOLUOLN YH güvenilirlik NDOLWH |]HOOLNOHUL |OoOPú KHP ø.<0KHPGHø.<0WDEDQOÕWDVDUÕPKDNNÕQGD\DUJÕ\DYDUÕOPD\DoDOÕúÕOPÕúWÕUSonuç RODUDN\D]ÕOÕPNDOLWHVLQHJHUoHNOHPHDúDPDVÕQÕEHNOHPHGHQJQFHOOHPHQLQYe tasa- UÕPGH÷LúLNOL÷LQLQGDKDD]PDOL\HWOLROGX÷XWDVDUÕPDúDPDVÕVÕUDVÕQGDNDUDUYHULOHELOH FH÷LJ|VWHULOPLúWLU %XPDNDOHúXúHNLOGHRUJDQL]HHGLOPLúWLUE|OPGH|QFOoDOÕúPDODUJHQHORODUDN DQODWÕOPÕúve 3. bölümde kalite ölçütOHULGHWD\ODUÕ\ODDoÕNODQPÕúWÕU4E|OPGHø.<0 ile TCP/IP tDúÕPD kDWPDQÕ WDVDUÕPÕ YH NDOLWH DQDOL]L \HU DOPÕúWÕU 6RQ E|OPGH LVH ø.<0WDEDQOÕ|UQHN7&3/,3WDúÕPDNDWPDQÕQÕQNDOLWH|OoPVRQXoODUÕYHø.<0PR delin WDVDUÕPDNDWNÕODUÕWDUWÕúÕOPÕúWÕU. 668 2 ø/*ø/ød$/,ù0$/$5 %XE|OPGHQHVQH\H\|QHOLNELU\D]ÕOÕPNDSVDPÕQGDNLKDWDOÕVÕQÕIODUÕQLOJLOL\D]Õ OÕPD X\JXODQDQ NDOLWH |OoPOHULQLQ VRQXoODUÕ ]HULQGHQ WHVSLWLQH \|QHOLN \DSÕOPÕú RODQ oDOÕúPDODU LQFHOHQPLúWLU @\D]ÕOÕPGDNLRODVÕWDVDUÕPKDWDODUÕQÕQEXOXQPDVÕLoLQ QHVQH\H \|QHOLN WDVDUÕP |]HOOLNOHULQGHQ ID\GDODQPÕúODUGÕU %X DPDoOD NXOODQGÕNODUÕ ölçütOHULNDOLWHOLELUQHVQH\H\|QHOLN\D]ÕOÕPÕQVDKLSROPDVÕJHUHNHQIDUNOÕ|]HOOLNOHUL WHPVLOHGHQNDUPDúÕNOÕNED÷ÕPOÕOÕNYHX\XPOXOXN|OotOHULQHJ|UHoDQDVÕQÕIWDWRS ODPÕúODUGÕU @LVHQHVQH\H\|QHOLN\D]ÕOÕP ODUGDVUGUOHELOLUOLNNDOLWH|]HOOL÷L]HULQHGLUdDOÕúPDGDELU\D]ÕOÕPÕQKHPPLPDUL WDVDUÕPÕ KHPGHND\QDNNRGVHYL\HVLQGHLQFHOHPHVL\DSÕOPÕú\D]ÕOÕPVUGUOHELOLU OL÷LQLROXPVX]\|QGHHWNLOH\HQNÕVÕPODUÕQRUWDN|]HOOLNOHULEXOXQXSED]ÕWHVSLWOHU\D SÕOPÕúWÕU6DOHKLHYHDUNDGDúODUÕGDQHVQH\H\|QHOLN\D]ÕOÕPGDVUGUOHELOLUOLNNDOLWH |]HOOL÷L ]HULQH ELU oDOÕúPD >@ \DSPÕúODUGÕU $GÕ JHoHQ oDOÕúPDGD, uygulanan ve |QHULOHQ\|QWHPLNLDúDPDOÕROXSLONDúDPDGDEDUL]\D]ÕOÕPWDVDUÕPNXVXUODUÕEXOXQ PD\D oDOÕúÕOPÕú LNLQFL DúDPDGD LVH R DQ NXVXU JLEL J|UQPH\HQ DPD LOHULGH VRUXQ olabilecek alanlar WHVSLWHGLOPH\HoDOÕúÕOPÕúWÕU Marinescu [11] ise iyi bilinen iki WDVDUÕP KDWDVÕQÕQ E\N VÕQÕI YHUL VÕQÕIÕ  \D]Õ OÕPODUGD EHOLUOHQPHVLQH \|QHOLN ELU \|QWHP JHOLúWLUPLú YH EX \|QWHPL |UQHN ELU HQ GVWUL\HO\D]ÕOÕPGDX\JXODPÕúWÕUdDOÕúPDGDNXOODQÕODQ|Ootlerin (WOC-Weight of a Class, NOPA-Number of Public Attributes, NOAM-Number of Access Methods) tasa- UÕP PRGHOL ]HULQH X\JXODQDELOPHVLQGHQGROD\Õ \D]DUWDPDPHQGLOGHQED÷ÕPVÕ]ELU NDOLWH |OoP \|QWHPL JHOLúWLUGL÷LQL LOHUL VUPHNWHGLU 0DULQHVFX¶QXQ GL÷HU ELU oDOÕú PDVÕQGD>@LVH \D]ÕOÕPWDVDUÕP KDWDODUÕGDKD IDUNOÕ|OotOHUOHWHVSLWHGLOPH\HoDOÕ úÕOPÕúWÕUhoIDUNOÕ|Oot (WMC-Weighted Method Count, NOC-Number of Children, TCC-Tight Class Cohesion oIDUNOÕ\D]ÕOÕPD X\JXODQPÕúYHVRQXoODU\RUXPODQPÕú WÕU SaKUDRXL YHDUNDGDúODUÕ \DSWÕNODUÕoDOÕúPDGD>@&LOHNRGODQPÕú \D]ÕOÕPODU GDNL SRWDQVL\HO WDVDUÕP KDWDODUÕQÕ oHúLWOL |Ootlerle (CBO-Coupling Between Object Classes, DAC-Data Abstraction Coupling, vb.  WHVSLW HWPH\L DPDoODPÕúODUGÕU $UDú WÕUPDODUÕNDSVDPÕQGDKDWDWHVSLWLúOHPLQLRWRPDWLNKDOHJHWLUHn ELUDUDoJHOLúWLUPLúOHU ve böylece NXOODQÕFÕODUa WDVDUÕPKDWDODUÕQÕEXOPDLPNkQÕVD÷ODPÕúODUGÕU Son olarak, Jehad Al Dallal >@ WDVDUÕP DúDPDVÕQGD X\JXODQDELOHFHN \HQL ELU uyumluluk ölçütü JHOLúWLUGL÷LQL LGGLD HWPHNWHGLU *HOLúWLULOHQ |OoW GR÷UXGDQ HWNLOH úLPGHEXOXQDQ PHWRW-metot, veri üyesi-metot ve veri üyesi-veri üyesi çiftleri üzerin- GHQ ELU KHVDSODPD \DSPDNWDGÕU $\UÕFD, \DSÕODQ NDUúÕODúWÕUPDODUOD bu yeni ölçütün, 669 |UQHN RODUDN VHoLOHQ GL÷HU uyumluluk ölçütleriQGHQ GDKD GX\DUOÕ ROGX÷X LOHUL VUO mektedir. 3 .$/ø7(g/dh0/(5ø .DOLWH|]HOOLNOHULQLQGR÷UXGDQ|OoP]RUKDWWDED]ÕGXUXPODUGDLPNkQVÕ]GÕU [22, 23]'H÷LúLN|OotOHUELUDUD\DJHWLULOHUHNNDOLWH|]HOOLNOHUL KDNNÕQGDED]ÕVD\ÕVDOGH ÷HUOHUHXODúÕOPD\DoDOÕúÕOPDNWDGÕU>@, IDNDWEXoDOÕúPDODUJHQHOGH|]QHOQLWHOLNWDúÕ PDNWDGÕU$\UÕFDEX|OoPOHUJHQHORODUDN\D]ÕOÕPÕQJHUoHNOHPHDúDPDVÕVRQUDVÕQGD \DSÕOPDNWDYHelde edilen VRQXoODUDJ|UHWDVDUÕPÕQGH÷LúWLULOPHVLQHKDWWDEXQDED÷OÕ olarak gerçeklePHQLQGH÷LúWLULOPHVLQHLKWL\DoGX\XOPDNWDGÕU1H\D]ÕNNLEXWUgün- cellemeler JHUHNSURMHWDNYLPLJHUHNVHGR÷DFDNPDOL\HWDoÕVÕQGDQKHU]DPDQPP NQROPDPDNWDGÕU%XQGDQGROD\Õerken WDVDUÕPDúDPDVÕQGD\DSÕODQkalite ölçümleri YHGH÷HUOHQGLUPHOHU E\N|QHPND]DQPDNWDGÕU %X oDOÕúPD NDSVDPÕQGD QHVQH\H \|QHOLN WDVDUÕP LoLQ WHPHO RODQ özellikler göz |QQGHEXOXQGXUXOPXúEXözellikleri GR÷UXGDQHWNLOH\HQ|OotOHUVHoLOPLúYH\DSÕODQ ölçümlere dayanarak ø.<0WDEDQOÕ7&3/,3WDúÕPDNDWPDQÕWDVDUÕPÕQÕQ kalite özellik- OHUL KDNNÕQGD ED]Õ VRQXoODU oÕNDUÕOPD\D oDOÕúÕOPÕúWÕU 6HoLOHQ |OotOHUL o DQD EDúOÕN DOWÕQGDWRSODPDN PPNQGU.DUPDúÕNOÕN|Ootleri (complexity metrics ED÷ÕPOÕOÕN ölçütleri (coupling metrics) ve uyumluluk ölçütleri (cohesion metrics). 3.1 .DUPDúÕNOÕNÖlçütleri (Complexity Metrics): @ @ ņ $VÕQÕIÕQÕQLoLQGH%VÕQÕIÕFLQVLQGHQELUUHIHUDQVLúDUHWoL\DGDQHVQHYDUGÕU ņ $VÕQÕIÕQÕQQHVQHOHUL%VÕQÕIÕQÕQQHVQHOHULQLQPHWRWODUÕQÕoD÷ÕUÕ\RUGXU ņ $ VÕQÕIÕQÕQ ELU PHWRGX SDUDPHWUH RODUDN % VÕQÕIÕ WLSLQGHQ YHULOHU DOÕ\RUGXU \D GD geri döndürüyordur. ņ $VÕQÕIÕQÕQELUPHWRGX%WLSLQGHQELU\HUHOGH÷LúNHQHVDKLSWLU 1HVQH\H\|QHOLNNDOLWHOLELU\D]ÕOÕPGDVÕQÕIODUDUDVÕED÷ÕPOÕOÕ÷ÕQPPNQROGX÷XQ FDGúNROPDVÕWHUFLKHGLOLU low coupling %LUVÕQÕIÕQED÷ÕPOÕOÕNVHYL\HVL\NVHOGLN oH EX VÕQÕIÕ VLVWHPLQ PRGOHU ELU SDUoDVÕ RODUDN J|US LúOHP \DSPDN ]RUODúDFDNWÕU %D÷ÕPOÕOÕ÷Õ \NVHN RODQ ELU VÕQÕIWDNL GH÷LúLP GL÷HU VÕQÕIODUÕ HWNLOH\HFH÷LQGHQ genel RODUDN \D]ÕOÕPÕQ VUGUOHELOLUOL÷L GH GúN RODFDNWÕU 6LVWHPGH ED÷ÕPOÕOÕ÷Õ \NVHN VÕQÕIODUDUWWÕNoDVÕQÕIODUÕELUELULQGHQD\UÕDQODPDN]RUODúDFDNGROD\ÕVÕyla DQODúÕODELOLU OLN YH WHVWHGLOHELOLUOLNGHGúHFHNWLU $\UÕFD, ED÷ÕPOÕOÕ÷Õ \NVHNRODQVÕQÕIODUÕWHNUDU kullaQPDN]RURODFD÷ÕQGDQbu VÕQÕIlarÕQ\HQLGHQNXOODQÕODELOLUOLNGH÷HULGHGúHFHNWLU [17, 28]. %XoDOÕúPDNDSVDPÕQGD&$/0 Class Aggregation Level Measure >@ED÷ÕPOÕ OÕN|OotNXOODQÕOPÕúWÕU%X|Oot ELUVÕQÕIWDNLNXOODQÕFÕWDQÕPOÕ|]QLWHOLNVD\ÕVÕQÕQo VÕQÕIWDNLWRSODP|]QLWHOLNVD\ÕVÕQDRUDQÕRODUDNKHVDSODQÕU ܷௗ ‫= ܯܮܣܥ‬ (3) ܰௗ ܷௗ .XOODQÕFÕWDQÕPOÕ|]QLWHOLNVD\ÕVÕ ܰௗ 7RSODP|]QLWHOLNVD\ÕVÕ 671 3.3 Uyumluluk Ölçütleri (Cohesion Metrics): 8\XPOXOXN|OoPVÕQÕIWDNLPHWRWve veri üyelerinin NHQGLLoLQGHNLX\XPOXOX÷XQX EHOLUWLU+HUVÕQÕIÕQWHNELUVRUXPOXOX÷XROPDOÕGÕU. (÷HUELUVÕQÕIkendi içinde birbirin- GHQIDUNOÕYHED÷ÕPVÕ]LúOHU\DSÕ\RUVD birbiriyle ilgili olmayan veri üyeleri EDUÕQGÕUÕ \RUVD YH\D oRN ID]OD Lú \DSÕ\RUVD VÕQÕIÕQ X\XPOXOX÷X GúNWU Kaliteli bir nesneye \|QHOLN \D]ÕOÕPGD VÕQÕIODUÕQ NHQGL LoOHULQGHNL X\XPOXOX÷XQXQ PPNQ ROGX÷XQFD \NVHNROPDVÕWHUFLKHGLOLU high cohesion 8\XPOXOXNDUWWÕNoDVÕQÕIÕQNHQGLLoLQGHNL NDUDUOÕOÕ÷ÕDUWDFDNEXQGDQGROD\ÕVÕQÕIÕQVUGUOHELOLUOLNYHJYHQLOLUOLNGH÷HUOHULGH DUWDFDNWÕU [17] $\UÕFD, X\XPOXOXN DUWWÕNoD VÕQÕI GDKD PRGOHU ELU \DSÕ\D NDYXúDFD ÷ÕQGDQWHVWHGLOHELOLUOLNGH÷HULGHDUWDFDNWÕU %X oDOÕúPDGD X\XPOXOXN |Ootü olarak CCOM (Class Cohesion Measure) [18] NXOODQÕOPÕúWÕU&&20GH÷HULDúD÷ÕGDEHOLUWLOHQIRUPOLOHKHVDSODQÕU ‫ܣܣ‬ௌ஼ ‫= ܯܱܥܥ‬ (4) ‫ܣܯ‬ௌ஼ ‫ܣܣ‬ௌ஼ %LUVÕQÕIWDEXOXQDQKHU bir veri üyesinin RVÕQÕIÕQNDoWDQHPHWRGXWDUDIÕQGDQ HULúLOGL÷LKHVDSODQÕUYHEXGH÷HUOHUWRSODQÕU ‫ܣܯ‬ௌ஼ %LUVÕQÕIWDEXOXQDQKHUPHWRWKHU bir veri üyesine HULúLUVH‫ܣܣ‬ௌ஼ ’nin göstere- FH÷LGH÷HUGLU WRSODPveri üye VD\ÕVÕ[ WRSODPPHWRWVD\ÕVÕ- 1) ) 4 ø.<0LOH7&3/,37$ù,0$.$70$1,7$6$5,0,YH .$/ø7($1$/ø=ø TCP/,3WDúÕPDNDWPDQÕQÕQWHPHOJ|UHYLXoWDQXFDELULPOHUDUDVÕRWXUXPODUÕ\|QHWH UHNX\JXODPDODUDUDVÕYHULLOHWLPLQLVD÷ODPDNWÕU7DúÕPDNDWPDQÕQÕQVWQGHX\JXOD PDNDWPDQÕDOWÕQGDLVHLQWHUQHWNDWPDQÕ\HUDOÕU7&3/,3WDúÕPDNDWPDQÕQGD7&3YH UDP olmak ü]HUH LNL DQD SURWRNRO EXOXQXU 8'3 ED÷ODQWÕVÕ] ELU SURWRNRO ROXS YHUL JYHQOL÷LLoHUPH]YHJHQHOOLNOHVHVYLGHRYEDNWDUÕPÕ\DSDQJHUoHN]DPDQOÕX\JX ODPDODU WDUDIÕQGDQ WHUFLK HGLOLU 7&3 LVH ED÷ODQWÕOÕ DNÕú NRQWUROO YH JYHQLOLU ELU protokol olup veriQLQ KHGHIH XODúÕS XODúPDGÕ÷ÕQÕ RQD\ PHNDQL]PDVÕ\OD EHOLUOH\LS XODúPDGÕ÷ÕGXUXPGDYHULWHNUDUÕQÕJHUoHNOHúWLULU7&3GRV\DWUDQVIHULLQWHUQHWWDUD\Õ FÕJLELND\ÕSVÕ]YHULWUDQVIHULJHUHNWLUHQX\JXODPDODUWDUDIÕQGDQWHUFLKHGLOLU UDP ve TCP protokolleri VÕUDVÕ\OD5)& >@YH5)&¶GH>@WDQÕPODQPÕú WÕU%XE|OPGHø.<0 øOHWLúLP.DWPDQÕ@PRGHOLNXOODQÕODUDN 7&3,3 WDúÕPD NDWPDQÕQÕQ WDVDUÕPÕ DQODWÕOPÕú NDOLWH |OoPOHUL \DSÕODUDN |OoP VR QXoODUÕQÕQDQDOL]L\DSÕOPÕúYHEXVRQXoODU\RUXPODQPÕúWÕU 4.1 7&3,37DúÕPD.DWPDQÕ7DVDUÕPÕ gQFHNL oDOÕúPDPÕ]GD >@ 7&3,3 WDúÕPD NDWPDQÕ VDGHFH VÕQÕI YH LOLúNLOHU VHYL\H VLQGHWDVDUODQPÕúWÕ%XoDOÕúPDPÕ]GDVÕQÕIODUÕQ LoHUGL÷LGH÷LúNHQOHU metotlar ve me- 672 totlarla GH÷LúNHQOHUDUDVÕQGDNLLOLúNLOHUGHWD\ODQGÕUÕODUDNGHWD\OÕELUWDVDUÕPHOGHHGLO PLúWLU 8\JXQ NDOLWH ölçütleri VHoLOHUHN JHUoHNOHPH DúDPDVÕ EHNOHQPHGHQ NDOLWH |O oPOHUL\DSPDNYH|OoPVRQXoODUÕQDJ|UH\D]ÕOÕPÕQNDOLWHVLKDNNÕQGDGH÷HUOHQGLUPH yapmak mümkündür. Malik ve Chhillar [18]µÕQGDEHOLUWWL÷LJLELNRGODPD\D JHUoHN OHPH\H EDúODPDGDQDOÕQDQJHULELOGLULP]DPDQSDUDYHLúJFPDOL\HWLQLGúUHFHN EXQXQ\DQÕVÕUDWDVDUÕPÕQGR÷UX\|QGHLOHUOHPHVLQHNDWNÕGDEXOXQDFDNWÕU ø.<0PRGHOLNXOODQÕODUDNWDVDUODQDQ7&3,3WDúÕPDNDWPDQÕWRSODP DGHWVÕQÕI ve bu VÕQÕIODUÕQELUELUOHUL\OHRODQLOLúNLOHULQGHQROXúPDNWDGÕU%XoDOÕúPDNDSVDPÕQGD tasarlanan TCP/,3WDúÕPDNDWPDQÕQDDLW80/6ÕQÕI0RGHOLùHNLO¶GHJ|VWHULOPLúWLU. «Interface» «Interface» Se rv ice sProv ide dToA pplica t ionLa y e r Se rv ice sUse dFrom A pplica t ionLa y e r sendUDPPacket(srcIP:U32,dstIP:U32,srcPort:U16,dstPort:U16,payloadPtr:U8*,payloadLength:U16):void subscribeToUDPSAP(port:U16,packetReceivedFunction:void(*)):void unsubscribeFromUDPSAP(port:U16):void TCPSessionClosed(sessionID:U32):void openTCPSession(srcPort:U16,dstPort:U16,srcIP:U32,dstIP:U32,active:bool,optionsPtr:U8*,optionsLength:U16):U32 TCPPacketReceived(sessionID:U32,packetPtr:U8*,packetLength:U16):void closeTCPSession(sessionID:U32):U8 TCPErrorReceived(sessionID:U32,errorNo:U32):void sendTCPData(sessionID:U32,dataPtr:U8*,dataLength:U16,pushFlag:U8,urgentFlag:U8):U8 readTCPData(sessionID:U32):U16 1 getTCPSessionStatus(sessionID:U32):STATUS abortTCPSession(sessionID:U32):U8 UDPSAPElement * port:U16 Tra nsport La y e rM a na ge r UDPManager packetReceivedFunction:void (*) 1 1 UDPPacket initUDP():void srcPort:U16 resetUDP():void dstPort:U16 releaseUDPSaps():void checkSum:U16 getAppPacketReceivedFunc(port:U16):void* 1 userOrTimeWaitTimer payloadPtr:U8* unsubscribeFromSAP(port:U16):void 1 payloadLength:U16 subscribeToSAP(port:U16,packetReceivedFunction:void (*)):void currentUDPPacket TCPPacket packetPtr:U8 * TTimer packetReceived(pktPtr:U8*,pktLength:short,srcIp:U32,dstIp:U32,tos:U8)... packetLength:U32 srcPort:U16 1 sendPacket(srcIP:U32,dstIP:U32,srcPort:U16,dstPort:U16,payloadPtr:U8... dstPort:U16 initLayer():void start(timerType:U32,time:U32,parameter:U32 seqNumber:U32 resetLayer():void parsePacket(packetPtr:U8 *,packetLen:U16,srcIp:U32,ds... ackNumber:U32 stop(timerType:U32):void sendUDPPacket(srcIP:U32,dstIP:U32,srcPort:U16,dstPort:U16,payloadPt constructUDPPacket(srcIP:U32,dstIP:U32,srcPort:U32,dst... dataOffset:U8 subscribeToUDPSAP(port:U16,packetReceivedFunction:void (*)):void calculateChecksum(srcIP:U32,dstIP:U32):U16 checkUDPChecksum(srcIP:U32,dstIP:U32):bool controlBits:U8 retransmissionTimer unsubscribeFromUDPSAP(port:U16):void window:U16 openTCPSession(sessionID:U32,srcPort:U16,dstPort:U16,srcIP:U32,dstIP checkSum:U16 closeTCPSession(sessionID:U32):U8 urgentPtr:U16 sendTCPData(sessionID:U32,dataPtr:U8*,dataLength:U16,pushFlag:U8, TCPOutgoingQueueElement 1 optionsPtr:U8* getTCPSessionStatus(sessionID:U32):STATUS currentTCPPacket optionsLength:U16 sendTime:U32 abortTCPSession(sessionID:U32):U8 payloadPtr:U8* readTCPData(sessionID:U32):U16 TCPManager TCPSession itsTCPSession payloadLength:U16 packetReceivedFuncFromIPLayer(srcIp:U32,dstIp:U32,packetPtr:U8 *,pa packetPtr:U8 * srcPort:U16 1 * packetLen:U16 srcIP:U32 dstPort:U16 1 dstIP:U32 currentTCPPacket TCPIncomingQueueElement sessionID:U32 calculateChecksum(srcIP:U32,dstIP:U32,le... initTCP():void initialSeqNumber:U32 1 1 checkChecksum(srcIP:U32,dstIP:U32,pack... resetTCP():void state:TCPState*=Closed constructTCPPacket():U8 * getSession(sessionID:U32):void status:U32 parsePacket(packetPtr:U8 *,packetLen:U1... * getSession(srcPort:U16,srcIP:U32,dstPort:U16,dstIP:U32):TCPSession* 1 1..* packetReceived(srcIP:U32,dstIP:U32,packetPtr:U8*,packetLength:U16,tos:U openSession(sessionID:U32,srcPort:U16,srcIP:U32,dstPort:U16,dstIP:U32):U currentTCPPacket closeSession(sessionID:U32):U8 resetSession():void 1 TCPDataQueueManager sendPacket(sessionID:U32,dataPtr:U8*,dataLength:U16,pushFlag:U8,urgentF packetReceived():void abortSession(sessionID:U32):U8 setCurrentState(state:TCPState*):void incomingQueue:TList readData(sessionID:U32):void getCurrentState():TCPState* outgoingQueue:TList getStatus(sessionID:U32):void sendSYN():void sendACK():void sendSYNACK():void TCPAutomaticRepeatRequest sendRST():void sendNext:U32 addToQueue(queueType:U8,element:TCPIncomingQu sendFIN():void 1 1 receiveNext:U32 removeFromQueue(queueType:U8,index:int):void itsTCPSession sendDATA():void inAckNo:U32 moveElement(queueType:U8,sourceIndex:int,destIn sendFINACK():void inSeqNo:int 1 getElementIndex(queueType:U8,element:TCPIncomin userTimeout():void outWindow:int getElement(queueType:U8,index:int):TCPIncomingQu TCPState timeWaitTimeout():void inWindow:U32 getQueueSize():int outSeqNo:U32 getQueueCount():int 1 1 1 1 itsTCPState itsTCPSession isQueueFull():bool isQueueEmpty():bool ACKReceived(ackNo:U32,windowSize:U32):void FlashAllQueues():void SYNReceived():void SYNACKReceived():void readData():void ACKReceived():void retransmissionTimeout(elementIndex:int):void RSTReceived():void writePacket(tcpPacketPtr:TCPPacket):void DATAReceived():void FINReceived():void FINACKReceived():void activeOpen():void IKYM_TCP_UDP_Package passiveOpen():void close():void abort():void timeWaitTimeout():void userTimeout():void 1 1 1 1 1 1 1 1 1 1 Closed Listen SynSent Estab LastAck Closing FinWait1 FinWait2 TimeWait CloseWait Closed(itsTCPSession: Listen(itsTCPSession SynSent(itsTCPSe Estab(itsTC LastAck(itsT Closing(itsT FinWait1(its FinWait2(its TimeWait(it CloseWait(i activeOpen():void activeOpen():void SYNReceived():vo FINReceive ACKReceive ACKReceive ACKReceive FINReceive timeWaitTim close():void passiveOpen():void SYNReceived():void SYNACKReceived( close():void FINACKRec FINReceive 1 «Interface» «Interface» ServicesProvidedToIPLayer Se rv ice sUse dFrom IPLa y e r subscribeToIPSAP(protocolType:U8,packetReceivedFuncPtr:void(*)):void sendPacket(srcIP:U32,dstIP:U32,packetPtr:U8*,packetLength:U32,ipOptions:U8 *,tos:U8, unsubscribeFromIPSAP(protocolType:U8):void ùHNLO1. TCP/,37DúÕPD.DWPDQÕ80/6ÕQÕI Modeli 4.2 TCP/,37DúÕPD.DWPDQÕ7DVDUÕPÕQÕQ.DOLWHgOoPOHUL %XoDOÕúPDNDSVDPÕQGDVHoLOHQNDOLWHölçütleri 0DOLNYH&KKLOODU>@µÕQEHOLUWWL÷L yöntemle örnek TCP/,3WDúÕPDNDWPDQÕLoLQKHVDSODQPÕúWÕU+HUölçüt için elde edilen |OoP VRQXoODUÕQÕQ HQ GúN HQ \NVHN ve RUWDODPD GH÷HUOHUL D\UÕ WDEORODU KDOLQGH 673 J|VWHULOPLúWLU (bkz. Tablo 1-4). Buna ek olarak her ölçütün VÕQÕIODUÕQ\]GHVHOGD÷Õ OÕPÕQDJ|UHGH÷HUGH÷LúLPLGHD\UÕFDJUDILNVHORODUDNJ|VWHULOPLúWLU bkz. ùHNLOYH  6RQUDVÕQGDLVHHOGHHGLOHQEXYHULOHUHGD\DQÕODUDNKHP|UQHN7&3/,3WDúÕPDNDWPDQÕ WDVDUÕPÕQÕQ KHPGHø.<0PRGHOLQLQNDOLWHVLKDNNÕQGDED]ÕoÕNDUVDPDODU\DSÕOPÕúWÕU CMCM Ölçüm Analizi. Minimum Maksimum Ortalama 0 15 3,96 Tablo 1. CMCM gOoP6RQXoODUÕ Tablo 1¶GHJ|UOG÷]HUH|UQHN7&3/,3WDúÕPDNDWPDQÕWDVDUÕPÕQÕQ&0&0GH ÷HULRUWDODPDVÕoÕNPÕúWÕU%XGH÷HULQGúNoÕNPDVÕHOHDOÕQDQVÕQÕIODUÕQNDUPD úÕNOÕNG]H\LQLQGúNJYHQLOLUOL÷LQLQ\NVHNROGX÷XQXJ|VWHUPHNWHGLU%XQXQ\DQÕ VÕUD&0&0GH÷HULGúNRODQEXVÕQÕIODUÕQ\HQLGHQNXOODQÕODELOLUOLNGH÷HULQLQ\NVHN ROGX÷XQXV|\OHPHNPPNQGU &0&0GH÷HULQLQ\NVHNoÕNWÕ÷ÕVÕQÕIODUEHNOHQGL÷L JLELNDUPDúÕNOÕ÷Õ\NVHNRODQ\|QHWLFLVÕQÕIODUGÕU 25% 60% 20% 50% ^ŦŶŦĨйΖƐŝ ^ŦŶŦĨйΖƐŝ 40% 15% 30% 10% 20% 5% 10% 0% 0% 0 2 4 6 8 10 12 14 0 1 2 3 4 5 DD /D ùHNLO2. CMCM ve CICM Ölçümlerinin Yüzdesel DD÷ÕOÕPODUÕ CICM Ölçüm Analizi. Minimum Maksimum Ortalama 0 2 0,54 Tablo 2. &,&0gOoP6RQXoODUÕ &,&0|OoPOHULQLQLVWDWLVWLNVHOGH÷HUOHUL ùHNLO¶GHJ|VWHULOPLúWLU*|UOG÷]H UHHQGúN&,&0GH÷HULHQ\NVHN&,&0GH÷HULYHRUWDODPD&,&0GH÷HUL oÕNPÕúWÕU@2UWDODPDGH÷HUJ|]|QQHDOÕQ GÕ÷ÕQGDLVHVLVWHPGHNLVÕQÕIODUÕQNDUPDúÕNOÕNGH÷HUOHULQLQGúNROGX÷XDQODúÕODELOLU lik WHNUDU NXOODQÕODELOLUOLN YH VUGUOHELOLUOLN GH÷HUOHULQLQ X\JXQ VHYL\HGH ROGX÷X söylenebilir. CALM Ölçüm Analizi. Minimum Maksimum Ortalama 0 1 0,24 Tablo 3. &$/0gOoP6RQXoODUÕ ùHNLO¶WHNL&$/0|OoPQQ\]GHVHOGD÷ÕOÕPJUDIL÷LQHEDNÕOGÕ÷ÕQGD, VÕQÕIODUÕQ ¶QQGH÷HULQHVDKLSROGX÷XJ|UOPHNWHGLU%XQDED÷OÕRODUDN7DEOR3’te gös- terileQRUWDODPD&$/0GH÷HULROGXNoDGúNoÕNPÕúWÕUÖnceki bölümlerde DQODWÕOGÕ÷Õ ]HUH &$/0 GH÷HULQLQ GúN oÕNPDVÕ VÕQÕIODU DUDVÕQGDNL ED÷ÕPOÕOÕ÷ÕQ D] ROGX÷XQX GROD\ÕVÕyla DQODúÕODELOLUOLNWHVWHGLOHELOLUOLNYH\HQLGHQNXOODQÕODELOLUOLNNDOLWH|]HOOLN OHULQLQ \NVHN ROGX÷XQX J|VWHUPHNWHGLU &$/0 GH÷HULQLQ \NVHN oÕNWÕ÷Õ VÕQÕIODU &0&0|OoWQGHROGX÷XJLELNDUPDúÕNOÕ÷Õ\NVHNRODQ\|QHWLFLVÕQÕIODUÕGÕU 80% 100% 70% 80% 60% ^ŦŶŦĨйΖƐŝ ^ŦŶŦĨйΖƐŝ 50% 60% 40% 40% 30% 20% 20% 10% 0% 0% NA 1 0,29 0,47 0,56 0,62 0 0,4 0,7 1 >D KD ùHNLO3. CALM ve CCOM Ölçümlerinin Yüzdesel DD÷ÕOÕPODUÕ CCOM Ölçüm Analizi. Minimum Maksimum Ortalama 0,29 1 0,59 Tablo 4. &&20gOoP6RQXoODUÕ 675 Sadece veri üyesi veya metoda sahip olan VÕQÕIODUÕQ &&20 GH÷HUOHUL WDQÕPVÕ]GÕU (bkz. Formül 4). Örnek TCP/,3WDúÕPDNDWPDQÕWDVDUÕPÕQGD&&20|OoP \DSÕOD PD\DQ VÕQÕI RUDQÕ  JLEL \NVHN ELU GH÷HUGLU $OW YH VW NDWPDQODUOD RODQ DUD\] VÕQÕIODUÕLOH'XUXP7DVDUÕPùDEORQXQD>@J|UHROXúWXUXODQGXUXPVÕQÕIODUÕKHUKDQJL bir veri üyesine VDKLSGH÷LOGLUYHEX\]GHQ&&20GH÷HUOHULWDQÕPVÕ]GÕU$\QÕúHNLO GHWDVDUÕPGDNXOODQÕODQYHULVÕQÕIODUÕQÕQGDPHWRGXROPDGÕ÷ÕLoLQ&&20GH÷HUL|Oo lememektedir. 1HVQH\H GD\DOÕ ELU WDVDUÕPGD EHNOHQHQ &&20 GH÷HUL  FLYDUÕQGDGÕU 7DEOR 4’te J|UOG÷ ]HUH |UQHN WDVDUÕPÕQ RUWDODPD &&20 GH÷HUL  oÕNPÕúWÕU. Henüz ger- oHNOHPH DúDPDVÕQD JHOLQPH\HQ EX VLVWHPGHNL VÕQÕIODUÕQ &&20 GH÷HUOHULQH EDNÕOGÕ ÷ÕQGDEXWDVDUÕPÕQNDUDUOÕOÕ÷ÕQÕQideal seviyeye \DNÕQ>@ROGX÷XV|\OHQHELOLU%XQ GDQGROD\Õ|OoP\DSÕODQVÕQÕIODUÕQ sürdürülebilirlik, güvenilirlik ve test edilebilirlik kalite özelliklerinin ideal seviye\H\DNÕQROGX÷X J|]OHPOHQPLúWLU %XQXQ\DQÕQGD, Jehad Al Dallal [24@PHYFXWX\XPOXOXN|OoWOHULQLQNDOÕWÕPJLEL ED]Õ DQDKWDU QHVQH\H GD\DOÕ GLO |]HOOLNOHULQL GLNNDWH DOPDGÕ÷ÕQÕ JHUoHNOHPH DúDPD VÕQGD EHOLUOHQHFHN RODQ JHUoHN HWNLOHúLPOHUH PRWLYH ROGXNODUÕQÕ GROD\OÕ HWNLOHúLPOHUL |OoHPHGLNOHULQLEHOLUWPLúWLU7DUDQMHHW.DXU>25] ve Heung Seok Chae [26] ise mevcut |OoWOHULQ X\XPOXOXN |OoPOHUL LoLQ \HWHUOL ROPDGÕ÷ÕQÕ YH VRUJXODQÕU ROGXNODUÕQÕ EH OLUWPLúWLU 6RQXoRODUDNKHUQHNDGDUOLWHUDWUGHX\XPOXOXN|OoWOHULQHoHúLWOLHOHúWLULOHUYDUVD GDWDVDUÕPDúDPDVÕQGDHOGHHWWL÷LPL]EXIDUNÕQGDOÕNODJHUoHNOHPHDúDPDVÕQDJHoPH GHQ VÕQÕIODU WHNUDU EX J|]OH LQFHOHQGL 7&3,3 WDúÕPD NDWPDQÕ |]HOLQGH GH GúN CCOM de÷HULQHVDKLSRODQTCPAutomaticRepeatRequest ve TCPSession VÕQÕIODUÕQÕQ ELUELULQGHQED÷ÕPVÕ]LúOHYOHUL|]QHVLQGHWRSOD\DQVÕQÕIODUROGX÷XJ|]OHQGLYHEXVÕQÕI ODUÕQE|OQPHVLQHNDUDUYHULOGL 5 Sonuç %XoDOÕúPDNDSVDPÕQGD7&3,3WDúÕPDNDWPDQÕ\D]ÕOÕPÕQHVQH\e yönelik bir ileti- úLPNDWPDQÕ\D]ÕOÕPPLPDULVLRODQø.<0LOHWDVDUODQPÕúWÕUøOHWLúLPNDWPDQÕ\D]ÕOÕP WDVDUÕPODUÕQGDø.<0NXOODQÕODUDN\D]ÕOÕPNDOLWH|]HOOLNOHULQLQVD÷ODQPDVÕYH\D]ÕOÕP NDOLWHVLQLQ DUWWÕUÕOPDVÕ KHGHIOHQPHNWHGLU $\UÕFD WDVDUÕPGD NXOODQÕODQ ø.<0¶QLQ QHVQH\H\|QHOLNROPDVÕKHPQHVQH\H\|QHOLNSURJUDPODPDQÕQID\GDODUÕQGDQ\DUDUOD QÕOPDVÕQDKHPGHQHVQH\H\|QHOLNWDQÕPODQDQ\D]ÕOÕPNDOLWH|OoWOHULQLQNXOODQÕOPD VÕQDRODQDNVD÷ODPÕúWÕU $\UÕFD EX oDOÕúPDGD 7&3,3 WDúÕPD NDWPDQÕ WDVDUÕPÕ X\JXQ |OoWOHUOH VÕQÕI ED ]ÕQGD JHUoHNOHPH \DSPDGDQ |OoOPú YH VRUXQOX RODELOHFHN VÕQÕIODU EHOLUOHQHUHN WDVDUÕPÕQ HUNHQ DúDPDODUÕQGD LOJLOL L\LOHúWLUPHOHULQ \DSÕODELOHFH÷L J|VWHULOPLúWLU 7&3,3 WDúÕPD NDWPDQÕQÕQ VÕQÕI ED]ÕQGDNL NDOLWH |OoP VRQXoODUÕQÕQ NDbul edilebilir VHYL\HQLQ VWQGH oÕNPDVÕ YH \D]ÕOÕPÕQ J|UHFH NÕVD VUHGH WDVDUODQDELOPLú ROPDVÕ ø.<0¶QLQEDúDUÕOÕELUQHVQH\H\|QHOLN\D]ÕOÕPPLPDULVLROGX÷XQXJ|VWHUPLúWLU So- QXoODUø.<0¶nin WHVWHGLOHELOLUVUGUOHELOLU\HQLGHQNXOODQÕODELOLUDQODúÕODELOLUYH JYHQLOLUROGX÷XQDGDLúDUHWHWPHNWHGLU%X|]HOOLNOHUHø.<0NXOODQÕODQGL÷HUSURWR NRO WDVDUÕPODUÕQÕQ GD VDKLS RODFD÷Õ GúQOHELOLU 6RQ RODUDN \D]ÕOÕP WDVDUÕPÕQda 676 ø.<0 NXOODQÕPÕQÕQ \D]ÕOÕP JHOLúWLUPH PDOL\HWOHULQL E\N RUDQGD GúUPHVL EHN lenmektedir. 6 Kaynakça 1. David Garlan, “Software Architecture: a Roadmap”, Conference on The Future of Softwa- re Engineering (ICSE ’00), pp. 91-101, 2000 2. David Garlan and Mary Shaw, “An Introduction to Software Architecture”, Technical Re- port, January 1994 3. International Standards Organization: Information Technology - Software Product Quality - Part 1: Quality Model, ISO/IEC FDIS 9126-1 4. Francisca Losavio and Ledis Chirinos, Nicole Lévy and Amar Ramdane-Cherif, France “Quality Characteristics for Software Architecture” in Journal of Object Technology, vol. 2, no. 2, March-April 2003, pp. 133-150. 5. Mawal Ali and Mahmoud O. Elish, “A Comparative Literature Survey of Design Patterns Impact on Software Quality”, International Conference of Information Science and Appli- cations (ICISA), June 2013 6. Brian Huston, “The Effects of Design Pattern Application on Metric Scores”, The Journal of Systems and Software, 2001, pp. 261-269 7. ø .DUDDVODQ 7 $IDFDQ ( 'HPLUFDQ g %DúRO DQG ( =DLP ³øOHWLúLP .DWPDQÕ