การวัดความยืดหยุ่นของซอฟต์แวร์เป็นอย่างไร?


21

ฉันถูกขอให้นำเสนอทางเทคนิคเล็กน้อยเกี่ยวกับความยืดหยุ่นในการใช้งานเฉพาะ แอพพลิเคชั่นนี้พัฒนาขึ้นโดยใช้ Java, Spring MVC, Hibernate ฉันมีสิทธิ์เข้าถึงซอร์สโค้ดของแอปพลิเคชัน

ฉันจะวัดความสามารถในการปรับขนาดซอฟต์แวร์ (โดยใช้แหล่งที่มา) และตัวชี้วัดใดที่ฉันต้องดูแลเมื่อวัดความสามารถในการปรับขนาดซอฟต์แวร์ได้อย่างไร

คำตอบ:


8

ฉันจะเริ่มต้นด้วยการอ่านบทความ Wikipediaเกี่ยวกับเรื่องนี้

ในระยะสั้นการปรับขยายเป็นวิธีการทำงานของระบบเติบโตขึ้นกับการเพิ่มทรัพยากรมากขึ้นหรือหรือวิธีการใช้ทรัพยากรที่เติบโตขึ้นกับภาระที่เพิ่มขึ้น ตัวอย่างเช่นไซต์ของคุณสามารถจัดการผู้ใช้พร้อมกันได้กี่คนจนกว่าเวลาตอบสนองจะเพิ่มขึ้นเกิน 0.3 วินาที คำถามเดียวกันหลังจากที่คุณเพิ่ม RAM / ดิสก์ / CPU / etc เป็นสองเท่า คุณอาจใช้ความรู้เกี่ยวกับแอปพลิเคชันภายในเพื่อตัดสินใจว่าควรตรวจสอบพารามิเตอร์ใดบ้าง

ติดตั้งเครื่องทดสอบกับเครื่องเซิร์ฟเวอร์และเครื่องไคลเอนต์หนึ่งเครื่องขึ้นไป ใช้เครื่องมือบางอย่างเพื่อ จำกัด ปริมาณทรัพยากรที่มีให้กับเซิร์ฟเวอร์ (เช่นulimit) หรือเรียกใช้แอปพลิเคชันที่รบกวนบางอย่างบนเซิร์ฟเวอร์ วัดว่าเซิร์ฟเวอร์จัดการกับคำขอของลูกค้าอย่างไร ทำซ้ำข้างต้นค่อยๆเพิ่ม / ลดการแทรกแซงทรัพยากร / ทรัพยากรที่มีอยู่ ในตอนท้ายคุณจะได้พื้นที่ n-มิติพร้อมจุดในนั้น อาจง่ายกว่าที่จะเปลี่ยนเพียงหนึ่งพารามิเตอร์ในแต่ละครั้งในขณะที่แก้ไขพารามิเตอร์อื่น ๆ ทั้งหมดด้วยค่าปกติบางอย่าง (หรือสองค่า) ในกรณีนี้คุณสามารถแสดงผลลัพธ์เป็นกราฟสองมิติที่มีประสิทธิภาพเซิร์ฟเวอร์ (เช่นจำนวนผู้ใช้ / คำขอ) ในแกนหนึ่งและการใช้ทรัพยากร / ความพร้อมใช้งานในอีกด้านหนึ่ง

มีสถานการณ์ที่ซับซ้อนมากขึ้นที่แอปพลิเคชันของคุณใช้เซิร์ฟเวอร์หลายตัวสำหรับหลาย ๆ ส่วนของแอปพลิเคชันและคุณสามารถเปลี่ยนแปลงจำนวนและอัตราส่วนได้ แต่ฉันคิดว่าไม่ใช่กรณีของคุณ อย่างมากที่สุดคุณอาจต้องการเปลี่ยนแปลงจำนวนเธรด / กระบวนการหากมีความสำคัญ

หากคุณวัดแอปพลิเคชันทั้งหมดโดยปกติคุณไม่จำเป็นต้องเข้าถึงซอร์สโค้ด อย่างไรก็ตามคุณอาจสนใจในการวัดบางส่วนของรหัส (เช่นเฉพาะ DB หรือ UI) จากนั้นคุณสามารถใช้ซอร์สโค้ดเพื่อเปิดเผยเฉพาะโมดูลนี้สำหรับการวัดและเรียกใช้การทดสอบของคุณ นี้เรียกว่าmicrobenchmark

หากคุณกำลังมองหาตัวอย่างมีบทความมากมายในบทความทางวิชาการ ค้นหา google scholar เพื่อประเมินประสิทธิภาพ + คำที่คุณต้องการ


1

ความสามารถในการขยายตัวไม่ใช่คุณสมบัติเชิงปริมาณสำหรับการใช้งานจริง

ในแง่การปฏิบัติความสามารถในการปรับขยายนั้นเกี่ยวกับความสามารถในการรองรับปริมาณงานที่เพิ่มขึ้นในมิติต่างๆ

ในการเริ่มต้นด้วยแอปพลิเคชันจะรองรับปริมาณงานที่เพิ่มขึ้นด้วยทรัพยากรฮาร์ดแวร์ที่มีอยู่ แต่มีจุดต่าง ๆ ที่คุณขีด จำกัด เช่นจำนวนหน่วยความจำจำนวนคอร์ความขัดแย้งในโครงสร้างข้อมูลปริมาณงานฐานข้อมูลและอื่น ๆ ทุกครั้งที่คุณมีขีด จำกัด คุณต้องใช้แนวทางที่แตกต่างเพื่อรองรับปริมาณงานที่เพิ่มขึ้น ความสามารถในการปรับขนาดนั้นเป็นเรื่องเกี่ยวกับระยะเวลาที่คุณสามารถเพิ่มปริมาณงานก่อนที่จะถึงขีด จำกัด ที่ผ่านไม่ได้หรือคุณต้องทำการออกแบบใหม่ครั้งใหญ่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.