Saturday, September 1, 2012

Chapter 1 Introducation to Software Engineering

วิศวกรรมซอฟต์แวร์ คืออะไร

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

ความแตกต่างระหว่างวิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์


วิทยาการคอมพิวเตอร์ (Computer Science)
อยู่บนรากฐานของวิทยาศาสตร์ ซึ่งเน้นการทำความเข้าใจและค้นหาความจริงเกี่ยวกับความรู้ทางคอมพิวเตอร์ เพื่อสร้างแนวคิด/ทฤษฎีใหม่ หรือ ปฏิเสธแนวคิด/ทฤษฎีเดิม และขยายวงความรู้ให้กว้างขึ้นจากแนวคิด/ทฤษฎีที่มีอยู่

วิศวกรรมซอฟต์แวร์ (Software Engineering)
อยู่บนรากฐานของวิธีการทางวิศวกรรมศาสตร์ ซึ่งประยุกต์แนวคิด/ทฤษฎีทางวิทยาศาสตร์ คณิตศาสตร์และเทคโนโลยีขณะนั้นในการสร้างผลิตภัณฑ์ที่เป็นประโยชน์และปลอดภัยต่อสาธารณะ

ประเด็นความรับผิดชอบอย่างมืออาชีพ


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

หน่วยงานที่กำหนดประมวลจริยธรรม Code of Ethics คือ ACM/IEEE ให้กับวิศวกรรมซอฟต์แวร์ มีข้กำหนด 8 ข้อดังนี้


1.PUBLIC วิศวกรรมซอฟต์แวร์จะต้องปฎิบัติหน้าที่โดยคำนึงถึงผลประโยชน์ส่วนรวมด้วย
2.CLIENT AND EMPLOYER วิศวกรรมซอฟต์แวร์จะต้องคำนึงถึงความต้องการของลูกค้าและนายจ้าง
3.PRODUCT วิศวกรรมซอฟต์แวร์จะต้องผลิตผลงานตามหลักสูงสุดของหลักวิชาการ
4.JUDGMENT วิศวกรรมซอฟต์แวร์จะต้องตัดสินใจอย่างอิสระ เป็นตัวของตัวของตัวเอง โดยยึดมั่นในหลักวิชาการ
5.MANAGEMENT วิศวกรรมซอฟต์แวร์จะต้องเผยแพร่การรักษาจริยธรรมนี้ ในฐานะผู้บริหาร หรือหัวหน้า
6.PROFESSION วิศวกรรมซอฟต์แวร์จะต้องยึดมั่นในคุณธรรม และรักษาชื่อเสียงในวิชาชีพโดยคำนึงถึงผลปรโยชน์ส่วนรวม
7.COLLEAGUES วิศวกรรมซอฟต์แวร์จะต้องให้ความเป็นธรรม และสนับสนุนเพื่อนร่วมงาน
8.SELF วิศวกรรมซอฟต์แวร์จะต้องพัฒนาตัวเองอยู่เสมอ

ความรับผิดชอบทางจริยธรรมของนักวิศวกรรมซอฟต์แวร์


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

คุณสมบัติของซอฟต์แวร์ที่ดี


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

No comments:

Post a Comment