Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore หน่วยการเรียนรู้ที่7

หน่วยการเรียนรู้ที่7

Published by ศิริวรรณ นาสิงห์, 2023-01-25 05:23:15

Description: หน่วยการเรียนรู้ที่7

Search

Read the Text Version

หน่วยที่ 7 การวิเคราะห์และออกแบบโปรแกรม ทางธุรกิจ ด้วย Sequence Diagram

7.1หลักการวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ ด้วย Sequence Diagram 7.1.1 ความหมายของ Sequence Diagram Sequence Diagram เป็น Diagram ที่ใช้แสดงรายละเอียดว่าวัตถุจะปฏิสัมพันธ์หรือ สื่อสาร กันอย่างไร ในขณะที่ระบบทำงานอยู่Sequence Diagram เป็น Diagram ที่ประกอบไป ด้วย Class หรือ Object มีเส้นที่ใช้เพื่อแสดงลำดับเวลาและเส้นที่ใช้แสดงกิจกรรมที่เกิด ขึ้นจาก Object หรือ Class ใน Diagramภายใน Sequence Diagramจะใช้สี่เหลี่ยม แทน Class หรือ Object ซึ่งภายในกรอบสี่เหลี่ยมObject หรือ Class ประกอบด้วย ใน รูปแบบ (Object:Classสัญลักษณ์ (Object] หมายถึง จะมีหรือไม่มี กิจกรรมที่เกิดขึ้นจะแทนด้วยตัวต่อไป การระบุชื่อกิจกรรม จะอยู่ในรูปแบบ [[Condition]Functionชื่อของกิจกรรมจะต้องเป็น Function ที่มีอยู่ใน Class หรือ Object ลูกศรชี้ไปโดยข้อแตกต่างจากแผนผังรูปแบบ UML อื่นของ Sequence การทำงานที่แสดงลำดับการปฏิสัมพันธ์ (Sequence of Interactions) ระหว่างวัตถุที่ แสดงภายในระบบต่างๆเช่นการส่งข้อความ (Messaging ที่มีการรับส่งข้อมูลระหว่างผู้ใช้ 7.1.2 สัญลักษณ์ Sequence Diagram Actor หมายถึง ผู้ที่เกี่ยวข้องกับระบบ object หมายถึง ออบเจ็กต์ที่ต้องทำหน้าที่ตอบสนองต่อ Actor

Lifeline หมายถึง เส้นแสดงชีวิตของออบเจกต์ หรือ คลาส ส่งกลับได้ด้วย Message หมายถึง คำสั่ง หรือฟังก์ชัน ที่ออบเจ็กต์หนึ่งส่งให้กับอีกออบเจ็กต์หนึ่ง ซึ่งสามาร Callback/Self Delegation หมายถึง การประมวลผลและคืนค่าที่ได้ภายในออบเจ็กต์เดียวกัน Focus of ControVActivation หมายถึง จุดเริ่มต้นและจุดสิ้นสุดของแต่ละกิจกรรม ในระหว่างที่มีชีวิตอยู่ สัญลักษณ์ที่ใช้แทน เมสเสจ (Message) ทั้ง 3 แบบ 1. แบบแรกเส้นทึบหัวปิด หมายถึง ต้องมีการพูดคุยกันให้จบ นั่นคือ ถ้า Object หนึ่งส่ง Synchronous ไปหา Object หนึ่งแล้ว มันจะหยุดทำงานทันที มันจะรอ โดยจะต้องรอคำตอบ Synchronus 2. แบบที่สองเป็นเส้นประ คือ ย้อนกลับมาอย่างเดียว 3. แบบที่สามเป็นเส้นหัวเปิด หมายถึง ไม่จำเป็นไม่รอ โดยจะ Return หรือไม่จะไม่สนใ

2.3ความสัมพันธ์ใน Sequence Diagram Timer หรือช่วงเวลา 1 เป็นการแสดงเวลาในลักษณะแนวตั้ง หรือจากบนลงล่าง 2 เมสเสจที่อยู่ด้านบนจะเป็นส่วนที่เกิดขึ้นก่อนเมสเสจที่อยู่ด้านลาง 0bject ในที่นี้อาจจะแทนสวนการทำงานของระบบ และที่เห็นเป็นแถบสี่ฟ้าหนา คือ แสดงอายุการทำงานของ Object นั้น ๆ ว่ามันอยู่ในระบบนานแค่ไหน วิธีการดูเราจะดูจากบนลงล่างเป็น ลำดับขั้น โดยจากบนจะเป็นเวลาเริมต้น จากรูปที่ 72 คือ Object ที่ 1 มีการส่ง Message1 ไปหา Object2 ติดตอสื่อสารไป จากนั้นพอส่ง Message ไป Object2 ก็จะทำงานบางอยาง เสร็จแล้วก็ส่งค่าทำการสื่อสารกลับคืนไป หา Object1 ก็ส่งคำ Return กลับมา พอได้คา Return กลับมา Object ก็อาจจะมีการทำงานอะไรไป ใน ขณะ ที่มันทำงาน Object2 ก็อาจหยุดทำงานไปแล้ว อาจจะหยุดทำงานชั่วคราว หรืออาจจะถูกทำลายไปแล้ว พอระบบดำเนินการไปได้สักพักหนึ่ง Object1 ก็ส่ง Message2 ไปหา Object2 อีกครั้งหนึ่ง และคราว นี้ Obiect2 มีการสื่อสารการทำงานต่อไปยังอีก Object3 เป็นลำดับขั้น สังให้ Object3 ทำงาน แล้วส่ง ข้อความ บางอย่างกลับมายัง Object2 ว่า ทำงานเสร็จแล้วนะ พอประมวลผลเสร็จแล้ว Object2 ก็อาจจะ Return ค่ากลับไปยัง Object 1 แล้วถัดมาอันสุดท้าย โดยที่ Object1 อาจจะติดตอกับ Object3 โดยตรงเลย ก็ได้

ขึ้นอยู่กับระบบที่เราออกแบบ จะเห็นว่า Sequence Diagram มันจะแสดงรูปแ อสาร ว่าในช่วงเวลาการทำงาน ว่า bject ชินไหนสื่อสารกับ Object นไหนบาง มีการ ไปกลับกี่ครั้ง โดยจะเป็นเรื่องรายละเอียดของการสื่อสารเป็นหลัก นั้นคือ Sequence Diagram 7.1.4 ขั้นตอนการสร้าง Sequence Diagram รูปที่ 7.3 ตัวอย่าง Use Case และ Class Diagram การยืมคืนสื่อ CD/DVD ห้องสมุด จากตัวอย่างรูปที่ 7.3 เรามี Use Case และ Class Diagram ของการยืมคืนสื่อ CD/DVDในห้องสมุด ซึ่ง เป็นระบบแบบง่าย ๆ โดยเริ่มจากสมาชิกมาทำการขอยืม CD/DVD และเจ้าหน้าที่ทำหน้าที่ในการให้ยืม ซึ่งการให้ยืมCD/DVD นั้น จะต้องมีความสัมพันธ์เป็นแบบ Extend ซึ่งการให้ยืมตรงนี้ อาจจะเกิดขึ้นหรือไม่เกิดขึ้นก็ได้ขึ้นอยู่กับเงื่อนไข ซึ่ง CD/DVD อาจจะหมด หรือคนยืมอาจจะค้างค่าเช่าอยู่ก็ได้ หรือค้างค่าปรับอยู่เลยให้ยืมไม่ได้เป็น Extend จาก Class Diagram ที่เราได้มานั้น จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 4 คลาส คือ คลาส \"เจ้าหน้าที่\"คลาส \"สมาชิก\" ซึ่ง สมาชิกสามารถที่จะสร้างความสัมพันธ์ การร้องขอกับ Object การยืมได้ ส่วนเจ้าหน้าที่จะเป็นความสัมพันธ์ ของการให้บริการการยืม การยืมกับ Object CD/DVD ก็คือทำหน้าที่ในการบันทึกข้อมูลการยืมต้องทำหน้าที่ ในการบันทึกข้อมูลของการยืมว่าใครยืมไป แล้วต้องคืนเมื่อไร จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ (Scenario) จาก Use Case 1. สมาชิกแจ้งขอยืมจากเจ้าหน้าที่ 2. เจ้าหน้าที่ตรวจสอบว่ามีของที่ร้องขอหรือไม่ 3. เจ้าหน้าที่ลดจำนวนของที่มีในสต็อก เจ้าหน้าที่กำหนดวันคืน เจ้าหน้าที่บันทึกข้อมูลการยืม 6. เจ้าหน้าที่แจ้งข้อมูลแก่สมาชิก ดังรูปที่ 7.4 Use Case การยืมคืน CD/DVD

รูปที่ 7.4 Use Case การยืมคืน CD/DVD โดยจะต้องมาพิจารณาว่า ในแต่ละส่วนของ Use Case ในแต่ละช่องทำงานอย่างไรบ้าง เช่นการยืม CD/DVD สมาชิกไปที่เคาเตอร์ โดยแจ้งเจ้าหน้าที่ว่าจะขอยืม CD แผ่นนี้ เรื่องอะไร จากนั้นเจ้าหน้าที่ก็ทำการ ตรวจสอบว่า ของที่ร้องขอไปนั้นมันมีอยู่หรือไม่ ซึ่งถ้ามี เจ้าหน้าที่ก็จะทำการลดจำนวนของที่มีในสต็อก ทำ หน้าที่ในการกำหนดวันคืน แล้วเจ้าหน้าที่ทำการบันทึกข้อมูลการยืม จากนั้นเจ้าหน้าที่ก็จะทำการแจ้งข้อมูลแก่ สมาชิก นอกจากนี้ในกรณีของในสต็อกหมดหรือมีการตรวจสอบสถานะการยืม โดยเมื่อเราลำดับเหตุการณ์ที่เกิดขึ้น ออกมาได้แล้ว เราก็เอาข้อมูลนี้มาเขียนในลำดับ Sequence Diagram รูปที่ 7.5 Sequence Diagram การยืมคืน CD/DVD ห้องสมุด การวางแถว คอลัมน์หรือ Object โดยให้ไปดึงมาตามคลาส Diagram ที่เราออกแบบ ฉะนั้นจะเห็นว่ามี คลาส ไดอะแกรม อยู่ 4 Object ซึ่งเวลามาสร้างเป็น Sequence Diagram ก็ต้องสร้างเป็น4 Object เช่นเดียวกัน จาก นั้นเริ่มวาดภาพออกมา ลำดับขั้นตอนว่าใคร เริ่มทำอะไรบ้าง เป็นลำดับที่ 1ดังนั้น จะเห็นได้ว่าจะเริ่มต้นด้วยการ ขอยืม โดยที่สมาชิกเป็นคนแจ้งบอกไปยังเจ้าหน้าที่ พอเจ้าหน้าที่รับทราบการขอยืม แล้วทำการตรวจสอบ โดยอาจ ตรวจสอบไปยัง CD/DVD ถ้า CD มีในสต็อก ก็จะส่ง Messageกลับมาหาเจ้าหน้าที่ เจ้าหน้าที่ก็จะทำการลด จำนวน แล้วเจ้าหน้าที่ทำการกำหนดวันรับคืน พอกำหนดวันรับคืนเจ้าหน้าที่ก็ส่งข้อมูลไปบันทึกใน Object การยืม ว่าใครยืมอะไรบ้างโดยที่ใน Sequence Diagram ห้ามสลับตำแหน่งบนล่าง จะเห็นว่าตัวอย่างรูปที่ 7.6 จะมีเส้นที่ แตกต่างกัน 3 แบบ

รูปที่ 7.6 ประเภทของ Message Sequence Diagram การยืมคืน CD/DVD ห้องสมุด สัญลักษณ์ประเภท Message Synchronous เป็นเส้นทึบหัวปิด เรียกว่าเป็นการสื่อสารแบบพูดคุยกันให้จบ เช่น ถ้า Object หนึ่ง ส่งไป หาอีก Object หนึ่ง มันจะหยุดทำงาน มันจะรอ มันต้องรอคำตอบเพราะฉะนั้นกรณีนี้ Synchronous เมื่อส่ง ข้อมูลไปแล้ว มันต้องรอการ Return กลับมาของ Object ที่มันคุยด้วย ส่วนการ Return จะใช้สัญลักษณ์ เป็นเส้นประหัวเปิด → Asynchronous เป็นเส้นทึบหัวเปิด ใช้คำว่าไม่จำเป็น หมายถึงมันไม่รอโดยจะ Return หรือไม่ก็ด้วย เรื่องของมัน โดยจะไปทำอย่างอื่นต่อจะไม่สนใจ จากรูปที่ 7.5 จะเห็นจากตัวอย่างว่า Message การขอยืเป็นแบบ Synchronous แปลว่า มีความจำเป็น ต้องรอ จะเห็นว่า Object สมาชิกไม่ทำอย่างอื่น นอกจากรอไปเรื่อย ๆ จนกว่าจะมีการแจ้งข้อมูลการยืมจะเห็น ว่ามันไม่มีการส่ง Message อื่น ๆ แทรกอยู่ระหว่างนี้ ขณะที่ส่วนที่เป็นเจ้าหน้าที่ จะเห็นว่าการถามไปยัง Object CD/DVD ว่ามีในสต็อกหรือไม่มันก็ไม่มี Message มาแทรกกลาง รอจนกว่าจะตอบกลับ แต่ในส่วนของการลดจำนวนกับการกำหนดวันคืนไม่รอไม่ สนใจว่าจะตอบอะไรกลับมา ไปทำอย่างอื่นต่อทันที เช่นเดียวกัน จะเห็นได้ว่ามี 3 งาน ที่เจ้าหน้าที่ไม่สนใจที่จะรอการตอบกลับ ซึ่งในความเป็นจริงแล้วอาจจะ ต้องรอ เช่นว่า บันทึกข้อมูลได้สมบูรณ์หรือยัง จะสังเกตว่าลดจำนวนกับกำหนดวันคืนจะไม่รอการตอบกลับ Recursive มีความเป็นไปได้ว่า วัตถุหนึ่ง ๆ จะเรียกการทำงานของตัวเองนั่นคือส่ง Message ให้กับตัว เองเพื่อให้ฟังก็ชันของตัวเองทำงาน จะเหมือนกับเวลาเราเดิน หมายความว่าเรากำลัง Recursive ตัวเราอยู่ก็ คือสั่งให้เท้าช้ายกับเท้าขวาก้าวสลับกันไปเรื่อย ๆ นั่นเป็นการ Recursiveสัญลักษณ์ก็คือจะวาดบล็อก สี่เหลี่ยมอันเล็กวางซ้อนเข้าไป และมีลูกศรชี้วกกลับเข้ามา คือเป็น Recursive

รูปที่ 7.8 ประเภทของ Message Sequence Diagram Condition การสร้าง Message แบบมีเงื่อนไข (Condition) หรือ Iteration รูปแบบคือ เงื่อนไขจะเขียนอยู่ในกล้ามปู และคำอธิบายของข้อความจะเขียนอยู่ใน Message นี้ การส่ง Message ที่จะเกิดขึ้นเมื่อมีเงื่อนไขเฉพาะเกิด ขึ้นเท่านั้น เช่น การยืมคืนอาจเพิ่มส่วนของเงื่อนไขเข้าไป เช่น ถ้าของในสต็อกหรือ Return Message ไม่มีแต่ Return Message กลับมาเป็น No หรือเป็นศูนย์ ก็อาจจะส่ง Message กลับไปหาสมา ชิกได้ทันทีว่าไม่มีสินค้า โดยอาจจะมีเงื่อนไขในการทำอย่างอื่น เช่น อาจมี Message อีกอันหนึ่งส่ง Return กลับไป หาสมาชิกอีกเส้นหนึ่ง ดังรูปที่ 7.8 และให้อยู่ในรูปกล้ามปู หรือ Message ที่กลับมาคือไม่มีหรือสต็อกเป็น ศูนย์ ก็จะเป็นเงื่อนไข Backspace แบบ lteration ก็คือการวนซ้ำหรือวนลูป หมายความว่า ใดๆ ก็ตามที่ถูกครอบด้วยสี่เหลี่ยมมันจะต้องทำการ วนซ้ำไปเรื่อยๆ จนกว่าเงื่อนไขจะได้ตรงตามกล่องสี่เหลี่ยม ดังรูปที่ 7.8 7.2ตัวอย่างการเขียน Sequence Diagram โปรแกรมทางธุรกิจ ตัวอย่างที่ 7.1 ต้องการออกแบบโปรแกรมการคิดคำคอมมิชชัน (Commission) ร้านค้าขนาดเล็ก โดยมีเงื่อนไขในการคิดค่าคอมมิชชัน ดังนี้ ถ้ายอดขายอยู่ระหว่าง 1-3,000 คิดค่าคอมมิชชัน 2% จากยอดขาย ถ้ายอดขายอยู่ระหว่าง 3,001-5,000 บาท คิดค่าคอมมิชชัน 3% จากยอดขาย ถ้ายอดขายมากกว่า 5,000บาท ขึ้นไป คิดค่าคอมมิชชัน 596 จากยอดขาย จากตัวอย่างที่ 7.1 ให้นักศึกษาวิเคราะห์และออกแบบเชิงวัตถุ (Object) ด้วย Sequence Diagram

รูปที่ 7.9 Use Case และ Class Diagram การคำนวณค่าคอมมิชชัน จากตัวอย่าง รูปที่ 7.9 เรามี Use Case และ Class Diagram ของการคำนวณค่าคอมมิชชันซึ่งเป็นระบบ แบบง่าย ๆ โดยเริ่มจากพนักงานขายแจ้งยอดขาย และเจ้าของกิจการทำหน้าที่บันทึกข้อมูลยอดขายซึ่งการคำนวณค่า คอมมิชชัน นั้นจะต้องมีความสัมพันธ์เป็นแบU Extend จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 4 คลาส คือ คลาส \"พนักงานขาของกิจการ\" คลาส \"ยอดขาย\" คลาส \"คอมมิชชัน\"ซึ่งพนักงานขายสามารถที่จะสร้างความสัมพันธ์การร้องขอกับ Object เจ้าของ กิจการ ส่วนเจ้าของกิจการจะเป็นความสัมพันธ์ของการให้ บริการการปันทึกข้อมูลยอดขาย ก็คือทำหน้าที่ใน การบันทึกข้อมูล จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ซีนาริโอ (Scenario) จาก Use Case 1. พนักงานขายแจ้งยอดขายกับเจ้าของกิจการ 2. เจ้าของกิจการจัดการข้อมูลพนักงานขาย 3. คำนวณค่าคอมมิชขันจากยอดขาย 4. เจ้าของกิจการรายงานค่าคอมมิชชัน ให้แก่พนักงานขาย ดังรูปที่ 7.10 Use Case คำนวณค่าคอมมิชชันคำนวณค่าคอมมิชชัน รูปที่ 7.10 Use Case การตำนวณค่าคอมมิชชัน

โดยจะต้องมาพิจารณาว่า ในแต่ละส่วนของ Use Case ในแต่ละช่องทำงานอย่างไรบ้างโดยพนักงานขาย แจ้งยอดขายกับเจ้าของกิจการ เจ้าของกิจการทำหน้าที่บันทึกยอดขาย เพื่อคำนวณค่าคอมมิชชัน จากนั้น เจ้าของกิจการก็จะทำการแจ้งค่าคอมมิชชันแก่พนักงานขาย โดยเมื่อเราลำดับเหตุการณ์ที่เกิดขึ้นออกมาได้แล้ว เราก็เอาข้อมูลนี้มาเขียนในลำดับSequence Diagram ดังรูปที่ 7.11 รูปที่ 7.11 Sequence Diagram โปรแกรมการคำนวณค่าคอมมิชชัน ตัวอย่างที่ 7.2 ต้องการออกแบบโปรแกรมเพื่อคำนวณหาเกรด โดยมีเงื่อนไขดังนี้ ถ้าคะแนนรวม 0-49 ได้เกรด 0 ถ้าคะแนนรวม 50-59 ได้เกรด 1 ถ้าคะแนนรวม 60-69 ได้เกรด 2 ถ้าคะแนนรวม 70-79 ได้เกรด 3 ถ้าคะแนนรวม 80-100 ได้เกรด 4 จากตัวอย่างที่ 7:2 ให้นักศึกษาวิเคราะห์และออกแบบเชิงวัตถุ (Object) ด้วย Sequence Diagram รูปที่ 7.12 Use Case และ Class Diagram การคำนวณเกรด

จากตัวอย่าง รูปที่ 7.12 เรามี Use Case และ Class Diagram ของการคำนวณเกรด ซึ่งเป็น โดยเริ่มจากอาจารย์ผู้สอน ทำหน้าที่ในการบันทึกคะแนน ซึ่งการคำนวณเกรด นั้นจะต้องมีความสัมพันธ์ Extend จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 4 คลาส คือ คลาส \"อาจารผู้สอน\" คลาส \"นักศึกษา\" คลาส \"คะแนนรวม\" คลาส \"เกรด\" ซึ่งนักศึกษาสามารถที่จะสร้างความสัมพันธ์การร้องขอกับ Object อาจารย์ผู้สอน ส่วนอาจารย์ผู้สอนจะเป็นความสัมพันธ์ของการให้บริการการบันทึข้อมูลคะแนนรวม ก็ คือทำหน้าที่ในการบันทึกข้อมูลเพื่อคำนวณเกรด จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ ซีนาริโอ (Scenario) จาก Use Case 1.อาจารย์ผู้สอนจัดการข้อมูลนักศึกษา 2.อาจารย์ผู้สอนทำหน้าที่บันทึกคะแนน 3.คำนวณเกรดจากคะแนนรวม 4. อาจารย์ผู้สอนรายงานผลการเรียน ให้นักศึกษาทราบ ดังรูป 7.13 Use Case คำนวณเกรด รูปที่ 7.13 Use Case การคำนวณเกรด โดยจะต้องมาพิจารณาว่า ในแต่ละส่วนของ Use Case ในแต่ละช่องทำงานอย่างไรบ้างโดยอาจารย์ผู้ สอนทำหน้าที่บันทึกคะแนนเพื่อคำนวณเกรด จากนั้นอาจารย์ผู้ส่อนก็จะทำการแจ้งผลการเรียนแก่นักศึกษา โดยเมื่อเราลำดับเหตุการณ์ที่เกิดขึ้นออกมาได้แล้ว เราก็เอาข้อมูลนี้มาเขียนในลำดับSequence Diagram ดังรูปที่ 7.14 รูปที่ 7.14 Sequence Diagram โปรแกรมคำนวณเกรด

ตัวอย่าง 7.3 ต้องการออกแบบโปรแกรมทางการสังซื้อพัสดุ-ครุภัณฑ์ จากตัวอย่าง 7.3 ให้นักศึกษาวิเคราะห์และออกแบบเชิงวัตถุ(Object)ด้วย Suquence Diagram รูปที่ 7.15 Use Case และ Class Diagram การสั่งซื้อพัสดุ-ครุภัณฑ์ จากตัวอย่างรูปที่ 7.15 เรามี Use Case และ Class Diagram ของการสั่งซื้อพัสดุ-ครุภัณฑ์ซึ่งเป็น ระบบแบบง่าย ๆ โดยเริ่มจากเจ้าหน้าที่ทำการตรวจสอบพัสดุคงคลัง ว่ามีเหลือหรือต้องการเพิ่มหรือไม่หากต้องการเพิ่ม ให้กรอกข้อมูลขออนุมัติ ถ้าอนุมัติให้บันทึกข้อมูลการสั่งซื้อ และออกรายงานการสั่งซื้อต่อผู้บริหาร แต่ถ้า ไม่ต้องการก็จบการทำงาน ซึ่งการตรวจสอบพัสดุ-ครุภัณฑ์นั้นจะต้องมีความสัมพันธ์เป็นแบบ Include จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 4 คลาส คือ คลาส \"เจ้าหน้าที่\"คลาส \"ผู้ บริหาร\" คลาส \"สั่งซื้อพัสดุ-ครุภัณฑ์\" คลาส \"รายงานการสั่งซื้อพัสดุ-ครุภัณฑ์ จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ซีนาริโอ (Scenario) จาก Use Case 1. เจ้าหน้าที่ทำการตรวจสอบพัสดุคงคลัง (1) หากต้องการเพิ่มให้กรอกข้อมูลขออนุมัติ (2) ถ้าไม่ต้องการเพิ่มให้จบการทำงาน 2. เจ้าหน้าที่รายงานพัสดุ-ครุภัณฑ์ให้ผู้บริหารเพื่อขออนุมัติ ดังรูปที่ 7.16 Use Case การสั่งซื้อพัสดุ-ครุภัณฑ์ รูปที่ 7.16 Use Case การสั่งซื้อพัสดุ-ครุภัณฑ์

โดยจะต้องมาพิจารณาว่า ในแต่ละส่วนของ Use Case ในแต่ละช่องทำงานอย่างโดยเจ้าหน้าที่ทำหน้าที่ ตรวจสอบพัสดุ-ครุภัณฑ์ จากนั้นหากต้องการเพิ่มให้กรอกข้อมูลแจ้งรายงาครุภัณฑ์เพื่อขออนุมัติต่อผู้ บริหาร โดยเมื่อเราลำตับเหตุการณ์ที่เกิดขึ้นออกมาได้แล้วเราก็เอาข้อมูลนี้มาเขียนในลำตับ SequenceDiagram ดังรูปที่ 7.17 รูปที่ 7.17 SequenceDiagram การสั่งซื้อพัสดุ-ครุภัณฑ์ ตัวอย่างที่ 7.4 ต้องการออกแบบโปรแกรมตัวแทนขายประกันภัยรถยนต์ภาคบังคับ (พ.ร.บ.) โดยมีเงื่อนไขในการคิดรายได้สำหรับตัวแทน ดังนี้ 1. รายได้จากขายเอง 2. รายได้มาจากค่าแนะนำ 3. รายได้จากค่าสายงาน (หรือค่าบริหารทีม) คำนวณรายได้โดยมีเงื่อนไข ดังนี้ 1. ขายเอง 50% 2. แนะนำ 15% 3. ค่าสายงาน 5% จากตัวอย่างที่ 7.4 ให้นักศึกษาวิเคราะห์และออกแบบเชิงวัตถุ (Object) ด้วย Sequence Diagram รูปที่ 7.18 use case และ class diagram ตัวแทนขายประกัน

จากตัวอย่าง รูปที่ 7.18 เรามี Use Case และ Class Diagram ของการคำนวณรายได้จากการขาย ประกัน ซึ่งเป็นระบบง่ายๆ โดยเริ่มจากตัวแทนแจ้งยอดขายประกัน และเจ้าของกิจการทำหน้าที่ในการบันยอดขายประกัน ซึ่งการ คำนวณรายได้จากการขายประกันนั้นจะต้องมีความสัมพันธ์เป็นแบU Extendคลาส \"เจ้าของกิจการ\" ซึ่ง ตัวแทนสามารถที่จะสร้างความสัมพันธ์ การร้องขอกับ Object เจ้าของกิจการ จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 2 คลาส คือ คลาส \"ตัวแทน\"ส่วนเจ้าของกิจการ จะเป็นความสัมพันธ์ของการให้บริการการบันทีกข้อมูลยอดขายประกัน ก็คือทำหน้าที่ จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ซีนาริโอ (Scenario) จาก Use Case 1. ตัวแทนขายประกันแจ้งยอดขายกับเจ้าของกิจการ 2. เจ้าของกิจการจัดการข้อมูลตัวแทนขายประกัน 3. คำนวณรายได้จากการขายประกัน 4. เจ้าของกิจการรายงานรายได้จากการขายประกันให้แก่ตัวแทนขายประกัน รูปที่ 7.19 use case คำนวณรายได้จากการขายประกัน โดยจะต้องมาพิจารณาว่า ในแต่ละส่วนของ Use Case ในแต่ละช่องทำงานอย่างโดยตัวแทนขายประกัน แจ้งยอดขายประกันกับเจ้าของกิจการ เจ้าของกิจการทำหน้าที่บันทึกยอดขายเพื่อคำนวณ จากนั้นเจ้าของ กิจการก็จะทำการแจ้งรายด้จากการขายประกันให้ตัวแทน โดยเมื่อเราลำตับเหตุการณ์ที่เกิดขึ้นออกมาได้แล้ว เราก็เอาข้อมูลนี้มาเขียนใน Sequence Diagram ดังรูปที่ 7.20 รูปที่ 7.20 Sequence Diagram โปรแกรมตัวแทนขายประกันรถยนต์

ตัวอย่างที่ 7.5 ต้องการออกแบบโปรแกรมใบเสร็จรับเงิน โดยมีเงื่อนไขในการคิดส่วนลดสินค้า ดังนี้ ถ้าซื้อสินค้า ระหว่าง 1-999 บาท ไม่คิดส่วนลด (ส่วนลดเป็น 0) ถ้าซื้อสินค้า ระหว่าง 1,000-3,000 บาท คิดส่วนลด 5% ถ้าซื้อสินค้า ระหว่าง 3,001-6,000 บาท คิดส่วนลด 7% ถ้าซื้อสินค้า มากกว่า 6,000 บาท คิดส่วนลด 10% จากตัวอย่างที่ 7.:5 ให้นักศึกษาวิเคราะห์และออกแบบเชิงวัตถุ (Object) ด้วย Sequence Diagram รูปที่ 7.21 Use Case และ Class Diagram โปรแกรมใบเสร็จรับเงิน จากตัวอย่าง รูปที่ 7.21 เรามี Use Case และ Class Dagram ของใบเสร็จรับเงิน ซึ่งเป็นระบบแบบง่าย ๆ โดยเริ่มจาก ลูกค้ามาซื้อสินค้า โดยที่พนักงานเก็บเงิน (Cashier) จัดการข้อมูลใบเสร็จรับเงินแจ้งยอดการ ชำระเงินให้ลูกค้าทราบ พนักงานเก็บเงิน (Cashier) จัดการข้อมูลใบเสร็จรับเงิน (รหัสสินค้า,รายการสินค้า, จำนวน, ราคา, ราคารวม, ภาษี 79, ราคาสุทธิ) ซึ่งการคำนวณส่วนลดสินค้านั้นจะต้องมีความสัมพันธ์เป็นแบบ Extend จาก Class Diagram ที่เราได้มา เราก็จะได้คลาสทั้งหมด 4 คลาส คือ คลาส \"ลูกค้า\" คลาส\"พนักงานเก็บ เงิน\" คลาส \"สินค้า\" คลาส \"ส่วนลดสินค้า\" จากนั้นเราก็นำมาแปลงเป็น Sequence Diagram ได้ดังนี้ กำหนดลำดับเหตุการณ์ซีนาริโอ (Scenario) จาก Use Case 1. ลูกค้ามาซื้อสินค้า 2. พนักงานเก็บเงิน (Cashier) จัดการข้อมูลใบเสร็จรับเงิน 3. คำนวณใบเสร็จรับเงิน 4. พนักงานเก็บเงิน (Cashier) แจ้งยอดการชำระเงินให้กับลูกค้า รูปที่ 7.22 Use Case คำนวณใบเสร็จรับเงิน


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook