เครื่องมือที่ใช้ในการออกแบบโปรแกรม

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

ความแตกต่างระหว่างเครื่องมือและแอปพลิเคชันนั้นมืดมน ตัวอย่างเช่นนักพัฒนาใช้ฐานข้อมูลอย่างง่าย (เช่นไฟล์ที่มีรายการค่าสำคัญ ) ตลอดเวลาเป็นเครื่องมือ [ พิรุธ - อภิปราย ]อย่างไรก็ตามฐานข้อมูลเต็มรูปแบบมักจะคิดว่าเป็นแอปพลิเคชันหรือซอฟต์แวร์ด้วยสิทธิ์ของตัวเอง เป็นเวลาหลายปีที่มีการแสวงหาเครื่องมือทางวิศวกรรมซอฟต์แวร์คอมพิวเตอร์ช่วย (CASE) เครื่องมือที่ประสบความสำเร็จได้รับการพิสูจน์แล้วว่าเข้าใจยาก ในแง่หนึ่งเครื่องมือ CASE เน้นการออกแบบและการสนับสนุนสถาปัตยกรรมเช่นสำหรับ UML แต่เครื่องมือเหล่านี้ที่ประสบความสำเร็จมากที่สุดคือ IDE

การใช้เครื่องมือการเขียนโปรแกรม

แปลจากภาษามนุษย์เป็นภาษาคอมพิวเตอร์

คอมพิวเตอร์สมัยใหม่มีความซับซ้อนมากและเพื่อให้สามารถตั้งโปรแกรมได้อย่างมีประสิทธิผลจำเป็นต้องใช้นามธรรมต่างๆ ตัวอย่างเช่นแทนที่จะเขียนการแสดงไบนารีของโปรแกรมโปรแกรมเมอร์จะเขียนโปรแกรมด้วยภาษาโปรแกรมเช่น C, Java หรือ Python Programming เครื่องมือเช่นประกอบ , คอมไพเลอร์และLinkersแปลโปรแกรมจากการเขียนสามารถและสามารถอ่านภาษาต้นฉบับของมนุษย์เข้าไปในบิตและไบต์ที่สามารถดำเนินการโดยคอมพิวเตอร์ ล่ามแปลโปรแกรมได้ทันทีเพื่อสร้างพฤติกรรมที่ต้องการ

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

ทำให้ข้อมูลโปรแกรมพร้อมใช้งานสำหรับมนุษย์

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

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

รายการเครื่องมือ

เครื่องมือซอฟต์แวร์มีหลายรูปแบบ:

  • เครื่องมือวิเคราะห์ความเข้ากันได้แบบไบนารี
  • ฐานข้อมูลข้อบกพร่อง : การเปรียบเทียบระบบติดตามปัญหา - รวมถึงระบบติดตามข้อบกพร่อง
  • เครื่องมือรูปร่าง: อัตโนมัติรูปร่าง , รายชื่อของซอฟต์แวร์สร้างระบบอัตโนมัติ
  • โทรกราฟ
  • ครอบคลุมรหัส : รหัสคุ้มครอง # เครื่องมือคุ้มครองรหัสซอฟแวร์
  • การตรวจสอบโค้ด : รายการเครื่องมือสำหรับการตรวจสอบโค้ด
  • รหัสเว็บไซต์แบ่งปัน: Freshmeat , Krugle , Sourceforge , GitHubดูเพิ่มเติมรหัสเครื่องมือค้นหา
  • เครื่องมือรวบรวมและเชื่อมโยง : GNU toolchain , gcc , Microsoft Visual Studio , CodeWarrior , Xcode , ICC
  • Debuggers : Debugger # List of debuggers . ดูการแก้จุดบกพร่องด้วย
  • Disassemblers : โดยทั่วไปแล้วเครื่องมือวิศวกรรมย้อนกลับ
  • เครื่องกำเนิดเอกสาร : การเปรียบเทียบเครื่องกำเนิดเอกสาร , help2man, เอกสารเก่าธรรมดา , asciidoc
  • วิธีการที่เป็นทางการ : เทคนิคทางคณิตศาสตร์สำหรับข้อกำหนดการพัฒนาและการตรวจสอบ
  • เครื่องกำเนิดอินเทอร์เฟซ GUI
  • เครื่องกำเนิดอินเทอร์เฟซไลบรารี: SWIG
  • เครื่องมือบูรณาการ
  • ตัวดีบักหน่วยความจำมักใช้ในภาษาโปรแกรม (เช่นCและC ++ ) ที่อนุญาตให้จัดการหน่วยความจำแบบแมนนวลและอาจเกิดการรั่วไหลของหน่วยความจำและปัญหาอื่น ๆ นอกจากนี้ยังมีประโยชน์ในการเพิ่มประสิทธิภาพการใช้งานหน่วยความจำ ตัวอย่าง: dmalloc , Electric Fence , Insure ++ , Valgrind
  • Parser Generators : Parsing # Parser development software
  • การวิเคราะห์ประสิทธิภาพหรือการจัดทำโปรไฟล์: รายการเครื่องมือวิเคราะห์ประสิทธิภาพ
  • การควบคุมการแก้ไข : รายการของซอฟแวร์ควบคุมการแก้ไข , การเปรียบเทียบการควบคุมการแก้ไขซอฟต์แวร์
  • ภาษาสคริปต์ : PHP , Awk , Perl , Python , REXX , Ruby , Shell , Tcl
  • ค้นหา: grep , ค้นหา
  • ซอร์สโค้ด Clones / Duplications การค้นหา: Duplicate code # Tools
  • ตัวแก้ไขซอร์สโค้ด
    • แก้ไขข้อความ : รายการของการแก้ไขข้อความ , การเปรียบเทียบการแก้ไขข้อความ
  • การจัดรูปแบบซอร์สโค้ด : เยื้อง , เครื่องพิมพ์สวย , เครื่องตกแต่ง , ตัวย่อ
  • เครื่องมือสร้างซอร์สโค้ด : การเขียนโปรแกรมอัตโนมัติ # การใช้งาน
  • การวิเคราะห์รหัส Static : ผ้าสำลี , รายการของเครื่องมือสำหรับการวิเคราะห์รหัสคงที่
  • การทดสอบหน่วย: รายการกรอบการทดสอบหน่วย

IDE

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

แง่มุมต่างๆของ IDE สำหรับภาษาโปรแกรมเฉพาะสามารถพบได้ในการเปรียบเทียบสภาพแวดล้อมการพัฒนาแบบบูรณาการนี้

ดูสิ่งนี้ด้วย

  • เครื่องมือทางวิศวกรรมซอฟต์แวร์คอมพิวเตอร์ช่วย
  • วิทยาศาสตร์คอมพิวเตอร์
  • ระบบกำหนดค่า
  • ภาษาสคริปต์
  • ชุดพัฒนาซอฟต์แวร์
  • วิศวกรรมซอฟต์แวร์และรายการหัวข้อวิศวกรรมซอฟต์แวร์
  • ระบบซอฟต์แวร์
  • ชุดเครื่องมือสำหรับนวัตกรรมของผู้ใช้

อ้างอิง

  • เครื่องมือพัฒนาซอฟต์แวร์สำหรับ Petascale Computing Workshop 2007
  • Kernighan, Brian W. ; Plauger, PJ (1976), Software Tools , Addison-Wesley, หน้า  352 , ISBN 0-201-03669-X

ลิงก์ภายนอก

เครื่องมือที่ใช้ในการออกแบบโปรแกรม
สื่อที่เกี่ยวข้องกับเครื่องมือการเขียนโปรแกรมที่ Wikimedia Commons