กระบวนการผลิตซอฟต์แวร์wcalab.com/course/wp-content/uploads/2015/01/2-บทที่-2... ·...

Preview:

Citation preview

บทท 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 ….

Recommended