วันพฤหัสบดีที่ 11 ตุลาคม พ.ศ. 2555

Chapter 2


สรุปบทที่ 2
The Software Process


ขั้นตอนการพัฒนาระบบ สามารถแบ่งออกได้เป็น 4 ขั้นตอน

1. Specification กำหนดความต้องการ เป็นขั้นตอนที่กำหนดว่า Program ทำอะไรได้บ้าง ต้องการอะไรบ้าง
2. Design เป็นขั้นตอนการออกแบบระบบ ตามความต้องการที่ได้กำหนดเอาไว้ในข้อที่ 1
3. Validation การทดสอบ ทวนสอบ การทำงานหรือฟังก์ชันของระบบว่าตรงกับความต้องการของลูกค้าหรือไม่
4. Evolution การปรับปรุงระบบ ตือขั้นตอนการปรับปรุงเปลี่ยนแปลงระบบให้ตรงกับความต้องการที่เปลี่ยนไปของลูกค้าในอนาคาต เพื่อให้ระบบสามารถทำงานต่อไปได้ ซึ่งก็คือการอัพเวอร์ชัน

แบบจำลองที่ใช้ในการพัฒนาระบบมี 4 แบบจำลอง

1. Waterfall Model (แบบน้ำตก)
2. Evolutionary Development (ปรังปรุง Version ไปเรื่อยๆ จนลูกค้าพอใจจึงจะเสร็จ)
3. Component-based software engineering (การนำ Component ที่มีอยู่แล้วกลับมาใช้ใหม่)
4. Process iteration (การพัฒนาซ้ำๆ)


1. Waterfall Model


Waterfall Model



เป็นแบบจำลองที่ประกอบขึ้นด้วยขั้นตอนที่ต่อเนื่องเป็นลำดับ ตั้งแต่ลำดับแรกจนถึงลำดับสุดท้ายว่ามีอะไรบ้าง ไหลจากที่สูงลงสู่ที่ต่ำ สามารถย้อนกลับไปแก้ไขในขั้นตอนก่อนหน้าได้ (ข้อเสีย)แต่จะมีความยุ่งยากในการในการปรับเปลี่ยน เช่น ต้องการในขั้นตอนที่ 3 ก็ต้องย้อนกลับไปขั้นตอนที่ 1, 2 ด้วย



2. Evolutionary development


Evolutionary Model



การพัฒนาแบบนี้ทำให้เกิดการปรับปรุง ปรับเปลี่ยนความต้องการให้อยู่ในรูปแบบของ Version มี 4 ขั้นตอน

1. Requirement วิเคราะห์ความต้องการ

2. System Design ออกแบบระบบ

3. Coding and Testing ขั้นตอนการเขียนและทดสอบระบบ

4. Assignment การประเมินผล



ปัญหา

1. ขาดความชัดเจนในการทำงาน

2. ระบบที่สร้างขึ้นมาไม่ค่อยเป็นระบบเท่าไร

3. ผู้ใช้ระบบ ต้องมีความชำนาญสุูง



ข้อเสีย

1. อาจจะรบกวนเวลาทำงานของลูกค้า ทำให้เกิดความลำคาญใจ

2. บอกความคืบหน้าในการทำงานลำบาก



การนำแบบจำลองไปใช้

1. ใช้กับระบบเล็กหรือขนาดกลาง

2. นำไปใช้ในส่วนของระบบงานขนาดใหญ่

3. นำไปใช้ในโครงงานที่มีอายุการดำเนินงานสั้นๆ


3. CBSE (Component-Based Software Engineering)





ข้อดี

1. รวดเร็วขึ้น

2. ประหยัดต้นทุน

3. ระบบมีความเชื่อมั่นเพิ่มมากขึ้น

4. ความเสี่ยงที่จะเกิดความล้มเหลวลดลง



ข้อเสีย

1. หา Component ที่ตรงตามความต้องการได้ยาก

2. ยากในการปรับปรุง Component ให้ตรงตามความต้องการ


4. Process Iteration

การพัฒนาแบบวนซ้ำๆ (loop) มี 2 วิธี

1. Increment delivery การส่งระบบเพิ่มเติมไปเรื่อยๆ ทีละชุดจนเสร็จ

2. Spiral delivery พัฒนาแบบก้หอย


4.1 Increment delivery

ประโยชน์

1. ลูกค้าได้รับประโยชน์ในการส่งมอบเร็วขึ้น คือการที่ลูกค้าสามารถนำระบบบางส่วนไปใช้งานได้

2. ลดความเสี่ยงที่โครงการจะล่ม

3. ฟังก์ชันที่มีความเสี่ยงจะถูกทดสอบมากที่สุด ทำให้เกิดความผิดพลาดได้น้อย



4.2 Spiral delivery

เป็นการพัฒนาหนุมเป็นรอบๆ เป็นเกียววนคล้ายก้นหอย แบ่งออกเป็น 4 ส่วน

1. กำหนดวัตถุประสงค์และความสำคัญ

2. ประเมินความเสี่ยง

3. พัฒนา และตรวจสอบความต้องการ

4. วางแผน

Process Activity

Process Activity คือ กิจกรรมขั้นตอนการจัดทำ Software
1. Software Specification
2. Software Design and implementation
3. Software validation
4. Software evolution


ขั้นตอนที่ 1 Software Specification กระบวนกำหนดความต้องการ
คือ กระบวนการวิศวกรรมความต้องการ ซึ่งก็คือการกำหนดความเป็นไปได้ให้กับระบบ
Requirements engineering process
1. Feasibility Study ศึกษาความเป็นไปได้ เช่น งบประมาณ เวลา Software Hardware
2. Requirement elicitation and analysis สกัดความต้องการ เพื่อให้รู้ว่าความต้องการของระบบ
มีอะไรบ้าง
3. Requirement specification กำหนดความต้องการ
4. Requirement validation ขั้นการตรวจสอบว่าตรงจามความต้องการหรือไม่




ขั้นตอนที่ 2 Software design and implementation
Design เป็นขั้นตอนการออกแบบและเขียนโปรแกรม
Implementation การนำไปใช้งาน

Debugging process แบบจำลองการแก้่ไขโปรแกรม
1. หาตำแหน่งที่ผิดพลาดของโปรแกรม
2. ออกแบบว่าจะแก้ไข ข้อผิดพลาดที่เกิดขึ้นอย่างไร
3. ซ่อมบำรุง ทำการแก้ไข
4. ทดสอบการแก้ไข ว่าถูกต้องและผ่านหรือไม่


ขั้นตอนที่ 3 Software validation การทดสอบซอฟต์แวร์
Verification ทดสอบว่าซอฟต์แวร์ที่พัฒนาขึ้นตรงกัยความต้องการหรือไม่ โปรแกรมเมอร์ทดสอบ
Validation ทดสอบว่าตรงกับความต้องการของลูกค้าหรือไม่
Testing Process
1. Component or unit testing การทดสอบทีละส่วน ทีละระบบ
2. System testing การทดสอบทั้งระบบรวมกัน
3. Acceptance testing การทดสอบเพื่อการยอมรับ จากผู้ใช้งานจริง และใช้ข้อมูลจริง


ขั้นตอนที่ 4 Software evolution ขั้นตอนในการเปลี่ยนแปลงโปรแกรมตามความต้องการของ User
เป็นขั้นตอนการปรับปรุงโปรแกรมให้ทันยุคทันสมัย
The Rational Unified Process คือ คอมพิวเตอร์ที่ช่วยในการสร้างซอฟต์แวร์ RUP เขียนอยู่บน UML
การเขียนโปรแกรมแบบ UML มี 3 มุมมอง
1. แสดงขั้นตอนการทำงานให้เห็นเป็นขั้นๆ
2. แสดงให้เห็นกิจกรรมว่ามีอะไรบ้าง
3. แสดงให้เห็นถึงการปฎิบัติงานที่ดี

RUP phase model แบ่งออกเป็น 4 ขั้นตอน ***แต่ละขั้นมีการทำซ้ำบ่อยครั้ง
***สถาปัตยกรรม มีจุดเด่น คือ การค้นหาความเสี่ยงและวิเคราะความเสี่ยง
1. Inception ระยะเริ่มต้นของการดำเนินงาน กำหนดขอบเขตหน้าที่หลักของระบบ
2. Elaboration ทำความเข้าใจระบบ
3. Construction ออกแบบ เขียน ทดสอบ โดยแบ่งออกเป็นส่วนๆ โดยให้ Programmer ช่วยกัน
เขียน แล้วค่อยนำมารวมกัน หลังจากนั้นจะได้ ซอฟต์แวร์ และ เอกสารของซอฟต์แวร์

ข้อปฎิบัติการใช้ RUP
1. พัฒนาโปรแกรมแบบซ้ำๆ หากไม่สมบรูณ์ให้กลับไปทำใหม่
2. บริหารความต้องการให้ดีว่า ความต้องการไหนมีความสำคัญกว่า
3. ควรใช้งาน Component ที่มีอยู่แล้ว
4. ยึด Model RUP มาช่วยในการออกแบบ
5. ตรวจสอบคุณภาพของซอฟต์แวร์ให้ดีอยู่เสมอ
6. ควบคุมการเปลี่ยนแปลงของซอฟต์แวร์ให้น้อยที่สุด