วันพุธที่ 25 กรกฎาคม พ.ศ. 2555

บทที่ 2



บทที่ 2
1.             จงเปรียบเทียบจุดเด่น จุนด้อยของระเบียบวิธีปฎิษัติของวิศวกรซอฟต์แวร์ ระหว่างวิธีเชิงโครงสร้าง(Structured Approach) และวิธีเชิงวัตถุ (Object-Oriented Approach )
ระเบียบวิธีปฏิบัติของวิศวกรรมซอฟแวร์ จึงเป็นไปตามแนวทางการพัฒนาซอฟแวร์ ซึ่งมีสองแนวทางที่รู้จักกันอย่างกว้างขวางคือ 1. แนวทางเชิงโครงสร้าง (Structured Approach) เป็นแนวทางแบบตั้งเดิม มีการแบ่งระบบและความต้องการออกเป็นระบบย่อย ตามลักษณะฟังก์ชันงานและแต่ละระบบย่อยสามารถแบ่งออกเป็นส่วนย่อยลงไปได้อีก หากยังมีความสลับซับซ้อนอยู่ จึงเป็นโครงสร้างแบบสำดับชั้น ระเบียบวิธีการปฏิบัติชนิดหนึ่งที่นิยมนำมาใช้ในขั้นตอนการวิเคราะห์ออกแบบ ระบบ คือ การวิเคราะห์และโดย Yourdan& Demarco 2. แนวทางเชิงวัตถุ (Object-Oriented Approach) เป็นแนวทางใหม่ที่คิดค้นโดย Grady Booch, James Rubaughและ Ivar Jacobson ด้วยวิธีการวิเคราะห์และอกแบบระบบเชิงวัตถุ เป็นการวิเคราะห์ระบบโดยหารมองทุกย่างในระบบเป็นอ็อบเจ็กต์ ซึ่งภายในอ็อบเจ็กต์นั้น จะมีทั้งส่วนข้อมูลและพฤติกรรมของระบบรวมอยู่ด้วย ทำให้การวิเคราะห์และออกแบบระบบเร็วขึ้นด้วย ซึ่งปัจจุบันได้รับความนิยมย่างสูงและกำลังเพิ่มขึ้นในอนาคตด้วย
2.             Waterfall Model แตกต่างจาก Spiral Model อย่างไร จงอธิบายตามความเข้าใจของนักศึกษา
Waterfall Model ข้อดีของ Waterfall Model
1.แบ่งงานยากให้เป็นงานที่เล็ก ง่ายต่อการจัดการ
2.มีการกำหนดProductที่ต้องส่งมอบในแต่ละงานอย่างชัดเจน
ข้อเสียของ Waterfall Model
1.ลูกค้าเห็นและทดลองใช้Software ก็ต่อเมื่อถึงขั้นตอนสุดท้าย หากมีบางอย่างที่ไม่ตรงกับความต้องการของลูกค้า การแก้ไขยาก แพง เสียเวลา
 2.ถ้า ค้นพบข้อผิดพลาดของขั้นที่เสร็จสิ้นแล้ว ไม่สามารถแก้ไขได้ การแก้ไขจำเป็นต้องเริ่มรอบ (Iteration) ใหม่
Spiral Model ข้อดีของ Spiral Model
1.โมเดลผ่านการใช้งานเพื่อพัฒนาซอฟต์แวร์หลายประเภทอย่างประสบความสำเร็จ จากการสำรวจ 25 โครงการพบว่าทุกโครงการมีความสามารถในการผลิต (Product tivity) สูงขึ้นอย่างน้อย 50 %
 ข้อเสียของ Spiral Model
1.เป็น Model ที่เหมาะกับซอฟต์แวร์ขนาดใหญ่ เนื่องจากการวิเคราะห์และจัดการความเสี่ยงเป็นค่าใช้ จ่ายที่อาจจะไม่คุ้มสำหรับโครงการขนาดเล็กและผู้ที่จะจัดการความเสี่ยงได้ต้องมีประสบการณ์
2. เหมาะกับงานที่มีโอกาสเปลี่ยนแปลงบ่อย หรือมีความต้องการใหม่เรื่อย ๆ

3.             ในฐานะที่นักศึกษาเป็นวิศวกซอฟตแวร์ ควรจะเลือกพิจารณาใช้แบบจำลองกระบวนการผลิต
ซอฟตแวร์(Software Parocess Model) แบบใด เพราะเหตุใด จงให้เหตุผล
                Incremental Model ข้อดี Incremental model
1. เราสามารถส่งมอบงานได้เร็ว
2. ลดอัตราเสี่ยงการเลิกจ้าง
3. เราและ Customer สามารถมองเห็นความก้าวหน้าของโครงการได้

สรุปบทที่ 2
The software process คือกระบวนการที่ทำการพัฒนา Software ให้ประสบผลสำเร็จ แบ่งเป็น 4Process ใหญ่ๆคือ
- Specification – เป็นกระบวนการกำหนดคุณสมบัติของ software ที่พัฒนา
- Development – เป็นขั้นตอนการพัฒนา software
- Validation – เป็นขั้นตอนการตรวจสอบความถูกต้องของ software ให้ตรงกับความต้องการ
- Evolution – เป็นกระบวนการทำให้ software มีวิวัฒนาการ เป็นการปรับเปลี่ยนเพิ่มสิ่งดีๆเข้ามาและเอาสิ่งที่ไม่ดีหรือไม่จำเป็นออกไป ซึ่งจะเปลี่ยนแปลงไปตามเทคโนโลยีหรือตามความต้องการของผู้ใช้

Waterfall Model ประกอบด้วย 5 ขั้นตอน
- Requirement Definition : การกำหนดหรือระบุความต้องการของระบบและคุณสมบัติของความต้องการ
- System and Software Design : ออกแบบระบบ
- Implementation and Unit testing : ลงมือพัฒนาและทำการทดสอบ
- Integration and System testing : เอาแต่ละส่วนย่อยๆมาประกอบรวมกัน
- Operation and Maintenance : ติดตั้งใช้งานจริงและขั้นตอนการบำรุงรักษา โดยที่สามารถย้อนกลับไปทำขั้นตอนเดิมๆได้เมื่อเกิดปัญหา
ข้อดี : เราทำตามขั้นตอนได้ชัดเจน เพราะมีการบ่งบอกว่าแต่ละขั้นตอนต้องทำอะไร และติดตามความคืบหน้าได้ชัดเจน
ข้อเสีย : เมื่อผ่านขั้น Requirement ไปแล้ว และเราไปทำขั้นตอนอื่นๆ จะมายุ่งกับ Requirement อีกไม่ได้แล้วจนกว่าจะจบกระบวนการถึงจะกลับไปทำ Requirement อีกทีได้ ทำให้เสียเวลาสิ้นเปลืองทรัพยากร

Evolutionary Development
-                   การพัฒนาซอฟต์แวร์ในลักษณะพัฒนาเป็นวิวัฒนาการไปเรื่อยๆ
-                   เป็นการพัฒนาคุณสมบัติที่ต้องพัฒนาเพิ่มขึ้นเรื่อยๆ
Reuse-Oriented Development
1. พัฒนา ซอฟต์แวร์ใหม่ล้วนๆเลย โดยพัฒนาเป็นลักษณะ Object เพื่อเอากลับมาใช้ได้ใหม่อีก
2. พัฒนา ซอฟต์แวร์ไม่ทั้งหมด 100% แต่เราหา ซอฟต์แวร์อื่นๆที่พัฒนาแล้วมาเชื่อมกับของเรา                          

Process Iteration
การวนรูปพัฒนาซ้ำๆโดยที่วิธีการพัฒนาที่ทำซ้ำมี 2 ลักษณะใหญ่ๆคือ
- Incremental Development
- Spiral Development

Incremental Development
จะสอดคล้องกับ Model ต่างๆที่กล่าวไว้เป็นส่วนใหญ่ จะทำเป็นทีละส่วนย่อยๆแล้วนำไปทำการทดสอบหรือไม่ก็ส่งงานไปเหมือนกับเป็น Milestone ย่อยๆไป
ข้อดี :
- ถ้า Requirement เปลี่ยนแปลงก็สามารถนำรวมเข้าไปได้เรื่อยๆ

Spiral modal
แบ่งการพัฒนาเป็น 4 โซน
1. เป็นโซนของการวางแผนสำหรับ Phase ถัดๆไป
2. เป็นโซนที่จะพิจารณาว่าวัตถุประสงค์ของสิ่งที่พัฒนา ณ เวลานั้นมีอะไรบ้าง และมีปัญหาที่จะต้องแก้ไขหรืออุปสรรคอะไรบ้าง
3. เป็นการวิเคราะห์ว่าจะมีความเสี่ยงอะไรบ้าง และสามารถสร้างทางเลือกเพื่อแก้ปัญหาอะไรได้บ้าง
4. ลงมือพัฒนาและทดสอบระบบ

ขั้นตอนที่เกี่ยวข้องกับ Requirement
1. ศึกษาความเป็นไปได้ - เป็นสิ่งแรกที่ควรจะทำในการพัฒนาระบบหรือ SW ใดๆ ซึ่งจะเป็นการศึกษาว่าคุ้มทุนหรือเปล่าที่จะสร้างหรือสร้างแล้วจะพบกับปัญหาอะไรมากน้อยแค่ไหน
2. เก็บรวบรวมและวิเคราะห์ Requirement - เกิดจากการสัมภาษณ์ผู้บริหารและผู้ปฏิบัติ ,ดูเอกสารและแบบฟอร์มต่างๆ , สังเกตจากการทำงานจริง และนำมาวิเคราะห์ได้ออกมาเป็น System model
3. กำหนด Specification – ซึ่งก็จะมีการวนกลับไปมาระหว่างการกำหนด Spec. และเก็บ Req.เพิ่มเติม ได้ออกมาเป็น User Requirement กับ System Requirement เขียนมาเป็นข้อๆชัดเจนว่าต้องการให้ระบบทำอะไรบ้าง
4. ตรวจสอบ Requirement ว่าถูกต้อง, ไม่คลุมเครือ และนำไปให้ผู้บริหารหรือผู้ใช้อ่านอีกครั้งว่าใช่หรือไม่ ซึ่งจะได้ออกมาเป็น Requirement document

กระบวนการออกแบบ
1.             Software specification
2.             Software design
3.             Software validation
4.             Software evolution

                                                                                                           นายอดุลวิทย์  อาหมัด 510702473611

ไม่มีความคิดเห็น:

แสดงความคิดเห็น