แบบจ าลองระบวนาร...

Preview:

Citation preview

แบบจ าลองกระบวนการซอฟตแวร

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

Recommended