อ่าน 3 นาที
การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราว
การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราว เป็นเทคนิคการสร้างแบบจำลองเชิงวัตถุ รูปแบบอื่นๆ ของการสร้างแบบจำลองเชิงวัตถุจะเน้นที่ไดอะแกรมคลาส...
การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราว
การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราว[ 1 ] [ 2 ] [ 3 ]เป็นเทคนิคการสร้างแบบจำลองเชิงวัตถุ[ 4 ] [ 5 ]รูปแบบอื่นๆ ของการสร้างแบบจำลองเชิงวัตถุจะเน้นที่ไดอะแกรมคลาส ไดอะแกรมคลาสอธิบายโครงสร้างคงที่ของโปรแกรม กล่าวคือ ส่วนประกอบพื้นฐานของโปรแกรมและความสัมพันธ์ระหว่างกัน ไดอะแกรมคลาสยังสร้างแบบจำลองโครงสร้างข้อมูล แต่เน้นที่แนวคิดเชิงนามธรรม เช่น ประเภทและคุณลักษณะของประเภท
แทนที่จะใช้โครงสร้างคงที่ที่เป็นนามธรรม การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราวจะเน้นไปที่สถานการณ์ตัวอย่างที่เป็นรูปธรรม[ 6 ]และวิธีการที่ขั้นตอนของสถานการณ์ตัวอย่างอาจแสดงเป็นไดอะแกรมวัตถุและวิธีที่ไดอะแกรมวัตถุเหล่านี้พัฒนาไปในระหว่างการดำเนินการตามสถานการณ์
แนวทางการพัฒนาซอฟต์แวร์
การสร้างแบบจำลองโดยเน้นเรื่องราวเสนอแนวทางการพัฒนาซอฟต์แวร์ดังต่อไปนี้:
- สถานการณ์จำลองเชิงข้อความ : สำหรับฟีเจอร์ที่คุณต้องการนำไปใช้ ให้เขียนคำอธิบายสถานการณ์จำลองเชิงข้อความสำหรับกรณีที่พบบ่อยที่สุด โดยพิจารณาเพียงตัวอย่างเดียวในแต่ละครั้ง พยายามใช้คำเฉพาะและชื่อเฉพาะแทนที่จะใช้คำทั่วไปหรือชื่อบทบาท:
- สถานการณ์: บาร์บีคิวแบบโกดัตช์
- เริ่มต้น: วันอาทิตย์นี้ ปีเตอร์ ปุตรี และเพ็ง นัดเจอกันที่สวนสาธารณะเพื่อปิ้งบาร์บีคิวแบบหารค่าใช้จ่ายกัน พวกเขาใช้แอป Group Account ในการทำบัญชี
- ขั้นตอนที่ 1: ปีเตอร์นำเนื้อมาขายในราคา 12 ดอลลาร์ ปีเตอร์เพิ่มรายการนี้ลงในแอปบัญชีกลุ่ม
- ขั้นตอนที่ 2: ปุตรีนำสลัดมาในราคา 9 ดอลลาร์ ปีเตอร์ก็เพิ่มรายการนี้ด้วยเช่นกัน แอปแสดงให้เห็นว่าตอนนี้ส่วนแบ่งเฉลี่ยอยู่ที่ 7 ดอลลาร์ และเพ็งยังคงต้องนำเงิน 7 ดอลลาร์นี้มา ในขณะที่ปีเตอร์ได้ส่วนแบ่ง 5 ดอลลาร์ และปุตรีได้ส่วนแบ่ง 2 ดอลลาร์
- ขั้นตอนที่ 3: ...
- แบบจำลอง GUI : เพื่อแสดงภาพส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) สำหรับฟีเจอร์ที่ต้องการ คุณสามารถเพิ่มแบบจำลองโครงร่างหรือแบบจำลอง GUI ลงในสถานการณ์ของคุณได้:
- สถานการณ์: บาร์บีคิวแบบโกดัตช์
- เริ่มต้น: วันอาทิตย์นี้ ปีเตอร์ ปุตรี และเพ็ง นัดเจอกันที่สวนสาธารณะเพื่อปิ้งบาร์บีคิวแบบหารค่าใช้จ่ายกัน พวกเขาใช้แอป Group Account ในการทำบัญชี
- ขั้นตอนที่ 1: ปีเตอร์นำเนื้อมาขายในราคา 12 ดอลลาร์ ปีเตอร์เพิ่มรายการนี้ลงในแอปบัญชีกลุ่ม
- ขั้นตอนที่ 2: ปุตรีนำสลัดมาในราคา 9 ดอลลาร์ ปีเตอร์ก็เพิ่มรายการนี้ด้วย แอปแสดงให้เห็นว่าตอนนี้ส่วนแบ่งเฉลี่ยอยู่ที่ 7 ดอลลาร์ และเพ็งยังคงต้องนำเงิน 7 ดอลลาร์นี้มา ในขณะที่ปีเตอร์ได้ส่วนแบ่ง 5 ดอลลาร์ และปุตรีได้ส่วนแบ่ง 2 ดอลลาร์:

- ขั้นตอนที่ 3: ...
- การสร้างสตอรี่บอร์ด : ต่อมา คุณต้องคิดว่าสถานการณ์หนึ่งๆ เช่น ขั้นตอนหนึ่งของสถานการณ์จำลอง อาจถูกแสดงภายในคอมพิวเตอร์ด้วยโครงสร้างวัตถุในขณะทำงานได้อย่างไร ทำได้โดยการเพิ่มไดอะแกรมวัตถุลงในสถานการณ์จำลอง ในการสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราว สถานการณ์จำลองที่มีไดอะแกรมวัตถุจะเรียกว่าสตอรี่บอร์ดด้วย
- สถานการณ์: บาร์บีคิวแบบโกดัตช์
- เริ่มต้น: วันอาทิตย์นี้ ปีเตอร์ ปุตรี และเพ็ง นัดเจอกันที่สวนสาธารณะเพื่อปิ้งบาร์บีคิวแบบหารค่าใช้จ่ายกัน พวกเขาใช้แอป Group Account ในการทำบัญชี
- ขั้นตอนที่ 1: ปีเตอร์นำเนื้อมาขายในราคา 12 ดอลลาร์ ปีเตอร์เพิ่มรายการนี้ลงในแอปบัญชีกลุ่ม
- ขั้นตอนที่ 2: ปุตรีนำสลัดมาในราคา 9 ดอลลาร์ ปีเตอร์ก็เพิ่มรายการนี้ด้วย แอปแสดงให้เห็นว่าตอนนี้ส่วนแบ่งเฉลี่ยอยู่ที่ 7 ดอลลาร์ และเพ็งยังคงต้องนำเงิน 7 ดอลลาร์นี้มา ในขณะที่ปีเตอร์ได้ส่วนแบ่ง 5 ดอลลาร์ และปุตรีได้ส่วนแบ่ง 2 ดอลลาร์:


- ขั้นตอนที่ 3: ...
- การสร้างไดอะแกรมคลาส : ตอนนี้การสร้าง ไดอะแกรมคลาสจากไดอะแกรมวัตถุที่ใช้ในสตอรี่บอร์ดนั้นค่อนข้างตรงไปตรงมาแล้วโปรดทราบว่าไดอะแกรมคลาสทำหน้าที่เป็นจุดอ้างอิงทั่วไปสำหรับไดอะแกรมวัตถุทั้งหมด ซึ่งทำให้มั่นใจได้ว่าโดยรวมแล้วมีการใช้ประเภทและคุณลักษณะเดียวกันคุณสามารถสร้างการใช้งานเบื้องต้นจากไดอะแกรมคลาสนี้โดยใช้เครื่องมือUML ได้

- การออกแบบอัลกอริทึม : จนถึงตอนนี้ คุณได้สร้างแบบจำลองและใช้งานโครงสร้างวัตถุที่ใช้ในแอปพลิเคชันของคุณแล้ว ต่อไปคุณต้องเพิ่มพฤติกรรม เช่น อัลกอริทึมและส่วนเนื้อหาของเมธอด การเขียนโปรแกรมพฤติกรรมของแอปพลิเค ชันเป็นงานที่ท้าทาย เพื่อให้ง่ายขึ้น คุณควรร่างพฤติกรรมใน รูปแบบรหัสเทียมก่อน คุณอาจทำเช่นนี้ได้ เช่น กับเกมวัตถุ ตัวอย่างเช่น ในการอัปเดตคุณสมบัติ saldo ของทุกคน คุณดูที่โครงสร้างวัตถุของเรา และจากมุมมองของวัตถุ GroupAccount คุณทำดังต่อไปนี้:
- อัปเดตเงินเดือนของทุกคน:
- เยี่ยมชมแต่ละรายการ
- สำหรับแต่ละรายการ ให้บวกมูลค่าเข้ากับมูลค่ารวม และบวก 1 เข้ากับจำนวนรายการ
- คำนวณส่วนแบ่งเฉลี่ยของแต่ละคนโดยการหารมูลค่ารวมด้วยจำนวนคน
- ไปเยี่ยมเยียนแต่ละคน
- รีเซ็ตซัลโดสำหรับแต่ละคน
- สำหรับแต่ละคน โปรดตรวจสอบสินค้าทุกชิ้นที่บุคคลนั้นซื้อ
- สำหรับแต่ละรายการ ให้เพิ่มมูลค่าลงในเงินเดือนของบุคคลปัจจุบัน
- หักส่วนแบ่งจากสลัดสำหรับแต่ละคน
- การนำพฤติกรรมไปใช้ : เมื่อคุณได้ปรับปรุงรหัสเทียมของ อัลกอริทึมของคุณ ลงไปถึงระดับการดำเนินการกับโครงสร้างของวัตถุแล้ว การสร้างรหัสต้นฉบับที่ดำเนินการเดียวกันกับการใช้งานโมเดลวัตถุ ของคุณนั้นก็เป็นเรื่องง่าย
- การทดสอบ : สุดท้ายนี้ สถานการณ์จำลองต่างๆ สามารถนำมาใช้สร้าง ชุดทดสอบ JUnit อัตโนมัติได้ รหัสเทียมสำหรับการทดสอบในตัวอย่างของเราอาจมีลักษณะดังนี้:
- ทดสอบการอัปเดตข้อมูลเงินเดือนของทุกคน:
- สร้างวัตถุบัญชีกลุ่ม
- เพิ่มอ็อบเจ็กต์บุคคลชื่อปีเตอร์ อ็อบเจ็กต์บุคคลชื่อปุตรี และอ็อบเจ็กต์บุคคลชื่อเพ็ง ลงในอ็อบเจ็กต์บัญชีกลุ่ม
- เพิ่มออบเจ็กต์รายการที่มีผู้ซื้อชื่อปีเตอร์ คำอธิบายชื่อเนื้อสัตว์ และมูลค่า 12 ดอลลาร์ ลงในออบเจ็กต์บัญชีกลุ่ม
- เพิ่มออบเจ็กต์รายการที่มีผู้ซื้อชื่อ Putri คำอธิบายชื่อ Salad และมูลค่า $9 ลงในออบเจ็กต์บัญชีกลุ่ม
- เรียกใช้เมธอดเพื่ออัปเดต saldo ของทุกคนในออบเจ็กต์บัญชีกลุ่ม
- ตรวจสอบให้แน่ใจว่าราคาสินค้าของปีเตอร์คือ 5 ดอลลาร์
- ตรวจสอบให้แน่ใจว่าราคาสินค้าของ Putri คือ 2 ดอลลาร์
- ตรวจสอบให้แน่ใจว่าค่า saldo ของวัตถุปีเตอร์คือ -7 ดอลลาร์
- ตรวจสอบให้แน่ใจว่าผลรวมของเงินบริจาคทั้งหมดเป็น 0 ดอลลาร์
- การทดสอบอัตโนมัติดังกล่าวช่วยให้มั่นใจได้ว่าในสถานการณ์ตัวอย่าง การใช้งานพฤติกรรมนั้นเป็นไปตามที่ระบุไว้ในสตอรี่บอร์ด แม้ว่าการทดสอบเหล่านี้จะค่อนข้างเรียบง่ายและอาจไม่สามารถระบุข้อผิดพลาดได้ทุกประเภท แต่การทดสอบเหล่านี้มีประโยชน์อย่างมากในการบันทึกพฤติกรรมที่ต้องการและการใช้งานคุณสมบัติใหม่ ๆ และการทดสอบเหล่านี้ช่วยให้มั่นใจได้ว่าฟังก์ชันการทำงานที่เกี่ยวข้องจะไม่สูญหายไปเนื่องจากการเปลี่ยนแปลงในอนาคต
สรุป
การสร้างแบบจำลองที่ขับเคลื่อนด้วยเรื่องราวได้รับการพิสูจน์แล้วว่าใช้งานได้ดีมากสำหรับการทำงานร่วมกับผู้ที่ไม่ใช่ผู้เชี่ยวชาญด้านไอที[ 7 ]ผู้คนจากโดเมนอื่นมักมีปัญหาในการอธิบายความต้องการของตนในแง่ทั่วไป (เช่น คลาส) และกฎทั่วไป (รหัสเทียม) ในทำนองเดียวกัน คนทั่วไปก็มีปัญหาในการทำความเข้าใจรหัสเทียมหรือตัดสินว่าความต้องการของตนได้รับการแก้ไขอย่างเหมาะสมหรือไม่ อย่างไรก็ตาม คนเหล่านี้รู้จักธุรกิจของตนเป็นอย่างดี และด้วยความช่วยเหลือจากตัวอย่างและสถานการณ์ที่เป็นรูปธรรม ทำให้คนทั่วไปสามารถระบุกรณีที่มีปัญหาและตัดสินได้ง่ายว่าความต้องการของตนได้รับการแก้ไขอย่างเหมาะสมหรือไม่
การสร้างแบบจำลองโดยใช้เรื่องราวเป็นหลัก (Story Driven Modeling) ได้พัฒนาขึ้นอย่างมากนับตั้งแต่เริ่มต้นในปี 1997 ในปี 2013 มีการนำไปใช้ในการสอนในมหาวิทยาลัยต่างๆ เช่น มหาวิทยาลัยคาสเซล มหาวิทยาลัยพาเดอร์บอร์น มหาวิทยาลัยทาร์ตู มหาวิทยาลัยแอนต์เวิร์ป มหาวิทยาลัยนาซาร์บาเยฟ อัสตานา สถาบันฮัสโซ พลาทเนอร์ พอตส์ดัมมหาวิทยาลัยวิกตอเรียเป็นต้น


