บทที่7
การวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ การวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ หมายถึง กระบวนการพัฒนาระบบเทคโนโลยีสารสนเทศใน หน่วยงานของ ภาคธุรกิจโดยมุ่งแสวงหาผลประโยชน์ จากการลงทุนในการพัฒนา ระบบทั้งทางตรง (Tangible) และทางอ้อม(Intangible)ซึ่ง นักวิเคราะห์ระบบจะต้องเข้าใจบริบทและวัตถุประสงค์ในการ วิเคราะห์และออกแบบระบบอย่างชัดเจนจากการสืบค้นความ ต้องการของผู้ใช้ผ่านเครื่องมือต่าง ๆ เช่น การสัมภาษณ์ (Interview) การสังเกตุ (Observation) การแจกแบบสอบถาม (Questionnaire) เป็นต้น การวิเคราะห์และออกแบบโปรแกรมด้วย Class Diagram ขั้นตอนที่ 1 กําหนดออบเจ็กต์และสร้างคลาสของออบเจ็กต์เหล่านั้น การกําหนดออปเจ็กต์จะสร้างขอบเขตของระบบซึ่งเกิดจากปัญหาและความต้องการของระบบเป็นคํานาม ไม่ ซ้ําซ้อน และต้องสามารถกําหนดแอตทริบิวต์ได้ - ลูกค้า Customer) - การชําระเงิน(Payment) - พื้นที่เช่า(Area) - รายได้(Income) - สัญญาเช่า (Leasing) ขั้นตอนที่ 2 กําหนดแอทริบิวต์ (Attribute) ให้กับคลาสเป็นการกําหนดคุณลักษณะเฉพาะให้กับออบเจ็กต์ต่าง ๆ ที่อยู่ในคลาส โดยคุณลักษณะหรือ แอตทิบิวต์ ที่จะกําหนดต้องตรงกับความต้องการของระบบเท่านั้น 1. Primary Key: มีค่าไม่ซ้ํากัน 2. Multi-Value Attribute: มีค่าข้อมูลมากกว่า 1 3. Derived Attribute: มีค่าการคํานวณ 4. Composite Attribute: แตกย่อยได้ อาจแยก ออกเป็นอีก 1 คลาสได้ ขั้นตอนที่ 3 พัฒนาดิกชันนารีข้อมูล ขั้นตอนนี้เป็นการเขียนอธิบายข้อมูลของคลาสโดยอาจเขียนเป็นรูปแบบย่อ ๆ ไม่เป็นทางการเป็นการอธิบาย ชื่อ ขอบเขต บทบาท และแอตทริบิวต์ของคลาส รูปภาพที่ 7.1 การวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ รูปภาพที่ 7.2 การพัฒนาดิกชันนารีข้อมูล
การวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ ขั้นตอนที่ 4 กําหนดโอเปอเรชันให้กับคลาส ขั้นตอน 1-3 เป็นการกําหนดแอตทริบิวต์ที่เกี่ยวข้องกับขอบเขตของปัญหาที่กําหนดไว้ ซึ่งเป็นส่วนหนึ่งเท่านั้น ในความเป็นจริงยังต้องพิจารณาโอเปอร์เรชันที่เกี่ยวข้องกับคลาสนั้น ๆ ด้วย ขั้นตอนที่ 5 กําหนดความสัมพันธ์ระหว่างคลาส ระบบสารสนเทศประกอบด้วยคลาสต่าง ๆ เป็นจํานวนมากซึ่งมีหน้าที่ต่างกันไปการประสานงานจะต้อง กําหนดรูปแบบที่ชัดเจนและใช้เส้นตรงลากเชื่อมระหว่างคลาสบนเส้นอาจระบุ 1. Associations Name เป็นความสัมพันธ์แบบทั่วไปที่ไม่กําหนดผลของการการสืบทอด 2. Navigation ทิศทางความสัมพันธ์โดยหัวลูกศรแสดงให้เห็นความสามารถของออบเจ็กต์ของคลาสหนึ่งสามารถ เข้าถึงออบเจ็กต์ของอีกคลาสหนึ่งได้อย่างไรกรณีมีหัวลูกศรทิศทางเดียวจะ เรียกว่า “UnidirectionAssociation” แต่ถ้ามีหัวลูกศร 2 ด้านหรือไม่มีเลยจะเรียกว่า“BidirectionAssociation” จํานวนสมาชิกที่มีอยู่ในความสัมพันธ์ (Multiplicity) ความสัมพันธ์ที่เกิดขึ้นระหว่างคลาสจําเป็นต้องกําหนดจํานวนสมาชิกที่มีอยู่ในความสัมพันธ์นั่นๆ โดยตัวเลขที่ ปลายสุดของคลาสฝั่งตรงกันข้ามจะใช้บอกจํานวนของความสัมพันธ์ของคลาสที่ อยู่อีกฝั่งหนึ่ง ความสัมพันธ์ระหว่างคลาสแบ่งออกได้หลายรูปแบบดังนี้ 1. Associations เป็นความสัมพันธ์แบบทั่วไปที่ได้กําหนดผลของการสืบทอดและการเป็นส่วนหนึ่งของคลาสที่ สัมพันธ์กันเป็นความสัมพันธ์ในระดับชั้น เดียวกัน 2. Generalizations เป็นความสัมพันธ์เชิงโครงสร้าง แสดงให้เห็นความสัมพันธ์ระหว่างออบเจ็กต์หรือคลาส ในลักษณะของการสืบทอดคุณสมบัติจากคลาสหนึ่ง (Superclass) ไปยังอีกคลาสหนึ่ง(Subclass) ซึ่งเป็น แนวคิด เชิงวัตถุ อาจใช้กําหนดความสัมพันธ์แบบหนึ่งต่อกลุ่ม(One to Money) หรือหนึ่งต่อหนึ่ง (One to One)หรือ อาจใช้เพื่อแสดงความสัมพันธ์ระหว่างออกเจ็กต์ได้ รูปภาพที่ 7.3 แสดงBidirectionAssociation รูปภาพที่ 7.4 แสดง Associations รูปภาพที่ 7.5 แสดง Generalizations
การสืบทอดคุณสมบัติ แบ่งได้ออกเป็น 2 ประเภท คือ 1. Single Inheritance สืบทอดคุณสมบัติจาก Superclass 1 คลาส 2. Multiple Inheritance สืบทอดคุณสมบัติจาก Superclass มากกว่า 1 คลาส 3. Aggregation เป็นแผนภาพแสดงความสัมพันธ์ของวัตถุทั้งหมดกับวัตถุบางส่วน ซึ่งแตกต่างจากแนวคิด การสืบทอด คุณสมบัติโดยจะพิจารณาว่าคลาสหนึ่ง ๆ สามารถแยกออกเป็นคลาสย่อย ๆ ได้กี่คลาสซึ่ง เรียกวิธีการแบ่งคลาสแบบนี้ว่า “Whole-Part Relationship” หรือ “Is Part Of” โดยจะมีคลาสที่ใหญ่ที่ สุดที่เป็นออบเจ็กต์หลักและมีคลาสอื่นเป็น ส่วนประกอบ การวิเคราะห์และออกแบบโปรแกรมด้วย Use Case Diagram ขั้นตอนที่ 1 ขั้นสร้าง Use Case Diagram ขั้นนี้จะวิเคราะห์หาขอบเขตของระบบ (Problem Domain) ซึ่งประกอบด้วย 1. ค้นหา Actor 2. ค้นหา Use Case ที่มีปฏิสัมพันธ์กับ Actor นั้นโดยตรง 3. ต้องไม่มี Actor ใดเลยที่ไม่มีปฏิสัมพันธ์กับ Use Case 4. ต้องไม่มี Use Case ใดเลยที่ไม่มีปฏิสัมพันธ์กับActor ขั้นตอนที่ 2 สร้าง Use Case Diagram ในระดับ System Requirement Model ขั้นตอนนี้จะ วิเคราะห์ถึงงานและหน้าที่ของระบบซึ่งก็คือการพิจารณาหา Use Case และ ความสัมพันธ์ระหว่าง Use Case 1. ค้นหาและสร้างความสัมพันธ์ระหว่าง Use Case หรือ Actor(ถ้ามี) แล้วเพิ่มเติม Use Case ใหม่ซึ่งอาจจะเป็นแบบ Include หรือExtends 2. ต้องไม่มี Actor ใดเลยที่ไม่ปฏิสัมพันธ์กับ Use Case 3. ต้องไม่มี Use Case ใดเลยที่ไม่ปฏิสัมพันธ์กับ Actor 4. Use Case ทุกตัวต้องมีปฏิสัมพันธ์อย่างใดอย่างหนึ่งกับ Actor หรือ Use Case ตัวอื่น ๆ 5. เขียนคําอธิบาย Use Case ทุกตัวจนครบถ้วน การเขียนคําอธิบาย Use Case การไหลของเหตุการณ์ (Flow of Event) หรือการสร้าง Use Case Description โดยมี ส่วนประกอบดังนี้ รูปภาพที่ 7.6 แสดงการสือทอดคุณสมบัติ รูปภาพที่ 7.7 แสดง Aggregation รูปภาพที่ 7.8 แสดงคําอธิบาย Use Case
การบริหารโครงการ การบริหารโครงการ หมายถึง กระบวนการวางแผนและควบคุมโครงการให้สําเร็จและบรรลุตามวัตถุประสงค์ ของโครงการที่กําหนดไว้อย่างมีประสิทธิภาพและประสิทธิผลโดยอาศัยเครื่องมือต่าง ๆ มาช่วยบริหารจัดการ เครื่องมือ แต่ละชนิดมีข้อดีข้อเสียที่แตกต่างกันการเลือกเครื่องมือมาใช้ขึ้นอยู่กับลักษณะความซับซ้อน ของ โครงการนักวิเคราะห์ ระบบจําเป็นต้องศึกษาเครื่องมือแต่ละชนิดให้ดีและเหมาะสมกับโครงการ และเหตุผลที่การ บริหารโครงการจะล้มเหลวหรือประสบความสําเร็จขึ้นอยู่กับสาเหตุดังนี้ เทคนิคการบริหารงบประมาณของโครงการ งบประมาณเป็นปัจจัยสําคัญในการพิจารณาว่าจะดําเนินโครงการนั้นต่อไปหรือไม่ มีผลกับการตัดสินใจ ของผู้อนุมัติ โครงการที่จะพิจารณาถึงความคุ้มค่าในการลงทุนผลตอบแทนที่จะได้รับจากการลงทุนรวมถึงการ วิเคราะห์จุดคุ้มทุน (Break Event Point) ว่าเหมาะสมกับโครงการนั้น ๆ หรือไม่ หากประเมินงบประมาณ ผิดพลาดอาจส่งผลต่อการอนุมัติ โครงการนั้น ๆ ไปโดยทันที่ซึ่งการ พิจารณาในขั้นตอนนี้ก็คือการการศึกษาความเป็นไปได้ทางด้านเศรษฐศาสตร์ (Economical Feasibility) ดังนั้นนักวิเคราะห์ระบบจึงต้องมีการกําหนดแผนการบริหารโครงการหรือการประมาณ การงบประมาณที่สอดคล้องกับสภาพจริงมีการวิเคราะห์งบประมาณให้เห็นถึงผลตอบแทนที่จะเกิดขึ้น การวิเคราะห์กระแสเงินสด การวิเคราะห์เงินสด (Case Flow Analysis) คือ การเปรียบเทียบผลตอบแทนจากการลงทุน (Investment) กับ ต้นทุนทั้งหมด (Cost) เพื่อหากระแสเงินสดและกระแสเงินสดในช่วงระยะเวลานั้นๆ รูปภาพที่ 7.9 แสดงเหตุผลที่การบริหารโครงการจะล้มเหลว รูปภาพที่ 7.10 แสดงตารางการวิเคราะห์กระแสเงินสด
แบบทดสอบหลังเรียนบทที่ 7 1. การสืบทอดคุณสมบัติ แบ่งได้ออกเป็นกี่ประเภท ก. 1 ประเภท ข. 2 ประเภท ค. 3 ประเภท ง. 4 ประเภท 2. .การวิเคราะห์ระบบ การวิเคราะห์และออกแบบระบบแตกต่างกันอย่างไร ก.การวิเคราะห์ระบบเป็นระบบใช้สําหรับธุรกิจโดยตรง การวิเคราะห์และออกแบบระบบเป็นระบบทั่วไปสามารถ ใช้ได้กับทุกระบบ ข.การวิเคราะห์ระบบเป็นระบบใดระบบหนึ่งโดยมีการคาดหมายและจุดประสงค์ที่มีการปรับปรุง การวิเคราะห์ และออกแบบระบบเป็นวิธีการที่ใช้การสร้างระบบสารสนเทศขึ้นมาใหม่ ค.การวิเคราะห์ระบบเป็นระบบสารสนเทศใหม่ การวิเคราะห์และออกแบบระบบเป็นระบบย่อยๆช่วยในการ แก้ไขระบบสารสนเทศ ง.การวิเคราะห์ระบบเป็นระบบปฏิบัติการในการประมลผลข้อมูล การวิเคราะห์และออกแบบระบบเป็นระบบอยู่ ในทีมระบบสารสนเทศขององค์กรธุรกิจ 3. Single Inheritance หมายถึง ก. สืบทอดคุณสมบัติจาก Superclass 1 คลาส ข. สืบทอดคุณสมบัติจาก Superclass มากกว่า 1 คลาส ค. เป็นแผนภาพแสดงความสัมพันธ์ของวัตถุทั้งหมดกับวัตถุบางส่วน ซึ่งแตกต่างจากแนวคิด ง. ไม่มีข้อถูก 4. การวิเคราะห์และออกแบบโปรแกรมด้วย Use Case Diagram มีกี่ขั้นตอน ก. 1 ขั้นตอน ข. 2 ขั้นตอน ค. 3 ขั้นตอน ง. 4 ขั้นตอน 5. ความต้องการของระบบหมายถึง ก.สามารถวิเคราะห์ยอดขายและสร้างธุรกิจใหม่ๆได้เพิ่มขึ้นเรื่อยๆ ข.สามารถเพิ่มยอดขายและทํากําไรให้กับยอดขายมากขึ้น ค.สามารถบอกทิศทางการขายและรวบรวมยอดการขายได้อย่างแม่นยํา ง.สามารถติดตามยอดขายได้เป็นระยะ เพื่อให้ฝ่ายบริหารสามารถปรับปรุงการขายได้ทันท่วงที 6. นักวิเคราะห์ระบบเรียกอีกอย่างว่าอะไร ก.Determine ข.SA ค.Analysis ง.System
7. บทบาทของนักวิเคราะห์ระบบมีทั้งหมด 3 ปัจจัยมีอะไรบ้าง ก.คน วิธีการ เทคโนโลยีคอมพิวเตอร์ ข.ระบบ วิธีการ เทคโนโลยี ค.ระบบ การตรวจสอบ คอมพิวเตอร์ ง.คน การวิเคราะห์ การตรวจสอบ 8. Software คือ ก.ด้านระบบของตัวเครื่องคอมพิวเตอร์เป็นรูปธรรมที่เกี่ยวกับชนิดและประเภทของเครื่อง ข.โปรแกรมต่างๆที่เป็นระบบปฏิบัติการของเครื่อง ค.ระบบเกี่ยวกับการจัดการองค์กรด้านธุรกิจที่ต้องใช้คอมพิวเตอร์และระบบ ง.การจําแนกสายการปฏิบัติการจัดตั้งทีมงานหรือความรู้เกี่ยวกับการจัดตั้งองค์กร 9. SDLC ย่อมาจากอะไร? ก.System Development Life Circle ข.System Development Life Cyecle ค.System Development Life Cycle ง.System Development Life Cercle 10. ข้อใดหมายถึงการออกแบบระบบ ก.System Design ข.System Analyst ค.System Analysis ง.System Module