อะไรคือโมดูลในวิศวกรรมซอฟต์แวร์ [ปิด]


18

ตามที่สตีเฟ่น Schach "วิศวกรรมซอฟต์แวร์คลาสสิกและเชิงวัตถุ" บทที่ 6:

โมดูลประกอบด้วยบล็อกของรหัสเดียวที่สามารถเรียกใช้ในวิธีที่มีการเรียกใช้โพรซีเดอร์ฟังก์ชันหรือเมธอด

ดูเหมือนจะคลุมเครือและกว้างมาก ดังนั้นทุกคนสามารถอธิบายได้อย่างชัดเจนและแสดงตัวอย่างจริงของวิธีแบ่งข้อกำหนดเป็นโมดูล ขอบคุณ

คำตอบ:


16

โมดูล

  • ห่อหุ้มรหัสและข้อมูลเพื่อใช้งานฟังก์ชั่นเฉพาะ
  • มีอินเทอร์เฟซที่ช่วยให้ลูกค้าสามารถเข้าถึงฟังก์ชั่นของมันในลักษณะที่เหมือนกัน
  • สามารถเสียบเข้ากับโมดูลอื่นที่คาดว่าอินเทอร์เฟซของมันได้อย่างง่ายดาย
  • มักจะบรรจุในหน่วยเดียวเพื่อให้สามารถใช้งานได้ง่าย

ตัวอย่างเช่น dapper.net สรุปการเข้าถึงฐานข้อมูล มี API เพื่อเข้าถึงฟังก์ชันการทำงาน มันเป็นไฟล์เดียวที่สามารถเสียบในแผนผังต้นไม้ที่จะสร้าง

แนวคิดของโมดูลนั้นมาจากกระบวนทัศน์การเขียนโปรแกรมแบบแยกส่วนซึ่งสนับสนุนว่าซอฟต์แวร์ควรประกอบด้วยส่วนประกอบที่แยกเปลี่ยนได้ซึ่งเรียกกันว่าโมดูลโดยการแบ่งฟังก์ชันของโปรแกรมออกเป็นโมดูลแต่ละอันทำหน้าที่เดียวให้สำเร็จ


หากเรามีข้อกำหนดมากมายดังนั้นความต้องการแต่ละอย่างสามารถพิจารณาเป็นโมดูลได้หรือไม่ เช่น: ข้อกำหนด "การเพิ่มพนักงาน" สามารถเป็นโมดูลได้หรือไม่?
Hoan

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

12

โมดูลอาจเป็นคำที่ใช้เรียกมากเกินไปจนวิกิพีเดียอธิบายภายใต้คำว่าการเขียนโปรแกรม Modularเมื่อพูดถึงการใช้งานที่เกี่ยวข้องกับซอฟต์แวร์ พวกเขาพูดคุยกันในแง่ของการเขียนโปรแกรมโครงสร้างซึ่งอยู่บนพื้นฐานของวิธีการออกแบบจากบนลงล่าง ลักษณะที่สำคัญของต้นแบบเกี่ยวข้องกับการใช้ต่ำมีเพศสัมพันธ์สูงและการทำงานร่วมกัน

การใช้งานของฉันเป็นในภาษาเช่น C หรือแม้แต่ C ++ โมดูลที่เกี่ยวข้องกับการกำหนดหน่วยที่คอมไพล์แยกต่างหากจากไฟล์ต้นฉบับ (.c หรือ. cpp) และโดยทั่วไปหนึ่งไฟล์ส่วนหัวที่เกี่ยวข้อง (.h) ภาษาอื่น ๆ ใช้โมดูลเป็นคำอธิบายและภาษา Modula-2 วางโครงสร้างรอบ ๆ โมดูลด้านหน้าและกึ่งกลางในชื่อและวิธีการ

อดีตโมดูลมีผลกระทบอื่น ๆ บางอย่างเช่นเดียวกับที่อธิบายไว้ในDL Parnasกระดาษ"ในเกณฑ์ที่จะใช้ในการย่อยสลายซอฟแวร์เข้าสู่ Modules" เขาเกี่ยวข้องกับการพูดคุยถึงประโยชน์ของการแทนที่การสลายการทำงานด้วยการแยกย่อยข้อมูลเชิงซึ่งเป็นขั้นตอนใหญ่ต่อสถานะปัจจุบันของเราของศิลปะซึ่งเป็นการสลายเชิงวัตถุ

ภาษาเชิงวัตถุมีการจัดระเบียบในชั้นเรียนดังนั้นบางทีคำว่าโมดูลมีความสำคัญน้อยกว่าและแม่นยำน้อยกว่าในบริบทนั้น


7

ไม่มีคำจำกัดความที่เป็นทางการของโมดูลและโมดูลคืออะไร (หรือไม่มี) ในบริบทของโครงการของคุณส่วนใหญ่ขึ้นอยู่กับลักษณะและการออกแบบของโครงการ

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

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