อ่าน 6 นาที
การเชื่อมต่อ (การเขียนโปรแกรมคอมพิวเตอร์)
ในวิศวกรรม ซอฟต์แวร์ การเชื่อมโยง คือระดับความสัมพันธ์ระหว่าง โมดูล ซอฟต์แวร์ ซึ่งเป็นการวัดว่ารูทีนหรือโมดูลสองโมดูลเชื่อมต่อกันอย่างใกล้ชิดเพียงใด [ 1 ]...
การเชื่อมต่อ (การเขียนโปรแกรมคอมพิวเตอร์)
ในวิศวกรรมซอฟต์แวร์การเชื่อมโยงคือระดับความสัมพันธ์ระหว่างโมดูล ซอฟต์แวร์ ซึ่งเป็นการวัดว่ารูทีนหรือโมดูลสองโมดูลเชื่อมต่อกันอย่างใกล้ชิดเพียงใด[ 1 ]และความแข็งแกร่งของความสัมพันธ์ระหว่างโมดูล[ 2 ]การเชื่อมโยงไม่ใช่แบบไบนารี แต่เป็นแบบหลายมิติ[ 3 ]

โดยทั่วไป แล้ว การเชื่อมโยงมักถูกเปรียบเทียบกับการเกาะกลุ่มการเชื่อมโยงต่ำมักสัมพันธ์กับการเกาะกลุ่มสูง และในทางกลับกัน การเชื่อมโยงต่ำมักถูกมองว่าเป็นสัญญาณของระบบคอมพิวเตอร์ ที่มีโครงสร้างที่ดี และการออกแบบที่ดี และเมื่อรวมกับการเกาะกลุ่มสูง จะช่วยสนับสนุนเป้าหมายทั่วไปของความสามารถในการอ่านและการบำรุงรักษาที่ สูง [ 4 ]
ประวัติศาสตร์
ตัวชี้วัดคุณภาพซอฟต์แวร์ของการเชื่อมโยงและการประสานกันถูกคิดค้นโดยLarry Constantineในช่วงปลายทศวรรษ 1960 ซึ่งเป็นส่วนหนึ่งของการออกแบบเชิงโครงสร้างโดยอิงจากลักษณะของแนวทางการเขียนโปรแกรมที่ดีที่ช่วยลดต้นทุนการบำรุงรักษาและการแก้ไข การออกแบบเชิงโครงสร้าง รวมถึงการประสานกันและการเชื่อมโยงกัน ได้รับการตีพิมพ์ในบทความStevens, Myers & Constantine (1974) [ 5 ]และหนังสือYourdon & Constantine (1979) [ 6 ]และต่อมาได้กลายเป็นคำศัพท์มาตรฐาน
การจับคู่กับความสมานฉันท์
การเชื่อมโยง (Coupling) และความสอดคล้อง (Cohesion)เป็นคำที่มักใช้ร่วมกัน การเชื่อมโยงหมายถึงความสัมพันธ์ระหว่างโมดูลต่างๆ ในขณะที่ความสอดคล้องอธิบายถึงความสัมพันธ์ของฟังก์ชันต่างๆ ภายในโมดูลเดียว ความสอดคล้องต่ำหมายความว่าโมดูลนั้นๆ ทำงานที่ไม่เกี่ยวข้องกันมากนัก และอาจก่อให้เกิดปัญหาเมื่อโมดูลนั้นมีขนาดใหญ่ขึ้น
ระดับ

การเชื่อมต่ออาจเป็น "ต่ำ" (หรือ " หลวม " และ "อ่อนแอ") หรือ "สูง" (หรือ "แน่น" และ "แข็งแรง") ประเภทของการเชื่อมต่อบางประเภท เรียงลำดับจากสูงที่สุดไปต่ำที่สุด มีดังนี้:
การเขียนโปรแกรมเชิงขั้นตอน
ในที่นี้ โมดูลหมายถึงซับรูทีนทุกประเภท กล่าวคือ ชุดคำสั่งตั้งแต่หนึ่งคำสั่งขึ้นไปที่มีชื่อ และโดยเฉพาะอย่างยิ่งควรมีชุดชื่อตัวแปรเป็นของตนเอง
- การเชื่อมโยงเนื้อหา (สูง)
- การเชื่อมโยงเนื้อหา (Content coupling) เกิดขึ้นเมื่อโมดูลหนึ่งใช้โค้ดของอีกโมดูลหนึ่ง เช่น การใช้เงื่อนไขการแตกสาขา (branch) ซึ่งเป็นการละเมิดหลักการซ่อนข้อมูล (Information hiding ) ซึ่งเป็นแนวคิดพื้นฐานในการออกแบบซอฟต์แวร์
- การเชื่อมต่อทั่วไป
- การเชื่อมโยงแบบทั่วไป (Common coupling) เกิดขึ้นเมื่อโมดูลหลายโมดูลเข้าถึงข้อมูลส่วนกลางเดียวกัน ซึ่งอาจนำไปสู่การแพร่กระจายข้อผิดพลาดที่ควบคุมไม่ได้และผลข้างเคียงที่ไม่คาดคิดเมื่อมีการเปลี่ยนแปลงเกิดขึ้น
- การเชื่อมต่อภายนอก
- การเชื่อมต่อภายนอกเกิดขึ้นเมื่อโมดูลสองโมดูลใช้รูปแบบข้อมูลโปรโตคอลการสื่อสารหรืออินเทอร์เฟซอุปกรณ์ที่กำหนดจากภายนอกร่วมกัน ซึ่งโดยพื้นฐานแล้วเกี่ยวข้องกับการสื่อสารกับเครื่องมือและอุปกรณ์ภายนอก
- การเชื่อมต่อควบคุม
- การเชื่อมต่อแบบควบคุม คือ โมดูลหนึ่งควบคุมการไหลของอีกโมดูลหนึ่ง โดยการส่งข้อมูลเกี่ยวกับสิ่งที่ต้องทำ (เช่น การส่งสัญญาณบ่งชี้สิ่งที่ต้องทำ)
- การเชื่อมต่อแสตมป์ (การเชื่อมต่อโครงสร้างข้อมูล)
- Stamp coupling เกิดขึ้นเมื่อโมดูลต่างๆ ใช้โครงสร้างข้อมูล แบบผสมร่วมกัน และใช้เพียงบางส่วนของโครงสร้างนั้น ซึ่งอาจเป็นส่วนที่แตกต่างกัน (เช่น การส่งเรคอร์ดทั้งหมดไปยังฟังก์ชันที่ต้องการเพียงฟิลด์เดียว)
- ในสถานการณ์นี้ การแก้ไขในฟิลด์ที่โมดูลไม่ต้องการอาจนำไปสู่การเปลี่ยนแปลงวิธีการที่โมดูลอ่านเรคอร์ด เพื่อแสดงให้เห็นถึงแนวคิดของ stamp coupling ลองพิจารณาสถานการณ์ที่เกี่ยวข้องกับ
UserProfileคอมโพเนนต์ คอมโพเนนต์นี้ได้รับการออกแบบมาเพื่อส่งคืนข้อมูลโปรไฟล์ผู้ใช้ทั้งหมดเพื่อตอบสนองต่อคำขอแม้ว่าผู้บริโภค จะต้องการเพียง แอตทริบิวต์เฉพาะก็ตาม การปฏิบัตินี้เป็นตัวอย่างของ stamp coupling ซึ่งอาจนำไปสู่ ปัญหา แบนด์วิดท์ ที่สำคัญ โดยเฉพาะอย่างยิ่งในระดับใหญ่ เมื่อแอตทริบิวต์ใด ๆ ภายในUserProfileคอมโพเนนต์เปลี่ยนแปลง ผู้บริโภคทั้งหมดที่โต้ตอบกับคอมโพเนนต์นั้นอาจต้องผ่านการทดสอบแม้ว่าพวกเขาจะไม่ได้ใช้แอตทริบิวต์ที่แก้ไขแล้วก็ตาม[ 7 ] - การเชื่อมโยงข้อมูล
- การเชื่อมโยงข้อมูลเกิดขึ้นเมื่อโมดูลต่างๆ แบ่งปันข้อมูลผ่านทางพารามิเตอร์ ตัวอย่างเช่น ข้อมูลแต่ละส่วนเป็นชิ้นส่วนพื้นฐาน และเป็นข้อมูลเพียงอย่างเดียวที่ใช้ร่วมกัน (เช่น การส่งค่าจำนวนเต็มไปยังฟังก์ชันที่คำนวณรากที่สอง)
การเขียนโปรแกรมเชิงวัตถุ
- การเชื่อมโยงคลาสย่อย
- อธิบายถึงความสัมพันธ์ระหว่างเด็กกับผู้ปกครอง เด็กมีความผูกพันกับผู้ปกครอง แต่ผู้ปกครองไม่มีความผูกพันกับเด็ก
- การเชื่อมโยงเชิงเวลา
- นั่นคือการนำสองการกระทำมารวมเข้าไว้ในโมดูลเดียวกัน เพียงเพราะว่าการกระทำทั้งสองเกิดขึ้นในเวลาเดียวกัน
ในงานล่าสุด มีการศึกษาแนวคิดการเชื่อมต่ออื่นๆ ที่หลากหลายและนำมาใช้เป็นตัวบ่งชี้สำหรับหลักการโมดูลาร์ที่แตกต่างกันซึ่งใช้ในทางปฏิบัติ[ 8 ]
การเชื่อมต่อแบบไดนามิก
เป้าหมายของการกำหนดและวัดการเชื่อมโยงประเภทนี้คือการประเมินระบบซอฟต์แวร์ แบบเรียลไทม์ มีการโต้แย้งว่าเมตริกการเชื่อมโยงแบบคงที่สูญเสียความแม่นยำเมื่อต้องรับมือกับการใช้การผูกแบบไดนามิกหรือการสืบทอดอย่างเข้มข้น[ 9 ]ในความพยายามที่จะแก้ไขปัญหานี้ ได้มีการนำมาตรวัดการเชื่อมโยงแบบไดนามิกมาพิจารณา
การเชื่อมโยงเชิงความหมาย
ตัวชี้วัดการเชื่อมโยงประเภทนี้พิจารณาความคล้ายคลึงกันเชิงแนวคิดระหว่างส่วนประกอบซอฟต์แวร์โดยใช้ตัวอย่างเช่น ความคิดเห็นและตัวระบุ และอาศัยเทคนิคต่างๆ เช่นการจัดทำดัชนีความหมายแฝง (LSI)
การเชื่อมโยงเชิงตรรกะ
การวิเคราะห์การเชื่อมโยงเชิงตรรกะ (หรือการเชื่อมโยงเชิงวิวัฒนาการ หรือการเชื่อมโยงการเปลี่ยนแปลง) ใช้ประโยชน์จากประวัติการเผยแพร่ของระบบซอฟต์แวร์เพื่อค้นหารูปแบบการเปลี่ยนแปลงระหว่างโมดูลหรือคลาสต่างๆ เช่น เอนทิตีที่มีแนวโน้มที่จะเปลี่ยนแปลงพร้อมกัน หรือลำดับของการเปลี่ยนแปลง (การเปลี่ยนแปลงในคลาส A มักตามมาด้วยการเปลี่ยนแปลงในคลาส B เสมอ)
มิติของการเชื่อมต่อ
ตามที่เกรเกอร์ โฮปเปกล่าวไว้ การเชื่อมโยงมีหลายมิติ: [ 3 ]
- การพึ่งพาเทคโนโลยี
- การพึ่งพาตำแหน่งที่ตั้ง
- การพึ่งพาเชิงโทโพโลยี
- รูปแบบข้อมูลและการพึ่งพาประเภทข้อมูล
- การพึ่งพาความหมาย
- การพึ่งพาการสนทนา
- การพึ่งพาของลำดับ
- การพึ่งพาเชิงเวลา
ข้อเสียของการเชื่อมต่อที่แน่นหนา
ระบบที่มีการเชื่อมโยงกันอย่างแน่นหนา มักแสดงลักษณะการพัฒนาต่อไปนี้ ซึ่งมักถูกมองว่าเป็นข้อเสีย:
- การเปลี่ยนแปลงในโมดูลหนึ่งมักจะส่งผลให้เกิดการเปลี่ยนแปลงในโมดูลอื่นๆ ตามมา
- การประกอบโมดูลอาจต้องใช้ความพยายามและ/หรือเวลามากขึ้น เนื่องจากความสัมพันธ์ระหว่างโมดูลที่เพิ่มขึ้น
- โมดูลบางส่วนอาจนำกลับมาใช้ซ้ำและ/หรือทดสอบได้ยากกว่า เนื่องจากต้องรวมโมดูลที่เกี่ยวข้องเข้าไปด้วย
ปัญหาด้านประสิทธิภาพ
ไม่ว่าระบบจะมีการเชื่อมต่อแบบหลวมหรือแน่น ประสิทธิภาพของระบบมักจะลดลงเนื่องจากการสร้าง การส่ง การแปลง (เช่น การจัดเรียงข้อมูล) และการตีความข้อความ (ซึ่งอาจเป็นการอ้างอิงถึงสตริง อาร์เรย์ หรือโครงสร้างข้อมูล) ซึ่งต้องใช้ทรัพยากรน้อยกว่าการสร้างข้อความที่ซับซ้อน เช่น ข้อความ SOAPข้อความที่ยาวกว่าต้องการ CPU และหน่วยความจำมากขึ้นในการสร้าง เพื่อเพิ่มประสิทธิภาพการทำงานในขณะรันไทม์ ความยาวของข้อความต้องลดลงให้เหลือน้อยที่สุด และความหมายของข้อความต้องเพิ่มขึ้นให้มากที่สุด
- ค่าใช้จ่ายและประสิทธิภาพในการส่งข้อความ
- เนื่องจากข้อความต้องถูกส่งอย่างครบถ้วนเพื่อรักษาความหมายที่สมบูรณ์ การส่งข้อความจึงต้องได้รับการปรับให้เหมาะสม ข้อความที่ยาวขึ้นต้องการ CPU และหน่วยความจำมากขึ้นในการส่งและรับ นอกจากนี้ เมื่อจำเป็น ผู้รับจะต้องประกอบข้อความกลับคืนสู่สถานะเดิมเพื่อรับข้อความได้อย่างสมบูรณ์ ดังนั้น เพื่อเพิ่มประสิทธิภาพการทำงาน ข้อความต้องมีความยาวน้อยที่สุดและความหมายของข้อความต้องมากที่สุด
- ค่าใช้จ่ายและประสิทธิภาพในการแปลข้อความ
- โปรโตคอลการส่งข้อความและตัวข้อความเองมักมีข้อมูลเพิ่มเติม (เช่น ข้อมูลแพ็กเก็ต โครงสร้าง คำจำกัดความ และภาษา) ดังนั้น ผู้รับจึงมักต้องแปลข้อความให้เป็นรูปแบบที่ละเอียดขึ้นโดยการลบอักขระและข้อมูลโครงสร้างส่วนเกิน และ/หรือโดยการแปลงค่าจากประเภทหนึ่งไปเป็นอีกประเภทหนึ่ง การแปลใดๆ ก็ตามจะเพิ่มภาระการทำงานของ CPU และ/หรือหน่วยความจำ เพื่อเพิ่มประสิทธิภาพการทำงานในขณะรันไทม์ รูปแบบและเนื้อหาของข้อความต้องได้รับการลดทอนและปรับปรุงให้ละเอียดขึ้นเพื่อเพิ่มความหมายและลดการแปล
- ค่าใช้จ่ายในการตีความข้อความและประสิทธิภาพ
- ข้อความทั้งหมดจะต้องได้รับการตีความโดยผู้รับ ข้อความง่ายๆ เช่น จำนวนเต็ม อาจไม่จำเป็นต้องมีการประมวลผลเพิ่มเติมเพื่อการตีความ อย่างไรก็ตาม ข้อความที่ซับซ้อน เช่น ข้อความ SOAPจำเป็นต้องมีตัวแยกวิเคราะห์และตัวแปลงสตริงเพื่อให้แสดงความหมายที่ต้องการ เพื่อเพิ่มประสิทธิภาพการทำงาน ข้อความจะต้องได้รับการปรับปรุงและลดขนาดเพื่อลดภาระการตีความให้น้อยที่สุด
โซลูชัน
แนวทางหนึ่งในการลดการเชื่อมโยงคือการออกแบบเชิงฟังก์ชันซึ่งพยายามจำกัดความรับผิดชอบของโมดูลตามฟังก์ชันการทำงาน การเชื่อมโยงจะเพิ่มขึ้นระหว่างสองคลาสAหากB:
Aมีแอตทริบิวต์ที่อ้างอิงถึง (เป็นประเภทB)ABเรียกใช้ บริการของวัตถุAมีเมธอดที่อ้างอิงB(ผ่านประเภทการส่งคืนหรือพารามิเตอร์)Aเป็นคลาสย่อยของ (หรือใช้งานแทน)Bคลาส
การเชื่อมโยงต่ำ (Low coupling) หมายถึงความสัมพันธ์ที่โมดูลหนึ่งโต้ตอบกับอีกโมดูลหนึ่งผ่านอินเทอร์เฟซที่เรียบง่ายและเสถียร และไม่จำเป็นต้องกังวลเกี่ยวกับการใช้งานภายในของโมดูลอื่น (ดูการซ่อนข้อมูล (Information Hiding ))
ระบบต่างๆ เช่นCORBAหรือCOMช่วยให้วัตถุสามารถสื่อสารกันได้โดยไม่ต้องรู้รายละเอียดเกี่ยวกับการใช้งานภายในของวัตถุอื่น ระบบทั้งสองนี้ยังช่วยให้วัตถุสามารถสื่อสารกับวัตถุที่เขียนด้วยภาษาอื่นๆ ได้อีกด้วย
การจับคู่กับการเกิด
การเชื่อมโยง (Coupling) อธิบายถึงระดับและลักษณะของการพึ่งพาอาศัยกันระหว่างส่วนประกอบซอฟต์แวร์ โดยมุ่งเน้นที่สิ่งที่ส่วนประกอบเหล่านั้นมีร่วมกัน (เช่น ข้อมูล การควบคุมการไหล เทคโนโลยี) และความแน่นแฟ้นของการเชื่อมโยงนั้น การประเมินจะพิจารณาสองมิติหลัก ได้แก่ ความแข็งแกร่ง ซึ่งวัดว่าการเปลี่ยนแปลงการพึ่งพาอาศัยกันนั้นยากเพียงใด และขอบเขต (หรือการมองเห็น) ซึ่งบ่งชี้ว่าการพึ่งพาอาศัยกันนั้นถูกเปิดเผยอย่างกว้างขวางเพียงใดในโมดูลหรือขอบเขตต่างๆ ประเภทของการเชื่อมโยงแบบดั้งเดิมโดยทั่วไป ได้แก่ การเชื่อมโยงเนื้อหา การเชื่อมโยงทั่วไป การเชื่อมโยงการควบคุม การเชื่อมโยงแสตมป์ การเชื่อมโยงภายนอก และการเชื่อมโยงข้อมูล[ 10 ] [ 11 ] [ 12 ]
Connascenceซึ่งนำเสนอโดย Meilir Page-Jones เป็นกรอบการทำงานที่เป็นระบบสำหรับการวิเคราะห์และวัดการพึ่งพาของการเชื่อมโยง โดยจะประเมินการพึ่งพาตามสามมิติ ได้แก่ ความแข็งแกร่ง ซึ่งวัดความพยายามที่จำเป็นในการปรับโครงสร้างใหม่หรือแก้ไขการพึ่งพา ความใกล้เคียง ซึ่งพิจารณาว่าส่วนประกอบที่พึ่งพาอยู่ใกล้กันทางกายภาพหรือทางตรรกะในโค้ดเบสมากน้อยเพียงใด และระดับ ซึ่งวัดจำนวนส่วนประกอบที่ได้รับผลกระทบจากการพึ่งพา Connascence สามารถแบ่งออกเป็นแบบคงที่ (ตรวจจับได้ในระหว่างการคอมไพล์) และแบบไดนามิก (ตรวจจับได้ในระหว่างการทำงาน) Connascence แบบคงที่หมายถึงการพึ่งพาในระหว่างการคอมไพล์ เช่น ลายเซ็นของเมธอด ในขณะที่ Connascence แบบไดนามิกหมายถึงการพึ่งพาในระหว่างการทำงาน ซึ่งอาจปรากฏในรูปแบบต่างๆ เช่น connascence ของเวลา ค่า หรืออัลกอริทึม[ 10 ] [ 11 ] [ 12 ]
แต่ละรูปแบบของการเชื่อมต่อสามารถแสดงความสัมพันธ์ได้หลายประเภท ประเภทเฉพาะ หรือในบางกรณีอาจไม่มีเลย ขึ้นอยู่กับวิธีการนำการพึ่งพาไปใช้ ประเภทของความสัมพันธ์ที่พบได้ทั่วไป ได้แก่ ความสัมพันธ์ของชื่อ ประเภท ตำแหน่ง และความหมาย การเชื่อมต่อบางประเภทจะสอดคล้องกับประเภทของความสัมพันธ์ที่เฉพาะเจาะจงโดยธรรมชาติ ตัวอย่างเช่น การเชื่อมต่อข้อมูลมักเกี่ยวข้องกับความสัมพันธ์ของชื่อหรือประเภท อย่างไรก็ตาม ไม่ใช่ทุกการรวมกันของการเชื่อมต่อและความสัมพันธ์จะมีความหมายในทางปฏิบัติ การพึ่งพาที่อาศัยลำดับพารามิเตอร์ในลายเซ็นของเมธอดแสดงให้เห็นถึงความสัมพันธ์ของตำแหน่ง ซึ่งเปราะบางและยากต่อการปรับโครงสร้างใหม่ เนื่องจากการจัดลำดับพารามิเตอร์ใหม่จะทำให้ส่วนต่อประสานเสียหาย ในทางตรงกันข้าม ความสัมพันธ์ของชื่อ ซึ่งอาศัยชื่อฟิลด์หรือพารามิเตอร์ โดยทั่วไปแล้วจะมีความยืดหยุ่นต่อการเปลี่ยนแปลงมากกว่า ประเภทของความสัมพันธ์เองก็แสดงลำดับชั้นของความแข็งแกร่งตามธรรมชาติ โดยความสัมพันธ์ของชื่อมักถือว่าอ่อนแอกว่าความสัมพันธ์ของความหมาย[ 10 ] [ 11 ] [ 12 ]
การพึ่งพาที่ครอบคลุมขอบเขตของโมดูลหรือระบบกระจายมักมีต้นทุนการประสานงานที่สูงขึ้น ทำให้การปรับโครงสร้างใหม่และการเผยแพร่การเปลี่ยนแปลงข้ามขอบเขตที่ห่างไกลทำได้ยากขึ้น แนวปฏิบัติสมัยใหม่ เช่นการฉีดการพึ่งพาและการเขียนโปรแกรมตามอินเทอร์เฟซ มักถูกนำมาใช้เพื่อลดความแข็งแกร่งของการเชื่อมโยงและปรับปรุงความสามารถในการบำรุงรักษาการพึ่งพา[ 10 ] [ 11 ] [ 12 ]
ในขณะที่ coupling ระบุสิ่งที่ใช้ร่วมกันระหว่างส่วนประกอบต่างๆ connascence จะประเมินว่าการพึ่งพาเหล่านั้นมีพฤติกรรมอย่างไร การเปลี่ยนแปลงแพร่กระจายอย่างไร และยากต่อการปรับโครงสร้างใหม่เพียงใด ความแข็งแกร่ง ความใกล้เคียง และระดับมีความสัมพันธ์กัน การพึ่งพาที่มีความแข็งแกร่งสูง ขอบเขตกว้าง และครอบคลุมขอบเขตที่ห่างไกล จะยากต่อการปรับโครงสร้างใหม่และบำรุงรักษาอย่างมาก โดยรวมแล้ว coupling ให้ภาพรวมระดับสูงของความสัมพันธ์ของการพึ่งพา ในขณะที่ connascence นำเสนอเฟรมเวิร์กแบบละเอียดสำหรับการวิเคราะห์ความแข็งแกร่ง ความใกล้เคียง ระดับ และความยืดหยุ่นต่อการเปลี่ยนแปลงของการพึ่งพา ซึ่งสนับสนุนการออกแบบระบบที่บำรุงรักษาได้และแข็งแกร่ง[ 10 ] [ 11 ] [ 12 ]
การเชื่อมต่อโมดูล
การเชื่อมโยงในวิศวกรรมซอฟต์แวร์[ 13 ]อธิบายเวอร์ชันของเมตริกที่เกี่ยวข้องกับแนวคิดนี้
สำหรับการเชื่อมโยงการไหลของข้อมูลและการควบคุม:
- จำนวนพารามิเตอร์ข้อมูลป้อนเข้า
- จำนวนพารามิเตอร์ควบคุมอินพุต
- จำนวนพารามิเตอร์ข้อมูลเอาต์พุต
- จำนวนพารามิเตอร์ควบคุมเอาต์พุต
สำหรับการเชื่อมต่อทั่วโลก:
- จำนวนตัวแปรทั่วโลกที่ใช้เป็นข้อมูล
- จำนวนตัวแปรทั่วโลกที่ใช้เป็นตัวควบคุม
สำหรับการเชื่อมโยงด้านสิ่งแวดล้อม:
- จำนวนโมดูลที่ถูกเรียก (fan-out)
- : จำนวนโมดูลที่เรียกใช้โมดูลที่กำลังพิจารณาอยู่ (fan-in)
Coupling(C)ยิ่งโมดูลมีการเชื่อมต่อกันมากเท่าไร ค่าก็จะยิ่งมากขึ้นเท่านั้น โดยค่านี้จะอยู่ในช่วงประมาณ 0.67 (การเชื่อมต่อต่ำ) ถึง 1.0 (การเชื่อมต่อสูง)
ตัวอย่างเช่น หากโมดูลมีพารามิเตอร์ข้อมูลอินพุตและเอาต์พุตเพียงตัวเดียว
ถ้าโมดูลมีพารามิเตอร์ข้อมูลขาเข้าและขาออก 5 ตัว พารามิเตอร์ควบคุมจำนวนเท่ากัน และเข้าถึงข้อมูลส่วนกลาง 10 รายการ โดยมี fan-in 3 ตัว และ fan-out 4 ตัว
ดูเพิ่มเติม
- ความมีสติ (วิทยาการคอมพิวเตอร์)
- การเชื่อมโยง (ฟิสิกส์)
- การกำจัดโค้ดที่ไม่ได้ใช้งาน
- นรกแห่งการพึ่งพา
- การเชื่อมต่อแบบส่งออก
- การกลับด้านการควบคุม
- รายการคำศัพท์เกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ
- การเชื่อมต่อแบบหลวม
- สร้าง (ซอฟต์แวร์)
- การวิเคราะห์โค้ดแบบคงที่
อ่านเพิ่มเติม
- Myers, Glenford J. (1974). ซอฟต์แวร์ที่เชื่อถือได้ผ่านการออกแบบเชิงประกอบ . นิวยอร์ก: สำนักพิมพ์ Mason and Lipscomb.
- Offutt, A. Jefferson; Harrold, Mary Jean ; Kolte, Priyadarshan (มีนาคม 1993). "ระบบเมตริกซอฟต์แวร์สำหรับการเชื่อมต่อโมดูล". วารสารระบบและซอฟต์แวร์ 20 ( 3): 295– 308. doi : 10.1016/0164-1212(93)90072-6 .
- Page-Jones, Meilir (1980). คู่มือปฏิบัติสำหรับการออกแบบระบบที่มีโครงสร้าง . นิวยอร์ก: Yourdon Press. ISBN 978-8-12031482-5.
- พจนานุกรมศัพท์วิศวกรรมซอฟต์แวร์ฉบับมาตรฐานนิวยอร์ก: IEEE 1990 ISBN 0-7381-0391-8610.12_1990.
- "หลักสูตรสำหรับผู้เชี่ยวชาญด้านสถาปัตยกรรมซอฟต์แวร์ที่ได้รับการรับรอง (CPSA) - ระดับพื้นฐาน" (PDF) . 3.01. คณะกรรมการรับรองคุณสมบัติสถาปัตยกรรมซอฟต์แวร์ระหว่างประเทศ eV (ISAQB). 15 พฤษภาคม 2015 [2009]. เก็บถาวรจากต้นฉบับ(PDF)เมื่อ 29 มีนาคม 2017. สืบค้นเมื่อ23 มิถุนายน 2019 .[1] เก็บถาวรเมื่อ 2016-02-22 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเชื่อมต่อ (การเขียนโปรแกรมคอมพิวเตอร์)
ในวิศวกรรม ซอฟต์แวร์ การเชื่อมโยง คือระดับความสัมพันธ์ระหว่าง โมดูล ซอฟต์แวร์ ซึ่งเป็นการวัดว่ารูทีนหรือโมดูลสองโมดูลเชื่อมต่อกันอย่างใกล้ชิดเพียงใด [ 1 ]...
ประวัติศาสตร์
ตัวชี้วัดคุณภาพซอฟต์แวร์ ของการเชื่อมโยงและการประสานกันถูกคิดค้นโดย Larry Constantine ในช่วงปลายทศวรรษ 1960 ซึ่งเป็นส่วนหนึ่งของ การออกแบบเชิงโครงสร้าง โดยอิงจากลักษณะของแนวทางการเขียนโปรแกรมที่ดีที่ช่วยลดต้นทุนการบำรุงรักษาและการแก้ไข การออกแบบเชิงโครงสร้าง...
การจับคู่กับความสมานฉันท์
การเชื่อมโยง (Coupling) และ ความสอดคล้อง (Cohesion) เป็นคำที่มักใช้ร่วมกัน การเชื่อมโยงหมายถึงความสัมพันธ์ระหว่างโมดูลต่างๆ ในขณะที่ความสอดคล้องอธิบายถึงความสัมพันธ์ของฟังก์ชันต่างๆ ภายในโมดูลเดียว ความสอดคล้องต่ำหมายความว่าโมดูลนั้นๆ...
การเขียนโปรแกรมเชิงขั้นตอน
ในที่นี้ โมดูลหมายถึงซับรูทีนทุกประเภท กล่าวคือ ชุดคำสั่งตั้งแต่หนึ่งคำสั่งขึ้นไปที่มีชื่อ และโดยเฉพาะอย่างยิ่งควรมีชุดชื่อตัวแปรเป็นของตนเอง