วิศวกรรมซอฟต์แวร์ software...

20
ก่อนเรียน วิศวกรรมซอฟต์แวร์ คืออะไร โปรแกรม คืออะไร ซอฟต์แวร์ คืออะไร แอพพลิเคชั่นซอฟต์แวร์ คืออะไร เว็บแอพพลิเคชัน คืออะไร ความคาดหวังจากวิชานี

Upload: others

Post on 22-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

กอ่นเรียน

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

โปรแกรม คืออะไร

ซอฟตแ์วร ์คืออะไร

แอพพลิเคชัน่ซอฟตแ์วร ์คืออะไร

เว็บแอพพลิเคชนั คืออะไร

ความคาดหวงัจากวชิาน้ี

Page 2: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

บทท่ี 1

วิศวกรรมซอฟตแ์วร ์

SOFTWARE ENGINEERING

Wimolsree Getsopon

Software Engineering ,Information System Program,RMUTI

Page 3: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

วตัถุประสงคข์องซอฟตแ์วร ์

เพ่ือความบนัเทิง

อ านวยความสะดวกในการท างาน

กลยุทธในการบริหารงาน

กุญแจแห่งความส าเร็จ

Page 4: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ซอฟตแ์วร ์

มีความสามารถ

การท างาน

โดดเด่น

ตอบสนอง

ความ

ตอ้งการ

วิชาความรู ้

เคร่ืองมือ

เทคนิค

Page 5: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ซอฟตแ์วร ์

โปรแกรม (Program) หมายถึง ชุดค าสั่งเพ่ือควบคุมการท างานของระบบคอมพิวเตอร์ ให้สามารถประมวลผลข้อมูลเพื่อท างานใดงานหนึ่งได้ตามที่ต้องการ

ซอฟต์แวร์ (Software) หมายถึง โปรแกรมหลายโปรแกรมท างานร่วมกัน ซึ่งนอกจากประมวลผลข้อมูลแล้วต้องควบคุมการท างานของโปรแกรมอ่ืน ควบคุมการติดต่อกับอุปกรณ์คอมพิวเตอร์และเครือข่าย

Application Software ? Software Solution ?

Page 6: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ซอฟตแ์วรแ์บ่งเป็น 7 ประเภท

ซอฟต์แวร์ระบบ (System Software) ซอฟต์แวร์แอปพลิเคชั่น (Application Software) ซอฟต์แวร์ด้านวิทยาศาสตร์และวิศวกรรม(Scientific

Software/Engineering) ซอฟต์แวร์แบบฝัง (Embedded Software) ซอฟต์แวร์แบบสายการผลิต(Product-Line Software) เว็บแอปพลิเคช่ัน (Web Application) ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial Intelligence Software)

Page 7: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

วศิวกรซอฟตแ์วรแ์บ่งเป็น 2 ประเภท

Generic Product

Customized Product

ไม่ยดึความตอ้งการของลกูคา้

ควบคุมความตอ้งการ

Gerneric Product

ความตอ้งการก าหนดโดยลกูคา้

ควบคุมความตอ้งการโดยลกูคา้

Cuztomized Product

Page 8: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

วศิวกรรมซอฟตแ์วรแ์ละความส าคญั

วิศวกรรมซอฟต์แวร์ (Software Engineering) หมายถึง การน าหลัก

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

การเปล่ียนแปลงของ

HW/SW อยา่งรวดเร็ว

จุดวิกฤติของอุตสาหกรรม

ผลิตซอฟตแ์วร ์

- ท างานผิดพลาด

ลา้สมยั

- ไมเ่อ้ือ านวยต่อการ

ปรบัปรุง

วศิวกรรมซอฟตแ์วร ์

Page 9: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ปัจจยัการเปล่ียนแปลงท่ีท าใหว้ศิวกรรมซอฟตแ์วร ์

มีความส าคญัมี 7 ประการ

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

แบบจ าลองกระบวนการผลิตซอฟต์แวร์แบบ Waterfall ไม่สามารถคาดการณ์ความต้องการได ้

Page 10: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

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

คอมพิวเตอร ์

วิทยาการคอมพิวเตอร ์เป็นหลกัวิชาท่ีวา่ดว้ยทฤษฎีและวิธีการทาง

คอมพิวเตอรแ์ละระบบซอฟตแ์วรใ์นเชิงลึก ส่วนวิศวกรรมซอฟตแ์วร์

เป็นวิชาท่ีวา่ดว้ยปัญหาในทางปฏิบติัของการผลิตซอฟตแ์วร ์

Page 11: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ความแตกต่างของวิศวกรรมซอฟตแ์วรแ์ละวศิวกรรม

ระบบ

วิศวกรรมระบบ เกี่ยวขอ้งกบัทุก ๆ ดา้นของการพฒันาและการ

เปล่ียนแปลงของระบบท่ีมีความซบัซอ้น โดยมีซอฟตแ์วรเ์ป็นแกนหลกั

ในการท างานของระบบ วศิวกรรมระบบจะเก่ียวขอ้งกบัการพฒันา

ฮารด์แวร ์นโยบาย ออกแบบ พฒันากระบวนการและระบบไปพรอ้ม

กบัการวิศวกรรมซอฟตแ์วรด์ว้ย

สถาปัตยกรรมทั้งระบบ

Page 12: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ความแตกต่างของวศิวกรรมซอฟตแ์วรก์บัการ

วเิคราะหแ์ละออกแบบระบบ

การวเิคราะหแ์ละออกแบบระบบ เป็นการศึกษา วิเคราะห ์และ

แยกแยะปัญหาท่ีเกิดขึ้ นในระบบ แลว้ท าการออกแบบ และก าหนด

คุณสมบติัทางเทคนิค ในขณะท่ีวิศวกรซอฟตแ์วรท์ าหน้าท่ีเก่ียวกบั

การผลิตซอฟตแ์วรเ์พ่ือการคา้

Page 13: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

บุคคลท่ีเกี่ยวขอ้งกบังานวศิวกรรมซอฟตแ์วร ์

ผู้ใช้ (User)

ลูกค้า (Customer)

นักพัฒนา (Developer)

Page 14: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

คุณลกัษณะของวศิวกรซอฟตแ์วร ์

ความรูด้า้นการผลิตซอฟตแ์วร ์ ความรูด้า้นการบริหารโครงการ ความรูด้า้นการจดัการ

ความรูด้า้นธุรกิจ

ความรูด้า้นประชาสมัพนัธ ์

ความน่าเชื่อถือ

ความรูสึ้กไว

ความอดทนต่อภาวะความกดดนั

ความยดืหยุน่สงู

ความรบัผิดชอบสงู

ความยุติธรรม

Page 15: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

องคป์ระกอบของวศิวกรรมซอฟตแ์วร ์

วิศวกรรมระบบ (System Engineering) หมายถึง กระบวนการศึกษาและวิเคราะห์ของระบบที่มีความสลับซับซ้อน เพื่อสนับสนุนการท างานวิศวกรรมการผลิต

วิศวกรรมการผลิต (Development Engineering) เป็นกระบวนการแปรสภาพความต้องการของระบบ (System Requirement) ให้กลายเป็นซอฟต์แวร ์

Page 16: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

องคป์ระกอบของวศิวกรรมซอฟตแ์วร ์

วิศวกรรมซอฟต์แวร์ (Software Engineering)

วิศวกรรมระบบ(System Engineering) วิศวกรรมการผลิต(Development Engineering)

วิศวกรรมกระบวนการทางธุรกิจ

แบบจ าลองกระบวนการทางธุรกิจ

ก าหนดคุณสมบัติและฟังก์ชันงาน

ก าหนดหน้าท่ีของฟังก์ชันงานให้ชัดเจน

ก าหนดขอบเขตและระบบใหม่

วิเคราะห์และก าหนดความต้องการ

จัดท าข้อก าหนดคุณสมบัติของซอฟต์แวร์

ออกแบบซอฟต์แวร์

พัฒนาซอฟต์แวร์

ทดสอบระบบย่อย

ประสานระบบย่อยและทดสอบระบบรวม

น าไปใช้งานและบ ารุงรักษา

Page 17: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

วศิวกรรมระบบ (System Engineering) มีกิจกรรมต่าง ๆ และขั้นตอน

ดงัน้ี

ก าหนดวตัถุประสงคข์องระบบ

ก าหนดขอบเขตของระบบ

แบ่งระบบออกเป็นส่วน ๆ ตามฟังกช์นังานหรือคุณสมบติัของระบบ

พิจารณาความสมัพนัธข์องส่วนประกอบต่าง ๆ ท่ีเก่ียวขอ้งทั้งหมด

ก าหนดความสมัพนัธข์องปัจจยัน าเขา้ ประมวลผล และผลลพัธ ์

พิจารณาปัจจยัท่ีมีส่วนเก่ียวขอ้งในระบบ

ก าหนดความตอ้งการในส่วนของปฏิบติัการและฟังกช์นังาน

สรา้งแบบจ าลองระบบ

น าเสนอและแลกเปล่ียนขอ้คิดเห็นกบัผูท่ี้เก่ียวขอ้งกบัระบบ

Page 18: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

วศิวกรรมการผลิต (Development Engineering) มีกิจกรรมต่าง ๆ และ

ขั้นตอนดงัน้ี

ก าหนดความตอ้งการและจดัท าขอ้ก าหนดคุณสมบติั

ออกแบบแนวทางการแกปั้ญหาใหส้อดคลอ้งกบัความตอ้งการ

พิจารณาสถาปัตยกรรมใหส้อดคลอ้งกบัแนวทางแกปั้ญหา

วางแผนโครงการผลิตซอฟตแ์วร ์

ทดสอบซอฟตแ์วรใ์นแต่ละคอมโพเน้นท ์

ผนวกคอมโพเน้นทต่์าง ๆ รวมเป็นระบบเดียวกนั

ทดสอบการผนวกรวมระบบ พรอ้มตรวจสอบและสอดคลอ้งกบัความตอ้งการ

พิจารณากลยุทธใ์นการน าไปใชง้าน

น าไปใชง้าน

ปรบัเปล่ียนกระบวนการจดัการ

บ ารุงรกัษาและติดตั้งซอฟตแ์วร ์

Page 19: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

คุณลกัษณะของซอฟตแ์วรท่ี์มีคุณภาพ

ความสามารถในการบ ารุงรักษา (Maintainability )

ความสามารถในการพึ่งพา (Dependability)

ประสิทธิภาพ (Efficiency)

ความสามารถในการใช้งาน (Usability)

Page 20: วิศวกรรมซอฟต์แวร์ Software Engineeringwcalab.com/course/wp-content/uploads/2015/01/1-บทที่-1... · วิศวกรรมซอฟต์แวร์และความส

ระเบียบวธีิปฏิบติัของวศิวกรรมซอฟตแ์วร ์

แนวทางเชิงโครงสร้าง (Structured Approach) แนวทางเชิงวัตถุ (Object-Oriented Approach)