Document 7318523

Download Report

Transcript Document 7318523

วิชา ITSC2301
วิศวกรรมซอฟต์แวร์ (Software Engineering)
ภาพรวมของกระบวนการ (A Generic View of Process)
แบบจาลองกระบวนการพัฒนาระบบ (Process Model)
กระบวนการ (Process)

กระบวนการ (Process) คือ กลุม่ ของขัน้ ตอนการทางาน ทีป่ ระกอบด้วยชุด
กิจกรรม ข้อจากัด และทรัพยากรทีจ่ ะได้ผลิตเป็ นผลลัพธ์บางชนิดตามต้องการ
กระบวนการโดยทัวไปจะมี
่
ลกั ษณะ ดังนี้
1. กระบวนการจะต้องระบุกจิ กรรมทัง้ หมดอย่างชัดเจน
2. กระบวนการจะใช้ทรัพยากรภายใต้ขอ้ จากัดต่างๆ เพือ่ ผลิตเป็ นผลิตภัณฑ์ท่ี
แล้วเสร็จ
3. กระบวนการหนึ่ง อาจประกอบขึน้ จากกระบวนการย่อยอื่นๆ ทีม่ ี
ความสัมพันธ์กนั
กระบวนการ (Process)
4. ทุกกิจกรรมของกระบวนการจะมีเงือ่ นไขในการเริม่ ต้นและสิน้ สุดกิจกรรม
5. ทุกขัน้ ตอนและทุกกิจกรรมของกระบวนการจะต้องมีเป้ าหมายอย่างชัดเจน
และต้องมีหลักการหรือแนวทางในการปฏิบตั เิ พือ่ ให้บรรลุเป้ าหมายนัน้
6. ข้อจากัดหรือเงือ่ นไขสามารถนามาใช้ควบคุมการดาเนินกิจกรรม การใช้
ทรัพยากร หรือแม้กระทังตั
่ วผลิตภัณฑ์เองได้
กระบวนการซอฟต์แวร์ (Software Process)


กระบวนการซอฟต์แวร์ หมายถึงกลุ่มของกิจกรรม วิธกี าร วิธกี ารปฏิบตั ิ และ
การเปลีย่ นแปลงทีใ่ ช้ในการพัฒนาและบารุงรักษา ซอฟต์แวร์ ตลอดจน
ผลิตภัณฑ์ทเ่ี กีย่ วเนื่อง
กระบวนการซอฟต์แวร์ประกอบด้วย คน วิธกี าร และเครือ่ งมือ
กระบวนการซอฟต์แวร์ (Software Process)

กิจกรรมพืน้ ฐานทัง้ หมด 4 กิจกรรม ทีใ่ ช้กบั กระบวนการผลิตซอฟต์แวร์
 การกาหนดคุณสมบัตซ
ิ อฟต์แวร์ (Software
Specification)
 การออกแบบและสร้างซอฟต์แวร์ (Software Design and Implementation)
 การทวนสอบซอฟต์แวร์ (Software Validation)
 การวิวฒ
ั นการของซอฟต์แวร์ (Software Evolution)
กระบวนการซอฟต์แวร์ (Software Process)
1. software specification
นิยามหน้าทีต่ ่างๆทีต่ อ้ งมีในซอฟต์แวร์ และระบุขอ้ จากัดต่างๆ ทีเ่ กีย่ วข้องกับกระบวนพัฒนาซอฟต์แวร์ เช่น
กฎหมาย , อัตราภาษี , กฎระเบียบต่างๆทีเ่ กีย่ วในการพัฒนาซอฟต์แวร์
2. Software Design and Implementation
กิจกรรมนี้ทาการสร้าง / พัฒนาซอฟต์แวร์ให้ตรงกับข้อกาหนด (specification)
3. software validation
กิจกรรมนี้ทาการตรวจสอบความถูกต้องของซอฟต์แวร์ เพือ่ ให้เกิดความมันใจ
่ ว่าซอฟต์แวร์ท่ผี ลิตขึน้ ได้ตรงกับ
ความต้องการของลูกค้า
4. software evolution
ในทางปฎิบตั ิ เมือ่ ซอฟต์แวร์ใช้งานได้ระยะหนึ่งแล้ว ผูใ้ ช้หรือลูกค้าอาจมีความต้องการเพิม่ เติมหรือ
เปลีย่ นแปลงความต้องการบางอย่าง ดังนัน้ ขัน้ ตอนการพัฒนาซอฟต์แวร์ ต้องมีการเตรียมการบางอย่างเพือ่
จัดการกับเหตุการณ์ทค่ี าดหมายว่าจะเกิดขึน้ ในอนาคต
กระบวนการซอฟต์แวร์ (Software Process)

กระบวนการทางซอฟต์แวร์ คือกรอบงานของการสร้างซอฟต์แวร์ทม่ี ี
คุณภาพสูง กระบวนการทางซอฟต์แวร์เป็ นตัวกาหนดแนวทางทีซ่ อฟต์แวร์
จะถูกสร้างขึน้ ในขณะทีว่ ศิ วกรรมซอฟต์แวร์จะรวมไปถึงเทคโนโลยีใน
กระบวนการ ได้แก่ วิธเี ชิงเทคนิค และเครือ่ งมือทันสมัยต่างๆ
กระบวนการซอฟต์แวร์ (Software Process)


หากกล่าวถึงวิศวกรรมซอฟต์แวร์ ในแง่ของการเป็ นเทคโนโลยีของการผลิต
ซอฟต์แวร์แล้ว วิศวกรรมซอฟต์แวร์จะเป็ นเทคโนโลยีชนิดทีเ่ รียกว่า
“เทคโนโลยีแบบชัน้ ” (Layered Technology)
การดาเนินงานวิศวกรรมซอฟต์แวร์ จะประกอบไปด้วย 3 ระดับชัน้ ดังนี้
เครื่องมือ (Tools)
ระเบียบวิ ธี (Methods)
กระบวนการ (Process)
คุณภาพ (Quality)
กรอบงานของกระบวนการ (A Process Framework)


กรอบงานของกระบวนการ เป็ นพืน้ ฐานสาคัญของกระบวนการทาง
ซอฟต์แวร์ กรอบงานจะแยกออกได้เป็ น กิจกรรมกรอบงาน (Framework
Activity)
กรอบงานของกระบวนการยังครอบคลุม กิจกรรมทีใ่ ช้ได้กบั กระบวนการทาง
ซอฟต์แวร์ เรียกว่า ชุดกิจกรรมร่ม (Umbrella Activities)
Software Process
Umbrella activities = all activities we
need for working on the project: plan,
control, meetings, transport, ...
กิจกรรมของกรอบงานของกระบวนการ





การสือ่ สาร (Communication)
การวางแผน (Planning)
การสร้างแบบจาลอง (Modeling)
การสร้าง (Construction)
การใช้งาน (Deployment)
กิจกรรมในกลุ่มกิจกรรมร่ม







การติดตามและควบคุมโครงการซอฟต์แวร์ (Software Project Tracking and
Control)
การจัดการความเสีย่ ง (Risk Management)
การประกันคุณภาพของซอฟต์แวร์ (Software Quality Assurance)
การพิจารณาด้านเทคนิค (Formal Technical Reviews)
การวัด (Measurement)
การจัดการโครงแบบของซอฟต์แวร์ (Software Configuration Management)
การเตรียมและการผลิตชิน้ งาน (Work Product Preparation and Production)
แบบจาลองกระบวนการพัฒนาระบบ (Process Model)


หมายถึง การจาลองภาพของกระบวนการ เพือ่ ให้เห็นถึงการจัดโครงสร้าง
ลาดับขัน้ ตอนของกระบวนการในรูปแบบทีแ่ ตกต่างกันออกไป
แบบจาลองกระบวนการ (Software Process Model)
 Linear Process Model
 Incremental Process Model
 Evolutionary Process Model
 Specialize Process Model
Linear Process Model

The Linear Model หรือ Classic Life Cycle , Waterfall Model
Waterfall Model

Waterfall Model เรียกได้ว่าเป็ น Classic Life Cycle ซึง่ หมายถึง แบบ
ระเบียบวิธเี รียงลาดับเป็ นระบบในการพัฒนาซอฟต์แวร์
Waterfall Model

ข้อเสียของ Waterfall Model
Incremental Process Model

แบบจาลองค่อยเพิม่ ขึน้ (The Incremental Model)
Incremental Process Model

แบบจาลองแบบเร่งรัด (RAD Model)
Evolution Process Model

เป็ นแบบจาลองทีม่ กี ารทากิจกรรมในลักษณะซ้า (Iteration)
การสร้างต้นแบบ (Prototyping)
 ผูใ้ ช้ไม่สามารถบอกความต้องการได้
 สร้างแบบจาลองให้
การสร้างต้นแบบ (Prototyping)

ขัน้ ตอนการทา Prototype
1. ตัง้ เป้ าหมาย (Objective)
2. เลือก Function ที่ Meet Objective
3. สร้าง
4. ให้ผใู้ ช้ดแู ล้ว Feedback
การสร้างต้นแบบ (Prototyping)

การสร้างต้นแบบ มี 3 ลักษณะ
1. เพือ่ วิเคราะห์ความต้องการของผูใ้ ช้
2. เพือ่ ขยายให้เป็ นระบบทีป่ ฏิบตั งิ านจริง
3. เพือ่ หาทางแก้ปัญหาทีด่ ที ส่ี ุด เพือ่ ใช้เป็ นเครือ่ งมือในการทดลอง
Evolution Process Model

แบบจาลองแบบสไปรัล (The Spiral Model)
Evolution Process Model
แบบจาลองการพัฒนาไปพร้อมกัน
(The Concurrent Development Model)
แบบจาลองนี้แสดงให้เห็นสถานะปั จจุบนั
ของโครงการ แทนทีจ่ ะมองงานย่อย
กิจกรรมเป็ นลาดับของเหตุการณ์กม็ อง
เป็ นโครงข่ายของกิจกรรมทีท่ ุกงานและ
งานย่อยในโครงข่ายเกิดขึน้ พร้อมๆกันกับ
งานและงานย่อยอื่นๆ

Specialize Process Model
การพัฒนาจากคอมโพเน้นท์
(Component Based Development)

Specialize Process Model

แบบจาลองวิธกี ารฟอร์มลั (The Formal Methods Model)
แบบจาลองวิธกี ารฟอร์มลั รวมเอาชุดของกิจกรรมทีน่ าไปสูข่ อ้ กาหนด
ทางคณิตศาสตร์ฟอร์มลั ของซอฟต์แวร์
เหมาะกับซอฟต์แวร์ทต่ี อ้ งการความปลอดภัยระดับสูง เช่น การควบคุม
การบินการควบคุม เครือ่ งมือทางการแพทย์ เป็ นต้น
Specialize Process Model

การพัฒนาซอฟต์แวร์เชิงแง่มมุ (Aspect-Oriented Software Development)
กระบวนงานเชิงแง่มมุ กระบวนการนี้จะรับเอาแบบจาลองสไปรัลและ
แบบจาลองแบบทาไปพร้อมกันมาใช้ การพัฒนาแบบคูข่ นานของการทาไป
พร้อมกันมีความจาเป็ นในการสร้างแง่มมุ เนื่องจากแง่มมุ จะมีผลกระทบต่อ
หลายๆส่วนของซอฟต์แวร์
The Unified Process
-
Inception
Elaboration
Construction
Transition
Production
งาน

ให้นกั ศึกษาทารายงานเรือ่ ง









CMM
Agile Process
Extreme Programming
Adaptive Software Development
Dynamic Systems Development
Scrum
Crytal
Feature Driven Development
Agile Modeling – AM