วิศวกรรมซอฟต์แวร์ วิชา 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 ประกอบการเรียนขึ้ นเว็บภายในวันอาทิตย์