วิศวกรรมซอฟต์แวร์ software...
TRANSCRIPT
กอ่นเรียน
วศิวกรรมซอฟตแ์วร ์คืออะไร
โปรแกรม คืออะไร
ซอฟตแ์วร ์คืออะไร
แอพพลิเคชัน่ซอฟตแ์วร ์คืออะไร
เว็บแอพพลิเคชนั คืออะไร
ความคาดหวงัจากวชิาน้ี
บทท่ี 1
วิศวกรรมซอฟตแ์วร ์
SOFTWARE ENGINEERING
Wimolsree Getsopon
Software Engineering ,Information System Program,RMUTI
วตัถุประสงคข์องซอฟตแ์วร ์
เพ่ือความบนัเทิง
อ านวยความสะดวกในการท างาน
กลยุทธในการบริหารงาน
กุญแจแห่งความส าเร็จ
ซอฟตแ์วร ์
มีความสามารถ
การท างาน
โดดเด่น
ตอบสนอง
ความ
ตอ้งการ
วิชาความรู ้
เคร่ืองมือ
เทคนิค
ซอฟตแ์วร ์
โปรแกรม (Program) หมายถึง ชุดค าสั่งเพ่ือควบคุมการท างานของระบบคอมพิวเตอร์ ให้สามารถประมวลผลข้อมูลเพื่อท างานใดงานหนึ่งได้ตามที่ต้องการ
ซอฟต์แวร์ (Software) หมายถึง โปรแกรมหลายโปรแกรมท างานร่วมกัน ซึ่งนอกจากประมวลผลข้อมูลแล้วต้องควบคุมการท างานของโปรแกรมอ่ืน ควบคุมการติดต่อกับอุปกรณ์คอมพิวเตอร์และเครือข่าย
Application Software ? Software Solution ?
ซอฟตแ์วรแ์บ่งเป็น 7 ประเภท
ซอฟต์แวร์ระบบ (System Software) ซอฟต์แวร์แอปพลิเคชั่น (Application Software) ซอฟต์แวร์ด้านวิทยาศาสตร์และวิศวกรรม(Scientific
Software/Engineering) ซอฟต์แวร์แบบฝัง (Embedded Software) ซอฟต์แวร์แบบสายการผลิต(Product-Line Software) เว็บแอปพลิเคช่ัน (Web Application) ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial Intelligence Software)
วศิวกรซอฟตแ์วรแ์บ่งเป็น 2 ประเภท
Generic Product
Customized Product
ไม่ยดึความตอ้งการของลกูคา้
ควบคุมความตอ้งการ
Gerneric Product
ความตอ้งการก าหนดโดยลกูคา้
ควบคุมความตอ้งการโดยลกูคา้
Cuztomized Product
วศิวกรรมซอฟตแ์วรแ์ละความส าคญั
วิศวกรรมซอฟต์แวร์ (Software Engineering) หมายถึง การน าหลัก
วิชาการด้านวิศวกรรมมาดูแลกระบวนการผลิตซอฟต์แวร์ ตั้งแต่ขั้นตอนแรกจนถึงขั้นตอนบ ารุงรักษาหลังการใช้งาน เพื่อให้ซอฟต์แวร์ที่ได้มีคุณภาพสูงสุดภายใต้ข้อจ ากัดด้านเวลาและต้นทุน
การเปล่ียนแปลงของ
HW/SW อยา่งรวดเร็ว
จุดวิกฤติของอุตสาหกรรม
ผลิตซอฟตแ์วร ์
- ท างานผิดพลาด
ลา้สมยั
- ไมเ่อ้ือ านวยต่อการ
ปรบัปรุง
วศิวกรรมซอฟตแ์วร ์
ปัจจยัการเปล่ียนแปลงท่ีท าใหว้ศิวกรรมซอฟตแ์วร ์
มีความส าคญัมี 7 ประการ
การเปลี่ยนแปลงของระยะเวลาการเปิดตัวผลิตภัณฑ์ที่รวดเร็วขึ้น การเปลี่ยนแปลงในอุตสาหกรรมผลิตคอมพิวเตอร์ บุคคลทั่วไปหรือบริษัทขนาดเล็กมีอ านาจซื้อเครื่องคอมพิวเตอร์มากขึ้น การแพร่หลายของการเชื่อมต่อเครือข่ายคอมพิวเตอร์ ความสามารถในการดัดแปลงใช้เทคโนโลยีเชิงวัตถุเข้ากับระบบงานได้ การเปลี่ยนแปลงของส่วนประสานกับผู้ใช้ที่มีรูปแบบเป็นกราฟิกมากขึ้น
แบบจ าลองกระบวนการผลิตซอฟต์แวร์แบบ Waterfall ไม่สามารถคาดการณ์ความต้องการได ้
ความแตกต่างของวศิวกรรมซอฟตแ์วรแ์ละวทิยาการ
คอมพิวเตอร ์
วิทยาการคอมพิวเตอร ์เป็นหลกัวิชาท่ีวา่ดว้ยทฤษฎีและวิธีการทาง
คอมพิวเตอรแ์ละระบบซอฟตแ์วรใ์นเชิงลึก ส่วนวิศวกรรมซอฟตแ์วร์
เป็นวิชาท่ีวา่ดว้ยปัญหาในทางปฏิบติัของการผลิตซอฟตแ์วร ์
ความแตกต่างของวิศวกรรมซอฟตแ์วรแ์ละวศิวกรรม
ระบบ
วิศวกรรมระบบ เกี่ยวขอ้งกบัทุก ๆ ดา้นของการพฒันาและการ
เปล่ียนแปลงของระบบท่ีมีความซบัซอ้น โดยมีซอฟตแ์วรเ์ป็นแกนหลกั
ในการท างานของระบบ วศิวกรรมระบบจะเก่ียวขอ้งกบัการพฒันา
ฮารด์แวร ์นโยบาย ออกแบบ พฒันากระบวนการและระบบไปพรอ้ม
กบัการวิศวกรรมซอฟตแ์วรด์ว้ย
สถาปัตยกรรมทั้งระบบ
ความแตกต่างของวศิวกรรมซอฟตแ์วรก์บัการ
วเิคราะหแ์ละออกแบบระบบ
การวเิคราะหแ์ละออกแบบระบบ เป็นการศึกษา วิเคราะห ์และ
แยกแยะปัญหาท่ีเกิดขึ้ นในระบบ แลว้ท าการออกแบบ และก าหนด
คุณสมบติัทางเทคนิค ในขณะท่ีวิศวกรซอฟตแ์วรท์ าหน้าท่ีเก่ียวกบั
การผลิตซอฟตแ์วรเ์พ่ือการคา้
บุคคลท่ีเกี่ยวขอ้งกบังานวศิวกรรมซอฟตแ์วร ์
ผู้ใช้ (User)
ลูกค้า (Customer)
นักพัฒนา (Developer)
คุณลกัษณะของวศิวกรซอฟตแ์วร ์
ความรูด้า้นการผลิตซอฟตแ์วร ์ ความรูด้า้นการบริหารโครงการ ความรูด้า้นการจดัการ
ความรูด้า้นธุรกิจ
ความรูด้า้นประชาสมัพนัธ ์
ความน่าเชื่อถือ
ความรูสึ้กไว
ความอดทนต่อภาวะความกดดนั
ความยดืหยุน่สงู
ความรบัผิดชอบสงู
ความยุติธรรม
องคป์ระกอบของวศิวกรรมซอฟตแ์วร ์
วิศวกรรมระบบ (System Engineering) หมายถึง กระบวนการศึกษาและวิเคราะห์ของระบบที่มีความสลับซับซ้อน เพื่อสนับสนุนการท างานวิศวกรรมการผลิต
วิศวกรรมการผลิต (Development Engineering) เป็นกระบวนการแปรสภาพความต้องการของระบบ (System Requirement) ให้กลายเป็นซอฟต์แวร ์
องคป์ระกอบของวศิวกรรมซอฟตแ์วร ์
วิศวกรรมซอฟต์แวร์ (Software Engineering)
วิศวกรรมระบบ(System Engineering) วิศวกรรมการผลิต(Development Engineering)
วิศวกรรมกระบวนการทางธุรกิจ
แบบจ าลองกระบวนการทางธุรกิจ
ก าหนดคุณสมบัติและฟังก์ชันงาน
ก าหนดหน้าท่ีของฟังก์ชันงานให้ชัดเจน
ก าหนดขอบเขตและระบบใหม่
วิเคราะห์และก าหนดความต้องการ
จัดท าข้อก าหนดคุณสมบัติของซอฟต์แวร์
ออกแบบซอฟต์แวร์
พัฒนาซอฟต์แวร์
ทดสอบระบบย่อย
ประสานระบบย่อยและทดสอบระบบรวม
น าไปใช้งานและบ ารุงรักษา
วศิวกรรมระบบ (System Engineering) มีกิจกรรมต่าง ๆ และขั้นตอน
ดงัน้ี
ก าหนดวตัถุประสงคข์องระบบ
ก าหนดขอบเขตของระบบ
แบ่งระบบออกเป็นส่วน ๆ ตามฟังกช์นังานหรือคุณสมบติัของระบบ
พิจารณาความสมัพนัธข์องส่วนประกอบต่าง ๆ ท่ีเก่ียวขอ้งทั้งหมด
ก าหนดความสมัพนัธข์องปัจจยัน าเขา้ ประมวลผล และผลลพัธ ์
พิจารณาปัจจยัท่ีมีส่วนเก่ียวขอ้งในระบบ
ก าหนดความตอ้งการในส่วนของปฏิบติัการและฟังกช์นังาน
สรา้งแบบจ าลองระบบ
น าเสนอและแลกเปล่ียนขอ้คิดเห็นกบัผูท่ี้เก่ียวขอ้งกบัระบบ
วศิวกรรมการผลิต (Development Engineering) มีกิจกรรมต่าง ๆ และ
ขั้นตอนดงัน้ี
ก าหนดความตอ้งการและจดัท าขอ้ก าหนดคุณสมบติั
ออกแบบแนวทางการแกปั้ญหาใหส้อดคลอ้งกบัความตอ้งการ
พิจารณาสถาปัตยกรรมใหส้อดคลอ้งกบัแนวทางแกปั้ญหา
วางแผนโครงการผลิตซอฟตแ์วร ์
ทดสอบซอฟตแ์วรใ์นแต่ละคอมโพเน้นท ์
ผนวกคอมโพเน้นทต่์าง ๆ รวมเป็นระบบเดียวกนั
ทดสอบการผนวกรวมระบบ พรอ้มตรวจสอบและสอดคลอ้งกบัความตอ้งการ
พิจารณากลยุทธใ์นการน าไปใชง้าน
น าไปใชง้าน
ปรบัเปล่ียนกระบวนการจดัการ
บ ารุงรกัษาและติดตั้งซอฟตแ์วร ์
คุณลกัษณะของซอฟตแ์วรท่ี์มีคุณภาพ
ความสามารถในการบ ารุงรักษา (Maintainability )
ความสามารถในการพึ่งพา (Dependability)
ประสิทธิภาพ (Efficiency)
ความสามารถในการใช้งาน (Usability)
ระเบียบวธีิปฏิบติัของวศิวกรรมซอฟตแ์วร ์
แนวทางเชิงโครงสร้าง (Structured Approach) แนวทางเชิงวัตถุ (Object-Oriented Approach)