กระบวนการผลิตซอฟต์แวร์wcalab.com/course/wp-content/uploads/2015/01/2-บทที่-2... ·...
Post on 17-Mar-2018
230 Views
Preview:
TRANSCRIPT
บทท 2
กระบวนการผลตซอฟตแวร
Wimolsree Getsopon
Software Engineering ,Information System Program,RMUTI
กระบวนการผลต
กระบวนการผลตซอฟตแวร
กระบวนการผลตซอฟตแวร
ความสามารถ การพจารณา การตดสนใจ
INPUT : Software Requirement
กระบวนการผลตซอฟตแวร
กระบวนการผลตซอฟตแวร
ความสมพนธระหวางกระบวนการผลตซอฟตแวร และกระบวนการวศวกรรมซอฟตแวร
แบบจ าลองกระบวนการผลตซอฟตแวร
การปรบปรงกระบวนการดวย CMM และ CMMI
เครองมอและระเบยบวธทใชในวศวกรรมซอฟตแวร
กระบวนการผลตซอฟตแวร
กระบวนการ (Process) คอ กลมของขนตอนการท างาน ทประกอบไป ดวยชดกจกรรม ขอจ ากด และทรพยากรทจะใชผลตเปนผลลพธบาง ชนดตามตองการ กระบวนการโดยทวไปจะมลกษณะ ดงน 1. กระบวนการจะตองระบกจกรรมทงหมดอยางชดเจน 2. กระบวนการจะใชทรพยากรภายใตขอจ ากดตางๆ 3. กระบวนการหนง อาจประกอบขนจากกระบวนการยอยอนๆ ทม
ความสมพนธกน
กระบวนการผลตซอฟตแวร (ตอ)
4. ทกกจกรรมของกระบวนการจะมเงอนไขในการเรมตนและ สนสดกจกรรม 5. ทกขนตอนและทกกจกรรมจะตองมเปาหมายอยางชดเจน 6. ขอจ ากดหรอเงอนสามารถน ามาใชควบคมการด าเนน กจกรรม
คณภาพ (Quality)
กระบวนการ (Process)
ระเบยบวธ (Methods)
เครองมอ (Tools)
ความสมพนธระหวางกระบวนการผลตซอฟตแวรและกระบวนการวศวกรรมซอฟตแวร
แสดงเทคโนโลยแบบเลเยอรของวศวกรรมซอฟตแวร
แบบจ าลองกระบวนการผลตซอฟตแวร
หมายถง การจ าลองภาพของกระบวนการผลตซอฟตแวร เพอใหเหนถงการจดโครงสรางล าดบขนตอนของกระบวนการใน รปแบบทแตกตางกนออกไป แบบจ าลองกระบวนการผลตซอฟตแวรโดยทวไปมพนฐานมา จากแบบจ าลอง 2 รปแบบ ไดแก
1. Waterfall Model 2. Evolution Model (Iterative)
แบบจ าลองกระบวนการผลตซอฟตแวร Requirement
Definition
System and Software Design
Implementation And Unit Testing
Integration and System Testing
Operation and Maintenance
แสดงแบบจ าลองกระบวนการผลตซอฟตแวร แบบ Waterfall Model (ซาย) และ Evolution Unit Testing
แบบจ าลองล าดบเชงเสน (Linear Sequential Model : LSM)
แบบจ าลองชนดน มการเชอมโยงกจกรรมเปนเสนตรงตามล าดบ อยางเปนขนตอน
แบบจ าลองล าดบเชงเสน (Linear Sequential Model : LSM)
วเคราะหความตองการ (Requirement
Analysis)
ออกแบบ (Design)
เขยนโปรแกรม
(Coding)
ทดสอบคณภาพ
(Test Quality)
แบบจ าลองตนแบบ (Prototype Model : PRM)
แบบจ าลองชนดน มการจดท าตนแบบขนมาเพอตองการก าหนดความตองการ ของผใช ลกคา หรอผทเกยวของ
วเคราะหความตองการ (Requirement Analysis)
วเคราะหความตองการ (Requirement Analysis)
วเคราะหผลลพธ (Result Analysis)
จดท าขอก าหนดความตองการขนสดทาย
(Final Reg. & Spec.)
ทดสอบโดยลกคา (Testing by customer)
ออกแบบ (Design)
เขยนโปรแกรม (Coding)
ทดสอบคณภาพ (Test Quality)
ทบทวนหากลกคาไมพอใจ
ลกคาพอใจ
แบบจ าลองล าดบตนแบบ (Prototype Model : PRM)
แบบจ าลองเรงรด (Rapid Application Development Model : RAD)
แบบจ าลองชนดน มกระบวนการผลตซอฟตแวรในลกษณะการกาวกระโดด
เพอใหถงเปาหมายโดยเรว
วเคราะหความตองการ (Requirement Analysis)
Module 1 Module 2 Module 3
วเคราะห (Analysis)
ออกแบบ (Design)
การเขยนโปรแกรม (Coding)
ทดสอบ (Test)
ผนวกรวมระบบ (Integrate)
สงมอบ (Deliver)
วเคราะห (Analysis)
ออกแบบ (Design)
การเขยนโปรแกรม (Coding)
ทดสอบ (Test)
วเคราะห (Analysis)
ออกแบบ (Design)
การเขยนโปรแกรม (Coding)
ทดสอบ (Test)
ทดสอบ (Test)
แบบจ าลองเรงรด (Rapid Application Development Model : RAD)
แบบจ าลองท าเพม (Incremental Model : INM)
แบบจ าลองชนดน มกระบวนการผลตซอฟตแวรในลกษณะการตอเตมความตองการทสลบซบซอนหรอเพมมากขนเรอยๆ ไมวาจะเกดจากประสบการณการลองผดลองถก หรอกระแสนยมปจจบนกตาม
1-1 1-2 1-3 1-4 1-5
กระบวนการท าเพม (Increment Process)
วเคราะหความตองการ (Requirement Analysis)
ออกแบบ (Design)
เขยนโปรแกรม (Coding)
ทดสอบคณภาพ (Test Quality)
ท าเพมรอบถดไป
(Next Increment Process)
แบบจ าลองท าเพม (Incremental Model : INM)
แบบจ าลองวงเวยน (Boehm Spiral Model : BSM)
แบบจ าลองชนดน มกระบวนการผลตซอฟตแวรในลกษณะ วนซ า กลาวคอ สามารถวนกลบมาเรมตนใหมไดอกครง น าเสนอโดย Barry Boehm ดวยการผสานแนวคดแบบจ าลองของ LSM, RAD และ INM เขาดวยกน เพอสนองความตองการของผใชและผทเกยวของ
แบบจ าลองวงเวยน (Boehm Spiral Model : BSM)
แบบจ าลองวงเวยน (Boehm Spiral Model :BSM)
รอบท 1 เวอรชน 1
รอบท 2 เวอรชน 2
รอบท 3 เวอรชน 3
รอบท 4 เวอรชน 4
สรปผลการเปรยบเทยบแบบจ าลองกระบวนการผลตซอฟตแวร 5 ชนด
แบบจ าลอง
ความตองการ การสนองตอผใช ระดบความเสยง
เทคนคการใชงาน ขอบเขตองคความร
จดมงเนน
LSM •เรยบงาย ครงคราว ไมม การทดสอบ พนฐาน แกปญหา
PRM •เรยบงาย •ตองการทดสอบและยนยนเทคโนโลยทจะน าไปใช
บอยครง จนกวาจะอนมตตนแบบ
นอยมาก •การทดลอง •การพสจน
ทวไป เทคโนโลย
•แกปญหา •สรางตนแบบ
RAD •เรยบงาย •มการแยกชนสวน เพอทจะกระจาย
บอยครง จนกวาขอบเขตจะชดเจน
นอย การทดลอง การบรหารงานเปนทม
เชยวชาญ สรางระเบยบวธปฏบต และสถาปตยกรรม
INM •มขอก าหนดคณสมบตทวไปฟงกชน และการน าไปใชงาน
บอยครงมากจนกวาขอก าหนดทงหมดจะชดเจน
ปานกลาง การจดการสภาพแวดลอม
เชยวชาญสง สรางยทธวธเพอแกปญหาในการน าใชงาน
BSM •มความสลบซบซอน •มขอก าหนดขนาดใหญ •มกระบวนการหลายขนตอน •มการทดสอบเทคโนโลย
มการเปลยนแปลงอยตลอดเวลา
สง •การผสมผสาน •การจดการเทคโนโลยแบบหลากหลายมต
เชยวชาญสงมาก
สรางเครองมอและเทคโนโลยใหมๆ เพอใชแกปญหาแบบมสวนรวมกบลกคา
Rational Unified Process(RUP)
RUP เปนแบบจ าลองกระบวนการผลตทเกดจากการผสมผสานแบบจ าลองรปแบบอนๆ เขาดวยกน ไมวาจะเปนการวนรอบท าซ า (Iteration) ววฒนาการ (Evolution) และแบบเพมพน (Increment)
แสดงแบบจ าลองกระบวนการผลตซอฟตแวร แบบ RUP
Rational Unified Process(RUP) (ตอ)
Rup จะแสดงใหเหนกระบวนการผลตซอฟตแวรใน 3 มมมอง ไดแก Dynamic Perspective แสดงใหเหนขนตอนการท างานโดยแบงเปนเฟส
Static Perspective แสดงใหเหนกจกรรมทตองด าเนนการ Practice Perspective แนะน าหลกการด าเนนงานทจะตองใชในกระบวนการ ส าหรบรายละเอยดของการท างานทง 4 เฟส มดงน
1. Inception
2. Elaboration
3. Construction
4. Transition
Rational Unified Process(RUP) (ตอ)
สวนมมมองดานค าแนะน าการปฏบตงานนน ไดถกก าหนดไว 6 ขอดวยกน ดงน 1. พฒนาซอฟตแวรแบบวนซ า
2. มการบรหารจดการความตองการของซอฟตแวร 3. ใชสถาปตยกรรมแบบคอมโพเนนท 4. ใชแบบจ าลองทเปนแผนภาพ
5. ตรวจสอบคณภาพของซอฟตแวรเสมอ 6. ควบคมการเปลยนแปลงของซอฟตแวร
Component-based Software Engineering (CBSE)
เปนแนวทางการผลตซอฟตแวรทอาศยคอมโพเนนททไดถกสรางไวแลวมาประกอบเปนซอฟตแวรใหมทตองการดวยหลกการ Reusable ทงในสวนของโคดและสถาปตยกรรม แนวทางการผลตซอฟตแวรแบบคอมโพเนนจะชวยลดตนทนในการผลตลงไดมาก
Component-based Software Engineering (CBSE)
วเคราะหโดเมน แบบจ าลองโดเมน (Domain Model)
วเคราะหแบบจ าลอง (Model Analysis)
ออกแบบสถาปตยกรรม (Architecture Design)
ออกแบบแอปพลเคชน (Application Design)
Component Repository
พฒนาคอมโพเนนท (Reusable Component Development)
สถาปตยกรรมแอปพลเคชน (Application Architecture)
คอมโพเนนท (Component)
ตดแปลงคอมโพเนนท (Adapt component)
สรางคอมโพเนนท ใหม (Adapt component)
ซอฟตแวร (Application
Software)
ทดสอบคอมโพเนนทรวม
ประกอบคอมโพเนนท
แสดงกระบวนการผลตซอฟตแวรแบบ Component-based Software Engineering (CBSE)
Component-based Software Engineering (CBSE)(ตอ)
ส าหรบแหลงจดหาคอมโพเนนทของทมงาน ม 2 แหลง ไดแก คอมโพเนนทมจ าหนายหรอใหดาวนโหลด (Commercial Off-the-Shelf : COTS) และคอมโพเนนททมอยแลวในองคกร
Agile process
Agile Process เปนกระบวนการผลตซอฟตแวรรปแบบใหมทถกก าหนดขนตามระเบยบแบบ Agile ซงเปนระเบยบวธทแตกแขนงจาก RAD ทเนนการผลตซอฟตแวรแบบเรงดวน สบเนองจากกระบวนการผลตซอฟตแวรในรปแบบตางๆ ม 4 ประการทตองค านงถง
1. ทมงานทกคนมคณคาในตวเองมากพอทจะท างานไดอยางอสระ
2. ทมงานพอใจทจะใชเวลาสวนใหญในการเขยนโปรแกรมเพอสรางซอฟตแวรมากกวาการใชเวลาเพอจดท าเอกสาร
3. ทมงานมงเนนการท างานกบลกคาโดยตรง แทนการเจรจาตามสญญวาจาง 4. ทมงานใหความส าคญกบการแกไขงานทนททมการเปลยนแปลง
Extreme Programming (xp) เปนวธปฏบตในการพฒนาระบบวธใหมทนาสนใจตามแนวทางการพฒนาแบบ
Iteration and Development ซงถกคดคนขนโดย Kent Back และเผยแพรอยางเปนทางการในป ค.ศ. 1999 เปนแบบจ าลองการบวนการผลตซอฟตแวรทใชแนวทางเชงวตถเปนหลก แบงขนตอนการท างานเปน 4 ขนตอน ไดแก การวางแผน ออกแบบ เขยนโปรแกรม และทดสอบ
Release Software Increment
วางแผน (Planning)
ออกแบบ (Design)
เขยนโปรแกรม (Coding)
ทดสอบ (Testing)
User Story Iteration Plan
Simple Design Spike Solution : Prototype
Unit Test Continuous Integration Acceptance Test
Pair Programming Unit Test Continuous Integration
แสดงแบบจ าลองกระบวนการผลตซอฟตแวรแบบ Extreme Programming (XP)
ปรบปรงกระบวนการผลตซอฟตแวรดวยแบบจ าลองวฒภาวะความสามารถ แบบจ าลองวฒภาวะความสามารถ (Capability Maturity Model : CMM)
เปนแบบจ าลองทน ามาใชเพอการปรบปรงกระบวนการพฒนาซอฟตแวรไปสคณภาพ บางครงเรยกไดอกอยางหนงวา “SW-CMM (Software Capability Maturity Model )”
ปรบปรงกระบวนการผลตซอฟตแวรดวยแบบจ าลองวฒภาวะความสามารถ (ตอ)
ระดบท 5 ดลยภาพ (Optimizing)
ระดบท 4 การจดการ (Managed)
ระดบท 3 การก าหนดนยาม (Defined)
ระดบท 2 การกระท าซ าได (Repeatable)
ระดบท 1 การเรมตน (Initial)
มการปรบปรงกระบวน การอยางตอเนอง
มการควบคมกระบวนการ
มการควบคมกระบวนการ
มสภาพแวดลอมทมนคง
การบรหารการเปลยนแปลง
การบรหารเชงปรมาณ
การบรหารวศวกรรม
การบรหารโครงสราง
แสดงแบบจ าลองวฒภาวะความสามารถ (Capability Maturity Model : CMM)
วฒภาวะระดบท 1 ระดบการเรมตน (The Initial Level)
วฒภาวะในระดบน องคกรไมมความแนนอนในการพฒนาและการบ ารงรกษาซอฟตแวร ปญหาทพบกคอ การไมบรรลถงขอตกลงตางๆ ทตองปฏบตตามกระบวนการอยางเปนขนตอนทไดก าหนดไว
วฒภาวะระดบท 2 ระดบการกระท าซ าได (THE REPEATABLE LEVEL)
วฒภาวะในระดบน องคกรจะมการก าหนดนโยบาย การจดตงทมงาน และการบรหารโครงการซอฟตแวร เปนไปอยางมแบบแผนและชดเจน การผลตซอฟตแวรในวฒภาวะระดบน ตองค านงถงนโยบายและความมระเบยบวนยเปนส าคญ
วฒภาวะระดบท 3 ระดบการก าหนดนยาม (The Defined Level)
วฒภาวะในระดบน เปนผลเนองจากวฒภาวะระดบท 2 โดยมงเนนการก ากบ ตดตาม และควบคมกระบวนการตางๆ ผานทางเอกสารทไดก าหนดนยามไวในทกๆ ขนตอน
วฒภาวะระดบท 4 ระดบการจดการ (THE MANAGED LEVEL)
วฒภาวะในระดบน องคกรมการก าหนดมาตรฐาน (Standard) เพอใชเปนบรรทดฐานในการประเมนกระบวนการรวมไปถงคณภาพของซอฟตแวร ไมวาจะเปนการวางแผน การพยากรณ การควบคม หรอแมแตการวดคณภาพ โดยจะตองไดรบการปรบปรงอยางตอเนองภายในขอบเขตทก าหนดไว
วฒภาวะระดบท 5 ระดบการกระท าซ าได (The Optimizing Level)
วฒภาวะในระดบน ถอไดวาเปนองคกรแหงการเรยนร (Learning Organization) นอกจากจะมประสบการณอนยาวนานในการปรบปรงกระบวนการตางๆ ไดอยางมประสทธภาพแลว ยงมขดความสามารถในการจดสรรทรพยากรไดอยางคมคาและเหมาะสมทสด
แสดงคณลกษณะและกระบวนการส าคญของวฒภาวะความสามารถแตละระดบชนตามแบบจ าลอง CMM
ระดบ CMM คณลกษณะ กระบวนการในแตละดาน (KPA)
1. (Initial) •ไมเปนระเบยบ •ไมสามารถกระท าซ าได •มความเสยงสงมาก
•ไมมการก าหนด
2. (Repeatable) •มนโยบายชดเจน •สามารถกระท าซ าได •ไมมการปรบปรง
•การวเคราะหความตองการ •การวางแผนโครงการ •การประกนคณภาพซอฟตแวร •การจดหาผรบชวงหรอผรบจาง •การจดสภาพแวดลอมซอฟตแวร
3. (Defined) •มการปรบปรงประสทธภาพในดานตางๆ ไดแก ตนทน ก าหนดการ คณภาพ และความเสยง
•การจดการกระบวนการดวยเอกสาร •การบรณาการ •การฝกอบรม •การจดการดานทรพยากรบคคล •การจดการคณภาพเบองตน •การสนบสนนการผลตซอฟตแวร
4. (Managed) •มประสบการณ •มการปรบปรงประสทธภาพอยางตอเนอง
•การจดการกระบวนการเชงปรมาณ •การจดการคณภาพซอฟตแวร
5. (Optimizing) •มประสทธภาพในทกๆดาน •มการปรบปรงการเรยนร •มการสงสมประสบการณ •มฐานองคความร (ผเชยวชาญ) •มคณภาพสง และมความเสยงนอย
•การสรางสรรคนวตกรรม •การบรหารความเปลยนแปลง •การจดสรรทรพยากร
เครองมอและระเบยบวธทใชในการวศวกรรมซอฟตแวร
2.5.1 เครองมอ ส าหรบการผลตซอฟตแวร กคอ ซอฟตแวรคอมพวเตอรทมวตถประสงคเพอชวยใหการท างานในกระบวนการผลตซอฟตแวรสะดวกขน
CASE Tools (Computer-Aided Software Engineering) หมายถง ซอฟตแวรทเปนเครองมอทมสวนชวยสนบสนนการท างานในกจกรรมตางๆ ของงานวศวกรรมซอฟตแวร
เครองมอและระเบยบวธทใชในการวศวกรรมซอฟตแวร (ตอ)
ชนดของ CASE สามารถจ าแนกไดหลายประเภท โดยมหลกการจ าแนกหลายอยาง ตามหนาทของ CASE Tools เหลานน (Functional Perspective) จ าแนกตามกระบวนการท างาน (Process Perspective) และจ าแนกตามการประสานเขากบ CASE Tools อนๆ(Integration Perspective) หากจ าแนกตามกระบวนการท างานขนตอนตางๆแลว สามารถแบง CASE Tools ออกเปน 8 กลมดงน
เครองมอและระเบยบวธทใชในการวศวกรรมซอฟตแวร (ตอ)
1. เครองมอส าหรบการวเคราะหความตองการ (Software Requirement Tools) แบงออกเปน 2 กลม ไดแก
- เครองมอในการสรางแบบจ าลองความตองการ (Requirement Modeling Tools)
- เครองมอการตดตามความตองการ (Requirement Traceability Tools) 2. เครองมอออกแบบซอฟตแวร (Software Design Tools) 3. เครองมอสรางซอฟตแวร (Software Construction Tools)
4. เครองมอทดสอบซอฟตแวร (Software Testing Tools) 5. เครองมอบ ารงรกษาซอฟตแวร (Software Maintenance Tools) 6. เครองมอจดการโครงแบบ (Software Configuration Management Tools)
เครองมอและระเบยบวธทใชในการวศวกรรมซอฟตแวร (ตอ)
7. เครองมอบรหารงานวศวกรรมซอฟตแวร (Software Engineering Management Tools)
8. เครองมอคณภาพซอฟตแวร (Software Quality Tools) - ประเดนอนๆ เกยวกบ CASE Tools - Integrated CASE Environment - Meta Tools
ระเบยบวธ (Methodologies)
โดยทวไป “ระเบยบวธ” หรอ “กรรมวธ” ในการปฏบตงานวศวกรรมซอฟตแวร จะก าหนดนยามของกจกรรมตางๆ ขนตอนการด าเนนกจกรรม และขอแนะน าการตรวจสอบการท างาน
Heuristic Methodology Format Methodology
END ….
top related