วันพุธที่ 25 กรกฎาคม พ.ศ. 2555

บทที่1 SE

บทที่ 1
1.             จงยกตัวอย่างของผลกระทบของซอฟต์แวร์ ทั้งทางด้านบวกและลบที่มีต่อสังคม
มีผลกระทบทั้งในด้านบวกและลบ  เช่น
-                   มีการปรับปรุงคุณภาพชีวิตที่ดีขึ้น  ผู้คนสามารถสั่งซื้อสินค้าและบริการต่าง ๆ   แบบ Online ได้ โดยไม่ต้องเดินทางออกจากบ้าน  ไม่ต้องวุ่นวายกับสภาพการจราจรและประหยัดเวลาได้มาก
-                   ในเรื่องการดูแลสุขภาพ ( Health Care) มีการปรับปรุงโดยนำเทคโนโลยีมาใช้มากขึ้น
-                   มีแนวโน้มจะใช้ Robots  มากขึ้น
-                   มีการก่ออาชญากรรมด้านคอมพิวเตอร์มากขึ้น  ผู้คนบนโลก Cyber ขาดจริยธรรม  และความมีน้ำใจของผู้คนก็อาจลดลงในขณะที่ความเห็นแก่ตัวมีมากขึ้น
-                   คนถูกลดความสามารถลง    และมีซอฟต์แวร์คอมพิวเตอร์เข้ามาทำงานแทนที่   ลดอัตราการจ้างงานเนื่องจากเจ้าของกิจการลงทุนในเครื่องจักรแทนการทำงานด้วยคน
2.             จงอธิบายเกี่ยวกับ Software Crisis ตามความเข้าใจของนักศึกษา
Software Crisis หรือแปลตรงตัวก็คือ วิกฤตการณ์ซอฟต์แวร์ ซึ่งเป็นเหตุการณ์ที่บริษัทพัฒนาซอฟต์แวร์มากมายพัฒนาโปรแกรมขึ้นมาได้อย่างไม่มีคุณภาพ โปรแกรมเสร็จจริง แต่มีปัญหาใช้ไม่ได้ มีข้อผิดพลาดมากมาย ดังนั้นเพื่อให้เกิดคุณภาพจึงได้มีการนำหลักการของ Engineering ซึ่งมีทั้งการหลักการของการวิเคราะห์และออกแบบเข้ามาประยุกต์กับ Software จึงทำให้เกิดศาสตร์ทางด้าน Software Engineering ขึ้นมา
3.             จงยกตัวอย่างซอฟต์แวร์ที่นักศึกษาว่าเป็นซอฟต์แวร์ที่มีคุณภาพ แล้วนำมาวิเคราะห์หาคุณลักษณะของซอฟต์แวร์ที่ดี ว่าตรงตามคุณลักษณะใดบ้าง
                  1. การบำรุงรักษาไฟล์ที่ใช้งานของโปรแกรม Microsoft office นั้น เมื่อมีการปรับปรุงและเปลี่ยนแปลงของโปรแกรม ไฟล์งานเดิมจากรุ่นเก่ายังจะสามารถใช้งานได้อยู่
                  2. ความสามารถในการพึ่งพา ความน่าเชื่อMicrosoft Office เป็นที่เป็นที่นิยมเป็นอย่างมาก เนื่องมาจากเสถียรภาพของโปรแกรมนั้นมีประสิทธิภาพ และมาตรฐานการทำงานที่สูง มีความน่าเชื่อน้อยมากที่จะเกิดความผิดพลาดในการทำงาน
                  3. ความสามารถด้านประสิทธิภาพ Microsoft Office เป็นโปรแกรมที่ได้รับการยอมรับในประสิทธิภาพการทำงาน เนื่องจากส่วนติต่อกับผู้ใช้ที่(User Interface) ใช้งานง่าย ตรงตามความต้องการของผู้ใช้ และการใช้งานทรัพยากรทางด้าน Hardware ไม่สูงมากทำให้ประหยัดทรัพยากรการทำงาน
                  4. ความสามารถในการใช้งานส่วนติดต่อกับผู้ใช้ง่ายต่อการใช้งานตรงตามความต้องการของผู้ใช้สามารถศึกษาการใช้งานได้ด้วยตนเอ
4.             นักศึกษาคิดว่า นักวิศวกรซอฟต์แวร์ควรมีทักษะความรู้ ความเชี่ยวชาญในด้านใดบ้าง จงอธิบาย
-                   ต้องมีความสามารถในการเขียน และอ่านแบบจำลองของโปรแกรม เพื่อให้สามารถเข้าใจการทำงานของระบบ
-                   ต้องมีความสามารถ และทักษะในการเขียนโปรแกรมมากกว่า 1 ภาษา
-                   ต้องมีความรับผิดชอบ และเคารพในสิทธิทางปัญญาของผู้อื่น และใช้ความรู้ความสามารถในทางที่ถูกต้องตามจริยธรรมคอมพิวเตอร์ของนักวิศวกรรมซอฟต์แวร์
-                   นักวิศวกรรมซอฟต์แวร์ต้องเคารพและทำตามประมวลจริยธรรมพื้นฐานของนักวิศวกรรมซอฟต์แวร์




สรุปบทที่ 1
Software Cost
        การใช้งานซอฟต์แวร์ที่มีลิขสิทธิ์นั้นมีต้นทุนค่าใช้จ่ายที่แพงกว่าฮาร์ดแวร์
        1. ต้นทุนหรือค่าใช้จ่ายในการปรับเปลี่ยน บำรุงรักษาซอฟต์แวร์จะเท่ากับหรือใกล้เคียงกับต้นทุน
            ของฮาร์ดแวร์
        2. ต้นทุนในการบำรุงรักษาซอฟต์แวร์จะมีค่ามากกว่าการพัฒนาซอฟต์แวร์ขึ้นมาใหม่
        3. นักวิศวกรรมซอฟต์แวร์จะต้องมีการวิเคราะห์ และพิจารณาในการบำรุงรักษา หรือปรับเปลี่ยน
            ระบบโดยพิจารณาจากต้นทุนเป็นหลัก
ซอฟต์แวร์ คืออะไร ?
        1. ซอฟต์แวร์ คือ ชุดคำสั่งที่ใช้ในการควบคุมการทำงานของคอมพิวเตอร์ หรือเอกสารประกอบ
        2. ซอฟต์แวร์ คือ โปรแกรมคอมพิวเตอร์ และเอกสารประกอบ
        ซอฟต์แวร์ที่ ผลิตขึ้นมี 2 ลักษณะ คือ
                1. พัฒนาขึ้นเพื่อใช้งานภาพในองค์กร
                2. พัฒนาขึ้นเพื่อจำหน่ายในเชิงพาณิชย์
Software Engineering ?
         คือ การนำหลักการทางวิศวกรรมมาใช้กับทุกขั้นตอนของการของการพัฒนาซอฟต์แวร์ ตั้งแต่ก่อนพัฒนา จนได้ซอฟต์แวร์
         ความท้าทายทางด้านวิศวกรรมซอฟต์แวร์
                  1.Legacy การพัฒนาโปรแกรมใหม่ให้สามารถทำงานร่วมกับโปรแกรมเดิมได้
                  2.Heterogeneity ความไม่เข้ากันของฮาร์ดแวร์และซอฟต์แวร์
                  3. Delivery ความจำกัดด้านเวลา ความผิดพลาดในเรื่องของเวลา


ความแตกต่างของ Computer Science และ Software Engineering
         1. Computer Science จะเน้นทางด้านทฤษฎี หลักการความรู้พื้นฐานที่จะเป็นต่อการนำไปประยุกต์
             ใช้ในชีวิตประจำวัน
         2. Software Engineering จะเน้นการปฎิบัติจริงโดยนำ ทฤษฎีของ Computer Science  มาใช้ในทุก
             ขั้นตอนของการผลิตซอฟต์แวร์

ความแตกต่างระหว่าง System Engineering และ Software Engineering
         - System Engineering จะเกี่ยวข้องกับทุกๆ ขั้นตอนของการพัฒนาระบบ ทั้งด้าน ฮาร์ดแวร์ ซอฟต์แวร์ และโพรเสซ
         - System Engineering จะเกี่ยวข้องกับการกำหนดรายละเอียดของระบบ การออกแบบระบบทางด้านสถาปัตยกรรม การรวมระบบและพัฒนา

Software Process คือ กระบวนการที่พัฒนาซอฟต์แวร์ให้ประสบความสำเร็จ แบ่งออกเป็น 4 ขั้นตอน
        1. Specification การกำหนดความต้องการของระบบ โดยสอบถามจาก User
        2.Development การพัฒนาระบบ รวมถึงการออกแบบระบบ
        3.Validation การทวนสอบ คือขั้นตอนของการทดสอบการทำงานของระบบว่าตรงตามความ
            ต้องการของผู้ใช้งานหรือไม่
        4. Evolution การปรับปรุงระบบ ในอนาคตเมื่อความต้องการในการใช้งานระบบเปลี่ยนไป จะต้อง
            ทำงานปรับปรุงระบบให้ตรงกับความต้องการที่เปลี่ยนไปด้วย

Software Process Model คือ แบบจำลองในการพัฒนาซอฟต์แวร์ มีอยู่ 3 มุมมอง(แบบ)
        1. Workflow มุมมองเน้นกิจกรรมของโปรแกรม นิยมเขียนด้วย Flowchart
        2.Data-Flow มุมมองเกี่ยวข้องกับข้อมูลเป็นหลัก นิยมเขียนด้วย Data flow Diagram
        3.Role/Action มุมมองที่ให้คววามสำคัญว่าใครทำอะไร นิยมเขียนด้วย User case Diagram
       แบบจำรองทั่วๆไป

CASE (Computer-Aided Software Engineering) คือ ซอฟต์แวร์ที่พัฒนาขึ้นมาเพื่อใช้สร้างซอฟต์แวร์
       - Upper-CASEขั้นตอนการพัฒนาในช่วงแรก เครื่องมือที่ใช้ เช่น MS-Project, Visio, E-Draw
       -Lower-CASEขั้นตอนการเขียนโปรแกรม การทดสอบ เครื่องมือที่ใช้ เช่น MS-Studio, Eclipse,
          Edit Plus


คุณสมบัติของซอฟต์แวร์ที่ดี
       1.Maintainability ต้องมีความสามารถในการบำรุงรักษา จะต้องมีการเปลี่ยนแปลงเพื่อตอบสนองต่อ
           ความต้องการของผู้ใช้ที่เปลี่ยนแปลงไป การเปลี่ยนแปลงจะต้องไม่ส่งผลกระทบต่อการทำงาน
           ของระบบ
       2.Dependability ความสามารถในการพึ่งพา ความน่าเชื่อถือ ต้องผ่านการตรวจสอบในทุกฟังก์ชัน
       3. Efficiency ความสามารถในด้านประสิทธิภาพ เช่น ประหยัดทรัพยากรของเครื่อง
       4. Usability ความสามารภในการใช้งาน เช่น ความสะดวก ความปลอดภัย สามารถเรียนรู้การใช้งาน
           ได้เร็ว

ความรับผิดชอบทางจริยธรรมของนักวิศวกรรมซอฟต์แวร์
        1. ความลับ นักวิศวกรรมซอฟต์แวร์ จะต้องรักษาความลับของลูกค้าและนายจ้างแม้จะไม่มีการลง
            นามเป็นรายลักษณ์อักษร
        2. ความสามารถ ไม่อวดความสามารถที่ไม่เป้นจริงและไม่ควรรับงานที่ไม่ถนัด
        3. เคารพสิทธิทางปัญญา จะต้องระมัดระวังไม่ละเมิดกฎหมาย
        4. ไม่ควรใช้ความถนัดทางด้านเทคนิคการใช้งานคอมพิวเตอร์ ผิดวัตถุประสงค์ เช่น ปล่อยไวรัส

ACM ได้ร่วมมีกับ IEEE กำหนด Code of Ethics ขึ้น ซึ่งก็คือประมวลเบื้องจ้นที่นักวิศวกรรมซอฟต์แวร์ต้องปฎิบัติร่วมกัน มีทั้งหมด 8 ข้อ
         1. Public จะต้องทำหน้าที่โดยคำนึงถึงผลประโยชน์ส่วนรวมด้วย
         2.Client and Employer ต้องคำนึงถึงความต้องการของลูกค้าและนายจ้าง
         3.Product จะต้องผลิตผลงานด้วยมาตรฐานสูงสุดตามหลักวิชาการ
         4.Judgment ต้องตัดสินใจได้อย่างอิสละ และเป็นตัวของตัวเอง
         5.Management หากนักวิศวกรรมซอฟต์แวร์ เป็นผู้บริหารหรือผู้จัดการจะต้องสนับสนุนและเผยแพร่
             หลักจริยธรรม
         6.Profession ต้องยึดมั่นในคุณธรรม รักษาชื่อเสียงในวิชาชีพของตนเอง
         7.Colleagues ต้องมีความเป็นธรรมและสนับสนุนเพื่อนร่วมงาน
         8. Self จะต้องพัฒนาตนเองอยู่เสมอ


                                                                                                                                          นายอดุลวิทย์  อาหมัด 510702473611

ไม่มีความคิดเห็น:

แสดงความคิดเห็น