Results 1 to 5 of 5

Thread: การสร้างโปรแกรมโดยปราศจาก Bug

  1. #1
    Junior Member
    Join Date
    Jun 2007
    Posts
    12


    มันคงเป็นได้ยากที่จะทำให้โปรแกรมที่เราสร้างขึ้นมานั้นไม่มี Bug เลย เพราะว่า Bug กับ Software นี้เป็นของคู่กันที่มี software ก็ต้องมี bug อย่างแยกกันไม่ออก แต่โอกาสที่ไม่มี Bug ก็มีได้หรือว่ามี Bugs น้อยที่สุดก็ขึ้นอยู่กับปัจจัยดังกล่าวต่อไปนี้

    ขนาดของ Project

    ขนาดของ Project นั้นค่อนข้างที่เกี่ยวข้องกับ Bugs ของ Program โดยตรงเพราะว่ายิ่งขนาดของ Project ยิ่งใหญ่การที่เราจะทำการตรวจสอบในทุกกระบวนการไม่ให้มีข้อผิดพลาดหรือว่าตกหล่นนั้นเป็นไปได้ยากซึ่งต่อให้เราใช้ Tool ต่างๆเข้ามาช่วยในการ Testing ที่ใช้ในการ Test ในส่วนต่างๆแล้วก็อาจจะยังมีการหลุดลอดของแมลงตัวน้อย (Bugs) ได้ และต่อให้เป็น Project ที่มีขนาดเล็กแล้วใช้ว่าจะไม่มี Bugs เสมอไปเพราะว่ายังขึ้นอยู่กับระดับความยากของ Business ด้วยยกตัวอย่างเช่น Business ที่เกี่ยวกับคิด ดอกเบี้ย ซึ่งอัตราดอกเบี้ยนั้นผันผวนอยู่ตลอดเวลาทำให้ช่วงเวลานี้คิดดอกเบี้ยอย่างหนึ่งอีกช่วงหนึ่งคิดอีกอย่างหนึ่ง หรือการคิดดอกเบี้ยที่มีการใช้ Tree เข้ามาเกี่ยวข้อง เช่น การคิดดอกเบี้ยของธุรกิจพวกสินค้าขายตรง

    ระยะเวลา

    ระยะเวลานี่เป็นปัจจัยสำคัญเลยว่า Bugs จะเกิดขึ้นมากน้อยแค่ไหนเพราะว่าต่อให้เป็น Project ที่มีขนาดไม่ใหญ่มากแต่ถ้าให้เวลาน้อยก็ทำให้ต้องเร่งทำให้ทัน ทำให้บางครั้งความเร่งรีบทำให้อาจจะมองข้ามสิ่งสำคัญไปทำให้เกิด Bugs ได้ง่ายขึ้น

    ภาษาที่ใช้

    ภาษาที่ใช้ในการเขียน Software นี่เป็นส่วนสำคัญมากเพราะว่าบางภาษานั้นอาจจะเอื้ออำนวยให้เกิด Bugs ได้ง่ายๆ ยกตัวอย่างเช่น ภาษาที่มีลักษณะที่เป็น Dynamic คือไม่ Strong Type ทำให้ Variable ที่ประกาศขึ้นนั้นสามารถเป็น Type ชนิดอะไรก็ได้ทำให้มีโอกาสที่จะเกิด Error Type Conversion ได้สูงถ้าหากไม่มีการจัดการที่ดี หรือว่าภาษาที่ต้องมีการจัดการกับหน่วยความจำเอง เช่น ภาษา C ที่เราต้องไป allocation memory และ ปลดปล่อยมันเองซึ่งถ้าหากโปรแกรมเมอร์เป็นคนจัดการเองแล้วลืมที่จะปลดปล่อยออกมา อาจจะทำให้เกิด memory leaks ได้ หรือว่าอาจจะไม่ได้เกิดจากการ Coding ก็ได้อาจจะเกิดจาก Bugs ของการ Compile หรือ Interpreter ของตัวภาษาเองก็ได้ซึ่งต้องศึกษาในแต่ละตัวภาษาที่จะเลือกใช้ว่ามีความเสถียรขนาดไหน

    ขั้นตอนของ SDLC

    ขั้นตอนของการทำ SDLC เป็นการบริการจัดการการผลิต Software นั้นถือว่าสำคัญมากเพราะว่าหากผิดพลาดในขั้นตอนใดอาจจะมีผลกระทบส่งมายังขั้นตอนอื่นๆได้ดังนั้นถ้าหากว่ามีการจัดการใน SDLC ที่ดีจะช่วยทำให้ Bugs นั้นสามารถลดลงได้เป็นอย่างมากซึ่ง SDLC จะแบ่งเป็น 7 ขั้นตอนย่อยๆดังนี้

    1. Planning - establishing the plans for creating an information system
    2. Analysis - IT specialists collaborate to collect, comprehend, and logistically formalize business requirements
    3. Design - this is where the technical blueprint of the system is created
    4. Development - executing the design into a physical system
    5. Testing - testing the developed system
    6. Deployment - the systems are placed and used in the actual workforce
    7. Maintenance - keeping the system up to date with the changes in the organization and ensuring it meets the goals of the organization

    ซึ่งในตามหลักในการเจอ Bugs ที่พบกันบ่อยๆนั้นมักจะพบอยู่ในช่วงของ Analysis มากที่สุดเพราะว่าเป็นช่วงของการเก็บ Requirement ซึ่งการที่จะเก็บข้อมูลให้ครบทุกส่วนหรือว่าถูกต้องตามใจลูกค้านั้นค่อนข้างจะเป็นไปได้ยากเนื่องจากว่าลูกค้าในบางองค์กรนั้นไม่มีความรู้เรื่องของ IT เลยทำให้การไปเก็บ Requirement และการสื่อสารเพื่อทำความเข้าใจกับลูกค้าว่าสิ่งที่ลูกค้าต้องการจริงๆนั้นคืออะไรจึงเป็นไปได้ยากดังนั้น Bugs มากกว่าครึ่งจึงมักจะเกิดจากการเก็บ Requirement ที่ผิดพลาดทำให้มันลามไปยังส่วนอื่นๆอีกเช่น Design, Development, … ซึ่งการเจอ Bugs ในช่วงหลังๆแล้วจะทำให้การแก้ Bugs ยิ่งมีมูลค่าสูงขึ้น ยกตัวอย่างเช่น การแก้ functional ของ Software ที่เกิดจากการที่เข้าใจผิดมาจากการเก็บ Requirement การแก้นั้นอาจจะไปกระทบในตัว Coding ของหลายๆส่วนทำให้ต้องแก้ functional หลายระบบในส่วนที่กระทบกัน ซึ่งบางครั้งการ Design ในตอนแรกอาจจะต้องเปลี่ยนใหม่เพื่อให้รองรับกับการเลี่ยนแปลง functional

    ซึ่งจากหัวข้อด้านบนที่กล่าวมานั้นเป็นความคิดส่วนตัวของผมเท่านั้นซึ่งในการผลิต Software ที่ไม่มี Bug นั้นอาจจะจำเป็นต้องมี Environment มากกว่านี้เพื่อที่จะได้มาซึ่ง Software ที่มี Bugs น้อยที่สุด ยกตัวอย่างเช่น Software ที่นำมาใช้ในการ Testing ระบบการติดตามการเกิด Bugs (Bugtracking software) หรือว่าในกรณีที่มีการทำงานเป็นทีมต้องมีเครื่องมือในการควบคุม source code (source control) หรือกลวิธีในการ Test ระบบตั้งแต่การ Test loading การ Test Functional หรือ Test ลงในตัว source code (Software peer review) และอื่นๆอีกมากมาย

    ซึ่งถ้าให้ถามผมว่าเคยเขียน Program (เน้นคำว่า Program ไม่ใช่ Software) ที่ไม่มี Bugs ไหมคำตอบคือเคยและคาดว่าทุกคนคงเคยเขียนมาแล้วนั้นก็คือ Program Hello World ถ้าใครเขียนมาแล้วมี Bugs นี่ก็คงแปลกแล้ว



    ปล.1 ลองไปอ่านเพิ่มเติมเกี่ยวกับเรื่องพวกนี้ตาม reference ข้างล่างนี้

    ปล.2 ส่วนหนึ่งของเนื้อหาที่เขียนขึ้นมาได้นั้นเอามาจากอาจารย์ในชั้นวิชาเรียน

    http://stackoverflow.com/questions/115528/...s-possible-bugs

    http://my.opera.com/dparnell/blog/show.dml/23784

    ไม่ขอ Hide แล้วกันเพราะผมคิดว่ามันไม่ได้เป็นบทความที่ผมคิดเองนะแต่เป็นบทความที่ผมฟังจากอาจารย์แล้วมาเขียนอีกทีซึ่งบทความนี้มาจาก blog ผมนะแต่ไ่่ม่ต้องไป serach หาหรอกว่า blog ผม url อะไรเพราะว่ายังคง search ไม่เจอเพราะว่ายังไม่ผ่าน sandbox เลย TT แต่ไม่ขอใส่ url ของ blog ผมนะเพราะว่าไม่ต้องการที่จะมาโฆษณา

  2. #2
    Junior Member
    Join Date
    Feb 2009
    Posts
    0


    i need translate..

  3. #3
    Junior Member
    Join Date
    Feb 2009
    Location
    bangkok
    Posts
    25


    แนะนำอีกแนวทางในการแก้ปัญหา bugs ล่ะกันครับ
    คือ การใช้ pair programming หรือการเขียนโปรแกรมด้วยโปรแกรมเมอร์ 2 คน ในคอมพิวเตอร์เพียงเครื่องเดียว
    การสร้าง software ด้วยวิธีนี้จะช่วยในการลด bugs ที่เกิดขึ้นในส่วนของการ code
    วิธีการก็คือให้โปรแกรมเมอร์คนนึงเป็นคน code และให้อีกคนเป็นคนตรวจสอบไปด้วยพร้อมๆกัน
    การ pair programming ในเป็น 1 ในการวิธีการพัฒนา software แบบ extreme programming ซึ่งเป็นการพัฒนา software ที่พยายามลดขั้นตอนของการสร้าง ส่ง หรืออะไรก็แล้วแต่กับ เอกสาร ซึ่งเป็นสื่งที่ programmer ส่วนใหญ่ไม่ค่อยชอบกันนัก(ผมก็เป็น 1 ในนั้น) ลองใช่ดูล่ะกันคับ ผลเป็นยังไงก็บอกกันด้วยล่ะ

  4. #4
    Junior Member
    Join Date
    Apr 2009
    Posts
    29


    เอ่อ โปรแกรมตัวนี้เปรียบได้ว่าเป็นโปรแกรมเมอร์คนที่สองคอยตรวจสอบงั้นหรอครับ แล้วตัวเราก็เป็นโปรแกรมเมอร์คนที่1คอยพัฒนาอยู่งเดียวรึเปล่าถ้าอย่างนั้น มันก็ไม่ต่างจากการคอมไพลไฟล์เลยนิครับ

  5. #5
    Junior Member
    Join Date
    Feb 2009
    Location
    bangkok
    Posts
    25


    ต่างกันนะครับ programmer 2 คนจะสามารถตรวจสอบ logical error ได้ซึ่งการใช้คอมไพเลอร์นั้นไม่สามารถทำได้
    อธืบาย logical error ดังนี้ล่ะกันครับ

    **Hidden Content: To see this hidden content your post count must be 1 or greater.**

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •