แบบจ าลองระบวนาร...
TRANSCRIPT
แบบจ าลองกระบวนการซอฟตแวร
Software Process Model
กระบวนการซอฟตแวร• กระบวนการ หมายถง ขนตอนตาง ๆ ทเกยวของกน และน าไปปฏบตเพอใหบรรลวตถประสงคทก าหนดไว
• กระบวนการมความหมายรวมถง ทรพยากร เชน คน , วธการ และเครองมอทจ าเปนส าหรบน าไปใชปฏบตตามขนตอนวธการทก าหนดไวในกระบวนการดวย
• กระบวนการทดยอมสามารถปฏบตซ า และไดผลลพธแบบเดยวกนเสมอ
ความส าคญของกระบวนการซอฟตแวร
• กระบวนการซอฟตแวร ชวยใหเหนกจกรรมตาง ๆทจ าเปนส าหรบการพฒนา SW ทก าหนดให ตงแตตนจนจบและประสบผลส าเรจด
• กระบวนการ SW ไมใช SDLC (System Development Life Cycle) ทนกพฒนารจก เพราะ SDLC มแตเพยงเฟส (phase)ส าคณเทานน และ SDLC กเนนแตเพยงกจกรรมทเกยวของกบการพฒนาเทานน ไมไดกลาวถงกจกรรมอน ๆ เชน การวางแผน , การประมาณการ , การสอบทานผลงาน เปนตน
พจารณาตวอยาง ชางตดสท• ชางตดสทตองรจกกระบวนการทกอยางตงแต
– รจกลกษณะของผา– รจกลกษณะของสททลกคาตองการ– รจกการประมาณราคาและเวลาทจะท าส าเรจ– รจกการวดตว– รจกการสรางแบบสททพอดกบขนาดรปรางของลกคา– รจการตดผาออกเปนชนสวนตาง ๆ– รจกการเยบชนสวนของผาใหเปนชด– รจกการประมาณเวลาทลกคามาลองสวมใส และ สามารถแกไขได– รจกการเยบทกขนตอนจนส าเรจ
กจกรรมทประกอบเปน Software Process• Requirement Engineering• Architectural Design• Detailed Design• Coding• System Integration• Validation & Verification• Operation & Maintenance
Software Process Model• Softwae Process Model คอ แบบจ าลองกระบวนการพฒนาซอฟตแวร แบงเปน 4 ประเภท ไดแก– Linear Model – Iterative Model– Incremental Model– Evolutionary Model
The Linear Model
หรอ Classic Life Cycle , Waterfall Model
จาก Roger s. Pressman . Software Engineering a Practitioner’s Approach
Waterfall Model
Waterfall Model
คณลกษณะของ Waterfall Model• เปน Seriesของขนตอนการท างาน คลายสายงานการผลต (Product Line)
• แตละขน หนาทและProduct ถกก าหนดอยางชดเจน• Product สวนใหญเปนเอกสาร (Document)• Productทผลตในแตละขนจะเปนพนฐานส าหรบงานขนตอไป
• สามารถตรวจสอบความถกตองของงานในแตละขนได
ขอดของ Waterfall Model
• แบงงานยากใหเปนงานทเลก งายตอการจดการ
• มการก าหนดProductทตองสงมอบในแตละงาน อยางชดเจน
ขอจ ากดของ Waterfall Model• ถา คนพบขอผดพลาดของขนทเสรจสนแลว ไมสามารถแกไขได การแกไขจ าเปนตองเรมรอบ (Iteration) ใหม– ระหวางการท าCoding เจอขอผดพลาดในงานออกแบบ
ในความเปนจรง หลงการท างานในแตละขนควรสามารถยอนไปแกไขความผดพลาดในขนใดใดกไดกอนหนา
ดงนนในทางปฏบต ขนตอนการท างานใน Waterfall จงไมเปนเชงเสน (Linear)
• ขอเสยหลกคอ ลกคาเหนและทดลองใชSoftware กตอเมอถงขนตอนสดทาย หากมบางอยางทไมตรงกบความตองการของลกคา การแกไขยาก แพง เสยเวลา
Waterfall ModelRequirement Analysis
V & V
DesignV & V
ImplementationV & V
TestingV & V
MaintenanceV & V
V & V
WHAT ?????
การตรวจสอบวา ระบบท างานตามทก าหนดไวหรอไม ?
Are we building the system right ?
Verification
Boehm
การตรวจสอบวา ระบบสามารถท างานตามความตองการของผใชหรอไม ?
Validation
Are we building the right system ?
Boehm
Prototyping Model• วธการหนงทประกนวาลกคาจะไดในสงทตองการ และอยางพงพอใจ
• Prototype คอระบบทสมบรณหรอเปนสวนหนงของระบบทสงมอบแกลกคาไดทดลองใช เพอใหลกคาตชมตงแตเนนๆ
• ลกคาบอกความพอใจหรอบอกจดทตองแกไข• Analyst และ Designer สามารถแสดงคณสมบตของระบบแกลกคาได ชวยลกคารความตองการทแทจรง
Prototyping Model
Prototyping Model
Prototyping Model
OutlineDescription
Specification
Development
Validation
FinalVersion
Intermediate Versions
Initial Version
หลกเกณฑการท า Prototype
• Prototype มเฉพาะ Features ทส าคญของระบบ (ละเลยเรองNetwork connection, Error Handling)
• Prototype ตางกบ ระบบจรง ท Performance และ ปรมาณของขอมลทใช
• ตนทนการท า Prototype ตองถก
• การท า Prototype หนงครงตองใชเวลานอย
Prototyping Model• แบงเปน 2 ตระกลขนอยกบการน าPrototypeไปใช
– Throwaway (ดอกไมรมทาง)
เปนตนแบบส าหรบการสรางระบบจรง การImplementระบบจรงอาจตางจากImplementationของPrototype
– Evolutionary (ปนมากบมอ)
คอยๆ ขยายขดความสามารถของ Prototype จนเปนระบบทสมบรณทสงมอบ วธการImplementของระบบจรงกบPrototypeเหมอนกน
หลกเกณฑการท า Throwaway Prototype (ดอกไมรมทาง)
• จดหมายการท า = Specification ทชดเจน
• เรมสราง Prototype จากความตองการทไมชดเจน คอยๆ เพมความตองการเขาไป
• Prototypeอาจจะ implement ความตองการทชดเจนอยแลวกได
• ตวอยาง เขยน Functions ตางๆทส าคญดวย Lisp เมอไดPrototypeสดทาย Implement ระบบจรง ดวย C++
หลกเกณฑการท า Evolutionary Prototype (ปนมากบมอ)
• จดหมายการท า = ระบบทสมบรณ สงมอบได
• เรมสรางPrototype จากความตองการทชดเจน คอยๆ เพมความตองการทไมชดเจนเขาไป
• ตวอยาง เขยน Features ตางๆทส าคญ เมอลกคาตรวจสอบวาถก จงเพม Featuresจนไดระบบสดทาย
แบบจ าลองทางวศวกรรม
• พมพเขยว
• แบบจ าลอง
• สรางชวงสนๆ
บาน, ถนน, รถยนต,
รถไฟฟา
Design Prototyping
แบบจ าลองทางซอฟตแวร
• เพอ Validate Requirement
Prototyping Designcommit
ขนตอนการท า
PrototypeConstruct Prototype
Check with UserRefine
Prototype
Yes
No
Specification / System
OK ?
การสรางตนแบบ ม 3
ลกษณะ1. เพอวเคราะหความตองการของผใช
2. เพอขยายใหเปนระบบทปฏบตงานจรง
3. เพอหาทางแกปญหาทด
ขอดอนๆของPrototype• ใช Train การใชSoftware แกผใชพรอมกบงาน Development
• ใชแสดงความกาวหนา และความส าเรจแก Project Manager
• การท าPrototypeจะตองมบคลากรทมความสามารถดาน DevelopmentสงเพอพฒนาPrototype ไดเรว
• การเปลยนแปลงหรอการเพมRequirementsเพอสรางPrototypeหลายVersionท าใหไดSoftware Structure ทไมด
• การผลตDocumentส าหรบ Prototype ในแตละVersion จะเปนการสนเปลองงบประมาณ
ขอเสยของPrototyping Model
ขอแนะน าการใชPrototyping Model
• เปนทยอมรบวาการสรางSoftwareโดยใชPrototype จะมประสทธภาพดกวาการใชWaterfall Modelอยางเดยว
• แตจากขอเสยดานบน แนะน าใหใชPrototypingเพอวเคราะหหาRequirementsทชดเจนของลกคาและคอยพฒนาSoftwareตามขนตอนในWaterfall Model
เครองมอสรางPrototype• Formal, Mathematical language: LOTOS ท า Animationได แต
ขาด Use Interface Prototype
• Very High-Level Languages: C++, Java โดยเฉพาะ Smalltalk
• Logic Programming: Prolog
• Fourth-Generation Language (4GL): คลายdatabase query language เชน SQL
• ภาษา Script ทงหลาย Tcl/Tk, JavaScript
• Visual Basic: พฒนาUIดวยวธ Drag and Drop
Incremental Model
• ใชการพฒนาแบบ Waterfall
• แบงระบบออกเปน Subsystem
• ท าทละสวนแลวใหผใช ใชงาน
Incremental Development
ขอควรพจารณา• ก าหนด Boundary ใหชดเจน
• Output ของ Subsystem หนง เปน
Input ของ Subsystem หนง ได
• ไมควรท ากบระบบใหญ
• ตางจากแบบจ าลองตนแบบคอสงทไดจากขนตอนแรกของวธการนไมจ าเปนตองทราบการท างานทงหมดทผใชตองการแตจะคอยๆเพมหนาทการท างานอนๆในแตละสวนของการท าซ า
• ใชระยะเวลานานในการพฒนาระบบใหสมบรณ• การแบงการพฒนาออกเปนเฟสจะชวยลดชวงเวลาในการพฒนา
• ระบบจะถกแบงเปนระบบยอยตามหนาทการท างาน
Incremental Development
• การพฒนาระบบโดยใช Increment model น เหมาะสมกบกรณทผพฒนาในทมทงหมดไมสามารถท างานในขณะเวลาเดยวกนได
• สวนงานทไดในขนตอนแรกอาจใชผพฒนาจ านวนนอย และเพมจ านวนผพฒนาขนเรอยๆ ในแตละสวนงานทเพมขน
• นอกจากนน การท างานแบบนจดเปนการวางแผนเพอรองรบความเสยงในดานของการน าเทคโนโลยมาปรบใช
Incremental Development
analysis deliverydesign coding testing
analysis deliverydesign coding testing
analysis deliverydesign coding testing
analysis deliverydesign coding testing
1st Increment
2nd Increment
3rd Increment
4th Increment
Project
Definition
Incremental Development
Incremental Development
Evolutionary or Spiral Model
• Customer Communication
• Planning
• Risk Analysis
• Engineering
• Construction and Release
• Customer EvaluationRoger s. Pressman
Evolutionary or Spiral Model
Evolutionary or Spiral Model
Evolutionary or Spiral Model
The Spiral Model
• พฒนาโดย Boehm ในค.ศ 1988• แบบจ าลองบนไดเวยนเปนแบบจ าลองทรวมกระบวนการท าซ าของการสรางตนแบบ เขากบ Linear sequential model โดยมการพฒนาอยางรวดเรว
The Spiral Model
• แบบจ าลองบนไดเวยน แบงออกไดเปนสวนยอยๆ โดยปกตจะแบงเปน 3 สวน หรอ 6 สวนงานเชน– การตดตอสอสารกนระหวางผใช และผพฒนาระบบ– การวางแผน – การวเคราะหความเสยง – วศวกรรม– การสรางและน าไปใช – การประเมนผลจากผใช
The Spiral Model (cont.)
• แตละรอบของการท าซ า– วเคราะหความเสยง
– พฒนาตนแบบส าหรบตรวจสอบความเปนไปไดและความตองการ
– เมอพบความเสยงผจดการโครงการจะตองตดสนใจทจะก าจดหรอลดความเสยง
The Spiral Model (cont.)
• ปญหาของการใชแบบจ าลองบนไดเวยน ในการพฒนาซอฟตแวร คอการโนมนาวใหผใชระบบเหนชอบกบวธการทเปนกระบวนท าซ าแบบมววฒนาการ
• ความส าเรจของการใช แบบจ าลองบนไดเวยน ผพฒนาจะตองมความเชยวชาญในดานการประเมนผลความเสยง
• เปน model ทใชความเสยงเปนเครองตดสนใจวาจะกระท าอะไรตอไป (risk-driven)
• ขนตอนในแตละรอบ– วเคราะหเปาหมาย แนวทางเลอกตางๆ เงอนไขตางๆ– วเคราะหความเสยง– พยายามลดความเสยงนน เชน ท า Prototype เพอทดสอบ– พฒนา product– น า product ใหลกคาทดสอบ
Evolutionary or Spiral Model