Skip to content

Latest commit

 

History

History
69 lines (67 loc) · 7.95 KB

2.2.Process activities.md

File metadata and controls

69 lines (67 loc) · 7.95 KB

Process activities

  • กระบวนการพัฒนาซอฟต์แวร์ เป็นกระบวนการที่ทับซ้อนกันของการทำงานเทคนิคหลาย ๆ ด้าน ที่ต้องอาศัย ความร่วมมือ และ การจัดการที่ดี เพื่อเป้าหมายร่วมกันคือ ความสำเร็จของโครงการซอฟต์แวร์
  • กระบวนการประกอบด้วย specifying, designing, implementing และ testing
  • กิจกรรมทั้งหมดในกระบวนการพื้นฐานสี่อย่าง (ได้แก่ specification, development, validation และ evolution) ของแต่ละ process model ต่างก็มีรายละเอียดที่และขั้นตอนที่แตกต่างกัน
    • เช่น ในแบบจำลองน้ำตกจะดำเนินการให้จบไปทีละขั้น แต่ในแบบจำลอง incremental นั้น จะทำสลับกันไป
    • ความสำคัญคือ เราต้องจัดตารางทรัพยากรให้เหมาะกับกระบวนการพัฒนาแต่ละชนิด

The requirements engineering process

Software specification

เป็นกระบวนการกำหนดสิ่งที่ต้องการ รวมข้อจำกัดต่างๆ ในการดำเนินงานและพัฒนาระบบ

  • Requirements engineering process
    • Requirements elicitation and analysis
      • สิ่งที่ผู้มีส่วนได้ส่วนเสียของระบบ (system stakeholders) ต้องการหรือมุ่งหวังจากระบบคืออะไร
    • Requirements specification
      • กำหนดรายละเอียดของ requirements
    • Requirements validation
      • ตรวจสอบความถูกต้องของ requirements (ตรวจสอบเอกสาร vs ความต้องการของ stakeholders)

Software design and implementation

เป็น process ที่เปลี่ยน system specification ให้เป็น executable system.

  • Software design
    • ออกแบบ software structure ที่ถูกต้องตรงตาม specification
  • Implementation
    • เปลี่ยน software structure ให้เป็น executable program; กิจกรรมในการ design และ implementation จะมีความเกี่ยวข้องใกล้ชิดกันมาก และอาจจะทำงานควบคู่กันไปได้

A general model of the design process

Design activities

  • Architectural design
    • ใช้เมื่อต้องการออกแบบระบบในภาพรวม เพื่อให้ได้องค์ประกอบหลัก (principal components) ของระบบ (subsystems หรือ modules) เพื่อบอกความสัมพันธ์หรือการกระจัดกระจายขององค์ประกอบเหล่านั้น
  • Database design
    • ใช้เมื่อต้องการออกแบบโครงสร้างข้อมูลของระบบ และบอกว่ามันจะไปอยู่ในฐานข้อมูลในลักษณะใด
  • Interface design
    • ใช้เมื่อต้องการออกแบบการ interfaces ระหว่าง system components
  • Component selection and design
    • ใช้เมื่อต้องการออกแบบระบบที่ใช้ชิ้นส่วนแบบ reuse ที่หาเจอ แต่ถ้ายังไม่มีใครทำไว้ ให้บอกว่ามันควรเป็นชิ้นส่วนที่ทำงานอย่างไร

System implementation

  • โดยทั่วไป ซอฟต์แวร์ อาจจะเป็นได้ทั้งชนิดที่พัฒนาขึ้นใหม่ทั้งหมด หรือเป็นเพียงแค่การ configuring ซอฟต์แวร์ที่มีอยู่ ให้ตรงตามความต้องการของผู้ใช้
  • การออกแบบ (design) และสร้าง (implementation) เป็นกิจกรรมที่ต้องทำสลับกัน และเป็นกิจกรรมที่ต้องทำมากที่สุดในโครงการซอฟต์แวร์
  • Programming เป็นกิจกรรมส่วนบุคคล ไม่มี standard process
  • Debugging เป็นกิจกรรมเกี่ยวกับการหาและแก้ไขข้อบกพร่อง

Software validation

  • Verification และ validation (V & V) ใช้เพื่อแสดงให้เห็นว่าระบบมีความสอดคล้องหรือเข้ากันได้กับ specification และตรงตาม requirements ของ system customer.
  • V & V ประกอบด้วยกระบวนการ
    • checking และ review
    • system testing
  • System testing ประกอบด้วยการรันระบบด้วย test cases ที่ได้มาจาก specification
    • ทดสอบด้วยข้อมูลจริงเพื่อให้เห็นพฤติกรรมของระบบ
  • ในกิจกรรม V & V จะใช้ testing เป็นหลัก

Stages of testing

Testing stages

  • Component testing
    • แต่ละชิ้นส่วนถูก test โดยอิสระ
    • ชิ้นส่วนอาจจะหมายถึง functions หรือ objects
  • System testing
    • เป็นการทดสอบระบบโดยรวมในคราวเดียว
    • ควรเน้นที่การทดสอบในส่วนที่ critical
  • Customer testing
    • ทดสอบกับข้อมูลจริงของลูกค้า เพื่อตรวจสอบว่าระบบทำงานตรงตามความต้องการจริงของลูกค้าหรือไม่

Testing phases in a plan-driven software process (V-model)

Software evolution

  • ในระบบใดๆ ส่วนที่เป็น software ย่อมมีความยืดหยุ่นและสามารถเปลี่ยนแปลงได้
  • ความต้องการซอฟต์แวร์อาจจะมีการเปลี่ยนแปลง
    • เช่น เกิดจากการเปลี่ยนแปลงพฤติการณ์ตามสภาพความเป็นจริงของธุรกิจ
    • ซอฟต์แวร์ที่สนับสนุนธุรกิจเหล่านั้น ก็ต้องรองรับการพัฒนาและเปลี่ยนแปลงอยู่เสมอ

แบบฝึกหัด

  • ให้นักศึกษาอธิบายความแตกต่างระหว่าง
  • การพัฒนา (development)
  • วิวัฒนาการ (evolution) • การบำรุงรักษา (maintenance)