อาจารย์ผู้สอน
อ. วิชิต นางแล
ปร.ด กำาลังศึกษา (เทคโนโลยีสารสนเทศคุณภาพ)
มหาวิทยาลัยราชภัฏเพชรบุรี
วท.ม. (เทคโนโลยีสารสนเทศและอินเทอร์เน็ต)
มหาวิทยาลัยนเรศวร
วิชา ITSC2301
วิศวกรรมซอฟต์แวร์ (Software Engineering)
07/09/14
1
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
แนะนำารายวิชา
 เนื้อหาวิชาครอบคลุมพื้นฐานทางวิทยาศาสตร์สำาหรับ
วิศวกรรมซอฟต์แวร์โดยเรียนรู้กระบวนการพัฒนาและ
วัฏจักรในการพัฒนาซอฟต์แวร์ ซึ่งมุ่งเน้นไปที่การนำา
หลักการเชิงวัตถุมาใช้กับรูปแบบการพัฒนาซอฟต์แวร์
รวมทั้งครอบคลุมถึงกลยุทธ์ต่างๆ ที่ใช้ในการพัฒนา
ซอฟต์แวร์
07/09/14
2
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
โปรแกรมที่ใช้ในการเรียนการสอน
07/09/14วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
3
Software Engineering T 1/2556 A. Wichit nanglae
ข้อตกลงในชั้นเรียน
 เวลาเข้าเรียนไม่ตำ่ากว่าร้อยละ 80
 ขาดได้ไม่เกิน 3 ครั้ง
 มาสายกว่าเวลาเรียนครึ่งชั่วโมง 2 ครั้ง ถือว่าขาด 1
ครั้ง
 ส่งงานที่ได้รับมอบหมายทั้งหมดครบและตรงตาม
ระยะเวลาที่กำาหนด
 การแต่งกาย ให้เป็นไปตามระเบียบมหาวิทยาลัย
กำาหนด หากฝ่าฝืนจะไม่ได้รับอนุญาตให้เข้าชั้น07/09/14
4
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ข้อตกลงในชั้นเรียน
 หากนักศึกษาผู้ใดไม่ได้เข้าสอบกลางภาค และมา
ติดต่อผู้สอนหลังจากสัปดาห์ที่ 12 ไปแล้ว จะไม่ได้
รับอนุญาตให้สอบกลางภาค ยกเว้นกรณี
 ป่วย,ได้รับอุบัติเหตุ
 มีกิจธุระสำาคัญทางราชการ
โดยจะต้องทำาจดหมายลาหรือมีหนังสือชี้แจงล่วง
หน้า ทั้งนี้ขึ้นอยู่กับดุลยพินิจของผู้สอน
07/09/14
5
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ข้อตกลงในการกำาหนดคะแนน
 ระหว่างภาค (70%) แบ่งเป็น
 ความสนใจ (การเข้าเรียน จริยธรรม และ การแต่งกาย)
15%
 งานที่ได้รับมอบหมาย
25%
 สอบกลางภาค 30%
 ปลายภาค (30%)
 สอบปลายภาค 30%07/09/14
6
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ระดับการประเมินผล (อิงเกณฑ์)
 80-100 A
 75-79 B+
 70-74 B
 65-69 C+
 60-64 C
 55-59 D+
 50-54 D
 0-49 E
07/09/14
7
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
เรียนอะไรในวิชา
 บทนำา-วิศวกรรมซอฟต์แวร์ (Introduction to Software
Engineering)
 ภาพรวมของกระบวนการ (A Generic View of Process)
 แบบจำาลองกระบวนการพัฒนาระบบ (Process Model)
 การประมาณการซอฟต์แวร์ (Software Estimation)
 วิศวกรรมความต้องการ (Requirement Engineering)
 การสร้างแบบจำาลองการวิเคราะห์ (Analysis Model)
 การวิเคราะห์เชิงวัตถุ (Object Oriented Analysis)
 วิศวกรรมการออกแบบ (Design Engineering)
 การออกแบบส่วนต่อประสานผู้ใช้ (User Interface Design)
 การทดสอบซอฟต์แวร์ (Testing)
สอบกลาง
ภาค
สอบปลาย
ภาค
07/09/14
8
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
หนังสือที่ใช้ในการทบทวน
 วิศวกรรมซอฟต์แวร์ (Software
Engineering)
Roger S. Pressman แปลโดย
ผศ.ดร.พรฤดี เนติโสภากุล
 การวางแผนโครงการพัฒนาซอฟต์แวร์
(Software Project Planning)
เมสินี นาคมณี 07/09/14
9
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Introduction
 วิศวกรรมซอฟต์แวร์ (Software Engineering)
มุมมองทางการศึกษาในแง่ของสาขาวิชา
ในปี ค.ศ. 1968 คำาว่า”วิศวกรรมซอฟต์แวร์(software
engineering)” ถูกใช้อย่างแพร่หลายเพื่อแสดงถึงกิจกรรม
ต่างๆที่รวมถึงการเขียนโปรแกรม (programming) และการ
รหัส(coding) [Macro, 1987]. ก่อนปี ค.ศ. 1974 สาขา
วิชาวิศวกรรมซอฟต์แวร์ยังไม่ปรากฏ [Barnes, 1998].
สถาบันเทคโนโลยีโรเชสเตอร์ (The Rochester Institute
of Technology (RIT)) ในประเทศสหรัฐอเมริกาได้อ้างว่า07/09/14
10
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
วิศวกรรมซอฟต์แวร์ (Software
Engineering)
 วิศวกรรมซอฟต์แวร์ คือกระบวนการสร้างสรรค์
โปรแกรมโดยใช้หลักทางวิศวกรรมเข้ามาช่วยในการ
ดำาเนินการสร้าง (อ.สมหมาย สุขคำา)
 “Software Engineering is systematic
approach to the development operation ,
maintenance , retirement of software” (IEEE
83b)
 “วิชาการว่าด้วยการออกแบบโปรแกรมคอมพิวเตอร์
ตลอดจนการบริหารงานการพัฒนาเพื่อที่จะได้มาซึ่ง07/09/14
11
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
วิทยาการคอมพิวเตอร์และ
วิศวกรรมซอฟต์แวร์
 วิทยาการคอมพิวเตอร์ (Computer Science)
อยู่บนรากฐานของวิทยาศาสตร์ ซึ่งเน้นการทำาความ
เข้าใจและค้นหาความจริงเกี่ยวกับความรู้ทาง
คอมพิวเตอร์ เพื่อสร้างแนวคิด/ทฤษฎีใหม่ หรือ
ปฏิเสธแนวคิด/ทฤษฎีเดิม และขยายวงความรู้ให้
กว้างขึ้นจากแนวคิด/ทฤษฎีที่มีอยู่
* ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มนัก
07/09/14
12
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
วิทยาการคอมพิวเตอร์และ
วิศวกรรมซอฟต์แวร์
 วิศวกรรมซอฟต์แวร์ (Software Engineering)
อยู่บนรากฐานของวิธีการทางวิศวกรรมศาสตร์ ซึ่ง
ประยุกต์แนวคิด/ทฤษฎีทางวิทยาศาสตร์
คณิตศาสตร์และเทคโนโลยีขณะนั้นในการสร้าง
ผลิตภัณฑ์ที่เป็นประโยชน์และปลอดภัยต่อสาธารณะ
* ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มผู้ใช้
07/09/14
13
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ลักษณะของวิศวกรรมซอฟต์แวร์
 เกี่ยวข้องกับการสร้างโปรแกรมขนาดใหญ่
 สามารถจัดการเกี่ยวกับความซำ้าซ้อนได้
 เน้นการทำางานร่วมกันของบุคลากร
 สามารถเปลี่ยนแปลงได้ง่ายเมื่อจำาเป็น
 เน้นการพัฒนาให้มีประสิทธิภาพ
 สนองความต้องการของผู้ใช้
07/09/14
14
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
องค์ประกอบของการวิศวกรรม
ซอฟต์แวร์
 การวิศวกรรมซอฟต์แวร์เป็นกระบวนการผลิต
(production) ที่ประกอบด้วยกิจกรรมช่วงต่างๆ
เพื่อสร้างผลิตภัณฑ์ซอฟต์แวร์ (software
products) การทำากิจกรรมในแต่ละช่วงอาศัย
เทคนิคและเครื่องมือช่วยต่างๆ (support tools) ที่
นักวิชาการคอมพิวเตอร์และนักวิจัยได้เสนอไว้
07/09/14
15
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
องค์ประกอบของการวิศวกรรม
ซอฟต์แวร์
Software
production
processes
Software
products
Support
tools
/Environmen
ts
Market
places /
users
07/09/14
16
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
คุณลักษณะของกระบวนการ
วิศวกรรมซอฟต์แวร์
 Understandability : มีการนิยามขอบเขตของ
กระบวนการที่ชัดแจ้งและง่ายต่อการเข้าใจ
 Visibility : ทำาให้กิจกรรมกระบวนการชัดเจนที่สุด
เพื่อสามารถมองเห็นจากภายนอกได้ชัดเจน
 Supportability : เครื่องมือช่วยการวิศวกรรม
ซอฟต์แวร์ (CASE)สามารถช่วยสนับสนุนกิจกรรม
กระบวนการในขอบเขตใด
07/09/14
17
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
คุณลักษณะของกระบวนการ
วิศวกรรมซอฟต์แวร์
 Acceptability : กระบวนการที่กำาหนดสามารถ
ยอมรับและใช้โดยวิศวกรซอฟต์แวร์ในการผลิต
ผลิตภัณฑ์ซอฟต์แวร์
 Reliability : กระบวนการถูกออกแบบในแนวทาง
ซึ่งความผิดพลาดของกระบวนการถูกหลีกเลี่ยงก่อน
ที่จะส่งผลต่อความผิดพลาดของผลิตภัณฑ์
ซอฟต์แวร์
 Robustness : กระบวนการสามารถทำางานต่อได้
แม้นว่ามีปัญหาที่ไม่คาดการณ์เกิดขึ้น
07/09/14
18
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
คุณลักษณะของกระบวนการ
วิศวกรรมซอฟต์แวร์
 Maintainability : กระบวนการสามารถ
วิวัฒนาการเพื่อตอบสนองการเปลี่ยนแปลงความ
ต้องการขององค์กร
 Rapidity : กระบวนการสามารถทำาให้ส่งมอบ
ผลิตภัณฑ์ได้เร็วนับจากที่รูปแบบคุณลักษณะของ
ซอฟต์แวร์(Software specifications) ถูกกำาหนด
07/09/14
19
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
Introduction
 ซอฟต์แวร์ (software) หมายถึงชุดคำาสั่งหรือ
โปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำางาน
ซอฟต์แวร์จึงหมายถึงลำาดับขั้นตอนการทำางานที่
เขียนขึ้นด้วยคำาสั่งของคอมพิวเตอร์ คำาสั่งเหล่านี้
เรียงกันเป็นโปรแกรมคอมพิวเตอร์
 ซอฟต์แวร์ หมายรวมถึงโปรแกรมคอมพิวเตอร์ทุก
ประเภทที่ทำาให้คอมพิวเตอร์ทำางานได้
07/09/14
20
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
Introduction
 คุณสมบัติของซอฟต์แวร์
 ซอฟต์แวร์ถูกพัฒนาหรือจัดการให้เกิดขึ้น
 ซอฟต์แวร์ไม่สึกหรอ
 ถูกสร้างตามแบบที่ลูกค้าต้องการ (Custom build)
07/09/14
21
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
การเสื่อมสภาพของฮาร์ดแวร์
ความผิด
พลาด
เวลา07/09/14
22
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
การเสื่อมสภาพของซอฟต์แวร์
(อุดมคติ)
ความผิด
พลาด
เวลา07/09/14
23
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
การเสื่อมสภาพของซอฟต์แวร์
ความผิด
พลาด
เวลา07/09/14
24
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ซอฟต์แวร์ (software)
 ชนิดของซอฟต์แวร์
หากแบ่งแยกชนิดของซอฟต์แวร์ตามสภาพการ
ทำางาน แบ่งแยกซอฟต์แวร์ได้เป็น 2 ประเภท
คือ
 ซอฟต์แวร์ระบบ (system software)
 ซอฟต์แวร์ประยุกต์ (application software)
07/09/14
25
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
ซอฟต์แวร์ (software)
 ซอฟต์แวร์ระบบ คือ ซอฟต์แวร์ที่บริษัทผู้ผลิตสร้าง
ขึ้นมาเพื่อใช้จัดการกับระบบ หน้าที่การทำางานของ
ซอฟต์แวร์ระบบคือดำาเนินงานพื้นฐานต่าง ๆ ของ
ระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้น
อักขระแล้วแปลความหมายให้คอมพิวเตอร์เข้าใจ
นำาข้อมูลไปแสดงผลบนจอภาพหรือนำาออกไปยัง
เครื่องพิมพ์ จัดการข้อมูลในระบบแฟ้มข้อมูลบน
หน่วยความจำารอง 07/09/14
26
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ซอฟต์แวร์ (software)
 ซอฟต์แวร์ประยุกต์ เป็นซอฟต์แวร์ที่ใช้กับงาน
ด้านต่าง ๆ ตามความต้องการของผู้ใช้ ที่สามารถนำา
มาใช้ประโยชน์ได้โดยตรง ปัจจุบันมีผู้พัฒนา
ซอฟต์แวร์ใช้งานทางด้านต่าง ๆ ออกจำาหน่ายมาก
การประยุกต์งานคอมพิวเตอร์จึงกว้างขวางและแพร่
หลาย เราอาจแบ่งซอฟต์แวร์ประยุกต์ออกเป็นสอง
กลุ่มคือ ซอฟต์แวร์สำาเร็จ และซอฟต์แวร์ที่พัฒนาขึ้น
ใช้งานเฉพาะ 07/09/14
27
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ซอฟต์แวร์ (software)
07/09/14
28
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
ซอฟต์แวร์ (software)
 ชนิดของซอฟต์แวร์
ในปัจจุบัน สามารถแบ่งลักษณะของซอฟต์แวร์ออก
เป็น 7 ประเภท ดังนี้
1. ซอฟต์แวร์ระบบ (System Software)
2. ซอฟต์แวร์ประยุกต์ (Application Software)
3. ซอฟต์แวร์เชิงวิศวกรรม/วิทยาศาสตร์
(Engineering/Scientific Software)07/09/14
29
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
ซอฟต์แวร์ (software)
5. ซอฟต์แวร์สายการผลิต (Product-line
Software)
6. เว็บแอพพลิเคชั่น (Web-application)
7. ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial
Intelligence Softwear)
07/09/14
30
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
วิวัฒนาการของซอฟต์แวร์
(Software Evolution)
 กฎแห่งการเปลี่ยนแปลงอย่างต่อเนื่อง (Law of
Continuing Change)
 กฎแห่งความซับซ้อนที่เพิ่มขึ้น (Law of
Increasing Complexity)
 กฎแห่งการวางระเบียบตัวเอง (Law of Self-
regulation)
 กฎแห่งอนุรักษ์สภาพเสถียรการจัดระเบียบ (Law of
Conservation of Organizational Stability)
07/09/14
31
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
วิวัฒนาการของซอฟต์แวร์
(Software Evolution)
 กฎแห่งการเติบโตอย่างต่อเนื่อง (Law of
Continuing Growth)
 กฎแห่งการลดลงซึ่งคุณภาพ (Law of Declining
Quality)
 กฎระบบย้อนกลับ (Feedback System Law)
07/09/14
32
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae
THE END
 จะนำา PowerPoint ประกอบการเรียนขึ้นเว็บภายในวัน
อาทิตย์
07/09/14
33
วิศวกรรมซอฟต์แวร์ อ.วิชิต นางแล
Software Engineering T 1/2556 A. Wichit nanglae

บทนำ วิศวกรรมซอฟต์แวร์