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