วิศวกรรมซอฟต์แวร์ วิชา ITSC2301
Download
Report
Transcript วิศวกรรมซอฟต์แวร์ วิชา ITSC2301
วิชา ITSC2301
วิศวกรรมซอฟต์แวร์ (Software Engineering)
อาจารย์ผสู ้ อน
อ. พรภัทรา ภัทรจารี
วท.ม. (เทคโนโลยีสารสนเทศและการสื่อสาร : Data communication & Network)
สถาบันเทคโนโลยีพระจอมเกล้า พระนครเหนื อ
วท.บ. (วิทยาการคอมพิวเตอร์)
มหาวิทยาลัยเกษตรศาสตร์
แนะนารายวิชา
เนื้อหาวิชาครอบคลุมพืน้ ฐานทางวิทยาศาสตร์สาหรับวิศวกรรมซอฟต์แวร์โดย
เรียนรูก้ ระบวนการพัฒนาและ วัฏจักรในการพัฒนาซอฟต์แวร์ ซึง่ มุ่งเน้นไปที่
การนาหลักการเชิงวัตถุมาใช้กบั รูปแบบการพัฒนาซอฟต์แวร์ รวมทัง้
ครอบคลุมถึงกลยุทธ์ต่างๆ ทีใ่ ช้ในการพัฒนาซอฟต์แวร์
ข้อตกลงในชั้นเรียน
เวลาเข้าเรียนไม่ตา่ กว่าร้อยละ 80
ขาดได้ไม่เกิน 3 ครั้ง
มาสายกว่าเวลาเรียนครึ่งชัว่ โมง 2 ครั้ง ถือว่าขาด 1 ครั้ง
ส่งงานที่ได้รบั มอบหมายทั้งหมดครบและตรงตามระยะเวลาที่กาหนด
การแต่งกาย ให้เป็ นไปตามระเบียบมหาวิทยาลัยกาหนด หากฝ่ าฝื นจะ
ไม่ได้รบั อนุ ญาตให้เข้าชั้นเรียน
ข้อตกลงในชั้นเรียน
หากนักศึกษาผูใ้ ดไม่ได้เข้าสอบกลางภาค และมาติดต่อผูส้ อนหลังจาก
สัปดาห์ที่ 12 ไปแล้ว จะไม่ได้รบั อนุ ญาตให้สอบกลางภาค ยกเว้นกรณี
ป่ วย,ได้รบั อุบตั ิเหตุ
มีกิจธุระสาคัญทางราชการ
โดยจะต้องทาจดหมายลาหรือมีหนังสือชี้ แจงล่วงหน้า ทั้งนี้ ขึ้ นอยูก่ บั ดุลย
พินิจของผูส้ อน
ข้อตกลงในการกาหนดคะแนน
ระหว่างภาค (70%) แบ่งเป็ น
ความสนใจ
(การเข้าเรียน จริยธรรม และ การแต่งกาย)
งานที่ได้รบ
ั มอบหมาย
สอบกลางภาค
15%
25%
30%
ปลายภาค (30%)
สอบปลายภาค
30%
ระดับการประเมินผล (อิงเกณฑ์)
80-100
75-79
70-74
65-69
60-64
55-59
50-54
0-49
A
B+
B
C+
C
D+
D
E
เรียนอะไรในวิชา
บทนำ-วิ ศวกรรมซอฟต์แวร์ (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)
สอบกลำงภำค
สอบปลำยภำค
หนังสือที่ใช้ในการทบทวน
วิศวกรรมซอฟต์แวร์ (Software Engineering)
Roger S. Pressman แปลโดย ผศ.ดร.พรฤดี เนติโสภากุล
การวางแผนโครงการพัฒนาซอฟต์แวร์ (Software Project Planning)
เมสินี นาคมณี
Introduction
วิศวกรรมซอฟต์แวร์ (Software Engineering)
มุมมองทำงกำรศึกษำในแง่ของสำขำวิชำ
ในปี ค.ศ. 1968 คาว่า”วิศวกรรมซอฟต์แวร์(software engineering)” ถูกใช้อย่าง
แพร่หลายเพือ่ แสดงถึงกิจกรรมต่างๆทีร่ วมถึงการเขียนโปรแกรม (programming) และ
การรหัส(coding) [Macro, 1987]. ก่อนปี ค.ศ. 1974 สาขาวิชาวิศวกรรมซอฟต์แวร์ยงั ไม่
ปรากฏ [Barnes, 1998]. สถาบันเทคโนโลยีโรเชสเตอร์ (The Rochester Institute of
Technology (RIT)) ในประเทศสหรัฐอเมริกาได้อา้ งว่าเป็ นสถาบันแรกทีแ่ นะนาหลักสูตร
ปริญญาตรีสาขาวิศวกรรมซอฟต์แวร์ [Lutz, 1999].
วิศวกรรมซอฟต์แวร์ (Software Engineering)
วิศวกรรมซอฟต์แวร์ คือกระบวนการสร้างสรรค์โปรแกรมโดยใช้หลักทาง
วิศวกรรมเข้ามาช่วยในการดาเนินการสร้าง (อ.สมหมาย สุขคา)
“Software Engineering is systematic approach to the development
operation , maintenance , retirement of software” (IEEE 83b)
“วิชาการว่าด้วยการออกแบบโปรแกรมคอมพิวเตอร์ ตลอดจนการบริหารงาน
การพัฒนาเพือ่ ทีจ่ ะได้มาซึง่ ผลิตผลซอฟต์แวร์ทม่ี คี ุณภาพสูง ราคาถูก และ
ภายในเวลาทีก่ าหนดให้” (สุชาย ธนวเสถียร)
วิทยำกำรคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์
วิทยาการคอมพิวเตอร์ (Computer Science)
อยูบ่ นรากฐานของวิทยาศาสตร์ ซึง่ เน้นการทาความเข้าใจและค้นหาความจริง
เกีย่ วกับความรูท้ างคอมพิวเตอร์ เพือ่ สร้างแนวคิด/ทฤษฎีใหม่ หรือ ปฏิเสธ
แนวคิด/ทฤษฎีเดิม และขยายวงความรูใ้ ห้กว้างขึน้ จากแนวคิด/ทฤษฎีทม่ี อี ยู่
* ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มนักวิทยาศาสตร์
วิทยำกำรคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์
วิศวกรรมซอฟต์แวร์ (Software Engineering)
อยูบ่ นรากฐานของวิธกี ารทางวิศวกรรมศาสตร์ ซึง่ ประยุกต์แนวคิด/ทฤษฎี
ทางวิทยาศาสตร์ คณิตศาสตร์และเทคโนโลยีขณะนัน้ ในการสร้างผลิตภัณฑ์
ทีเ่ ป็ นประโยชน์และปลอดภัยต่อสาธารณะ
* ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มผูใ้ ช้
ลักษณะของวิศวกรรมซอฟต์แวร์
เกีย่ วข้องกับการสร้างโปรแกรมขนาดใหญ่
สามารถจัดการเกีย่ วกับความซ้าซ้อนได้
เน้นการทางานร่วมกันของบุคลากร
สามารถเปลีย่ นแปลงได้งา่ ยเมือ่ จาเป็ น
เน้นการพัฒนาให้มปี ระสิทธิภาพ
สนองความต้องการของผูใ้ ช้
องค์ประกอบของการวิศวกรรมซอฟต์แวร์
การวิศวกรรมซอฟต์แวร์เป็ นกระบวนการผลิต (production) ทีป่ ระกอบด้วย
กิจกรรมช่วงต่างๆ เพือ่ สร้างผลิตภัณฑ์ซอฟต์แวร์ (software products) การ
ทากิจกรรมในแต่ละช่วงอาศัยเทคนิคและเครือ่ งมือช่วยต่างๆ (support tools)
ทีน่ กั วิชาการคอมพิวเตอร์และนักวิจยั ได้เสนอไว้
องค์ประกอบของการวิศวกรรมซอฟต์แวร์
Software production
processes
Software products
Support tools
/Environments
Market places /
users
คุณลักษณะของกระบวนกำรวิศวกรรมซอฟต์แวร์
Understandability : มีการนิยามขอบเขตของกระบวนการทีช่ ดั แจ้งและง่าย
ต่อการเข้าใจ
Visibility : ทาให้กจิ กรรมกระบวนการชัดเจนทีส่ ดุ เพือ่ สามารถมองเห็นจาก
ภายนอกได้ชดั เจน
Supportability : เครือ่ งมือช่วยการวิศวกรรมซอฟต์แวร์ (CASE)สามารถ
ช่วยสนับสนุนกิจกรรมกระบวนการในขอบเขตใด
คุณลักษณะของกระบวนกำรวิศวกรรมซอฟต์แวร์
Acceptability : กระบวนการทีก่ าหนดสามารถยอมรับและใช้โดยวิศวกร
ซอฟต์แวร์ในการผลิตผลิตภัณฑ์ซอฟต์แวร์
Reliability : กระบวนการถูกออกแบบในแนวทางซึง่ ความผิดพลาดของ
กระบวนการถูกหลีกเลีย่ งก่อนทีจ่ ะส่งผลต่อความผิดพลาดของผลิตภัณฑ์
ซอฟต์แวร์
Robustness : กระบวนการสามารถทางานต่อได้แม้นว่ามีปัญหาทีไ่ ม่
คาดการณ์เกิดขึน้
คุณลักษณะของกระบวนกำรวิศวกรรมซอฟต์แวร์
Maintainability : กระบวนการสามารถวิวฒ
ั นาการเพือ่ ตอบสนองการ
เปลีย่ นแปลงความต้องการขององค์กร
Rapidity : กระบวนการสามารถทาให้สง่ มอบผลิตภัณฑ์ได้เร็วนับจากที่
รูปแบบคุณลักษณะของซอฟต์แวร์(Software specifications) ถูกกาหนด
Introduction
ซอฟต์แวร์ (software) หมายถึงชุดคาสังหรื
่ อโปรแกรมทีใ่ ช้สงงานให้
ั่
คอมพิวเตอร์ทางาน ซอฟต์แวร์จงึ หมายถึงลาดับขัน้ ตอนการทางานทีเ่ ขียน
ขึน้ ด้วยคาสังของคอมพิ
่
วเตอร์ คาสังเหล่
่ านี้เรียงกันเป็ นโปรแกรม
คอมพิวเตอร์
ซอฟต์แวร์ หมายรวมถึงโปรแกรมคอมพิวเตอร์ทุกประเภทที่ทาให้
คอมพิวเตอร์ทางานได้
Introduction
คุณสมบัตขิ องซอฟต์แวร์
ซอฟต์แวร์ถก
ู พัฒนาหรือจัดการให้เกิดขึน้
ซอฟต์แวร์ไม่สก
ึ หรอ
ถูกสร้างตามแบบทีล
่ กู ค้าต้องการ
(Custom build)
การเสื่อมสภาพของฮาร์ดแวร์
ควำมผิดพลำด
เวลำ
การเสื่อมสภาพของซอฟต์แวร์ (อุดมคติ)
ควำมผิดพลำด
เวลำ
การเสื่อมสภาพของซอฟต์แวร์
ควำมผิดพลำด
เวลำ
ซอฟต์แวร์ (software)
ชนิดของซอฟต์แวร์
หากแบ่งแยกชนิดของซอฟต์แวร์ตามสภาพการทางาน แบ่งแยก
ซอฟต์แวร์ได้เป็ น 2 ประเภท คือ
ซอฟต์แวร์ระบบ
(system software)
ซอฟต์แวร์ประยุกต์ (application software)
ซอฟต์แวร์ (software)
ซอฟต์แวร์ระบบ คือ ซอฟต์แวร์ทบ่ี ริษทั ผูผ้ ลิตสร้างขึน้ มาเพือ่ ใช้จดั การกับ
ระบบ หน้าทีก่ ารทางานของซอฟต์แวร์ระบบคือดาเนินงานพืน้ ฐานต่าง ๆ
ของระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้ นอักขระแล้วแปล
ความหมายให้คอมพิวเตอร์เข้าใจ นาข้อมูลไปแสดงผลบนจอภาพหรือ
นาออกไปยังเครือ่ งพิมพ์ จัดการข้อมูลในระบบแฟ้ มข้อมูลบนหน่ วยความจา
รอง
ซอฟต์แวร์ (software)
ซอฟต์แวร์ประยุกต์ เป็ นซอฟต์แวร์ทใ่ี ช้กบั งานด้านต่าง ๆ ตามความ
ต้องการของผูใ้ ช้ ทีส่ ามารถนามาใช้ประโยชน์ได้โดยตรง ปั จจุบนั มีผพู้ ฒ
ั นา
ซอฟต์แวร์ใช้งานทางด้านต่าง ๆ ออกจาหน่ายมาก การประยุกต์งาน
คอมพิวเตอร์จงึ กว้างขวางและแพร่หลาย เราอาจแบ่งซอฟต์แวร์ประยุกต์
ออกเป็ นสองกลุ่มคือ ซอฟต์แวร์สาเร็จ และซอฟต์แวร์ทพ่ี ฒ
ั นาขึน้ ใช้งาน
เฉพาะ
ซอฟต์แวร์ (software)
ซอฟต์แวร์ (software)
ชนิดของซอฟต์แวร์
ในปั จจุบนั สามารถแบ่งลักษณะของซอฟต์แวร์ออกเป็ น 7 ประเภท ดังนี้
1. ซอฟต์แวร์ระบบ (System Software)
2. ซอฟต์แวร์ประยุกต์ (Application Software)
3. ซอฟต์แวร์เชิงวิศวกรรม/วิทยาศาสตร์ (Engineering/Scientific Software)
4. ซอฟต์แวร์ฝังตัว (Embedded Software)
ซอฟต์แวร์ (software)
5. ซอฟต์แวร์สายการผลิต (Product-line Software)
6. เว็บแอพพลิเคชัน่ (Web-application)
7. ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial Intelligence Softwear)
วิวฒ
ั นำกำรของซอฟต์แวร์ (Software Evolution)
กฎแห่งการเปลีย่ นแปลงอย่างต่อเนื่อง (Law of Continuing Change)
กฎแห่งความซับซ้อนทีเ่ พิม่ ขึน้ (Law of Increasing Complexity)
กฎแห่งการวางระเบียบตัวเอง (Law of Self-regulation)
กฎแห่งอนุรกั ษ์สภาพเสถียรการจัดระเบียบ (Law of Conservation of
Organizational Stability)
กฎการคงไว้ซง่ึ ความคุน้ เคย (Law of Conservation of Familiarity)
วิวฒ
ั นำกำรของซอฟต์แวร์ (Software Evolution)
กฎแห่งการเติบโตอย่างต่อเนื่อง (Law of Continuing Growth)
กฎแห่งการลดลงซึง่ คุณภาพ (Law of Declining Quality)
กฎระบบย้อนกลับ (Feedback System Law)
THE END
นักศึกษาสามารถดาวน์โหลด เอกสารประกอบการเรียน ได้ที่
http://dearnan.wordpress.com
จะนา PowerPoint ประกอบการเรียนขึ้ นเว็บภายในวันอาทิตย์