วันพุธที่ 5 เมษายน พ.ศ. 2560

การวิเคราะห์และพัฒนาระบบ

การวิเคราะห์และพัฒนาระบบ

1 ความหมายของระบบ (System)

ระบบ (System) เป็นกลุ่มขององค์ประกอบต่าง ๆ ที่ทำงานร่วมกัน เพื่อจุดประสงค์ในสิ่งเดียวกัน ระบบอาจประกอบด้วยบุคลากร เครื่องมือ วัสดุ วิธีการ การจัดการ ซึ่งทั้งหมดนี้จะต้องมีระบบในกาจัดการเพื่อให้บรรลุจุดประสงค์เดียวกัน คำว่า "ระบบ" เป็นคำที่มีการเกี่ยวข้องกับการทำงานและหน่วยงานและนิยมใช้กันมาก เช่น ระบบธุรกิจ (Business System) ระบบสารสนเทศ (Management   Information System) ระบบการเรียนการสอน (Instructional System) ระบบเครือข่ายคอมพิวเตอร์ (Computer Network System) เป็นต้น เมื่อทำการศึกษาระบบใดระบบหนึ่ง นักวิเคราะห์ระบบจะต้องเข้าใจการทำงานของระบบนั้นให้ดี โดยการศึกษาว่า ระบบทำอะไร (What) ทำโดยใคร (Who) ทำเมื่อไร (When) และทำอย่างไร (How) นักวิเคราะห์ระบบ (System Analyst หรือ SA) ซึ่งได้แก่ บุคคลที่มีหน้าที่วิเคราะห์และออกแบบระบบจะต้องเข้าใจการทำงานของระบบนั้น ๆ ว่าเป็นอย่างไรและอะไรคือความต้องการของระบบได้มีผู้ที่ให้ความหมายและคำอธิบาย ของคำว่า “ระบบ” ไว้หลายท่านด้วยกัน เช่น บานาธี (Banathy. 1968) ให้ความหมายของระบบว่าเป็นการรวบรวมสิ่งต่าง ๆ ทั้งหลายที่มนุษย์ได้ออกแบบ และคิดสร้างสรรค์ขึ้นมา เพื่อจัดดำเนินการให้บรรลุผลตามเป้าหมายที่วางไว้กูด (Good. 1973) ให้ความหมายของระบบว่า หมายถึง การจัดการส่วนต่างๆ ทุกส่วนให้เป็นระเบียบโดยแสดงความสัมพันธ์ซึ่งกันและกันของส่วนต่าง ๆ และความสัมพันธ์ของแต่ละส่วนกับส่วนทั้งหมดอย่างชัดเจนซมพรีวิโว (Semprevivo. 1976) อธิบายว่า ระบบ คือ องค์ประกอบต่าง ๆ ที่ทำงานเกี่ยวโยงสัมพันธ์กันเพื่อให้เกิดผลอย่างใดอย่างหนึ่ง กล่าวได้ว่า ระบบคือ การปฏิสัมพันธ์ขององค์ประกอบทั้งหลายในการปฏิบ้ติหน้าที่และการดำเนินงานดังนั้นสามารถสรุปได้ว่า ระบบ หมายถึง การทำงานร่วมกันของส่วนประกอบแต่ละส่วนอย่างมีความสัมพันธ์กันอย่างต่อเนื่องเพื่อนำไปสู่ความสำเร็จตามเป้าหมายที่ได้วางไว้

2 นักวิเคราะห์และออกแบบระบบ

หน้าที่ของนักวิเคราะห์และออกแบบระบบ 

หน้าที่ของนักวิเคราะห์และออกแบบระบบ คือ วิเคราะห์ และออกแบบระบบงานตามความต้องการของหัวหน้าโครงการ ผู้ใช้ และเจ้าของระบบ ดังนั้นสิ่งที่นักวิเคราะห์ระบบต้องการคือข้อเท็จจริง(Fact) ทั้งหมดของระบบงานนั้นๆ ข้อเท็จจริงในที่นี้ไม่ได้หมายถึงเฉพาะข้อมูล (Data) และขั้นตอนการทำงาน (Process) เท่านั้น แต่ได้ครอบคลุมถึงทุกสิ่งที่ประกอบกันขึ้นมาเป็นระบบงานนั้นๆ 

ทั้งที่เกิดขึ้นก่อน และหลังจากการผ่านขั้นตอนการทำงานต่างๆ เงื่อนไขการดำเนินการทางธุรกิจ (Business Rules หรือ Business Conditions) และสภาพแวดล้อมทางกายภาพต่างๆ (Environment) ที่มีหรืออาจมีผลกระทบในการดำเนินการโดยนักวิเคราะห์ระบบนำข้อเท็จจริงเหล่านั้นมาเป็นข้อมูลประกอบการจัดทำโครงการรวมถึงวิเคราะห์และออกแบบระบบด้วยดังนั้นหน้าที่อีกอย่างหนึ่งที่นักวิเคราะห์ระบบจะต้องดำเนินการ เพื่อให้ได้ข้อเท็จจริง (Fact) ดังกล่าวคือ “การเก็บรวบรวมข้อเท็จจริงและสารสนเทศทั้งหมดของระบบ (Fact-Finding and Information Gathering)” 

Fact-Finding เป็นกระบวนการหรือกรรมวิธีในการเก็บรวบรวมข้อเท็จจริงทั้งหมดของระบบงานที่ต้องการพัฒนา ได้แก่ความสัมพันธ์ของข้อมูลในระบบงาน ขั้นตอนการทำงานของระบบงาน ความต้องการของเจ้าของระบบงาน รวมทั้งส่วนประกอบต่างๆ ที่มีความสัมพันธ์และมีผลกระทบกับระบบงานนั้น โดยทำการค้นคว้าวิจัย สัมภาษณ์บุคคล จัดทำแบบสอบถาม ตัวอย่าง เอกสาร เป็นต้น วิธีการต่างๆ เหล่านี้จัดเป็นทฤษฎีแบบดั้งเดิมที่ยังได้รับความนิยมและนำมาใช้ในการเก็บรวบรวมข้อเท็จจริงของระบบอยู่อย่างต่อเนื่อง

3 คุณสมบัติของนักวิเคราะห์ระบบ

คุณสมบัติของนักวิเคราะห์ระบบ  ผู้ที่จะทำหน้าที่เป็นนักวิเคราะห์ระบบได้จะต้องมีคุณสมบัติดังต่อไปนี้
                
        1. ความรู้ทางด้านการเขียนโปรแกรม เพื่อจะได้สื่อสารกับโปรแกรมเมอร์ได้อย่างมีประสิทธิภาพ นักวิเคราะห์จะต้องเข้าใจว่าสิ่งใดที่จะเขียนโปรแกรมได้ หรือเขียนไม่ได้

         2. นักวิเคราะห์ระบบเปรียบเทียบเหมือนผู้จัดการทั่วไป จะเป็นผู้ที่ตัดสินใจในการกำหนดออกแบบระบบทั้งหมด

         3. นักวิเคราะห์ระบบจะต้องเป็นผู้ที่ให้คำแนะนำด้านเทคนิคที่ควรจะเป็นให้แก่โปรแกรมเมอร์ ผู้ออกแบบรายงานแบบต่าง ๆ และวิศวกร

        4. นักวิเคราะห์ระบบจะต้องเข้าใจระบบที่จะทำการออกแบบและคนที่อยู่ในระบบนั้น

        5. นักวิเคราะห์ระบบจะต้องเป็นผู้ที่ทำหน้าที่เป็นสื่อกลางหรือล่ามระหว่างนักธุรกิจ ผู้ต้องการให้ออกแบบระบบกับโปรแกรมเมอร์หรือผู้ใช้ระบบ

        6. นักวิเคราะห์ระบบควรจะมีความรู้ทางด้านภาษาชั้นสูง (High-Level Language) อย่างน้อย 1 ภาษาหรือความรู้ทางด้าน Fourth Generation Prototyping Language

        7. นักวิเคราะห์ระบบจะเป็นผู้ที่ติดตามประมวลผลระบบที่ออกแบบและติดตั้งว่าได้รับผลตามวัตถุประสงค์ที่วางไว้ตั้งแต่ต้นหรือเปล่า รวมทั้งการประเมินออกมาเป็นตัวเลขเพื่อชี้แจงให้ผู้ที่ออกแบบระบบเข้าใจ

        8. นักวิเคราะห์ระบบควรจะมีมนุษยสัมพันธ์ที่ดี เนื่องจากนักวิเคราะห์ระบบจะต้องเกี่ยวข้องกับคนในทุกระดับในองค์กร รวมถึงระบบปฏิบัติการ ช่างเทคนิค พนักงานบัญชี เลขานุการ พนักงานธุรการ ซึ่งเป็นส่วนที่มีความสำคัญทีสุด

        9. นักวิเคราะห์ระบบที่ดี ควรจะมีประสบการณ์ทางด้านการออกแบบระบบพอสมควร โดยในช่วงแรกอาจจะเริ่มต้นจากการเป็นโปรแกรมเมอร์ และการออกแบบเล็ก ๆ น้อย ๆ ในระบบ เช่น การออกแบบรายงานง่าย ๆ การออกแบบหน้าจอ (Screen Design) เป็นต้น

4 วงจรการพัฒนาระบบ

งานพัฒนาระบบสารสนเทศจะมีกิจกรรมและขั้นตอนต่าง ๆ มากมาย  รวมถึงความซับซ้อนของระบบงาน  ดังนั้น  การมีแนวทางที่เป็นลำดับขั้นตอน ที่ส่งผลต่อมาตรฐานของระบบงานจึงเป็นสิ่งที่นักวิเคราะห์ระบบต้องการ เพื่อส่งผลให้งานวิเคราะห์ระบบเป็นไปในทิศทางเดียวกัน มีขั้นตอนลำดับกิจกรรมที่ต้องทำอย่างชัดเจนในแต่ละขั้นตอน จึงเกิด “วงจรพัฒนาระบบ” ขึ้นมา

        วงจรพัฒนาระบบ(System Development Life Cycle : SDLC) 
วงจรการพัฒนาระบบ หรือมักเรียกสั้นๆ ว่า SDLC เป็นวงจรที่แสดงถึงกิจกรรมต่างๆ ที่เป็นลำดับขั้นตอนในการพัฒนาระบบ 
ซึ่ง SDLC ประกอบด้วยกิจกรรม  7 ระยะด้วยกัน ดังนี้
1. การกำหนดปัญหา
2. การวิเคราะห์
3. การออกแบบ
4. การพัฒนา
5. การทดสอบ
6. การนำระบบไปใช้
7. การบำรุงรักษา


ระยะที่ 1 การกำหนดปัญหา
นักวิเคราะห์ระบบจะต้องศึกษาเพื่อค้นหาปัญหา ข้อเท็จจริงที่แท้จริง ซึ่งหากปัญหาที่ค้นพบ มิใช่ปัญหาที่แท้จริง ระบบงานที่พัฒนาขึ้นมาก็จะตอบสนองการใช้งานไม่ครบถ้วน
ปัญหาหนึ่งของระบบงานที่ใช้ในปัจจุบันคือ    โปรแกรมที่ใช้งานในระบบงานเดิมเหล่านั้นถูกนำมาใช้งานในระยะเวลาที่เนิ่นนานอาจเป็นโปรแกรมที่เขียนขึ้นมาเพื่อติดตามผลงานใดงานหนึ่งโดยเฉพาะเท่านั้น  ไม่ได้เชื่อมโยงถึงกันเป็นระบบ  ดังนั้น   นักวิเคราะห์ระบบจึงต้องมองเห็นปัญหาที่เกิดขึ้นในทุกหน่วยงานที่เกี่ยวข้องกับระบบงานที่จะพัฒนา   แล้วดำเนินการแก้ไขปัญหา   ซึ่งอาจมีแนวทางหลายแนวทาง และคัดเลือกแนวทางที่ดีที่สุดเพื่อนำมาใช้ในการแก้ปัญหาในครั้งนี้
อย่างไรก็ตาม แนวทางที่ดีที่สุดอาจไม่ถูกเลือกเพื่อมาใช้งาน ทั้งนี้เนื่องจากแนวทางที่ดีที่สุด ส่วนใหญ่ต้องใช้งบประมาณสูง   ดังนั้น  แนวทางที่ดีที่สุดในที่นี้คงไม่ใช่ระบบที่ต้องใช้งบประมาณแพงลิบลิ่ว แต่เป็นแนวทางที่เหมาะสมสำหรับการแก้ไขในสถานการณ์นั้นๆ เป็นหลักสำคัญ ที่ตั้งอยู่บนพื้นฐานของงบประมาณค่าใช้จ่าย  และเวลาที่จำกัด อย่างไรก็ตามในขั้นตอนการกำหนดปัญหานี้ หากเป็นโครงการขนาดใหญ่อาจเรียกขั้นตอนนี้ว่า ขั้นตอนการศึกษาความเป็นไปได้

สรุปขั้นตอนของระยะการกำหนดปัญหา
1. รับรู้สภาพของปัญหาที่เกิดขึ้น
2. ค้นหาต้นเหตุของปัญหา รวบรวมปัญหาของระบบงานเดิม
3. ศึกษาความเป็นไปได้ของโครงการพัฒนาระบบ
4. จัดเตรียมทีมงาน และกำหนดเวลาในการทำโครงการ
5. ลงมือดำเนินการ

ระยะที่ 2 การวิเคราะห์
การวิเคราะห์   จะต้องรวบรวมข้อมูลความต้องการ   (Requirements)   ต่างๆ  มาให้มากที่สุด ซึ่งการสืบค้นความต้องการของผู้ใช้สามารถดำเนินการได้จากการรวบรวมเอกสารการสัมภาษณ์ การออกแบบสอบถาม และการสังเกตการณ์บนสภาพแวดล้อมการทำงานจริง
เมื่อได้นำความต้องการมาผ่านการวิเคราะห์เพื่อสรุปเป็นข้อกำหนดที่ชัดเจนแล้ว ขั้นตอนต่อไปของนักวิเคราะห์ระบบก็คือ การนำข้อกำหนดเหล่านั้นไปพัฒนาเป็นความต้องการของระบบใหม่ด้วยการพัฒนาเป็นแบบจำลองขึ้นมา ซึ่งได้แก่ แบบจำลองกระบวนการ (Data Flow Diagram) และแบบจำลองข้อมูล (Data Model) เป็นต้น

สรุปขั้นตอนของระยะการวิเคราะห์
1. วิเคราะห์ระบบงานปัจจุบัน
2. รวบรวมความต้องการ และกำหนดความต้องการของระบบใหม่
3. วิเคราะห์ความต้องการเพื่อสรุปเป็นข้อกำหนด
4. สร้างแผนภาพ DFD และแผนภาพ E-R

ระยะที่ 3 การออกแบบ
เป็นระยะที่นำผลลัพธ์ที่ได้จากการวิเคราะห์  ที่เป็นแบบจำลองเชิงตรรกะมาพัฒนาเป็นแบบจำลองเชิงกายภาพ โดยแบบจำลองเชิงตรรกะที่ได้จากขั้นตอนการวิเคราะห์    มุ่งเน้นว่ามีอะไรที่ต้องทำในระบบในขณะที่แบบจำลองเชิงกายภาพจะนำแบบจำลองเชิงตรรกะมาพัฒนา ต่อด้วยการมุ่งเน้นว่าระบบดำเนินการอย่างไรเพื่อให้เกิดผลตามต้องการ งานออกแบบระบบประกอบด้วยงานออกแบบสถาปัตยกรรมระบบที่เกี่ยวข้องกับฮาร์ดแวร์ ซอฟต์แวร์  และระบบ เครือข่าย   การออกแบบรายงาน  การออกแบบหน้าจออินพุตข้อมูล  การออกแบบผังงานระบบ การออกแบบฐานข้อมูล และการออกแบบโปรแกรม เป็นต้น

สรุปขั้นตอนของระยะการออกแบบ
1. พิจารณาแนวทางในการพัฒนาระบบ
2. ออกแบบสถาปัตยกรรมระบบ
3. ออกแบบรายงาน
4. ออกแบบหน้าจออินพุตข้อมูล
5. ออกแบบผังงานระบบ
6. ออกแบบฐานข้อมูล
7. การสร้างต้นแบบ
8. การออกแบบโปรแกรม

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

สรุปขั้นตอนของระยะการพัฒนา
1. พัฒนาโปรแกรม
2. เลือกภาษาโปรแกรมที่เหมาะสม
3. สามารถนำเครื่องมือมาช่วยพัฒนาโปรแกรมได้
4. สร้างเอกสารประกอบโปรแกรม

ระยะที่ 5 การทดสอบ
เมื่อโปรแกรมได้พัฒนาขึ้นมาแล้ว ยังไม่สามารถนำระบบไปใช้งานได้ทันทีจำเป็นต้องดำเนินการทดสอบระบบก่อนที่จะนำไปใช้งานจริงเสมอ  ควรมีการทดสอบข้อมูลเบื้องต้นก่อน ด้วยการสร้างข้อมูลจำลองขึ้นมาเพื่อใช้ตรวจสอบการทำงานของระบบงาน หากพบข้อผิดพลาดก็ปรับปรุงแก้ไขให้ถูกต้อง  การทดสอบระบบจะมีการตรวจสอบไวยากรณ์ของภาษาเขียน  และตรวจสอบว่าระบบตรงกับความต้องการของผู้ใช้หรือไม่

สรุปขั้นตอนของระยะการทดสอบ
1. ทดสอบไวยากรณ์ภาษาคอมพิวเตอร์
2. ทดสอบความถูกต้องของผลลัพธ์ที่ได้
3. ทดสอบว่าระบบที่พัฒนาตรงตามความต้องการของผู้ใช้หรือไม่

ระยะที่ 6 การนำระบบไปใช้
เมื่อดำเนินการทดสอบระบบจนมั่นใจว่าระบบที่ได้รับการทดสอบนั้นพร้อมที่จะนำไปติดตั้งเพื่อใช้งานบนสถานการณ์จริง  ขั้นตอนการนำระบบไปใช้งานอาจเกิดปัญหา  จากการที่ระบบที่พัฒนาใหม่ไม่สามารถนำไปใช้งานแทนระบบงานเดิมได้ทันที  จึงมีความจำเป็นต้องแปลงข้อมูลระบบเดิมให้อยู่ในรูปแบบที่ระบบใหม่สามารถนำไปใช้งานได้เสียก่อน หรืออาจพบข้อผิดพลาดที่ไม่คาดคิดเมื่อนำไปใช้ในสถานการณ์จริง ครั้นเมื่อระบบสามารถรันได้จนเป็นที่น่าพอใจทั้งสองฝ่าย ก็จะต้องจัดทำเอกสารคู่มือระบบ รวมถึงการฝึกอบรมผู้ใช้

สรุปขั้นตอนของระยะการนำระบบไปใช้
1. ศึกษาสภาพแวดล้อมของพื้นที่ก่อนที่จะนำระบบไปติดตั้ง
2. ติดตั้งระบบให้เป็นไปปตามสถาปัตยกรรมที่ออกแบบไว้
3. จัดทำคู่มือระบบ
4. ฝึกอบรมผู้ใช้
5. ดำเนินการใช้ระบบงานใหม่
6. ประเมินผลการใช้งานของระบบใหม่

ระยะที่ 7 การบำรุงรักษา
หลังจากระบบงานที่พัฒนาขึ้นใหม่ได้ถูกนำไปใช้งานเป็นที่เรียบร้อยแล้ว ขั้นตอนการบำรุงรักษาจึงเกิดขึ้น   ทั้งนี้ข้อบกพร่องในด้านการทำงานของโปรแกรมอาจเพิ่งค้นพบได้   ซึ่งจะต้องดำเนินการแก้ไขให้ถูกต้องรวมถึงกรณีที่ข้อมูลที่จัดเก็บมีปริมาณที่มากขึ้นต้องวางแผนการรองรับเหตุการณ์นี้ด้วย นอกจากนี้งานบำรุงรักษายังเกี่ยวข้องกับการเขียนโปรแกรมเพิ่มเติมกรณีที่ผู้ใช้มีความต้องการเพิ่มขึ้น

สรุปขั้นตอนระยะการบำรุงรักษา
1. กรณีเกิดข้อผิดพลาดขึ้นจากระบบ ให้ดำเนินการแก้ไขให้ถูกต้อง
2. อาจจำเป็นต้องเขียนโปรแกรมเพิ่มเติม กรณีที่ผู้ใช้มีความต้องการเพิ่มเติม
3. วางแผนรองรับเหตุการณ์ที่อาจเกิดขึ้นในอนาคต
4. บำรุงรักษาระบบงาน และอุปกรณ์

ไม่มีความคิดเห็น:

แสดงความคิดเห็น