รักษาการติดตามข้อกำหนดเมื่อซอฟต์แวร์เปลี่ยน
เรียนจบแล้วเชื่อมผลลัพธ์ผู้ใช้กับการตัดสินใจ เกณฑ์การยอมรับ การพัฒนา และหลักฐาน อัปเดตความเชื่อมโยงเมื่อสมมติฐานเปลี่ยน
เผยแพร่โดย Taigaวิธีเขียนเนื้อหาของเรา
ตรวจความเข้าใจSpecification เปลี่ยนหลังเตรียมสถาปัตยกรรมและ test แล้ว ควรเกิดอะไรขึ้นทำแบบฝึกหัด
สิ่งที่จะได้เรียนรู้
- เขียนข้อกำหนดที่สังเกตได้พร้อมขอบเขตชัดเจน
- ติดตามข้อกำหนดผ่านการเปลี่ยนแปลงและการตรวจสอบ
- ระบุเอกสารขั้นถัดไปที่ได้รับผลจากสมมติฐานที่เปลี่ยน
อธิบายพฤติกรรมที่ตรวจสอบได้
“สร้าง export ข้อมูลลูกค้าที่ทันสมัย” ยังเว้นการตัดสินใจสำคัญ ไม่ได้กำหนดผู้ใช้ ระเบียน field หรือพฤติกรรมเมื่อผิดพลาด Agent ต้องถามหรือสร้างสมมติฐาน สมมติฐานที่ไม่บันทึกตรวจทานภายหลังได้ยาก
ใช้ข้อกำหนดสมมติที่มีขอบเขตชัด ผู้จัดการที่ยืนยันตัวตนแล้ว export ข้อมูลลูกค้าที่ยังใช้งานจากองค์กรตนได้ Export มี customer ID และชื่อที่แสดง ไม่รวมรายละเอียดติดต่อและระเบียนที่เก็บถาวร ผู้ใช้ที่ไม่มี role ผู้จัดการไม่ได้รับ export
ยังต้องตัดสินใจเรื่องรูปแบบ ปริมาณ เวลาตอบสนอง และการจัดการความผิดพลาด ทำเครื่องหมายสิ่งที่ยังไม่ทราบให้ชัด Specification ที่มีประโยชน์แสดงความไม่แน่นอน แทนที่จะซ่อนไว้ในถ้อยคำมั่นใจ
แยกข้อกำหนดออกจากวิธีพัฒนา
ผู้ใช้ต้องการชุดระเบียนที่ได้รับอนุญาตในรูปแบบที่ใช้ได้ Query ฐานข้อมูล library และโครงสร้าง endpoint เป็นตัวเลือกในการพัฒนา เชื่อมกับข้อกำหนดโดยไม่ถือทุกตัวเลือกปัจจุบันเป็นความต้องการธุรกิจถาวร
บันทึกการตัดสินใจที่มีผลสำคัญ พร้อมบริบท ทางเลือก และเหตุผล เช่น export แบบ synchronous อาจเหมาะกับข้อมูลน้อย ปริมาณมากขึ้นอาจต้องใช้ background job และการตรวจสอบสิทธิ์ดาวน์โหลดแยก
รักษาข้อกำหนดเดิมเมื่อทำได้ พร้อมกำหนดเวอร์ชันให้การตัดสินใจที่เปลี่ยน ช่วยให้ผู้ตรวจทานแยกวิธีพัฒนาที่ต่างไปออกจากสิ่งที่สัญญากับผู้ใช้ที่ต่างไป
สร้างลำดับหลักฐานสั้น ๆ
ใช้ตัวระบุที่ยังเข้าใจได้ระหว่างตรวจทาน ในตัวอย่างนี้ EXPORT-01 อาจระบุขอบเขตองค์กร ชื่อนี้เป็นตัวอย่าง ไม่ใช่ระบบเลขที่บังคับ
| ความเชื่อมโยง | ตัวอย่าง |
|---|---|
| ข้อกำหนด | EXPORT-01: เฉพาะระเบียนในองค์กรของผู้จัดการ |
| การตัดสินใจออกแบบ | บังคับใช้เงื่อนไขสมาชิกภาพบน server ไม่ใช่ใน browser |
| การพัฒนา | PR เปลี่ยน query และเส้นทางตรวจสอบสิทธิ์ |
| การตรวจสอบ | คำขอระเบียนองค์กรอื่นถูกปฏิเสธ |
| หลักฐาน release | ผลตรวจระบุ commit และ artifact ที่ยอมรับ |
ลำดับนี้ต้องชี้ไปหลักฐานจริง ชื่อ test ที่มี ID ข้อกำหนดไม่ได้พิสูจน์ว่า assertion ตรวจข้อกำหนดนั้น ตรวจดู test และเส้นทาง production ที่มันทดสอบ
SSDF ของ NIST ให้บริบทสำหรับข้อกำหนดและการตรวจสอบภายในการพัฒนาที่ปลอดภัย ใช้การติดตามย้อนกลับให้ตรวจดูกิจกรรมเหล่านั้นได้ แทนการผลิตเอกสารเพียงเพื่อให้มีเอกสาร อ่าน framework
ทบทวนผลของสมมติฐานที่เปลี่ยน
สมมติว่าธุรกิจต้องการรวมลูกค้าที่เก็บถาวรแล้ว การเปลี่ยนนี้กระทบมากกว่า flag ใน query ตรวจสอบกฎเก็บรักษา การตรวจสอบสิทธิ์ ปริมาณที่คาด คำอธิบายให้ผู้ใช้ และความหมายของรายงานเดิม
ทำเครื่องหมายเอกสารและการตรวจสอบที่ได้รับผลให้ทบทวน เก็บการตัดสินใจเดิมไว้เพื่อให้ผู้เดินระบบอธิบาย release เก่าได้ อย่าเขียนประวัติใหม่โดยไม่แจ้งเพื่อให้แบบล่าสุดดูเป็นสิ่งที่เลี่ยงไม่ได้
Agent ช่วยหาการอ้างอิงและเสนออัปเดตได้ ผู้รับผิดชอบต้องแก้ข้อกำหนดที่ขัดกันและยอมรับพฤติกรรมที่เปลี่ยน รายการไฟล์ที่ตรงเป็นจุดเริ่มต้น ไม่ใช่การประเมินผลกระทบครบถ้วน
ให้บันทึกเล็กพอที่จะใช้จริง
บันทึกการตัดสินใจที่กระทบการพัฒนา การตรวจสอบ และการเดินระบบ หลีกเลี่ยงการทำข้อกำหนดเดียวกันซ้ำในเอกสารหลายฉบับที่ไม่เชื่อมกัน เลือกลิงก์ไปแหล่งเดียวที่มีผู้ดูแล
ก่อนยอมรับการเปลี่ยนแปลง ให้ถามว่าผู้ตรวจทานติดตามจากวัตถุประสงค์ไปถึงหลักฐานจริงได้หรือไม่ ก่อนเดินระบบ ให้ถามว่าผู้รับผิดชอบบริการหาขอบเขตที่เกี่ยวข้องและการตัดสินใจกู้คืนพบหรือไม่ นี่คือวิธีทดสอบเชิงปฏิบัติว่าการติดตามย้อนกลับมีประโยชน์
ทำแบบฝึกหัด
เขียนข้อกำหนดให้ผู้จัดการ export ข้อมูลลูกค้าที่ใช้งานอยู่ รวมผู้ใช้ที่อนุญาต ขอบเขตองค์กร field พฤติกรรมเมื่อผิดพลาด และเงื่อนไขงานเสร็จที่วัดได้ เชื่อมกับ test และ release สมมติ จากนั้นเปลี่ยนข้อกำหนดให้รวมลูกค้าที่เก็บถาวร และระบุการตัดสินใจที่ได้รับผลกระทบ
ดาวน์โหลดใบงาน (Markdown)การยกเลิกตัวเลือกนี้จะลบความคืบหน้าทั้งหมดที่บันทึกใน browser นี้
ความคืบหน้าอยู่ใน browser นี้ ไม่ใช้บัญชีและไม่ติดตามการใช้งาน
แหล่งข้อมูลและเนื้อหาอ่านเพิ่มเติม
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗