Requirements Engineering Processes
Objectives
1. เพื่ออธิบายถึงกิจกรรมที่สำคัญของการทำ Requirements และความสัมพันธ์ต่างๆ
2. แนะนำเทคนิคการค้นหาและวิเคราะห์ Requirements
3. อธิบายการยืนยัน Requirements และหน้าที่ของผู้ตรวจทาน
4. อธิบายหน้าที่ของการจัดการ Requirements ในการสนับสนุนกระบวนการทางวิศวกรรมของ Requirements อื่น
Topics Covered
1. การศึกษาความเป็นไปได้
2. การค้นหาและการวิเคราะห์
3. การตรวจทานยืนยันความเที่ยงตรง
4. การบริหารจัดการ
Requirements engineering processes
1. กระบวนการที่ใช้สำหรับ Requirements มีหลากหลายขึ้นอยู่กับโดเมนของระบบงาน ,ผู้เกี่ยวข้องและองค์กรที่ทำ Requirements
2. อย่างไรก็ตามกิจกรรมที่เหมือนกันก็คือ
3. การค้นหา (ล้วงความลับ)
4. การยืนยันความเที่ยงตรง
5. การบริหารจัดการ
Requirements engineering
Feasibility studies
1. การศึกษาความเป็นไปได้ ช่วยตัดสินใจว่าคุ้มค่าหรือไม่
2. การศึกษาแบบใกล้ชิด ตรวจเช็คว่า
3. ว่าระบบจะส่งผลตอบแทนตามเป้าหมาย
4. ว่าระบบสามารถทำได้ด้วยเทคโนโลยีปัจจุบัน และไม่เกินงบประมาณ
5. ว่าระบบสามารถนำไปใช้ร่วมกับระบบอื่นๆ ที่ใช้อยู่ปัจจุบัน
Feasibility study implementation
1. ขึ้นอยู่กับการประเมินข้อมูล (ว่าต้องการอะไร) การเก็บข้อมูล การเขียนรายงาน
2. คำถามของคนในองค์กร
3. อะไรจะเกิดขึ้นถ้าไม่ได้นำไปใช้?
4. ปัญหาในกระบวนการปัจจุบันมีอะไรบ้าง?
5. ระบบใหม่จะช่วยได้อย่างไร?
6. จะมีปัญหาในการรวบรวมหรือไม่?
7. สิ่งอำนวยความสะดวกที่จะรองรับระบบที่เสนอขึ้นมามีอะไรบ้าง?
Elicitation and analysis
1. บางครั้งเรียกว่า การค้นหาความต้องการ
2. ประกอบด้วยเจ้าหน้าที่เทคนิคทำงานร่วมกับลูกค้า เพื่อหาโดเมนของแอปพลิเคชั่น , บริการที่ระบบจะมีให้รวมถึงข้อจำกัดในการใช้งาน
3. อาจประกอบด้วย ผู้ใช้ , ผู้บริหาร , วิศวกรที่ซ่อมบำรุง , ผู้เชี่ยวชาญโดเมน , สหภาพ ฯลฯ เหล่านี้เรียกว่า ผู้มีส่วนได้-ส่วนเสีย (Stakeholders)
Problems of requirements analysis
1. Stakeholders ไม่ทราบความต้องการที่แท้จริงของตัวเอง
2. Stakeholders แจ้งความต้องการด้วยภาษาที่เข้าใจเองฝ่ายเดียว
3. Stakeholders มีความต้องการขัดแย้งกันเอง
4. องค์กรและปัจจัยการเมือง อาจส่งผลถึงความต้องการ
5. ความต้องการเปลี่ยนไปในระหว่างการทำวิเคราะห์ Stakeholders คนใหม่ เข้ามามีส่วนร่วมทำให้ภาวะทางธุรกิจเปลี่ยนไป
Process activities
1. การค้นหาความต้องการ
2. พูดคุยสอบถามผู้มีส่วนได้เสีย เพื่อค้นหาว่าเขาต้องการอะไรบ้าง ความต้องการหลักๆ ก็จะพบได้จากการพูดคุยนี้
3. การจัดชั้นลำดับความสำคัญ
4. จัดกลุ่มความต้องการที่เกี่ยวข้องกันไว้ ในกลุ่มเดียวกัน
5. จัดลำดับความสำคัญก่อนหลัง
6. อะไรมีความสำคัญต้องการทำก่อน อะไรที่ขัดแย้งกันต้องขจัดออกไป
7. ทำเอกสาร
8. สิ่งที่จำเป็นต้องทำต้องบันทึกไว้เป็นลายลักษณ์อักษร และเป็นข้อมูลป้อนใส่ในการทำโปรแกรมครั้งต่อไป
Requirements discovery
1. คือกระบวนการรวบรวมข้อมูลที่เกี่ยวกับระบบที่นำเสนอ และระบบปัจจุบัน แล้วกลั่นกรองหาความต้องการของผู้ใช้ และสิ่งที่จำเป็นสำหรับระบบ จากข้อมูลเหล่านั้น
2. แหล่งของข้อมูลรวมถึงเอกสาร , ระบบที่เป็นเจ้าของและรายละเอียดของระบบที่คล้ายคลึงกัน
ATM stakeholders
1. ลูกค้าของธนาคาร
2. ตัวแทนจากต่างธนาคาร
3. ผู้จัดการธนาคาร
4. เจ้าหน้าที่ที่เคาน์เตอร์
5. ผู้บริหารอ่านข้อมูล
6. ผู้จัดการด้านความปลอดภัย
7. ฝ่ายการตลาด
8. วิศวกรผู้ดูแลฮาร์ดแวร์และซอฟแวร์
9. ผู้ออกกฎหมายควบคุมธนาคาร
Viewpoints
1. วิวพอยต์ คือ การจัดวางโครงสร้างความต้องการ เพื่อแสดงมุมมองของผู้มีส่วนได้เสียที่มีความคิดเห็นแตกต่างกัน
2. การวิเคราะห์มุมมองหลายๆ ด้านนั้นสำคัญ เนื่องจากวิธีที่คุณต้องการที่จะวิเคราะห์ความต้องการ มิได้มีเพียงทางเดียว
Types of viewpoint
1. ผู้ที่ติดต่อด้วย
2. คือคนหรือระบบที่ติดต่อกับระบบ เช่น ATM ลูกค้า และอ่านข้อมูลบัญชีเงินฝาก ก็คือ ทัศนะของผู้ติดต่อ
3. ผู้ได้รับผลประโยชน์ทางอ้อม
4. คือผู้ได้รับผลประโยชน์ มิได้เป็นผู้ใช้ระบบ แต่มีอิทธิพลต่อความต้องการ เช่นใน ATM ผู้จัดการ , เจ้าหน้าที่รักษาความปลอดภัย ก็จะมีทัศนะทางอ้อม
5. โดเมน
6. คุณสมบัติและข้อจำกัดของโดเมน ซึ่งมีผลต่อความต้องการ ใน ATMก็คือมาตรฐานการสื่อสารระหว่างธนาคาร
Viewpoint identification
1. การจำแนกทัศนะ โดยใช้
2. ผู้ให้และผู้รับบริการจากระบบ
3. ระบบที่ติดต่อโดยตรงกับระบบที่กำลังทำใหม่
4. กฎระเบียบและมาตรฐาน
5. แหล่งของธุรกิจและความต้องการในหน้าที่รอง
6. วิศวกรผู้พัฒนาระบบและยังคงรักษาระบบนั้นไว้
7. มุมมองของนักการตลาดและนักธุรกิจอื่นๆ
Interviewing
1. การสัมภาษณ์อย่างเป็นทางการหรือส่วนตัว ทีม Requirements จะถามคำถามเกี่ยวกับระบบปัจจุบันและระบบที่ต้องการใหม่
2. การสัมภาษณ์แบ่งเป็น 2 ชนิด
3. แบบปิด คือ เตรียมคำถามมาให้ตอบ
4. แบบเปิด คือ ไม่มีการกำหนดวาระ และคำถามจะเป็นการถามสด โดยตรงจากผู้เป็นเจ้าของระบบ
Interviews in practice
1. โดยทั่วไปจะผสมระหว่างการสัมภาษณ์แบบเปิดและปิด
2. การสัมภาษณ์เหมาะสำหรับทำความเข้าใจโดยรวมว่าเจ้าของระบบต้องการติดต่อกับระบบอย่างไร
3. การสัมภาษณ์ไม่เหมาะสำหรับหาความต้องการในโดเมน
4. วิศวกรไม่สามารถเข้าใจศัพท์เฉพาะของโดเมน
5. ความรู้ในโดเมนบางครั้งก็คุ้นจนเราคิดว่ายากที่จะปะติดปะต่อหรือไม่คุ้มค่า
Effective interviewers
1. ต้องมีใจเปิดกว้าง , ยินดีรับฟังเจ้าของระบบ ไม่ควรคิดล่วงหน้าว่าความต้องการควรเป็นอะไร
2. ควรตั้งใจถามหรือนำเสนอ แต่ไม่ควรถามแบบตอบไม่ได้ เช่น “ What do you want? ”
Scenarios
1. บทละครเป็นตัวอย่างจริงที่แสดงให้เห็นว่าระบบใช้งานได้อย่างไร
2. ควรจะมีสิ่งต่างๆ ดังนี้
3. บอกสถานการณ์ตอนเริ่มเรื่อง
4. บอกการดำเนินเรื่อง
5. บอกสาเหตุของความผิดพลาดที่อาจจะเกิดขึ้น
6. ข้อมูลเกี่ยวกับกิจกรรมที่เกิดพร้อมๆกัน
7. บอกสถานะของเรื่องตอนจบ
Use cases
1. Use-cases เป็นเทคนิคแบบบทละคร ที่มีอยู่ใน UML ซึ่งจะอธิบายการติดต่อโต้ตอบของตัวแสดงในเรื่อง
2. ชุดของ Use-cases จะอธิบายการติดต่อโต้ตอบทั้งหมดของระบบ
3. ผังเรียงลำดับสามารถช่วยเพิ่มเติมรายละเอียดให้ Use-cases ด้วยการแสดงลำดับชั้นของเหตุการณ์ในระบบ
Social and organisational factors
1. ระบบซอฟแวร์ที่ใช้ในสังคมและองค์กรจะส่งผลกระทบหรือควบคุมSystem Requirements
2. ปัจจัยทางด้านสังคมและองค์กรไม่ได้เป็นวิวพอยท์เดียว แต่ส่งผลกระทบต่อวิวพอยท์ทั้งหมด
3. นักวิเคราะห์ที่ดีต้องสำนึกถึงปัจจัยต่างๆเหล่านี้ แต่ปัจจุบันยังไม่มีหนทางที่จะมาช่วยการวิเคราะห์ได้
Ethnography
1. นักสังคมวิทยาทุ่มเทเวลาอย่างมาก เพื่อสังเกตและวิเคราะห์พฤติกรรมการทำงานของคน
2. คนธรรมดาไม่ต้องอธิบายหรือปะติดปะต่อเรื่องการทำงานของคน
3. ปัจจัยความสำคัญของสังคมและองค์กรจะสังเกตเห็นได้เอง
4. การศึกษาโปรแกรมที่มาจากระบบต่างๆ ทำให้ทราบถึงผลงานที่ละเอียดซับซ้อนได้มากกว่าการศึกษาระบบงานธรรมดา
Focused ethnography
1. พัฒนามาจากโครงการศึกษากระบวนการควบคุมการจราจรทางอากาศ
2. ผสมผสาน ethnography กับ prototyping
3. ปัญหาที่ตอบไม่ได้จากการทำ Prototype ก็ต้องมาดูที่การวิเคราะห์ethnographic
4. ปัญหาเกี่ยวกับ ethnographic ก็คือ เมื่อศึกษาการปฏิบัติงานที่มีอยู่ในปัจจุบันอาจต้องอาศัยพื้นฐานทางประวัติการทำงานของระบบนั้น ซึ่งอาจเป็นข้อมูลที่ไม่ได้ใช้แล้ว
Scope of ethnography
Ethnography เหมาะสำหรับการหาความต้องการ 2 ชนิด คือ
1. ความต้องการที่มาจากการทำงานจริงมากกว่าที่เขียนไว้ในระเบียบปฏิบัติงาน
2. ความต้องการที่มาจาก การร่วมมือกัน และความเข้าใจในหน้าที่รับผิดชอบของผู้อื่น
Requirements validation
1. เกี่ยวข้องกับการสาธิตให้เห็นว่าความต้องการที่เป็นนิยามของระบบนั้นเป็นสิ่งที่ลูกค้าต้องการจริงๆ
2. ข้อผิดพลาดที่พบในความต้องการนั้นมีราคาสูง ดังนั้นการยืนยันจึงสำคัญ
3. การแก้ข้อผิดพลาดจาก Requirements หลังจากส่งมอบงานจะแพงเป็น 100 เท่าของการแก้ข้อผิดพลาดจากการใช้งาน
Requirements checking
1. ยืนยัน – ฟังก์ชั่นของระบบได้ตามความต้องการหรือไม่?
2. สม่ำเสมอ – ขัดแย้งกันเองหรือไม่?
3. ครบถ้วน – ฟังก์ชั่นที่ลูกค้าต้องการครบหรือไม่?
4. เป็นจริงได้ – ความต้องการสามารถทำให้เป็นจริงได้ ภายใต้งบประมาณที่และเทคโนโลยีที่มีอยู่หรือไม่?
5. ตรวจทานได้ - ความต้องการสามารถตรวจทานได้
Requirements validation techniques
1. Requirements reviews
2. ทำการวิเคราะห์ด้วยตัวเองอย่างมีระบบ
3. Prototyping
4. ใช้ตัวต้นแบบตรวจเช็ค – อ่าน Text บทที่ 17
5. Test-case generation
6. ใช้ข้อทดสอบตรวจเช็คความต้องการ
Requirements reviews
1. ทำการรีวิวสม่ำเสมอในช่วงที่ทำ Requirements
2. ทั้งลูกค้าและคู่สัญญา ต้องร่วมมือกันตรวจสอบ
3. รีวิว (เอกสารทั้งหมด) อย่างเป็นทางการ หรือไม่เป็นทางการ การติดต่อสื่อสารที่ดีระหว่างผู้ที่พัฒนาโปรแกรม , ลูกค้า และผู้ใช้ สามารถลดปัญหาได้ในตอนต้น
Review checks
1. ตรวจทานได้ – ความต้องการนั้นนำไปใช้ทดสอบได้หรือไม่
2. เข้าใจได้ – ความต้องการนั้นเข้าใจได้
3. ติดตามได้ – สามารถติดตามต้นตอของความต้องการได้
4. ปรับตัวได้ - สามารถปรับปรุงได้โดยไม่กระทบต่อความต้องการอื่นๆ
Requirements management
1. เป็นกระบวนการบริหารการแก้ไขปรับปรุงความต้องการ ในขณะที่พัฒนาระบบ
2. ความต้องการส่วนใหญ่จะไม่ครบถ้วนและไม่สอดคล้องต่อเนื่องกัน
3. ความต้องการที่เพิ่มขึ้นเนื่องจากภาวะธุรกิจเปลี่ยนไป ทำให้ต้องทำความเข้าใจในระบบใหม่ให้ดีขึ้น
4. มุมมองที่ต่างกันบ่อยครั้งจะขัดแย้งกันเอง
Requirements change
1. ลำดับความสำคัญเปลี่ยนแปลงไประหว่างการพัฒนาระบบ
2. ลูกค้าระบุความต้องการขัดแย้งกับผู้ใช้ระบบ
3. ธุรกิจและสภาพแวดล้อมของระบบเปลี่ยนไปในช่วงพัฒนาระบบ
Enduring and volatile requirements
1. ความต้องการที่ยั่งยืน คือ ความต้องการที่มั่นคงได้มาจากกิจกรรมหลักของลูกค้า เช่น โรงพยาบาลจะมีหมอ และพยาบาล
2. ความต้องการที่เปลี่ยนง่าย คือ ความต้องการที่เปลี่ยนในช่วงพัฒนาหรือช่วงที่ใช้งานแล้ว เช่น ในโรงพยาบาลความต้องการมาจากนโยบายการดูแลสุขภาพ
Requirements management planning
1. ในระหว่างกระบวนการทำความต้องการต้องมีแผน ;
2. วางแผนที่จะระบุความต้องกาออกมา
3. วางแผนบริหารการเปลี่ยนแปลง
4. นโยบายสืบสวนย้อนรอย
5. ใช้เครื่องมือช่วย เช่น CASE
Traceability
1. คือความสามารถที่จะสืบหาแหล่งที่มาของความต้องการและรูปแบบของระบบ
2. สืบหาแหล่งที่มา – เชื่อมโยงความต้องการไปยังผู้ลงทุนที่เสนอความต้องการ
3. สืบหาความต้องการ – เชื่อมโยงระหว่างความต้องการที่พึ่งพากัน
4. สืบหารูปแบบ - เชื่อมโยงระหว่างความต้องการและการออกแบบ
CASE tool support
1. ที่จัดเก็บ
2. ควรบริหารการจัดเก็บความต้องการในที่ที่ปลอดภัย
3. บริหารการเปลี่ยนแปลง
4. กระบวนการบริหารการเปลี่ยนแปลงเป็นกระบวนการ Workflow ซึ่งสามารถแสดงสถานภาพได้ และมีข้อมูลวิ่งไป-มาระหว่างสถานภาพเหล่านั้นเป็นแบบกึ่งอัตโนมัติ
5. การบริหารการสืบย้อนรอย
6. ควรจัดให้มีการเชื่อมโยงระหว่างความต้องการเดิมและความต้องการที่เพิ่มขึ้นใหม่โดยอัตโนมัติ
Requirements change management
1. ควรจะนำไปใช้กับทุกกระบวนการที่ทำให้ความต้องการเปลี่ยนไป
2. หลักการ
3. วิเคราะห์ปัญหาให้พิจารณาระหว่างปัญหาและคำขอเปลี่ยนแปลง
4. วิเคราะห์การเปลี่ยนแปลง และค่าใช้จ่ายประเมินผลกระทบของการเปลี่ยนแปลงนั้น
5. ดำเนินการเปลี่ยน แก้ไขเอกสารความต้องการและเอกสารอื่นๆ ตามที่เปลี่ยนแปลง
Key points
1. กระบวนการสร้างความต้องการรวมถึงการศึกษาความเป็นไปได้ ,การค้นหาและวิเคราะห์ , การระบุรายละเอียด และการบริหารการจัดการ
2. การค้นหาและวิเคราะห์ เกี่ยวพันกับการทำความเข้าใจที่โดเมน ,การรวบรวม , จัดชั้น , โครงสร้าง , จัดระดับความสำคัญ , การยืนยันความถูกต้อง
3. มีผู้ลงทุนหลายฝ่าย ซึ่งมีความต้องการต่างกัน
4. Key points
5. องค์ประกอบทางสังคมและองค์กร ส่งผลกระทบต่อความต้องการ
6. การยืนยันความต้องการเกี่ยวข้องกับการตรวจเช็ค เพื่อความถูกต้อง,สม่ำเสมอ , ครบถ้วน , เป็นไปได้ และตรวจทานได้
7. การเปลี่ยนแปลงทางธุรกิจ ทำให้ความต้องการเปลี่ยนแปลงตาม
8. การบริหารความต้องการ รวมถึงการวางแผนและบริหารการเปลี่ยนแปลง