มีเครื่องมือใดบ้างที่จะคำนวณเมตริกโค้ด (เช่นจำนวนบรรทัดโค้ดความซับซ้อนของวัฏจักรการเชื่อมต่อการเชื่อมต่อกัน) สำหรับโครงการของคุณและเมื่อเวลาผ่านไปจะสร้างกราฟที่แสดงแนวโน้ม
มีเครื่องมือใดบ้างที่จะคำนวณเมตริกโค้ด (เช่นจำนวนบรรทัดโค้ดความซับซ้อนของวัฏจักรการเชื่อมต่อการเชื่อมต่อกัน) สำหรับโครงการของคุณและเมื่อเวลาผ่านไปจะสร้างกราฟที่แสดงแนวโน้ม
คำตอบ:
ในโครงการล่าสุดของฉันฉันใช้SourceMonitor เป็นเครื่องมือฟรีที่ดีสำหรับการวิเคราะห์ตัวชี้วัดโค้ด
นี่คือข้อความที่ตัดตอนมาจากเว็บไซต์ทางการของ SourceMonitor:
- รวบรวมเมตริกในซอร์สไฟล์แบบพาสทรูเดียวที่รวดเร็ว
- วัดเมตริกสำหรับซอร์สโค้ดที่เขียนใน C ++, C, C #, VB.NET, Java, Delphi, Visual Basic (VB6) หรือ HTML
- รวมเมทริกระดับวิธีการและฟังก์ชันสำหรับ C ++, C, C #, VB.NET, Java และ Delphi
- บันทึกเมตริกในจุดตรวจเพื่อเปรียบเทียบระหว่างโครงการพัฒนาซอฟต์แวร์
- แสดงและพิมพ์เมตริกในตารางและแผนภูมิ
- ทำงานภายใน Windows GUI มาตรฐานหรือภายในสคริปต์ของคุณโดยใช้ไฟล์คำสั่ง XML
- ส่งออกเมตริกเป็นไฟล์ XML หรือ CSV (ค่าที่คั่นด้วยเครื่องหมายจุลภาค) สำหรับการประมวลผลเพิ่มเติมด้วยเครื่องมืออื่น ๆ
สำหรับ. NET ข้างNDependซึ่งเป็นเครื่องมือที่ดีที่สุดฉันสามารถแนะนำvilได้
เครื่องมือต่อไปนี้สามารถทำการวิเคราะห์แนวโน้ม:
Sonarเป็นเครื่องมือที่คุณต้องพิจารณาโดยเฉพาะอย่างยิ่งสำหรับโปรเจ็กต์ Java อย่างไรก็ตามมันจะรองรับ PHP หรือ C / C ++, Flex และ Cobol code
นี่คือภาพหน้าจอที่แสดงเมตริกบางอย่างในโครงการ:
ข้อความแสดงแทน http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
โปรดทราบว่าคุณสามารถลองใช้เครื่องมือได้โดยใช้ไซต์สาธิตที่http://nemo.sonarsource.org
NDependสำหรับ. net
ฉันกำลังมองหาเครื่องมือ / ปลั๊กอินตัวชี้วัดรหัสสำหรับ IDE ของฉัน แต่เท่าที่ฉันรู้ว่าไม่มี (สำหรับคราสนั่นคือ) ที่แสดงกราฟของความซับซ้อนในช่วงเวลาที่กำหนด อย่างไรก็ตามฉันพบปลั๊กอิน eclipse metricsมันสามารถจัดการ:
และในขณะที่ใช้งานฉันก็ไม่พลาดตัวเลือกการสร้างกราฟที่คุณกำลังมองหาเช่นกัน
ฉันคิดว่าหากคุณไม่พบปลั๊กอิน / เครื่องมือใด ๆ ที่สามารถจัดการกับกราฟเมื่อเวลาผ่านไปคุณควรดูเครื่องมือที่เหมาะกับคุณมากที่สุดและให้ข้อมูลทั้งหมดที่คุณต้องการ แม้ว่าข้อมูลที่ระบุจะเป็นเพียงโครงสร้างปัจจุบันของโครงการของคุณ
ตามหมายเหตุด้านข้างปลั๊กอิน eclipse metricsอนุญาตให้คุณส่งออกข้อมูลไปยังไฟล์ภายนอก (ลิงก์ไปยังตัวอย่าง) ดังนั้นหากคุณใช้เครื่องมือควบคุมแหล่งที่มาและคุณควร! คุณสามารถส่งออกข้อมูลสำหรับเฉพาะ สร้างและจัดเก็บไฟล์พร้อมกับซอร์สโค้ดด้วยวิธีนี้คุณยังมีวิธี (พื้นฐาน) ในการย้อนเวลาและตรวจสอบความแตกต่าง
โปรดทราบว่าสิ่งที่คุณวัดคือสิ่งที่คุณได้รับ loc ไม่ได้พูดอะไรเกี่ยวกับผลผลิตหรือประสิทธิภาพ
ให้คะแนนโปรแกรมเมอร์ตามบรรทัดและคุณจะได้รับ .. บรรทัดของรหัส อาร์กิวเมนต์เดียวกันจะใช้กับเมตริกอื่น ๆ
otoh .. http://www.crap4j.org/เป็นเมตริกที่อนุรักษ์นิยมและมีประโยชน์มาก มันกำหนดความซับซ้อนที่สัมพันธ์กับความครอบคลุม
NDepend ฉันใช้มันและดีที่สุดเพื่อจุดประสงค์นี้ ตรวจสอบสิ่งนี้: http://www.codeproject.com/KB/dotnet/NDepend.aspx
เกี่ยวกับเครื่องมือNDขึ้นอยู่กับ 82 รหัสเมตริกที่แตกต่างกันตั้งแต่จำนวนบรรทัดของรหัสไปจนถึงอันดับวิธีการ (ความนิยม) ความซับซ้อนของวงจรการขาดการเชื่อมโยงกันของวิธีการครอบคลุมเปอร์เซ็นต์ (สกัดจาก NCover หรือ VSTS) ความลึกของการสืบทอด .. .
ด้วยระบบกฎ NDepend ยังสามารถค้นหาปัญหาและประมาณการหนี้สินทางเทคนิคซึ่งเป็นโค้ดเมตริกที่น่าสนใจ (จำนวนความพยายามในการพัฒนาเพื่อแก้ไขปัญหาเทียบกับระยะเวลาในการพัฒนาที่เสียต่อปีเพื่อให้ปัญหาไม่คงที่)
หากคุณอยู่ในพื้นที่. NET Developer Express ' CodeRushจะให้ LOC, Cyclomatic Complexity และ (ค่อนข้างยอดเยี่ยม, IMHO) การวิเคราะห์ความซับซ้อนในการบำรุงรักษาของโค้ดแบบเรียลไทม์
(ขออภัยเกี่ยวกับลิงก์ความซับซ้อนในการบำรุงรักษาซึ่งจะไปที่แคชของ Google ต้นฉบับดูเหมือนจะเป็นตู้ ATM แบบออฟไลน์)
Atlassian FishEye เป็นอีกหนึ่งเครื่องมือที่ยอดเยี่ยมสำหรับงานนี้ มันทำงานร่วมกับระบบควบคุมแหล่งที่มาของคุณ (ปัจจุบันรองรับ CVS, SVN และ Perforce) และวิเคราะห์ไฟล์ทั้งหมดของคุณด้วยวิธีนั้น แม้ว่าการวิเคราะห์จะค่อนข้างพื้นฐานและผลิตภัณฑ์เองก็เป็นเชิงพาณิชย์ (แต่ราคาสมเหตุสมผลมาก IMO)
นอกจากนี้คุณยังสามารถรับส่วนเสริมที่เรียกว่า Crucible ซึ่งอำนวยความสะดวกในการตรวจสอบโค้ดแบบเพียร์
สำหรับ Visual Studio .NET (อย่างน้อย C # และ VB.NET) ฉันพบว่าStudioToolsฟรีมีประโยชน์อย่างยิ่งสำหรับเมตริก นอกจากนี้ยังเพิ่มจำนวนของคุณสมบัติที่พบในเครื่องมือเชิงพาณิชย์เช่นReSharper
Code Analyzerเป็นเครื่องมือง่ายๆที่สร้างเมตริกประเภทนี้
(ที่มา: teel.ws )
สำหรับ Python ไพลินท์สามารถให้เมตริกคุณภาพโค้ดได้
นอกจากนี้ยังมีปลั๊กอินโค้ดเมตริกสำหรับตัวสะท้อนแสงในกรณีที่คุณใช้. NET
ฉันอยากจะแนะนำCode Metrics Viewer Exentionสำหรับ Visual Studio
มันง่ายมากที่จะวิเคราะห์วิธีแก้ปัญหาในครั้งเดียวและทำการเปรียบเทียบหากคุณก้าวหน้า ;-)
ในหน้า PHP ฉันเชื่อว่าตัวอย่างเช่นphpUnderControlมีเมตริกผ่านphpUnit (ถ้าฉันจำไม่ผิด)
โปรดทราบว่าเมตริกมักมีข้อบกพร่อง ตัวอย่างเช่นผู้เขียนโค้ดที่กำลังแก้ไขปัญหาเล็กน้อยจะสร้างโค้ดได้มากขึ้นและจะดูดีกว่าบนกราฟของคุณมากกว่าผู้เขียนโค้ดที่เจาะประเด็นที่ซับซ้อน
หากคุณกำลังติดตามการวิเคราะห์แนวโน้มการวัดนอกเหนือจาก SLOC มีความหมายหรือไม่?
แม้ว่าคุณจะทำ grep สำหรับการลากเส้นกึ่งโคลอนและนับจำนวนบรรทัดที่ส่งคืนสิ่งที่คุณได้รับคือความสอดคล้องในเทคนิคการวัด SLOC ด้วยวิธีนี้สามารถเปรียบเทียบการวัดของวันนี้กับการวัดของเดือนที่แล้วได้อย่างมีความหมาย
ฉันไม่เห็นว่าแนวโน้มของ McCabe Cyclometric Complexity จะให้อะไร? ฉันคิดว่าควรใช้ CC มากขึ้นสำหรับภาพรวมของคุณภาพเพื่อให้ข้อเสนอแนะแก่นักพัฒนา
แก้ไข: Ooh. เพียงแค่นึกถึงการวัดอื่น ๆ ที่อาจเป็นประโยชน์ ความคิดเห็นเป็นเปอร์เซ็นต์ของ SLOC และความครอบคลุมการทดสอบ ซึ่งคุณไม่ต้องการปล่อยให้หลุดมือ การกลับมาติดตั้งใหม่ทั้งสองอย่างนี้ไม่เคยเทพเท่าการทำ "ในช่วงเวลาที่ร้อนแรง!"
HTH.
ไชโย
ปล้น
Scitools 'เข้าใจมีความสามารถในการสร้างเมตริกโค้ดจำนวนมากสำหรับคุณ ฉันไม่มีประสบการณ์เกี่ยวกับคุณสมบัติการวัดโค้ดมากนัก แต่คุณสมบัติการวิเคราะห์แบบคงที่โดยทั่วไปนั้นดีและราคาก็สมเหตุสมผลมาก การสนับสนุนทำได้ดีเยี่ยม
Project Code Meterให้รายงานประวัติการพัฒนาที่แตกต่างกัน (ในรูปแบบ Excel) ซึ่งจะแสดงเมตริกความคืบหน้าการเข้ารหัสของคุณใน SLOC เวลาและเปอร์เซ็นต์ผลผลิต (การประมาณเวลาขึ้นอยู่กับความซับซ้อนของวัฏจักรและเมตริกอื่น ๆ ) จากนั้นใน Excel คุณสามารถสร้างกราฟที่คุณต้องการได้อย่างง่ายดาย
ดูบทความนี้ซึ่งอธิบายทีละขั้นตอน: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
สำหรับ Java คุณสามารถลองใช้เครื่องมือของเราQualityGateที่คำนวณเมตริกซอร์สโค้ดมากกว่า 60 รายการติดตามการเปลี่ยนแปลงทั้งหมดตามเวลาและยังให้คะแนนโดยรวมสำหรับการบำรุงรักษาของซอร์สโค้ด