741 likes | 2.72k Views
บท ที่ 4 รวบรวมความต้องการ ( Requirements Gathering ). การวิเคราะห์และออกแบบระบบ (System Analysis and Design. วัตถุประสงค์. เห็นความสำคัญของการวิเคราะห์ความต้องการ เพื่อให้ได้มาซึ่งความต้องการที่แท้จริงและถูกต้อง บอกบทบาทหน้าที่ของผู้ใช้ที่ดี
E N D
บทที่ 4 รวบรวมความต้องการ(Requirements Gathering) การวิเคราะห์และออกแบบระบบ (System Analysis and Design
วัตถุประสงค์ • เห็นความสำคัญของการวิเคราะห์ความต้องการ เพื่อให้ได้มาซึ่งความต้องการที่แท้จริงและถูกต้อง • บอกบทบาทหน้าที่ของผู้ใช้ที่ดี • สามารถนำความต้องการที่รวบรวมมาผ่านการวิเคราะห์ และบันทึกอยู่ในรูปแบบเอกสารได้ • ทราบถึงบทบาทของสเตคโฮลเดอร์ ซึ่งเป็นกลุ่มบุคคลสำคัญที่เกี่ยวข้องกับงานระบบสารสนเทศ • บอกเทคนิควิธีการรวบรวมความต้องการ • สามารถนำขั้นตอนการทำงานของงานใดงานหนึ่ง มาเขียนอยู่ในรูปของเวิร์กโฟลว์ได้ (Workflow)ได้
บทนำ • การวิเคราะห์ระบบ เป็นกระบวนการของการสร้างแผนงาน(plan) เพื่อแสดงให้เห็นถึงโครงร่าง กระบวนการทำงานของระบบทำงานอย่างไร (how) สอดคล้องกับจุดประสงค์และความต้องการหรือไม่ • วัตถุประสงค์ของการวิเคราะห์ระบบ คือ การทำความเข้าใจในฟังก์ชันหน้าที่ทางธุรกิจ (Business Functions) และพัฒนาออกมาเป็นความต้องการของระบบ (System Requirements)
ขั้นตอนการพัฒนาระบบตามแบบแผน SDLC AS-IS System Planning Analysis Design Implement To-Be System Understand As-is system Identify improvements Develop Concept for The to-be system แสดงขั้นตอนการพัฒนาระบบตามแบบแผน SDLC โดยในระยะการวิเคราะห์ จะต้องทำความเข้าใจกับระบบงานเดิม การเพิ่มเติมความต้องการ เพื่อพัฒนาแนวคิดสำหรับระบบใหม่ที่จะเกิดขึ้น
การวิเคราะห์ระบบ • การศึกษาระบบงานเดิม ประกอบด้วย 3 ระยะ คือ • ทำความเข้าใจกับระบบงานเดิม (Understand AS-IS System) • เป็นการศึกษาขั้นตอนการทำงานของระบบงานเดิมที่เป็นอยู่ในปัจจุบัน มีจุดอ่อนหรือจุดแข็งอย่างไร • กำหนดสิ่งที่ต้องการปรับปรุงเพิ่มเติม (Identity Improvements) • เป็นการกำหนดแนวทางในการปรับปรุงระบบให้เป็นไปในทิศทางที่ดีขึ้น • พัฒนาแนวความคิดสำหรับระบบงานใหม่ (Develop Concept for the To-Be System) • สร้างแบบจำลองกระบวนการและแบบจำลองข้อมูล ทำให้ทราบถึงรายละเอียดของสารสนเทศ
การรวบรวมความต้องการ (Requirements Gathering) • หน้าที่สำคัญอย่างหนึ่งที่นักวิเคราะห์ระบบจะต้องทำ ก็คือ การเข้าไปค้นหาความต้องการของผู้ใช้ • ซึ่งขั้นตอนการค้นหาความต้องการและการจดบันทึกความต้องการนั้นมิใช่สิ่งที่ง่าย • นักวิเคราะห์ระบบควรจดบันทึกความต้องการให้อยู่ในรูปแบบมาตรฐาน เพื่อนำไปพัฒนาเป็นซอฟต์แวร์ได้ต่อไป • หลักการในการค้นหาความต้องการ คือ 5W + 1H
หลักการในการค้นหาความต้องการ (5W + 1H) • Who มีใครเกี่ยวข้องบ้าง? บทบาทของแต่ละคนนั้นคืออะไร? ใครเป็นบุคคลแท้จริงที่ร้องขอเพื่อพัฒนาระบบใหม่? • What อะไรคือสิ่งที่ทำให้เกิดปัญหา? ระบบที่ต้องการหรือระบบที่อยากได้คือ ระบบอะไร? มีฟังก์ชันการทำงานอะไรบ้าง? • When ระบบติดตั้งได้เมื่อไร? ผู้สนับสนุนเงินทุนพร้อมที่จะสนับสนุนเมื่อไร? ทดสอบระบบใหม่เมื่อไร? • Where บริเวณสถานที่ใด ที่ระบบใหม่สามารถดำเนินการได้อย่างเหมาะสม • Why ทำไมต้องแสวงหาระบบใหม่? ทำไมผู้ใช้จึงเชื่อว่าระบบใหม่สามารถแก้ไขปัญหาได้? • Howระบบใหม่จะทำงานได้อย่างไร? มีข้อจำกัดอย่างไร?
การรวบรวมความต้องการ (Requirements Gathering) • กิจกรรมการค้นหาความต้องการ และการจดบันทึกความต้องการนั้น มีหลักการสำคัญ คือ จะต้องค้นหาความจริงให้ได้ว่าผู้ใช้ต้องการสิ่งใดเป็นสำคัญ • ก่อนที่นักวิเคราะห์ระบบจะเข้าไปค้นหาความต้องการจากผู้ใช้ตามหน่วยงานต่างๆ นักวิเคราะห์ระบบจำเป็นต้อง ศึกษารูปแบบองค์กร • ผู้ใช้ (User)มีบทบาทสำคัญในการวิเคราะห์ระบบในการให้ข้อมูลแก่นักวิเคราะห์ระบบ
คุณสมบัติของผู้ใช้(user)ที่ดีคุณสมบัติของผู้ใช้(user)ที่ดี • จะต้องสามารถอธิบายขั้นตอนการทำงานของระบบปัจจุบันที่ดำเนินงานอยู่ได้ • จะต้องสามารถชี้แจงปัญหาต่างๆ ที่เกิดขึ้นในระบบได้ • จะต้องสามารถระบุความต้องการในระบบใหม่ได้ • ควรจัดเตรียมเอกสาร หรือรายงานที่เกี่ยวข้องให้แก่นักวิเคราะห์ระบบ • ควรให้ความร่วมมือแก่นักวิเคราะห์ระบบ • ควรมีส่วนร่วมต่อโครงการพัฒนาระบบใหม่ รวมทั้งสามารถแนะนำหรือเสนอแนวทางแก้ไขให้แก่นักวิเคราะห์ระบบ
ชนิดของความต้องการ (Type of Requirements) แบ่งเป็น 2 ชนิดด้วยกัน คือ • ความต้องการที่เป็นฟังก์ชันการทำงาน (Function Requirements) • ความต้องการที่ไม่ได้เป็นฟังก์ชันการทำงาน (Non-Function Requirements)
ความต้องการที่เป็นฟังก์ชันการทำงาน (Function Requirements) • คือ กิจกรรมที่ระบบต้องปฏิบัติ กล่าวคือ เป็นขั้นตอนการทำงานที่ประกอบด้วยกิจกรรมต่างๆ (สิ่งที่ระบบควรต้องทำหรือเป็นหน้าที่หลักของระบบ) ที่ข้องเกี่ยวกับผู้ปฎิบัติงาน โดยแต่ละกิจกรรมจะก่อให้เกิดผลการดำเนินงานออกมา • โดยปกติ ความต้องการที่เป็นฟังก์ชันการทำงานมักเขียนอยู่ในรูปแบบของกริยา (Verb Phrase)
ตัวอย่าง Functional Requirements • ระบบเงินเดือน (Payroll System) • กิจกรรมการปฎิบัติงานของระบบเงินเดือน ประกอบด้วยฟังก์ชันหน้าที่ต่างๆ คือ • คำนวณเงินเดือนและค่าคอมมิชชัน • คำนวณภาษี • พิมพ์สลิปเงินเดือนและพิมพ์รายงาน • สามารถจัดพิมพ์รายงานภาษีประจำปีแก่สรรพากร • ระบบใหม่ต้องจัดการกับฟังก์ชันเหล่านี้ได้ทั้งหมด
ความต้องการที่เป็นฟังก์ชันการทำงาน (Function Requirements) • สรุปได้ว่า ความต้องการที่เป็นฟังก์ชันการทำงานนั้น ตั้งอยู่บนพื้นฐานของขั้นตอนการทำงานและกฎเกณฑ์ขององค์กรที่ใช้สำหรับดำเนินธุรกิจเป็นสำคัญ • ดังนั้น ความต้องการที่เป็นฟังก์ชันการทำงานจึงเกี่ยวข้องกับ • มีอะไรบ้างที่ต้องอินพุตเข้าไปในระบบ • มีเอาต์พุตอะไรบ้าง ที่ระบบต้องดำเนินการ • มีข้อมูลอะไรบ้าง ที่ระบบต้องจัดเก็บ เพื่อให้ระบบอื่นๆ ที่เกี่ยวข้อง นำข้อมูลไปใช้งานได้ • การคำนวณอะไร ที่ระบบต้องดำเนินการ • ซึ่งสิ่งเหล่านี้จะต้องประสานการทำงานกันอย่างมีระบบ
ความต้องการที่เป็นฟังก์ชันการทำงาน (Function Requirements) • คือ คุณสมบัติหรือคุณภาพของซอฟต์แวร์ที่พึงมี ไม่ใช่หน้าที่หลัก เช่น • ความสามารถในการใช้งาน (Usability) • ประสิทธิภาพของระบบ (Efficiency) • ระบบความปลอดภัย (Security) • ความน่าเชื่อถือของระบบ (Reliability) • เวลาตอบสนอง (Time Response) • ความง่ายต่อการใช้งาน (User Friendliness) • ความสะดวกในการเคลื่อนย้ายไปยังสภาพแวดล้อมใหม่ (Portability)
ชนิดของความต้องการ (Type of Requirements) Non-Function Function บันทึกลงในเอกสาร บันทึกลงในเอกสาร • ทราบขั้นตอน • อินเตอร์เฟช • บรรยายถึงคุณภาพ • เทคนิคต่างๆ ที่ซอฟต์แวร์ • พึงมี แนวทางการออกแบบ (guide design) แนวทางการวิเคราะห์ (guide analysis)
Funtional Requirements (FRs)and Non-Function Requirements (NFRs) • ตัวอย่างเช่น ระบบบัญชี ทำหน้าที่หลักคือ บันทึกข้อมูล Transaction รายวัน ,สรุปยอดบัญชีได้ (สิ่งที่ระบบบัญชีควรทำหรือหน้าที่หลัก) - - > Functional requirements • ผู้ใช้ต้องใส่รหัสผ่าน ชื่อผู้ใช้ เชื่อมโยงกับอินเทอร์เน็ตได้ เชื่อมโยงระบบบัญชีกับบริษัทอื่น (ไม่ใช่หน้าที่หลัก) - - >Non-Functinal requirements
การวิเคราะห์ความต้องการ(RequirementsAnalysis)การวิเคราะห์ความต้องการ(RequirementsAnalysis) • นักวิเคราะห์ระบบ(SA) นำความต้องการที่ได้รวบรวมมา ผ่านกระบวนการวิเคราะห์ความต้องการ (Requirements Analysis) เพื่อให้ได้มาซึ่งข้อกำหนดความต้องการ (Requirement Specification) เพื่อใช้ในการพัฒนาซอฟต์แวร์ โดยการวิเคราะห์ความต้องการเพื่อกำหนดเป็นความต้องการของระบบใหม่ ประกอบด้วย 3 ขั้นตอน คือ
การวิเคราะห์ความต้องการ(RequirementsAnalysis)การวิเคราะห์ความต้องการ(RequirementsAnalysis) • วิเคราะห์ข้อเท็จจริงในข้อมูล (Analysis of factual Data) พิจารณาว่าระบบจะต้องดำเนินงานอย่างไร เพื่อให้ตรงกับวัตถุประสงค์ตามที่ต้องการ • กำหนดสาระสำคัญของความต้องการ (Identification of Essential Requirements) คือ คุณสมบัติหรือสาระสำคัญที่ระบบใหม่พึงมี • คัดเลือกความต้องการที่ตรงกับวัตถุประสงค์ (Selection of Requirements Fulfillment) ใช้เป็นพื้นฐานในการออกแบบ
การวิเคราะห์ความต้องการ(RequirementsAnalysis)การวิเคราะห์ความต้องการ(RequirementsAnalysis) Business Process ………………. ………………. ………………. ………………. ……………… ……………….. Business Information Requirements Gathering And Analysis Business Rules Requirements Specification แสดงขั้นตอนการนำความต้องการที่รวบรวมมาผ่านการวิเคราะห์ และสรุปลงในเอกสารข้อกำหนดความต้องการของระบบ (Requirements Specification)
Requirement Specification • คือ ข้อมูลที่สร้างขึ้นมาระหว่างการสืบเสาะข้อเท็จจริงด้วยการวิเคราะห์ความต้องการเพื่อให้ได้มา ซึ่งข้อกำหนดความต้องการที่ใช้อธิบายคุณสมบัติของระบบใหม่ • หรือ ข้อกำหนดที่มีการอธิบายว่าระบบควรมีการทำงานอย่างไรบ้าง รายละเอียดอะไรบ้างที่ต้องทำให้สำเร็จ อาจเป็นข้อบังคับเกี่ยวกับกระบวนการพัฒนาระบบงาน ข้อตกลงร่วมกันเกี่ยวกับคุณภาพของซอฟต์แวร์
หลักการค้นหาความต้องการที่ดีหลักการค้นหาความต้องการที่ดี • ค้นหาข้อมูลความต้องการกับบุคคลที่เกี่ยวข้องโดยตรง และให้ตรงวัตถุประสงค์มากที่สุด • ระบุความต้องการต่างๆ ลงในรูปของเอกสาร และมีการทำข้อตกลงร่วมกันทั้งสองฝ่าย • Requirement ที่ดีต้องตกลงร่วมกันทั้งสองฝ่าย • คำจำกัดความหรือคำอธิบายบนเอกสารที่ได้บันทึกไว้ ควรมีความชัดเจน พยายามอย่าใช้คำกำกวม
สเตคโฮลเดอร์: แหล่งทรัพยากรของความต้องการระบบ (Stakeholders : The Source of System Requirements) • สเตคโฮลเดอร์หรือ Information Worker คือ บุคคลที่มีความสนใจและพร้อมให้ความร่วมมือกับงานพัฒนาระบบสารสนเทศใหม่ เพื่อให้เกิดผลสำเร็จ สามารถแบ่งออกเป็น 6 กลุ่มหลักๆ คือ • เจ้าของระบบ (System Owners) Sponsors • ผู้ใช้ระบบ (System User) • นักออกแบบระบบ (System Designers) • นักพัฒนาระบบ (System Developers) Programmer • นักวิเคราะห์ระบบ (System Analysts) • ร้านค้าจำนวนอุปกรณ์ไอทีและที่ปรึกษา (IT Vendors and Consultants)
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) • ในบางครั้ง อาจเรียกว่า การสืบเสาะข้อเท็จจริง (Fact-Finding) โดยมีเทคนิคสำคัญ ดังนี้ • การรวบรวมเอกสาร (Documentation) • การสัมภาษณ์และสนทนากับผู้ใช้ (Conduct Interviews and Discussions with Users) • การสังเกตการจากกระบวนการเดินเอกสารในธุรกิจ (Observe and Document Business Processes) • การแจกจ่ายและรวบรวมแบบสอบถาม (Distribute and Collect Questionaires) • การวางแผนความต้องการร่วมกัน (Joint Requirements Planning: JRP)
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) • การรวบรวมเอกสาร (Documentation) • การรวบรวมแบบฟอร์ม หรือรายงานต่างๆ ที่ใช้อยู่ หรือการถ่ายสำเนาเอกสาร • การสัมภาษณ์และสนทนากับผู้ใช้ (Conduct Interviews and Discussions with Users) • การสัมภาษณ์แบบไม่มีโครงสร้าง (Unstructured Interview) ไม่มีการกำหนดคำถามก่อนว่าจะถามเกี่ยวกับอะไร มีลักษณะพูดคุยสนทนา • การสัมภาษณ์แบบมีโครงสร้าง (Structured Interview) มีการกำหนดคำถามเพื่อการสัมภาษณ์โดยเฉพาะ
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) • การสังเกตการจากกระบวนการเดินเอกสารในธุรกิจ (Observe and Document Business Processes) • สัมผัสจากการทำงานที่เป็นเหตุการณ์จริงของพนักงาน เช่น กระบวนการทำงาน มีขั้นตอนใดที่ต้องเข้าไปปรับปรุงเพื่อให้ระบบดีขึ้น โดยใช้ไดอะแกรม “เวิร์กโฟลว์ (Workflow)” • การแจกจ่ายและรวบรวมแบบสอบถาม (Distribute and Collect Questionaires)โดยที่แบบสอบถามมีอยู่ 2 ประเภท คือ • คำถามปลายเปิด สร้างขึ้นเพื่อให้ผู้ตอบแบบสอบถามมีอิสระในการตอบคำถาม ประโยชน์คือ ได้รับคำถามในลักษณะความคิดเห็น ข้อเสนอแนะ ซึ่งสามารถใช้เป็นแนวทางปฎิบัติหรือปรับปรุงต่อไป • คำถามปลายปิด เป็นคำถามที่มีการกำหนดคำตอบให้ผู้ตอบแบบสอบถาม มีตัวเลือกคำตอบที่ชัดเจน แยกแยะความแตกต่างได้ชัด
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) • ปัจจุบันคุณทำงานในตำแหน่ง? • คุณทำงานในหน่วยงานนี้เป็นเวลา…..ปี…เดือน • ปัจจุบันคุณอายุ ….ปี • ระบบงานที่คุณใช้อยู่นั้น เกิดปัญหาในการดำเนินงานด้านใดบ้าง? ตัวอย่างแบบสอบถาม ที่ตั้งคำถามปลายเปิด
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) 1. บริษัทของคุณมีจำนวนพนักงานเท่าไร [ ] 1-2 คน [ ] 20-100 คน [ ] 100-200 คน [ ] มากกว่า200 คน 2. คุณจบการศึกษาในระดับใด [ ] มัธยม [ ] ปวช./ปวส. [ ] ปริญญาตรี [ ] สูงกว่าปริญาตรี ตัวอย่างแบบสอบถาม ที่ตั้งคำถามปลายปิด
เทคนิคการรวบรวมความต้องการ (RequirementsGathering Techniques) • การวางแผนความต้องการร่วมกัน (Joint Requirements Planning: JRP)ใช้เทคนิค Brainstorming ในการทำ Workshop มีการแบ่งงานหรือมอบหมายหน้าที่ และทุกคนต้องร่วมมือร่วมใจในการประชุมร่วมกันเพื่อปรึกษาหารือ จึงสามารถบรรลุผลสำเร็จได้ดี
Q & A End