{edogan, tafacan, obasol, edemircan, ikaraaslan, ezaim}@aselsan.com.tr



Similar documents
How To Calculate Class Cohesion

Top 100 Words In The Turkish Language

THE EFFECTS OF CORPORATE GOVERNANCE ON STOCK RETURNS: AN EVALUATION IN TERMS OF COMPANIES IN ISE CORPORATE GOVERNANCE INDEX

AN EMPIRICAL REVIEW ON FACTORS AFFECTING REUSABILITY OF PROGRAMS IN SOFTWARE ENGINEERING

KATI ATIK YÖNETĐMĐNDEN ÖRNEKLER; ĐSTANBUL BÜYÜKŞEHĐR BELEDĐYESĐ, FATĐH BELEDĐYESĐ VE FATĐH ÜNĐVERSĐTESĐ

How To Validate An Isos 9126 Quality Model


Object Oriented Business Architecture on Online-exam and Assignment system

AN APPLICATION OF THE DOLLAR AND GOLD PRICES IN TURKEY WITH MULTIVARIABLE SETAR MODEL

EXTENDED ANGEL: KNOWLEDGE-BASED APPROACH FOR LOC AND EFFORT ESTIMATION FOR MULTIMEDIA PROJECTS IN MEDICAL DOMAIN

THE ROLE OF PROMOTION ON MARKETING IN TURKISH DRUG INDUSTRY

Outline of the SNMP Framework

Synopsis: Title: Software Quality. Theme: Information Systems. Project Term: 9th semester, fall Project Group: sw907e13

II. TYPES OF LEVEL A.

PRESERVICE SECONDARY MATHEMATICS TEACHERS COMPARATIVE ANALYSES OF TURKISH AND AMERICAN HIGH SCHOOL GEOMETRY TEXTBOOK

COMPARATIVE STUDY OF SOFTWARE TESTING TOOLS ON THE BASIS OF SOFTWARE TESTING METHODOLOGIES

Optimum Cycle Time Prediction for Signalized Intersections at Baghdad City

ELECTRONIC MONEY IN 2000 S

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

Doğu Çamur Accepted: July ISSN : etemgurel@gmail.com Karabuk-Turkey

Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?

[2006] IEEE. Reprinted, with permission, from [M. Ye and K. Sandrasegaran, Teaching about Firewall Concepts using the inetwork Simulator, Information

Intelligent Cybersecurity for the Real World

Ifl kl İkazlar Light Towers

Program Understanding with Code Visualization

Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented Software Development Paradigms: A Comparative Study

Electronic Systems Engineering Department, Turkish Naval Academy, Naval Sciences and Engineering Institute, Tuzla, Istanbul 1 moun@dho.edu.

How Designs Differ By: Rebecca J. Wirfs-Brock

Quantitative Evaluation of Software Quality Metrics in Open-Source Projects

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

Sayı 8 Haziran 2013 EMPLOYEE LOYALTY IN FRONTIER MARKETS OF ANATOLIA

Quality prediction model for object oriented software using UML metrics

A THEORETICAL FRAMEWORK FOR DETERMINING THE RELATIONSHIP BETWEEN COMPETITIVE STRATEGIES AND HUMAN RESOURCE MANAGEMENT PRACTICES.

A DICHOTIC LISTENING TEST ON VOICELESS th /Θ/ PHONEME PERCEPTION

The «SQALE» Analysis Model An analysis model compliant with the representation condition for assessing the Quality of Software Source Code

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

STABILITY OF YIELD PERFORMANCE OF SOME PROCESSING TOMATO GENOTYPES

STATE-OF-THE-ART IN EMPIRICAL VALIDATION OF SOFTWARE METRICS FOR FAULT PRONENESS PREDICTION: SYSTEMATIC REVIEW

Comparative Analysis of Using 112 Emergency Ambulance Services in Turkey and the Province of Konya

NOTICE OF LOSS, DAMAGE AND DELAY UNDER THE HAGUE-VISBY RULES - ROTTERDAM RULES - NEW TURKISH COMMERCIAL CODE

Quality Ensuring Development of Software Processes

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

The Phases of an Object-Oriented Application

Dual-Band Dual-Polarized MIMO Antenna Design for GSM Application

NEW SECOND GENERATION CURRENT CONVEYOR-BASED CURRENT-MODE FIRST ORDER ALL-PASS FILTER AND QUADRATURE OSCILLATOR

A Comprehensive Assessment of Object-Oriented Software Systems Using Metrics Approach

Web based legacy system componentization

A Model of Project Supervision for Process Correction and Improvement

XFlash A Web Application Design Framework with Model-Driven Methodology

6LoWPAN Technical Overview

IES - Introduction to Software Engineering

The use of Web Pages as a Health Communication Tool in Private and Public Hospitals

Economic Activity and Unemployment Dynamics in Turkey

Clustering for Monitoring Software Systems Maintainability Evolution

Continuity and Change in Turkish Foreign Policy Toward Africa

Domain-Driven Design

The normal duration of a four-year undergraduate program at METU is eight semesters.

Workshop on Network Traffic Capturing and Analysis IITG, DIT, CERT-In, C-DAC. Host based Analysis. {Himanshu Pareek,

Software Refactoring using New Architecture of Java Design Patterns

Object Oriented Design

Yenilikçi, sürekli, güvenilir fikirler Innovative, continuous, trust ideas

Improved Multiple File Transfer Protocol using Extended features of SCTP

GenericServ, a Generic Server for Web Application Development

International Journal of Advanced Research in Computer Science and Software Engineering

Organization. Introduction to Software Engineering

Network System Design Lesson Objectives

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

TCP Performance Management for Dummies

MIRANDA WATER TREATMENT SYSTEMS PROJECT IMAGES PORTFOLIO

Comparison of Class Inheritance and Interface Usage in Object Oriented Programming through Complexity Measures

Insurance and Insurance Brokers under the New Regulations

ERASMUS+ OUTGOING STUDENT MOBILITY ORIENTATION PROGRAM IAU ERASMUS+ OFFICE

CURRENT CHALLENGES OF THE GYNECOLOGY ASS STANTS IN TURKEY

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Transcription:

{edogan, tafacan, obasol, edemircan, ikaraaslan, ezaim}@aselsan.com.tr Özet. / em mimari sürdürülebilirlik, test edilebilirlik,, ve güvenilirlik kalite Anahtar Kelimeler: Kalite Ölç özellikleri Sist risi ise, ya önünde tut []. ve yen [2, olarak etkilerler. Bundan mimari kararlar l yan ler sürdürülebilirlik, test edilebilirlik,, ik ve güvenilirliktir. 667

- - yolu ise, tasa-, son ürün,, (TCP ve UDP) / sürdürülebilirlik, test edilebilirlik, yeni- güvenilirlik Sonuç e tasa- ve 3. bölümde kalite ölçüt 4 ile TCP/IP t k / delin. 668

2 kalite ölçüm ölçüt t Class Definition Entropy), RFC (Response For a Class) ve WMC (Weighted Methods per Class Data Abstraction Coupling) ve RFC (Response For a Class); uyumluluk için ise LCOM (Lack of Cohesion in Methods) ve TCC (Tight Class Cohesion) ölçüt, uygulanan ve olabilecek alanlar Marinescu [] ise iyi bilinen iki tlerin (WOC-Weight of a Class, NOPA-Number of Public Attributes, NOAM-Number of Access Methods) tasa- t t (WMC-Weighted Method Count, NOC-Number of Children, TCC-Tight Class Cohesion Sa tlerle (CBO-Coupling Between Object Classes, DAC-Data Abstraction Coupling, vb. n ve böylece a Son olarak, Jehad Al Dallal uyumluluk ölçütü -metot, veri üyesi-metot ve veri üyesi-veri üyesi çiftleri üzerin-, bu yeni ölçütün, 669

uyumluluk ölçütleri mektedir. 3 [22, 23] t, elde edilen olarak gerçekle güncellemeler erken kalite ölçümleri özellikler göz özellikleri t ölçümlere dayanarak / kalite özellik- t tleri (complexity metrics ölçütleri (coupling metrics) ve uyumluluk ölçütleri (cohesion metrics). 3. Ölçütleri (Complexity Metrics):, yeniden kullanabilmek tü seçmek oldukça zordur. B Malik ve Chhillar [8] referans al ölçütler kullan : CMCM (Class Member Complexity Measure öznitelik sa-, CMCM ye- de [7, 27]. = + () 670

CICM (Class Inheritance Complexity Measure inheritance) yoluyla t : 0, =0 = + (2), = nebilir, Bununla beraber, [7, 28]. 3.2 Ölçütleri (Coupling Metrics) geri döndürüyordur. low coupling genel yla, kulla bu lar [7, 28]. Class Aggregation Level Measure t t o = (3) 67

3.3 Uyumluluk Ölçütleri (Cohesion Metrics): ve veri üyelerinin. kendi içinde birbirin- birbiriyle ilgili olmayan veri üyeleri Kaliteli bir nesneye high cohesion [7], tü olarak CCOM (Class Cohesion Measure) [8] = (4) bir veri üyesinin bir veri üyesine nin göstere- veri üye - ) ) 4 / TCP/ / UDP olmak ü protokol olup veri UDP ve TCP protokolleri 4. metotlar ve me- 672

«Interface» «Interface» «Interface» «Interface» totlarla ölçütleri yapmak mümkündür. Malik ve Chhillar [8] ve bu tasarlanan TCP/. Serv icesprov idedtoa pplicationlay er Serv icesusedfrom A pplicationlay er sendudppacket(srcip:u32,dstip:u32,srcport:u6,dstport:u6,payloadptr:u8*,payloadlength:u6):void subscribetoudpsap(port:u6,packetreceivedfunction:void(*)):void unsubscribefromudpsap(port:u6):void opentcpsession(srcport:u6,dstport:u6,srcip:u32,dstip:u32,active:bool,optionsptr:u8*,optionslength:u6):u32 closetcpsession(sessionid:u32):u8 sendtcpdata(sessionid:u32,dataptr:u8*,datalength:u6,pushflag:u8,urgentflag:u8):u8 readtcpdata(sessionid:u32):u6 gettcpsessionstatus(sessionid:u32):status aborttcpsession(sessionid:u32):u8 TCPSessionClosed(sessionID:U32):void TCPPacketReceived(sessionID:U32,packetPtr:U8*,packetLength:U6):void TCPErrorReceived(sessionID:U32,errorNo:U32):void UDPSAPElement * port:u6 TransportLay erm anager UDPManager packetreceivedfunction:void (*) initlayer():void resetlayer():void sendudppacket(srcip:u32,dstip:u32,srcport:u6,dstport:u6,payloadpt subscribetoudpsap(port:u6,packetreceivedfunction:void (*)):void unsubscribefromudpsap(port:u6):void opentcpsession(sessionid:u32,srcport:u6,dstport:u6,srcip:u32,dstip closetcpsession(sessionid:u32):u8 sendtcpdata(sessionid:u32,dataptr:u8*,datalength:u6,pushflag:u8, gettcpsessionstatus(sessionid:u32):status aborttcpsession(sessionid:u32):u8 readtcpdata(sessionid:u32):u6 packetreceivedfuncfromiplayer(srcip:u32,dstip:u32,packetptr:u8 *,pa initudp():void resetudp():void releaseudpsaps():void getapppacketreceivedfunc(port:u6):void* unsubscribefromsap(port:u6):void subscribetosap(port:u6,packetreceivedfunction:void (*)):void packetreceived(pktptr:u8*,pktlength:short,srcip:u32,dstip:u32,tos:u8)... sendpacket(srcip:u32,dstip:u32,srcport:u6,dstport:u6,payloadptr:u8... TCPManager currentudppacket inittcp():void resettcp():void getsession(sessionid:u32):void getsession(srcport:u6,srcip:u32,dstport:u6,dstip:u32):tcpsession*..* packetreceived(srcip:u32,dstip:u32,packetptr:u8*,packetlength:u6,tos:u opensession(sessionid:u32,srcport:u6,srcip:u32,dstport:u6,dstip:u32):u closesession(sessionid:u32):u8 sendpacket(sessionid:u32,dataptr:u8*,datalength:u6,pushflag:u8,urgentf abortsession(sessionid:u32):u8 readdata(sessionid:u32):void getstatus(sessionid:u32):void TCPState SYNReceived():void SYNACKReceived():void ACKReceived():void RSTReceived():void DATAReceived():void FINReceived():void FINACKReceived():void activeopen():void passiveopen():void close():void abort():void timewaittimeout():void usertimeout():void itstcpstate itstcpsession UDPPacket srcport:u6 dstport:u6 checksum:u6 payloadptr:u8* payloadlength:u6 packetptr:u8 * packetlength:u32 parsepacket(packetptr:u8 *,packetlen:u6,srcip:u32,ds... constructudppacket(srcip:u32,dstip:u32,srcport:u32,dst... calculatechecksum(srcip:u32,dstip:u32):u6 checkudpchecksum(srcip:u32,dstip:u32):bool TCPSession srcport:u6 srcip:u32 dstport:u6 dstip:u32 sessionid:u32 initialseqnumber:u32 state:tcpstate*=closed status:u32 resetsession():void packetreceived():void setcurrentstate(state:tcpstate*):void getcurrentstate():tcpstate* sendsyn():void sendack():void sendsynack():void sendrst():void sendfin():void senddata():void sendfinack():void usertimeout():void timewaittimeout():void itstcpsession currenttcppacket currenttcppacket itstcpsession userortimewaittimer TCPPacket TTimer srcport:u6 dstport:u6 seqnumber:u32 start(timertype:u32,time:u32,parameter:u32 acknumber:u32 stop(timertype:u32):void dataoffset:u8 controlbits:u8 retransmissiontimer window:u6 checksum:u6 urgentptr:u6 TCPOutgoingQueueElement optionsptr:u8* optionslength:u6 sendtime:u32 payloadptr:u8* payloadlength:u6 packetptr:u8 * packetlen:u6 * TCPIncomingQueueElement calculatechecksum(srcip:u32,dstip:u32,le... checkchecksum(srcip:u32,dstip:u32,pack... constructtcppacket():u8 * parsepacket(packetptr:u8 *,packetlen:u... * currenttcppacket TCPDataQueueManager incomingqueue:tlist<tcpincomingqueueelement*> outgoingqueue:tlist<tcpoutgoingqueueelement*> TCPAutomaticRepeatRequest sendnext:u32 addtoqueue(queuetype:u8,element:tcpincomingqu receivenext:u32 removefromqueue(queuetype:u8,index:int):void inackno:u32 moveelement(queuetype:u8,sourceindex:int,destin inseqno:int getelementindex(queuetype:u8,element:tcpincomin outwindow:int getelement(queuetype:u8,index:int):tcpincomingqu inwindow:u32 getqueuesize():int outseqno:u32 getqueuecount():int isqueuefull():bool isqueueempty():bool ACKReceived(ackNo:U32,windowSize:U32):void FlashAllQueues():void readdata():void retransmissiontimeout(elementindex:int):void writepacket(tcppacketptr:tcppacket):void IKYM_TCP_UDP_Package Closed Listen SynSent Estab LastAck Closing FinWait FinWait2 TimeWait CloseWait Closed(itsTCPSession: activeopen():void passiveopen():void Listen(itsTCPSession activeopen():void SYNReceived():void SynSent(itsTCPSe SYNReceived():vo SYNACKReceived( Estab(itsTC FINReceive close():void LastAck(itsT ACKReceive Closing(itsT ACKReceive FinWait(its ACKReceive FINACKRec FinWait2(its FINReceive TimeWait(it timewaittim CloseWait(i close():void FINReceive ServicesProvidedToIPLayer Serv icesusedfrom IPLay er subscribetoipsap(protocoltype:u8,packetreceivedfuncptr:void(*)):void sendpacket(srcip:u32,dstip:u32,packetptr:u8*,packetlength:u32,ipoptions:u8 *,tos:u8, unsubscribefromipsap(protocoltype:u8):void. TCP/ Modeli 4.2 TCP/ ölçütleri yöntemle örnek TCP/ ölçüt için elde edilen ve 673

(bkz. Tablo -4). Buna ek olarak her ölçütün bkz. / CMCM Ölçüm Analizi. Minimum Maksimum Ortalama 0 5 3,96 Tablo. CMCM Tablo / 25% 60% 20% 5% 0% 5% 50% 40% 30% 20% 0% 0% 0 2 4 6 8 0 2 4 0% 0 2 3 4 5 2. CMCM ve CICM Ölçümlerinin Yüzdesel D CICM Ölçüm Analizi. Minimum Maksimum Ortalama 0 2 0,54 Tablo 2. 674

lik söylenebilir. CALM Ölçüm Analizi. Minimum Maksimum Ortalama 0 0,24 Tablo 3., 3 te gösterile Önceki bölümlerde yla 80% 70% 60% 50% 40% 30% 20% 0% 0% 0 0,4 0,7 00% 80% 60% 40% 20% 0% NA 0,29 0,47 0,56 0,62 3. CALM ve CCOM Ölçümlerinin Yüzdesel D CCOM Ölçüm Analizi. Minimum Maksimum Ortalama 0,29 0,59 Tablo 4. 675

Sadece veri üyesi veya metoda sahip olan (bkz. Formül 4). Örnek TCP/ bir veri üyesine lememektedir. 4 te. Henüz ger- ideal seviyeye sürdürülebilirlik, güvenilirlik ve test edilebilirlik kalite özelliklerinin ideal seviye, Jehad Al Dallal [24 25] ve Heung Seok Chae [26] ise mevcut CCOM de TCPAutomaticRepeatRequest ve TCPSession 5 Sonuç e yönelik bir ileti- bul edilebilir So- nin da 676

lenmektedir. 6 Kaynakça. David Garlan, Software Architecture: a Roadmap, Conference on The Future of Software Engineering (ICSE 00), pp. 9-0, 2000 2. David Garlan and Mary Shaw, An Introduction to Software Architecture, Technical Report, January 994 3. International Standards Organization: Information Technology - Software Product Quality - Part : Quality Model, ISO/IEC FDIS 926-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. 33-50. 5. Mawal Ali and Mahmoud O. Elish, A Comparative Literature Survey of Design Patterns Impact on Software Quality, International Conference of Information Science and Applications (ICISA), June 203 6. Brian Huston, The Effects of Design Pattern Application on Metric Scores, The Journal of Systems and Software, 200, pp. 26-269 7. Mimarisi Communication Layer Software Architecture Sempozyumu 203 8. Ladan Tahvildari and Kostas Kontogiannis, A Metric-Based Approach to Enhance Design Quality Through Meta-Pattern Transformations, Conference On Software Maintenance And Reengineering (CSMR 03), March 2003, pp. 83-92 9. Ladan Tahvildari and Kostas Kontogiannis, A Software Transformation Framework for Quality-Driven Object-Oriented Re-Engineering, International Conference on Software Maintenance (ICSM 02), 2002 0. M. Salehie, S. Li and L. Tahvildari, A Metric-Based Heuristic Framework to Detect Object-Oriented Design Flaws, Conference on Program Comprehension (ICPC 06), 2006. Radu Marinescu, Detecting Design Flaws via Metrics in Object-Oriented Systems, Conf. and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS 0), 200 2. Radu Marinescu, Using Object-Oriented Metrics for Automatic Design Flaws Detection in Large Scale Systems, Object-Oriented Technology Ecoop 98, 998 3. Houari A. Sahraoui, Robert Godin and Thierry Miceli, Can Metrics Help to Bridge the Gap Between the Improvement of 00 Design Quality and Its Automation?, International Conference on Software Maintenance, 2000, pp.54-62 4. -bergi.com/2008/eylul/yeniden- Kullanim-Software-Reuse, Last date accessed: April 204 5. Tuna Türk, The Effect of Software Design Patterns on Object-Oriented Software Quality and Maintainability, A thesis submitted to the Graduate School of Natural and Applied Sciences of METU, September 2009 6. U. Erdemir, U. Tekin, F. Buzluca, si, 677

7. Nurdan Canbaz ve Feza Buzluca,, 4. - 8. Nisha Malik and Rajender Singh Chhillar, New Design Metrics for Complexity Estimation in Object Oriented Systems, International Journal on Computer Science and Engineering (IJCSE), Vol. 3 No. 0, pp.3367-3382, October 20 9. J. Postel, User Datagram Protocol, RFC768, 28 August 980 20. Information Sciences Institute University of Southern California, Transmission Control Protocol, RFC 793, September 98 2. E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addson Wesley, 995 22. Barbara Kitchenham and Shari Lawrence Pfleeger, Software Quality: The Elusive Target, IEEE Software, pages 2-2, 996. 23. Linda H. Rosenberg and Lawrence E. Hyatt, A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality, 8th Annual Software Technology Conference Utah, April 996 24. Jehad Al Dallal, A Design-Based Cohesion Metric for Object-Oriented Classes, World Academy of Science, Engineering and Technology, Vol:, No:0, 2007 25. Taranjeet Kaur and Rupinder Kaur, Comparison of Various Lacks of Cohesion Metrics, International Journal of Engineering and Advanced Technology (IJEAT) ISSN: 2249 8958, Volume-2, Issue-3, February 203 26. Heung Seok Chae and Yong Rae Kwon, A Cohesion Measure for Classes in Object- Oriented Systems, Software Practice and Experience, 200 27. Ladan Tahvildari, Assessing the Impact of Using Design-pattern-based Systems, A thesis submitted to the University of Waterloo, 999 28. Ladan Tahvildari and Kostas Kontogiannis, Improving design quality using meta-pattern transformations: a metric-based approach, Journal of Software Maintenance and Evolution, 6: 33-36, 2004 678