คุณสมบัติผลิตภัณฑ์ภายใน
แอตทริบิวต์ผลิตภัณฑ์ภายในอธิบายผลิตภัณฑ์ซอฟต์แวร์ในลักษณะที่ขึ้นอยู่กับผลิตภัณฑ์เท่านั้น เหตุผลหลักในการวัดคุณลักษณะภายในของผลิตภัณฑ์คือจะช่วยตรวจสอบและควบคุมผลิตภัณฑ์ระหว่างการพัฒนา
การวัดคุณสมบัติภายในของผลิตภัณฑ์
คุณลักษณะหลักภายในของผลิตภัณฑ์ ได้แก่ size และ structure. ขนาดสามารถวัดได้แบบคงที่โดยไม่ต้องดำเนินการ ขนาดของผลิตภัณฑ์บอกเราเกี่ยวกับความพยายามที่จำเป็นในการสร้างมันขึ้นมา ในทำนองเดียวกันโครงสร้างของผลิตภัณฑ์มีบทบาทสำคัญในการออกแบบการบำรุงรักษาผลิตภัณฑ์
การวัดขนาด
ขนาดซอฟต์แวร์สามารถอธิบายได้ด้วยคุณสมบัติสามประการ -
Length - เป็นขนาดทางกายภาพของผลิตภัณฑ์
Functionality - อธิบายถึงฟังก์ชั่นที่ผลิตภัณฑ์จัดหาให้กับผู้ใช้
Complexity - ความซับซ้อนเป็นประเภทต่างๆเช่น.
Problem complexity - วัดความซับซ้อนของปัญหาพื้นฐาน
Algorithmic complexity - วัดความซับซ้อนของอัลกอริทึมที่ใช้ในการแก้ปัญหา
Structural complexity - วัดโครงสร้างของซอฟต์แวร์ที่ใช้ในการใช้อัลกอริทึม
Cognitive complexity - วัดความพยายามที่จำเป็นในการทำความเข้าใจซอฟต์แวร์
การวัดคุณสมบัติทั้งสามนี้สามารถอธิบายได้ดังนี้ -
ความยาว
มีผลิตภัณฑ์เพื่อการพัฒนาสามประเภทที่การวัดขนาดมีประโยชน์สำหรับการคาดการณ์ความพยายามที่จำเป็นสำหรับการทำนาย เป็นข้อกำหนดการออกแบบและรหัส
ข้อกำหนดและการออกแบบ
เอกสารเหล่านี้มักจะรวมข้อความกราฟและแผนภาพและสัญลักษณ์พิเศษทางคณิตศาสตร์ การวัดข้อมูลจำเพาะสามารถใช้เพื่อทำนายความยาวของการออกแบบซึ่งจะเป็นตัวทำนายความยาวของรหัส
ไดอะแกรมในเอกสารมีไวยากรณ์ที่เหมือนกันเช่นไดกราฟที่มีป้ายกำกับแผนภาพกระแสข้อมูลหรือแผนภาพ Z เนื่องจากเอกสารข้อกำหนดและการออกแบบประกอบด้วยข้อความและแผนภาพจึงสามารถวัดความยาวได้ในรูปของตัวเลขคู่หนึ่งที่แสดงความยาวของข้อความและความยาวของแผนภาพ
สำหรับการวัดเหล่านี้จะต้องกำหนดวัตถุปรมาณูสำหรับแผนภาพและสัญลักษณ์ประเภทต่างๆ
ออบเจ็กต์อะตอมสำหรับแผนภาพกระแสข้อมูลคือกระบวนการเอนทิตีภายนอกที่เก็บข้อมูลและโฟลว์ข้อมูล เอนทิตีอะตอมสำหรับข้อกำหนดเกี่ยวกับพีชคณิตคือประเภทฟังก์ชันการดำเนินการและสัจพจน์ เอนทิตีอะตอมสำหรับ Z schemas คือบรรทัดต่างๆที่ปรากฏในข้อกำหนด
รหัส
รหัสสามารถสร้างได้หลายวิธีเช่นภาษาขั้นตอนการวางแนววัตถุและการเขียนโปรแกรมด้วยภาพ การวัดความยาวของโปรแกรมซอร์สโค้ดแบบดั้งเดิมที่ใช้บ่อยที่สุดคือ Lines of code (LOC)
ความยาวทั้งหมด
LOC = NCLOC + CLOC
กล่าวคือ
LOC = Non-commented LOC + Commented LOC
นอกเหนือจากบรรทัดของรหัสแล้วทางเลือกอื่น ๆ เช่นขนาดและความซับซ้อนที่แนะนำโดย Maurice Halsted ยังสามารถใช้ในการวัดความยาวได้อีกด้วย
วิทยาศาสตร์ซอฟต์แวร์ของ Halstead พยายามที่จะจับคุณลักษณะต่างๆของโปรแกรม เขาเสนอคุณลักษณะของโปรแกรมภายในสามอย่างเช่นความยาวคำศัพท์และระดับเสียงที่สะท้อนมุมมองที่แตกต่างกันของขนาด
เขาเริ่มต้นด้วยการกำหนดโปรแกรม Pเป็นคอลเลกชันของโทเค็นจำแนกตามตัวดำเนินการหรือตัวถูกดำเนินการ เมตริกพื้นฐานสำหรับโทเค็นเหล่านี้คือ
μ1 = จำนวนตัวดำเนินการที่ไม่ซ้ำกัน
μ2 = จำนวนตัวถูกดำเนินการที่ไม่ซ้ำกัน
N1 = จำนวนรวมของตัวดำเนินการ
N2 = จำนวนตัวดำเนินการที่ไม่ซ้ำกัน
ความยาว P สามารถกำหนดเป็น
$$ N = N_ {1} + N_ {2} $$
คำศัพท์ของ P คือ
$$ \ mu = \ mu _ {1} + \ mu _ {2} $$
ปริมาณของโปรแกรม = จำนวนการเปรียบเทียบทางจิตที่จำเป็นในการเขียนโปรแกรมความยาว N, คือ
$$ V = N \ times {log_ {2}} \ mu $$
ระดับโปรแกรมของโปรแกรม P ของปริมาตร V คือ,
$$ L = \ frac {V ^ \ ast} {V} $$
โดยที่ $ V ^ \ ast $ คือปริมาตรที่เป็นไปได้กล่าวคือปริมาตรของการใช้งานขนาดต่ำสุดของ P
ผกผันของระดับคือความยาก -
$$ D = 1 \ diagup L $$
ตามทฤษฎี Halstead เราสามารถคำนวณค่าประมาณได้ L เช่น
$$ {L} '= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$
ในทำนองเดียวกันความยาวของโปรแกรมโดยประมาณคือ $ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $
ความพยายามที่ต้องใช้ในการสร้าง P นั้นได้มาจาก
$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$
ที่หน่วยวัด E การเลือกปฏิบัติทางจิตเบื้องต้นที่จำเป็นในการทำความเข้าใจ P
ทางเลือกอื่นสำหรับการวัดความยาวคือ -
ในแง่ของจำนวนไบต์ของที่เก็บข้อมูลคอมพิวเตอร์ที่จำเป็นสำหรับข้อความโปรแกรม
ในแง่ของจำนวนอักขระในข้อความโปรแกรม
การพัฒนาเชิงวัตถุแนะนำวิธีใหม่ในการวัดความยาว Pfleeger และคณะ พบว่าจำนวนของวัตถุและวิธีการทำให้ประมาณการผลผลิตได้แม่นยำกว่าการใช้รหัสบรรทัด
ฟังก์ชันการทำงาน
จำนวนฟังก์ชันการทำงานที่มีอยู่ในผลิตภัณฑ์ทำให้สามารถวัดขนาดผลิตภัณฑ์ได้ มีวิธีการต่างๆมากมายในการวัดการทำงานของผลิตภัณฑ์ซอฟต์แวร์ เราจะพูดถึงวิธีการหนึ่งดังกล่าว─วิธี Function Point ของ Albrecht ─ในบทถัดไป