Make your own free website on Tripod.com

บทที่ 8
การพัฒนาระบบ การวิเคราะห์งาน และการติดตั้งโปรแกรม


ธรรมชาติการพัฒนาระบบ การพัฒนาระบบเป็นการดำเนินการเพื่อปรับปรุงระบบเดิมและเป็นการสร้างระบบใหม่ ๆ ขึ้นมาด้วย

บทบาทของผู้บริหารและผู้ใช้ในการพัฒนาระบบ 
(The role of managers and user in systems development)  คือ เสนอคำร้องเพื่อระบบใหม่แก่เจ้าหน้าที่ MIS ทุกกิจกรรมการพัฒนาระบบจะทำให้ทั้งผู้บริหารและผู้ใช้ระบบมีโอกาสได้ประสานงานกับเจ้าหน้าที่ MIS เพื่อให้ได้ระบบที่ตรงตามความต้องการมากที่สุดผู้บริหารและผู้ใช้จะได้บอกสิ่งต่าง ๆ แก่เจ้าหน้าที่ MIS เช่น ความต้องการของข้อมูลและสารสนเทศที่ระบบปัจจุบันให้ไม่ได้ สิ่งที่พวกเขาไม่ชอบเกี่ยวกับระบบปัจจุบัน สิ่งที่พวกเขาอยากให้มีในระบบใหม่ เป็นต้น

วัฎจักรของการพัฒนาระบบ (System development life cycle (SDLC)) ประกอบด้วยกิจกรรมหลัก 5 กิจกรรม ดังนี้

1. การตรวจสอบเบื้องต้น (Preliminary investigation) เริ่มจากผู้ใช้ได้ประสบปัญหาโอกาสเกี่ยวกับระบบที่ทำงานอยู่ในปัจจุบัน หลังจากได้มีการตรวจสอบในเบื้องต้นอย่างคร่าว ๆ เกี่ยวกับปัญหาหรือโอกาสที่เกิดขึ้นแล้วฝ่ายระบบสานสนเทศเพื่อการจัดการ (MIS) จะจัดทำข้อเสนอเกี่ยวกับวิธีการในการแก้ปัญหาหรือหนทางที่จะเป็นประโยชน์ต่อผู้บริหาร สำหรับการดำเนินการในขั้นต่อไป

2. การวิเคราะห์ความต้องการ (Requirement analysis)
เมื่อได้ผลการตรวจสอบเบื้องต้นแล้ว ขั้นตอนต่อไปที่จะต้องดำเนินการ ซึ่งประกอบด้วยการวิเคราะห์ความต้องการของผู้ใช้ว่าต้องการระบบแบบใด และสารสนเทศอะไร

3. การออกแบบระบบ (System design)
ขั้นตอนที่จะต้องดำเนินการต่อมา คือ การออกแบบระบบซึ่งจะเป็นการออกแบบระบบที่สอดคล้องกับความต้องการของผู้ใช้ และสภาพแวดล้อมทางธุรกิจ

4. การจัดหาระบบ (System acquisition)
เป็นการพิจารณาเกี่ยวกับประเภทของฮาร์ดแวร์ ซอฟแวร์ และการบริการต่าง ๆ ที่จำเป็นจะติดตามมา แนวทางการจัดหาได้แก่ การซื้อหรือการเช่า จะถูกนำมาพิจารณาว่าแนวทางใดที่จะเป็นประโยชน์แก่องค์กรมากที่สุด

5. การติดตั้งเพื่อใช้งานและการบำรุงรักษา (System implementation and maintenance)
ผู้ใช้ระบบจะได้รับการอบรมเพื่อให้เข้าใจและสามารถใช้ระบบได้อย่างมีประสิทธิภาพหลังจากการติดตั้ง หลังจากนั้นการดูแลรักษาระบบจะต้องมีการดำเนินการควบคู่กันไป ตลอดจนการมีการปรับแต่งระบบเพื่อให้สอดคล้องกับความต้องการของผู้ใช้ และสภาพแวดล้อมทางธุรกิจที่เปลี่ยนแปลงไป

ปัญหาของระบบปัจจุบัน (Problems with existing system)

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

ปัจจัยที่ทำให้การพัฒนาระบบประสบผลสำเร็จ (Successful systems development: essential elements)

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


การออกแบบระบบ
การสำรวจความต้องการของระบบ (Reviewing systems requirements) มีจุดมุ่งหมายเพื่อให้ทั้งผู้วิเคราะห์ระบบและผู้ใช้ได้มีการตรวจสอบและทำความเข้าใจกับความต้องการอีกครั้ง จะเห็นได้ว่าการสำรวจความต้องการของระบบจะต้องตรวจสอบตลอดเวลา เพื่อให้มั่นใจว่าระบบที่ออกแบบนั้นเป็นไปตามความต้องการอย่างแท้จริง

ขั้นตอนในการออกแบบระบบ

ขั้นที่หนึ่ง
การออกแบบส่วนแสดงผลของระบบ (Designing systems outputs) มีปัจจัย 6 ประการที่ควรนำมาพิจารณาในการออกแบบส่วนแสดงผล ได้แก่

1. เนื้อหา (Content) หมายถึง ชิ้นส่วนของข้อมูลสารสนเทศซึ่งแสดงออกมาจากหน่วยแสดงผลของระบบเพื่อจัดหามาให้สำหรับผู้ใช้ ตัวอย่างเช่น รายละเอียดของคนที่ใช้บัตรเครดิต
การออกแบบระบบโดยทั่ว ๆ ไป มักจะใส่เนื้อหามากเกินไป แทนที่จะใส่น้อยเกินไป การใส่รายละเอียดเนื้อหามากเกินไป อาจเป็นสาเหตุให้ผู้จัดการหรือผู้ใช้เสียเวลาในการแยกข้อมูลที่ต้องการ และยังทำให้มีผลกระทบต่อข้อมูลที่สำคัญจริง ๆ ได้
2. รูปร่าง (Form) หมายถึง วิธีการซึ่งเนื้อหาถูกนำเสนอต่อผู้ใช้ ซึ่งมีหลายรูปแบบ เช่น ในรูปตัวเลขธรรมดา ซึ่งแสดงจำนวนของปริมาณต่าง ๆ อาจไม่ออกมาในรูปจำนวน อาจออกมาในรูปตำรา ภาพ เสียง หรือ การฉายภาพที่มีการเคลื่อนไหว
3. ปริมาณของส่วนแสดงผล (Output volume) มักจะใช้ในเวลาที่กำหนด จำนวนของข้อมูลส่วนแสดงผลที่ต้องการในช่วงเวลาหนึ่ง ๆ เราจะใช้คำว่า "ปริมาณของส่วนแสดงผล" (Output volume)
4. ทันเวลา (Timeliness) หมายถึง เวลาที่ผู้ใช้ต้องการส่วนแสดงผล ส่วนแสดงผลบางอย่างมักจะเกี่ยวกับสิ่งที่ทำอยู่เป็นประจำ หรือมีระยะเวลาเป็นพื้นฐาน เช่น อาจทำเป็นรายวัน รายสัปดาห์ รายเดือน หรือเมื่อสิ้นสุดของแต่ละไตรมาสหรือสิ้นปี
5. สื่อ (Media) สื่อกลางระหว่างหน่วยนำเข้าข้อมูลและหน่วยแสดงผล หมายถึง สิ่งที่มีลักษณะทางกายภาพหรืออุปกรณ์ที่ใช้สำหรับหน่วยนำเข้าข้อมูล หน่วยจัดเก็บข้อมูลและหน่วยแสดงผล สื่อที่ใช้กันแพร่หลายมี 2 รูปแบบ คือ กระดาษ และส่วนแสดงผล (จอภาพ (monitor))
6. รูปแบบ (Format) คือ ลักษณะทางกายภาพของข้อมูลที่ถูกนำเสนอในสื่อต่าง ๆ การจัดเตรียมรูปแบบ เรียกว่า รูปแบบส่วนแสดงผล (Output format) ซึ่งหมายถึง ข้อมูลที่แสดงผลบนรายงานที่พิมพ์ออกมาหรือแสดงบนหน้าจอคอมพิวเตอร์นั่นเอง

ขั้นที่สอง การออกแบบส่วนนำเข้าของระบบ (Designing systems inputs) หลังจากออกแบบส่วนแสดงผลแล้ว ผู้ใช้ควรออกแบบส่วนนำเข้าข้อมูลเป็นลำดับถัดไป การออกแบบส่วนนำเข้าข้อมูล สิ่งที่ควรพิจารณา ได้แก่

1. เนื้อหา (Content) นักวิเคราหะควรพิจารณาถึงชนิดของข้อมูลซึ่งจำเป็นต่อการทำให้ผู้ใช้เกิดหน่วยแสดงผล
2. ทันเวลา (Timeliness) หน่วยแสดงผลจะไม่สามารถทำงานได้จนกว่าหน่วยนำเข้าข้อมูลจะพร้อม เช่น ธนาคารต้องมีลูกค้ามาถอนเงิน ก็จะใส่ส่วนนำเข้าข้อมูลเข้าไปในระบบ และต้องการเวลาที่รวดเร็วในการเกิดหน่วยแสดงผล ด้วยเหตุผลของเวลามักจะทำให้เกิดความซับซ้อนในการประมวลผล
3. สื่อ (Media) โอกาสในการเลือกสื่อเป็นสิ่งสำคัญอีกประการหนึ่งในการนำเข้าข้อมูล ทางเลือกสำหรับผู้ใช้การนำเข้าข้อมูลจะรวมทั้งแผนเทปแม่เหล็ก (Magnetic tapes) แผ่นบันทึกแม่เหล็ก (Magnetic disks) แป้นพิมพ์ (Keyboard) อุปกรณ์จำตัวอักษร (Optical Character Recognition (OCR))
4. รูปแบบ (Format) หลังจากที่เนื้อหาของข้อมูลและสื่อได้ถูกนำมาพิจารณาแล้ว การพิจารณาเรื่องรูปแบบจึงเป็นอันดับถัดไป เช่น ชนิดและขนาดของแต่ละสาขาของข้อมูล
5. ปริมาณของข้อมูลที่นำเข้า (Volume) ซึ่งจะเกี่ยวข้องกับจำนวนของข้อมูล ซึ่งนำเข้าไปในระบบคอมพิวเตอร์ในครั้งหนึ่ง ๆ ในการช่วยเหลือด้านการตัดสินใจบางอย่าง แผนกป้อนข้อมูลส่วนกลางจะนำเข้าข้อมูลนับจำนวนพัน ๆ รายการ


ขั้นที่สาม การพิจารณาความต้องการด้านการประมวลผล (Determining processing requirements) ผู้พัฒนาระบบจะต้องตัดสินใจเกี่ยวกับซอฟแวร์ หรือแม้แต่ฮาร์ดแวร์ว่าควรจะสร้างเองหรือซื้อ เราเรียก การตัดสินใจชนิดนี้ว่า "การตัดสินใจทำเองหรือซื้อ" (Make-or-buy decision) ดังนั้นจะต้องวางแผนว่าจะใช้ซอฟแวร์ชนิดใด และจะใช้ส่วนประมวลผลแบบใดในระบบ เพื่อจะทำให้ผู้ใช้ได้แสดงผลที่มีประสิทธิผล ซึ่งจะมี 2 ทางเลือก คือ
(1) ซื้อซอฟแวร์ประยุกต์ที่มีจำหน่ายในท้องตลาด
(2) พัฒนาเองโดยบุคลากรขององค์การ

ซอฟแวร์ประยุกต์ที่มีจำหน่ายตามท้องตลาด เช่น งานบัญชี งานเงินเดือน งานสินค้าคงคลัง งานพิมพ์ ซึ่งซอฟแวร์ต่าง ๆ เหล่านี้ประกอบด้วย ตัวโปรแกรมประยุกต์ หนังสือคู่มือการใช้งาน ตลอดจนหลักสูตรอบรมการใช้งานระบบอย่างครบถ้วน

ข้อดีของซอฟแวร์ประยุกต์
1. สามารถติดตั้งพร้อมใช้งานในระยะเวลาอันสั้น
2. มีความเสี่ยงน้อย เนื่องจากโปรแกรมนี้ได้ผ่านการทดสอบและการใช้งานมาแล้ว
3. คุณภาพโปรแกรมอยู่ในระดับสูง เพราะได้รับการพัฒนาโดยทีมงานที่มีประสบการณ์ในงานนั้น ๆ โดยเฉพาะและมีการปรับปรุงอย่างต่อเนื่อง
4. ราคาถูก

ข้อเสียของซอฟแวร์ประยุกต์

1. โปรแกรมอาจทำงานร่วมกับระบบงานปัจจุบันอื่น ๆ ขององค์การไม่ได้ หรือได้แต่ไม่สมบูรณ์เท่าที่ควร
2. ไม่ทราบความต้องการที่แท้จริงของผู้ใช้
3. การพัฒนาปรับปรุงโปรแกรมเพิ่มเติมทำไม่ได้หรือได้แต่อาจมีค่าใช้จ่ายสูง หรือเป็นไปด้วยความลำบากโปรแกรมประเภทนี้ โดยทั่วไปจะเรียกว่า off the shelf software หรือ Proprietary software

ซอฟแวร์ประยุกต์ที่พัฒนาขึ้นเองโดยบุคลากรในองค์การ

วงจรการพัฒนาซอฟแวร์ (The software development life cycle)
วงจรการพัฒนาซอฟแวร์มีขั้นตอนที่สำคัญ 6 ขั้นตอน ดังนี้
          1. กำหนดความต้องการของผู้ใช้ คือ การระบุและนิยามความต้องการของผู้ใช้และขององค์การ
          2. ออกแบบโปรแกรม (Program design) คือ การวางแผนถึงวิธีการที่จะใช้โปรแกรม
          3. การใส่รหัสโปรแกรม (Program coding) คือการเขียนโปรแกรม
          4. ตรวจสอบโปรแกรม (Program debugging) คือ การแก้ไขข้อผิดพลาดของโปรแกรม
          5. ทดสอบโปรแกรม (Program testing) เพื่อให้แน่ใจว่าทำงานได้ตามที่ต้องการ
          6. ดูแล / รักษาโปรแกรม (Program maintenance) คือ การปรับแต่งความต้องการที่เปลี่ยนไป

การออกแบบโปรแกรมและเทคนิคการออกแบบจะรวมถึงสิ่งต่อไปนี้
          1. คำอธิบายรายละเอียดสั้น ๆ ถึงสิ่งที่โปรแกรมควรทำ
          2. รายละเอียดของส่วนแสดงผล (Output) ส่วนนำข้อมูลเข้า (Input) และการประมวลผล (Process) ที่สร้างขึ้นในโปรแกรม
          3. กำหนดเวลาสำหรับสิ้นสุดโปรแกรม
          4. ภาษาในโปรแกรมที่ใช้และมาตรฐานการเขียนโปรแกรม
          5. รายละเอียดของสิ่งแวดล้อมซึ่งเหมาะสมกับโปรแกรม
          6. รายละเอียดวิธีการทดสอบเพื่อตรวจสอบโปรแกรมสำหรับการใช้
          7. รายละเอียดเอกสารสำคัญซึ่งต้องเตรียมสำหรับผู้ใช้ การบำรุงรักษาโปรแกรมและบุคลากรผู้ดำเนินการ

การออกแบบโปรแกรม (Program design) ผู้จัดการและผู้ใช้ จะต้องติดต่อสื่อสารอย่างชัดเจนกับผู้พัฒนาระบบว่าโปรแกรมอะไรควรทำ และควรทบทวนงานเพื่อทำให้ทีมงานแน่ใจว่าการออกแบบโปรแกรมนั้นตรงตามความต้องการ

เครื่องมือในการออกแบบโปรแกรม (Program design tool)

1.โปรแกรมผังงาน (Program flowcharts)
หมายถึง ผังที่ประกอบด้วยเส้นและสัญลักษณ์รูปต่าง ๆ ซึ่งนักเขียนโปรแกรมใช้เพื่อให้มองเห็นขั้นตอนการทำงานของโปรแกรมก่อนจะลงมือเขียน

โครงสร้างการควบคุมโปรแกรม (Program-control structures) อย่างง่าย มี 3 อย่าง คือ
1. คำสั่งการจัดลำดับ (Sequence) ประกอบด้วยกลุ่มของงานซึ่งตามกันมาเป็นลำดับ
2. คำสั่งการเลือก (Selection) ประกอบด้วยคำถามซึ่งขึ้นอยู่กับคำตอบ ช่องทางความมีเหตุผล 1 ใน 2 ทางเลือก
3. คำสั่งการย้อนกลับไปปฏิบัติตามคำสั่งเดิมซ้ำ (Looping) ประกอบด้วยการทำกระบวนการของงานซ้ำจนกระทั่งถึงสภาวะที่ต้องการพบหรือไม่ต้องการพบ

2.รหัสเทียมหรือรหัสจำลอง (Pseudocode) มีลักษณะเป็นภาษาอังกฤษธรรมดาส่วนหนึ่งและภาษาโปรแกรมอีกส่วนหนึ่ง ใช้เมื่อนักออกแบบโปรแกรมต้องการทบทวนงานที่ทำ นักเขียนโปรแกรมและผู้ใช้จำนวนมากมักพบว่าโปรแกรมรหัสเทียมเข้าใจง่ายกว่าโปรแกรมผังงาน เราใช้โปรแกรมรหัสเทียมในหลาย ๆ ทาง โดยเฉพาะอย่างยิ่งเมื่อจะออกแบบส่วนประมวลผล

3.แผนภูมิโครงสร้าง (Structure charts) เป็นการเขียนโปรแกรมวิธีหนึ่งซึ่งใช้วิธีการแบ่งเป็นโปรแกรมย่อย (subprogram) หรือ module หลาย ๆ อัน แผนภูมิโครงสร้างมองดูคล้ายแผนภาพการแบ่งงานขององค์การ โปรแกรมแผนภูมิโครงสร้างจะแสดงหน้าที่ของโปรแกรมว่าเหมาะสมกับทุกส่วนทั้งหมดได้อย่างไร

4.เครื่องมือภาษาที่ 4 (4 GL tools) เครื่องมือทั้งหมดที่กล่าวมาแล้วได้ถูกพัฒนาเพื่อเป็นเครื่องมือที่จะประยุกต์วิธีการสำหรับออกแบบโปรแกรมระบบภาษา 4 GL

5.โปรแกรมเชิงวัตถุและเครื่องมือการออกแบบ (Object-oriental programming and design tools) นักสร้างโปรแกรมจะได้พยายามลดเวลาในการพัฒนาซอฟแวร์และลดค่าใช้จ่าย 

การประมวลผลอย่างอื่น ๆ ที่เกี่ยวข้อง (Other processing concerns)
1. ซอฟแวร์ระบบและฮาร์ดแวร์คำนวณ (System software and computing software) ขณะที่ออกแบบการใช้ซอฟแวร์จะต้องคำนึงถึงเครื่องมือที่เราใช้ด้วย มีโปรแกรมจำนวนมากจะไม่ทำงาน ถ้าระบบของซอฟแวร์และเครื่องเข้ากันไม่ได้
2. สิ่งแวดล้อมในการคำนวณ (Computational environment) ผู้ใช้และผู้จัดการอาจได้รับการสอบถามเพื่อจัดหาข้อมูลเกี่ยวกับขนาดของส่วนประมวลผล ชนิดของข้อมูล ความจำเป็นในการควบคุมหน่วยรับข้อมูล และอื่น ๆ
3. ขนาดของผู้ใช้ (User Volume) ถ้ามีผู้ใช้จำนวนมากควรทำในรูปเครือข่ายเฉพาะพื้นที่ (LAN based) หรือระบบคอมพิวเตอร์ขนาดใหญ่ (Mainframe) ถ้าผู้ใช้อยู่ในที่ตั้งที่แตกต่างกันควรใช้การติดต่อสื่อสารโทรคมนาคม
4. ปริมาณงานต่อหน่วยเวลา (Throughput) จะหมายถึงการเกี่ยวข้องกับงานซึ่งคอมพิวเตอร์จะสามารถทำได้ในจำนวนเวลาหนึ่ง

ขั้นที่สี่ ความต้องการส่วนจัดเก็บข้อมูล (Determining storage requirements)

1. การประเมินข้อมูลและโครงสร้างข้อมูล (Access and organization) เมื่อข้อมูลถูกจัดทางด้านกายภาพ เราจะรวมข้อมูลที่สัมพันธ์กันเข้าด้วยกันในระเบียน (record) และแฟ้ม หรือทางเลือกอื่น ๆ เข้าไปในโครงสร้างเฉพาะโดยฐานข้อมูล การวางข้อมูลทางกายภาพทั้งในแฟ้มข้อมูล (File-oriented) และวิธีการประมวลผล (Database processing methods) ข้อมูลจะถูกจัดเป็นลำดับที่ต่อเนื่อง อย่างถูกต้องหรือตามลำดับดรรชนี
2. หน่วยจัดเก็บข้อมูล (Storage volume) จะเกี่ยวข้องกับจำนวนข้อมูลที่รวมกันเป็นกลุ่มก้อน ระเบียนบันทึก (record) ส่วนของหน่วยความจำ (segment) หรือสิ่งอื่น ๆ ซึ่งต้องการสำหรับผู้ใช้
3. สื่อ (Media) การเลือกสื่อจะถูกทำขึ้น (เช่น จานบันทึก จานบันทึกถาวร เทป จานแสง (Optical disk) และตัวเชื่อมอื่น ๆ) ซึ่งขึ้นอยู่กับชนิดของความต้องการและแฟ้ม

ขั้นที่ห้า การพัฒนากระบวนการปฏิบัติในการใช้ระบบ (Developing procedures for using the system) สามารถจำแนกได้เป็น 2 ประเภทใหญ่ ๆ คือ

1. กระบวนการปฏิบัติในด้านงานของระบบ (Work procedure) ประกอบไปด้วยรายละเอียดเกี่ยวกับงานในองค์การว่าจะต้องมีระเบียบปฏิบัติอย่างไร ใครมีหน้าที่ทำอะไรบ้าง ลำดับของงานก่อนหลังจะทำอย่างไร โดยปกติแล้วจะมีการระบุไว้ในเอกสารอย่างเป็นทางการในองค์การเพื่อให้เกิดความรับผิดชอบและจะได้เข้าใจอย่างชัดเจนในระบบ

2. กระบวนการปฏิบัติด้านการควบคุมระบบ (Control procedure)
เป็นการแสดงรายละเอียดว่าส่วนประกอบต่าง ๆ ของระบบ จะถูกควบคุมอย่างไร เพื่อให้แน่ใจว่าระบบจะมี
(1) ความปลอดภัย (2) ความถูกต้อง (3) ความเป็นส่วนตัวและเป็นความลับ
2.1 การควบคุมด้านความปลอดภัย (Security controls) เพื่อลดความเสี่ยงที่ระบบจะถูกรุกรานโดยบุคคลที่ไม่ได้รับอนุญาตที่เข้าออกระบบ เช่น การใช้รหัสผ่านสำหรับข้อมูลในส่วนที่เป็นความลับ
2.2 การควบคุมด้านความถูกต้อง (Accuracy controls) องค์การจะประสบความสำเร็จหรือล้มเหลวเพราะความถูกต้องของข้อมูล เช่น ระบบใบสั่งซื้อของลูกค้าที่ไม่ถูกต้องที่มีจำนวนมาก หรือการตัดสินใจของผู้จัดการที่ไม่ดี เนื่องจากข้อมูลที่ไม่ถูกต้อง องค์การก็จะมีปัญหา
2.3 การควบคุมด้านความเป็นส่วนตัวและความลับ (Privacy control) เป็นการควบคุมด้านความลับส่วนบุคคลเพื่อให้แน่ใจว่าเป็นการปกป้องในสิทธิของบุคคลเกี่ยวกับข้อมูลของส่วนบุคคลว่าถูกใช้ไปอย่างไร เช่น ถูกใช้ในทางไม่ดี หรือไม่ได้รับอนุญาตจากเจ้าของข้อมูล เป็นต้น

ขั้นที่หก การพิจารณาด้านความต้องการเกี่ยวกับบุคลากร (Determining personnel requirements) การพัฒนาบุคลากรของระบบสิ่งที่ต้องคำนึงถึงได้แก่

1. รายละเอียดของงานที่บุคลากรทำ (Work description for jobs) งานแต่ละชนิดจะต้องเป็นไปตามนโยบายขององค์การ และต้องมีมาตรฐาน การจัดงานให้ตรงตามความสามารถของบุคคลโดยมีรายละเอียดในการปฏิบัติงานจึงเป็นสิ่งจำเป็นและสำคัญ

2. คุณสมบัติของบุคลากร (Personnel qualification)
การคำนึงถึงคุณวุฒิของผู้ปฏิบิตงานก็เป็นสิ่งที่สำคัญที่จะต้องนำมาพิจารณาในการบรรจุคนให้ตรงกับงานตามความสามารถ ดังนี้นการออกแบบระบบในทางที่ทำให้คนที่มีทักษะระดับล่างใช้ได้อาจทำให้ลดค่าใช้จ่ายในการดำเนินงาน โดยการออกแบบตัวเชื่อมประสานผู้ใช้ (User Interfaces) เข้ามาในระบบ คนที่ไม่มีทักษะด้านการพิมพ์ก็สามารถใช้ได้

3. การฝึกอบรม (Training)
การจัดงบค่าใช้จ่ายสำหรับการฝึกอบรมจึงต้องทำในขณะที่มีการตัดสินใจสร้างระบบ เหตุผลที่ต้องมีการฝึกอบรมเพราะค่าใช้จ่ายที่ใช้ในการฝึกอบรมถูกกว่าค่าใช้จ่ายในการสูญเสียจากการกระทำที่ผิดพลาดในระบบ

การรายงานต่อฝ่ายการจัดการ (Reporting to management) หลังจากกระบวนการออกแบบเสร็จเรียบร้อยแล้ว สิ่งที่ผู้วิเคราะห์ระบบและผู้ออกแบบต้องดำเนินการต่อไป คือ การจัดทำรายงานเพื่อสรุปเสนอต่อผู้บริหารสำหรับการตัดสินใจดำเนินการในขั้นต่อไป ซึ่งได้แก่ การจัดหาระบบเพื่อการใช้งาน รายงานดังกล่าวนี้ควรประกอบด้วยรายละเอียด ดังนี้
1. รายละเอียดของงานและข้อห่วงใยของผู้ใช้ซึ่งนำไปสู่การจัดโครงการ
2. สรุปผลของการวิเคราะห์ความต้องการ
3. ข้อเสนอแนะด้านการออกแบบระบบ
4. ค่าใช้จ่ายและผลประโยชน์ของระบบใหม่
5. แผนงานของการดำเนินการเกี่ยวกับกิจกรรมการพัฒนาระบบในขั้นตอนต่อไป ซึ่งได้แก่ การจัดหาระบบ การติดตั้งระบบ ตลอดจนการดูแลรักษาระบบ

เมื่อผู้บริหารได้รับรายงานดังกล่าวแล้ว ผู้บริหารมีทางเลือก 3 ประการ คือ
1. อนุมัติให้ดำเนินการโครงการต่อไป
2. ให้ทบทวนทางเลือกในการออกแบบใหม่
3. ยกเลิกโครงการ

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

ตัวอย่างการวิเคราะห์งาน
ตัวอย่างที่ 1 บริษัทแห่งหนึ่งต้องการทำบัญชีเงินเดือนของพนักงาน โดยหักภาษีไว้ด้วย และมีเงื่อนไขในการคำนวณภาษีเป็นดังนี้
- รายได้น้อยกว่าหรือไม่เท่ากับ 2,000 บาท ยกเว้นไม่ต้องเสียภาษี
- รายได้ตั้งแต่ 2,000 บาท ขึ้นไป เสียภาษี 4 % ของรายได้

จงหาจำนวนเงินที่พนักงานแต่ละคนจะได้รับและเงินรวมทั้งหมดที่จะต้องจ่ายให้แก่พนักงาน
การวิเคราะห์งาน
1. สิ่งที่ต้องการ
1) คำนวณเงินที่พนักงานแต่ละคนจะได้รับหลังจากหักภาษีแล้ว
2) คำนวณเงินรวมที่บริษัทจะต้องจ่ายทั้งหมด

2. รูปแบบผลลัพธ์

ชื่อบริษัท
ชื่อพนักงาน เงินเดือน ภาษี สุทธิที่ได้รับ
. . . .
. . . . xx,xxx
xx,xxx xx
xx xx,xxx
xx,xxx
รวม xx,xxx

3. ข้อมูลนำเข้า
1) ชื่อและเงินเดือนของพนักงานแต่ละคน
2) สัญลักษณ์หรือตัวแปรที่ใช้ทดสอบว่าหมดข้อมูล

4. ตัวแปรที่ใช้
ชื่อตัวแปร ความหมาย
NAME ชื่อของพนักงานแต่ละคน
SALARY เงินเดือนของพนักงานแต่ละคน
TA X ภาษีที่หักจากเงินเดือนของพนักงานแต่ละคน
NET เงินเดือนสุทธิที่พนักงานแต่ละคนได้รับ
LC ตัวแปรที่ใช้ทดสอบว่าหมดข้อมูล ถ้า LC = 1 แปลว่าหมดข้อมูลแล้ว
TOTAL เงินรวมที่บริษัทจะต้องจ่ายทั้งหมด

5. วิธีการประมวลผล
1) แสดงหัวตาราง
2) TOTAL = 0
3) รับค่าจากตัวแปร NAME, SALARY, LC ทีละรายการ
4) เปรียบเทียบ SALARY กับ 2000
- ถ้าให้ SALARY <= 2000 ให้ TAX = 0
- ถ้าให้ SALARY > 2000 ให้ TAX = 0.04 * SALARY
แล้วทำข้อ 5
5) NET = SALARY - TAX
6) TOTAL = TOTAL + NET
7) พิมพ์ผลลัพธ์ NAME, SALARY, TAX, NET ทีละรายการ
8) เปรียบเทียบ LC กับ 1
- ถ้า LC <> 1 ย้อนกลับไปทำข้อ 3
- ถ้า LC = 1 ให้ทำข้อถัดไป
9) พิมพ์ค่า TOTAL
10) หยุดทำงาน

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

2. รูปแบบผลลัพธ์
รายงานผลการสอบคอมพิวเตอร์เบื้องต้น
ภาคการศึกษา _ _ _ _
รหัสประจำตัว ชื่อ-นามสกุล คะแนนรวม
. . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . .

3. ข้อมูลนำเข้า
ปีการศึกษา, รหัสประจำตัวของผู้เข้าสอบ, ชื่อ-นามสกุล, คะแนนสอบครั้งที่ 1 , คะแนนสอบครั้งที่ 2

4. ตัวแปรที่ใช้
S = ภาคการศึกษา
ID = รหัสประจำตัว
N = ชื่อและนามสกุล
MID = คะแนนสอบกลางภาค
FIN = คะแนนสอบปลายภาค
TOTAL = คะแนนรวม = MID + FIN

5. วิธีการประมวลผล
1) รับค่า S ทางแป้นพิมพ์
2) พิมพ์หัวตารางและค่า S
3) รับตัวแปร ID, N, MID และ FIN ทีละรายการ
4) TOTAL = 0
5) ทดสอบ MID กับ 0
ถ้า MID < 0 ให้ทำข้อ 9
ถ้า MID 0 ให้ทำข้อ 6
6) คำนวณ TOTAL = MID + FIN
7) พิมพ์ ID, N และ TOTAL ทีละรายการ
8) ย้อนกลับไปทำข้อ 3
9) หยุดทำงาน

ตัวอย่างที่ 3 บริษัทแห่งหนึ่งต้องการคำนวณค่าแรงต่อวันของพนักงานจำนวนหนึ่ง โดยพิจารณาว่า ถ้าพนักงานคนใดทำงานเกินกว่า 6 ชั่วโมง ให้นับชั่วโมงที่เกินกว่า 6 ชั่วโมง เป็นชั่วโมงการทำงานนอกเวลา และให้คิดค่าแรงเป็น 2 เท่าของค่าแรงปกติ

จงหาจำนวนเงินที่พนักงานแต่ละคนจะได้รับในแต่ละวัน และจำนวนเงินที่บริษัทจะต้องจ่ายทั้งหมดในวันหนึ่ง ๆ
การวิเคราะห์งาน
1. สิ่งที่ต้องการ
- คำนวณจำนวนเงินที่พนักงานแต่ละคนจะได้รับ
- คำนวณเงินทั้งหมดที่บริษัทจะต้องจ่ายในหนึ่งสัปดาห์

2. รูปแบบของผลลัพธ์

PAYROLL REPORT
EMP-NO EMP-NAME HOURS RATE/HR GROSS/PAY
. . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . .
TOTAL xxx,xxx

3. ข้อมูลที่ต้องนำเข้า
- EMP-NO, EMP-NAME, HOURS, RATE/HR, LC (ใช้ทดสอบข้อมูลสุดท้าย)

4. ตัวแปรที่ใช้
ชื่อตัวแปร ความหมาย
NO เลขประจำตัวพนักงาน
NAME ชื่อพนักงาน
HOURS ชั่วโมงการทำงานของพนักงาน
RATE อัตราค่าแรงต่อชั่วโมง
PAY ค่าแรงที่พนักงานได้รับ
TOTAL ค่าแรงรวมของพนักงานทุกคน
LC รหัสที่ใช้ในการทดสอบบัตรสุดท้าย
ถ้า LC = 1 หมายถึง ยังไม่ใช่รายการสุดท้าย
ถ้า LC 1 หมายถึง เป็นข้อมูลรายการสุดท้าย

5. วิธีการประมวลผล
1) พิมพ์หัวตาราง
2) กำหนดค่าแรกเริ่มของ TOTAL = 0
3) อ่านค่า NO, NAME, HOURS, RATE, LC
4) เปรียบเทียบ HOURS กับ 6
- ถ้า HOURS 6 ให้ PAY = HOURS * RATE
- ถ้า HOURS > 6 ให้ PAY = (6 * RATE) + [2 * (HOURS - 6) * RATE ]
แล้วไปทำข้อ 5
5) คำนวณ TOTAL = TOTAL + PAY
6) พิมพ์ผลลัพธ์ NO, NAME, HOURS, RATE, PAY
7) เปรียบเทียบ LC กับ 1
- ถ้า LC = 1 ไปทำข้อ 3
- ถ้า LC 1 ทำข้อ 8
8) พิมพ์ค่า TOTAL
9) หยุดทำงาน

การเขียนผังงาน 
สัญลักษณ์ ความหมาย 
แสดงการเริ่มต้นหรือการสิ้นสุด เช่น
        
การรับหรือแสดงข้อมูล เช่น
    

แสดงผลการประมวลผล  เช่น
     
การคำนวณหรือการกำหนดค่า เช่น
      
แสดงการเปรียบเทียบหรือตัดสินใจ เช่น
          

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

แสดงจุดต่อเนื่องที่อยู่คนละหน้า เช่น
            

การติดตั้งระบบ (Systems Implementation) จะเกิดขึ้นหลังจากผู้ขายได้จัดหาส่วนตัวเครื่อง (Hardware) ซอฟต์แวร์ และบริหารที่จำเป็นสำหรับการดำเนินการระบบ งานของการพัฒนาการคัดเลื่อกและสร้างระบบผู้เริ่มขึ้นประกอบด้วยขั้นตอนดังนี้

1. การกำหนดตารางเวลา (Scheduling) 
 เป็นการกำหนดตารางเวลาซึ่งแสดงถึงกิจกรรมที่เกี่ยวข้องกับการสร้างระบบตั้งแต่เริ่มต้นจนเสร็จ เพื่อให้การดำเนินงานเป็นไปตามแผนงานที่วางไว้ มีรายละเอียดของตารางเวลาการสร้างระบบมักเป็นส่วนที่จำเป็นเกี่ยวข้องกับการพัฒนาเพื่อความมั่นใจในการจัดการในแผนการตัดตั้งและเพื่อทำความแน่ใจกับการดำเนินงานว่าจะมีสิ่งใดมาขัดขวางรหว่างาช่องของการติดตั้งระบบ ในบางกรณีช่วงเวลาในการติดตั้งอาจใช้เวลานานมาก เช่น ในการติดตั้งเครือข่ายเกี่ยวกับการรับจ่างเงินแบบเชื่อมตรงของธนาคาร มีธนาคารหนึ่งต้องใช้เวลาในการติดตั้งนานถึง 3 ปี เพื่อจัดการเปลี่ยนแปลงจาก 140 สาย เชื่อตรงกับเครื่องปลายทางมากกว่า 1600 สายตรง เครื่องมือในการกำหนดตารางเวลาที่นำมาใช้บริษัทอาจใช้ 1 วิธีหรือมากกว่า ในการกำหนดตารางการพัฒนาทั้งระบบและในแต่ละช่วงของการทำงานมีเครื่องมือในการกำหนดตารางเวลาการทำงานมี 3 ชนิด ซึ่งสามารถใช้สร้างตารางสำหรับการทำระบบ

เทคนิคการวิเคราะห์สายงานวิกฤต [Critical path method ( CPM)]
เครือข่ายซึ่งกิจกรรมจะมุ่งที่การใช้ประโยชน์จากผังลูกศร ใช้เพื่อการวางแผนและตารางโครงการ

ประเมินโปรแกรมและเทคนิคการสำรวจ [Project evaluation and review technique (PERT)]
เป็นวิธีการจัดทำโครงงานแบบหนึ่งที่มีกำหนดเวลาการทำงานและการกำหนดทรัพยากรที่ใช้แต่ละส่วนไว้โดยให้แต่ละงานเป็นอิสระจากกัน แผนงานที่ใช้ตรวจสอบหรือประเมินผลงานมักจะใช้วิธีการนี้ คือมีตารางการตรวจสอบการทำงานเป็นส่วน ๆ ไป ปัจจุบันทั้ง PERT และ CPM ได้รวมเป็นวิธีเดียวกัน และเรียกว่า PERT/CPM

แผนภูมิ Gantt (Gantt charts)
หมายถึง การแสดงภาพในรูปกราฟหรือไดอะแกรมซึ่งแสดงการจัดสรรเวลาสำหรับการทำงานตามลำดับขั้นตอนความก้าวหน้าของงาน การกำหนดตารางเวลา และงานในช่วงระยะเวลานั้น เป็นเครื่องมือการวางแผนโครงการซึ่งพัฒนาโดยนักพฤษฆีการจัดการตามหลักวิทยาศาสตร์ (Scientific management) เพื่อแสดงช่วงเวลาที่วางแผนและสภาพของทุกกิจกรรมในโครงการ ผังในลักษณะนี้จะแสดงถึงปริมาณงานและกำหนดเวลาที่ต้องใช้เพื่อทำงานนั้นให้เสร็จ เป็นแผนผังที่ง่ายต่อการสร้างและเข้าใจง่ายกว่า CPM หรือ PERT แต่จะมีข้อมูลน้อยกว่า

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

การใส่รหัสและเครื่องมือช่วยในการออกแบบ (Coding and design tools)
การออกแบบโปรแกรมมีหลายแบบ และเครื่องมือการใส่รหัสซึ่งเป็นที่รู้จักกันอย่างกว้างขวางทำให้ผู้ออกแบบโปรแกรมออกแบบอย่างมีศักยภาพและผลิตผลงานได้ดีกว่า เช่น เทคนิคโปรแกรมโครงสร้าง ภาษารุ่นที่ 4 (4GL) และโปรแกรมเชิงวัตถุ (Object - oriented programming) เป็นต้น
1. เทคนิคการออกแบบโปรแกรมเชิงโครงสร้าง (Structured programming techniques) เป็นชุดของการออกแบบโปรแกรมและเครื่องมีการใส่รหัสซึ่งพัฒนาในช่วงทศวรรษที่ 1970 เป็นการเขียนโปรแกรมซึ่งใช้วิธีแบ่งเป็นโปรแกรมย่อย (Subprogram) หรือโมดุล (Module) หลาย ๆ อัน ทำให้เข้าใจง่าย หลักการเขียนคือแต่ละส่วนจะประกอบด้วยข้อคำสั่ง 3 ประเภท คือ (1) กำหนดคำสั่งให้เรียงลำดับไปตามการทำงานที่เรียกว่า Sequence (2) คำสั่งให้เลือกทิศทางเรียกว่า Condition คือมี If-then-else (3) การไปทำคำสั่งเดิมเรียกว่า Looping คือมีคำสั่ง Do - While
2.  ภาษารุ่นที่ 4 (4GL) ในช่วงทศวรรษที่ 1980 เป็นที่นิยมในนักออกแบบโปรแกรมซึ่งนักเขียนจะสามารถพัฒนาโปรแกรมได้อย่างรวดเร็ว การใส่รหัสในโปรแกรม 4GL เรียกว่า "Software prototype" หรือโปรแกรมต้นแบบ
3.  โปรแกรมเชิงวัตถุ [Object - oriented programming (OOP)] วิธีนี้เกิดขึ้นในทศวรรษที่ 1990 ซึ่งหมายถึง วิธีการเขียนโปรแกรมของนักเขียนโปรแกรมรุ่นใหม่ ที่จัดแบ่งการเขียนคำสั่งกันออกเป็นชุด ๆ แต่ละชุดเรียกว่า "วัตถุ" (Object) แล้วจึงนำเอาชุดคำสั่งแต่ละชุดนั้นมารวมกันเป็นโปรแกรมชุดใหญ่อีกทีหนึ่ง ในบางครั้งยังอาจนำ "วัตถุ" ของโปรแกรมหนึ่งไปรวมกับวัตถุของอีกโปรแกรมหนึ่ง แล้วเรียกออกมาใช้ได้เลย ทั้งนี้ทำให้ผู้เขียนโปรแกรมใหม่ไม่จำเป็นต้องเริ่มต้นใหม่ทั้งหมด วิธีการดังกล่าวนี้ช่วยประหยัดเวลาได้มาก คือ ทุกโปรแกรมไม่ต้องทำโดยเริ่มต้นจากศูนย์ คำว่า "วัตถุ" หมายถึงภาพหรือกราฟิกด้วย ภาพหนึ่งภาพ เช่น ภาพวงกลมเกิดจากการเขียนโปรแกรมโดยใช้สูตรคำนวณเส้นโค้ง ซึ่งจะประกอบด้วยคำสั่งหลายร้อยคำสั่ง และเก็บไว้เป็นวัตถุหนึ่ง ฉะนั้นเมื่อเราทำวงกลมก็เท่ากับเรียก "วัตถุ" นี้ออกมาใช้ หลังจากนั้นหากจะต่อเดิมเป็นภาพอื่นต่อไป ก็จะไปดึงอีก "วัตถุ" หนึ่งออกมาทำต่อกัน (ทักษิณา สวนานนท์. 2539 :219)

การแก้ไขจุดบกพร่องของโปรแกรม (Program debugging)
หมายถึง การขจัดปัญหาและจุดบกพร่องต่าง ๆ ในโปรแกรมให้หมดไปก่อนที่จะนำโปรแกรมนั้นไปใช้ ตามปกติเรียกว่า "จุดบกพร่อง" (bug) หมายถึงปัญหาที่เกิดขึ้นกับโปรแกรมอันเนื่องมาจากคำสั่งในโปรแกรมนั้นเอง
ประเภทของจุดบกพร่อง (Classifying bugs) โปรแกรมคอมพิวเตอร์เกือบทั้งหมดมีจุดบกพร้องขณะที่พัฒนา ซึ่งอาจจัดประเภทได้ 3 ประเภท ดังนี้
1.ข้อผิดพลาดด้านไวยากรณ์ (Syntax error) หมายถึงความไม่ถูกต้องตามกฎไวยากรณ์ของภาษที่ใช้ในการเขียนโปรแกรม ซึ่งการผิดพลาดชนิดที่ง่ายต่อการแก้ไขให้ออกไปจากโปรแกรม ซผฟต์แวร์บางระบบใช้เครื่องตรวจสอบความผิดพลาดด้านไวยากรณ์มาเชื่อมตรงซึ่งจะจับข้อผิดพลาดได้ทันทีที่พิมพ์
2. ข้อผิดพลาดขณะโปรแกรมทำงาน (Run-time error) หมายถึงข้อผิดพลาดที่เกิดขึ้นขณะเวลาที่ใช้ไปขฯะที่คอมพิวเตอร์ปฏิบัติการตามโปรแกรมใดโปรแกรมหนึ่ง ซึ่งข้อผิดพลาดชนิดนี้เห็นได้ง่าย
3. ข้อผิดพลาดด้านเหตุผล (ตรรกะ) (Logic error) เป็นข้อผิดพลาดที่ทำให้เกิดผลลัพธ์ที่ผิดพลาดขึ้น วิธีการที่จะไม่ให้เกิดข้อผิดพลาดชนิดนี้ก็คือการตรวจสอบ ข้อผิดพลาดชนิดนี้ทำให้เกิดความยากลำบากเป็นอย่างมากเพราะผู้ใช้ปลายทางส่วนใหญ่ไม่มีความชำนาญในการตรวจสอบ

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

3. การฝึกอบรมผู้ใช้ (User training) เมื่อพัฒนาโปรแกรมเรียบร้อยแล้ว กิจกรรมที่สำคัญมากที่จะขาดไม่ได้คือ การคัดเลือกบุคคลกรและฝึกอบรมสำหรับระบบงานนั้น ๆ การฝึกอบรมบุคลากรจะต้องมีการวางแผนการฝึกอบรมและจัดหลักสูตรการฝึกอบรมให้เหมาะสมกับระดับผู้ใช้

การพัฒนาโปรแกรมการฝึกอบรมผู้ใช้ (Developing user training programs)
ในการพัฒนาโปรแกรมสำหรับการฝึกอบรมผู้ใช้ มีขั้นตอนในการทำงานดังนี้
1. ตัดสินใจความต้องการงานของผู้ใน (Determine user job requirements) จุดเริ่มต้นสำหรับโปรแกรมการฝึกอบรมใด ๆ ควรตัดสินใจให้แน่ชัดว่าสิ่งใดที่ผู้เข้าฝึกอบรมคาดหวังว่าจะได้รับ และเขาจะใช้ระบบใหม่ในการทำงานได้อย่างไร เช่น ผู้ฝึกอบรมควรจะต้องรู้ว่าจำนวนใบสั่งของที่เข้ามาของแต่ละบุคคลที่คาดหวังว่าจะต้องประมวลเข้าต่อ 1 ชั่วโมง เป็นจำนวนเท่าไรเมื่อใช้ระบบใหม่
2. การตัดสินในเกี่ยวกับความต้องการการฝึกเฉพาะอย่าง (Determine specific training needs) ขั้นนี้จะรวมถึงการตัดสินใจว่าผู้เข้าอบรมต้องรู้อะไรในการใช้ระบบใหม่สำหรับทำงาน เช่น เกี่ยวกับกิจกรรมที่ผู้ใช้จะต้องทำเพื่อให้ใบสั่งสินค้าแต่ละฉบับเรียบร้อย ซึ่งต้องทำโดยเฉพาะรวมถึง (1) การใช้เลขประจำตัวลูกค้า (2) ใส่รายละเอียดการสั่ง เช่น หมายเลขผลิตภัณฑ์ จำนวน และราคา (3) ใส่รายละเอียดการสั่งส่วนที่เหลือในใบสั่ง (4) ทบทวนและคำนวณยอดทั้งหมด
3. ประเมินทรัพยากรสำหรับการฝึกอบรม (Evaluate training resources) ในขั้นตอนนี้ทรัพยากรจำเป็นจะต้องจัดหามาให้เพียงพอสำหรับใช้ในการฝึกอบรม เช่น ความจำเป็นในการใช้ผู้ฝึกอบรมหรือไม่สิ่งอำนวยความสะดวกในการฝึกอบรม อุปกรณ์สำหรับการฝึก วัสดุที่ใช้สำหรับการฝึก
4. พัฒนาโปรแกรม (หลักสูตร) สำหรับการฝึกอบรม (Develop the training program) ในขั้นนี้รวมถึงการนำทรัพยากรที่จำเป็นในการฝึกอบรมมารวมกัน เช่น อุปกรณ์ สิ่งอำนวยความสะดวก วัสดุ และผู้ฝึกอบรม เนื้อหาและกิจกรรมในการฝึกอบรมจะพัฒนาในตอนนี้ และแจกจ่ายไปยังผู้จัดการและผู้ใช้ ซึ่งมีส่วนในการฝึอบรมเพื่อผู้ฝึกอบรมจะไดูปัญหาที่เกิดขึ้นในกระบวนการฝึกอบรมโดยปฎิกิริยาของผู้ใช้โปรแกรม เพื่อจะได้รู้ว่าควรปรับปรุงอย่างไร
5. การใช้โปรแกรมการฝึกอบรม (Implement the training program) ระหว่างช่วงเวลานี้การฝึกอบรมจริงได้เริ่มขึ้นแล้ว การให้ความสนใจต่อปฏิกิริยาของผู้ใช้และข้อเสนอแนะจะช่วยให้ผู้ฝึกปรับปรุงโปรแกรม
6. การประเมินผลผลลัพธ์การฝึกอบรม (Evaluate training outcomes) ในขั้นนี้องค์การจะทำการตัดสินใจว่าการฝึกอบรมมีประสิทธิผลหรือไม่ ผู้ใช้สามารถใช้ประโยชน์จากระบบตามที่ต้องการหรือไม่ โดยทั่ว ๆ ไปแล้วการฝึกอบรมจะต้องมีการประเมินผลอย่างละเอียดเพื่อจะได้ทราบว่าผู้ใช้ได้ใช้ผลิตภัณฑ์ดังกล่าวโดยทำให้งานมีสมรรถนะที่ดีหรือไม่

แนวทางการฝึกอบรม (Training guidelines)
มีแนวทางในการฝึกอบรมดังต่อไปนี้
1. การใช้กิจกรรมการฝึกอบรมที่แตกต่างกันสำหรับผู้ใช้แต่ละคนขึ้นอยู่กับประสบการณ์ด้านการทำงานกับคอมพิวเตอร์มาก่อนและหน้าที่ในการทำงานของแต่ละคน
2. ทำความสับสนของผู้เข้าฝึกอบรมเกี่ยวกับระบบใหม่ให้ลดลงหรือให้เหลือน้อยที่สุด กิจกรรมการฝึกอบรมเริ่มแรกที่ควรทำ ซึ่งถือว่าเป็นสิ่งสำคัญคือ เอาความซับซ้อนและกิจกรรมที่ยากไว้ตอนท้ายของการอบรมจัดหาวิธีการป้อนกลับข้อมูล (Feedback) ที่เป็นบวกเมื่อผู้ฝึกอบรมมาถึงช่วงฝึกที่สำคัญจงจำไว้ว่าพนักงานบางคนจะรู้สึกว่าเกิดความไม่มั่นคงในงาน ถ้าเขาไม่ประสบความสำเร็จในโปรแกรมการฝึกอบรม
3. จงเน้นอย่างต่อเนื่องถึงผลประโยชน์ในการฝึกอบรมรายบุคคล เพื่อให้เกิดความชำนาญการรับรู้ในการเรียนตะช่วยให้ผู้ฝึกอบรมมีประสิทธิผลมากยิ่งขึ้นและทำงานได้ดีขึ้น
4. กระตุ้นปฏิกิริยาระหว่างผู้ฝึกและผู้เข้ารับการฝึกอบรม ผู้ใช้ (ผู้เข้ารับการฝึกอบรม) ควรได้รับการกระตุ้นให้ตอบคำถาม

วิธีการฝึกอบรม (Training approaches) มีวิธีการฝึกอบรม ดังต่อไปนี้
1. วิธีการอบรมแบบมีผู้สอนนำ (Instructor - led methods) ผู้เชียวชาญจำนวนมากรู้สึกว่าการใช้วิธีฝึกอบรมแบบนี้เป็นวิธีที่ได้ผบดีที่สุดเพราะผู้ได้รับการอบรมสามารถเรียรู้ได้อย่างรวดเร็วปละมีประสิทธิผลดีเมื่อเข้ามีการพบประสังสรรค์กับผู้สอนที่ดี วิธีที่ธรรมดาที่สุดของวิธีนี้คือ การบรรยาย แต่วิธีนี้ไม่ค่อยได้ใช้ในการอบรมผู้ใช้ปลายทาง วิธีอภิปรายมักใช้บ่อยในช่วงเวลา บรรยาย การสาธิตเป็นวิธีที่ใช้ด้วยโดยเฉพาะอย่างยิ่งเมื่อฝึกอบรมผู้ใช้เกี่ยวกับการทำงานกับซอฟต์แวร์ใหม่ ๆ หลังจากที่ผู้ฝึกอบรมสาธิตงานผู้ใช้จะฝึกหัดใช้ด้วยตัวเอง การฝึกตัวต่อตัวหรือการฝึกหัดมักใช้บ่อยสำหรับการฝึกการปฏิบัติงาน และอาจรวมถึงการบรรยาย การอภิปรายและสาธิตพนักงานใหม่อาจได้รับการสอนโดยการฝึกทักษะผู้ใช้การฝึกแบบตัวต่อตัว
2. วิธีการศึกษาด้วยตัวเอง (Self-study methods) ได้แก่ การฝึกอบรมจากพื้นฐานคอมพิวเตอร์ (Computer-based training) การติว (Tutorials) และการอบรมโดยใช้สื่อหลายชนิด (Multimedia training systems) (1) การอบรมแบบจากพื้นฐานคอมพิวเตอร์ (Computer - based training) มักรวมถึงจานบันทึกและคู่มือบางทีใช้วิทยุและมีเทปวิดีโอ ซึ่งโปรแกรมเหล่านี้ผู้ขายจะต้องเตรียมมาให้หรือจากบริษัทที่ทำเป็นอาชีพ วัตถุประสงค์หลักคือให้ผู้ใช้สัมผัสโดยตรงกับเครื่องคอมพิวเตอร์ขณะฝึกซึ่งการฝึกโดยวิธีนี้ผู้รับการฝึกจะได้รู้สึกทั้ง สายตา เสียงและสัมผัส (2) วิธีการติว (Tutorials) จะใช้สำหรับการฝึกผู้ใช้เกี่ยวกับการใช้เครื่องซอฟต์แวร์ และฮาร์ดแวร์ ซึ่งการติวจะมีจานบันทึกซึ่งเป็นบทเรียนที่แนะนำเกี่ยวกับวิธีการใช้ซอฟต์แวร์ และฮาร์ดแวร์ (3) ระบบการฝึกแบบใช้สื่อหลายชนิด (Multimedia training systems) จะประกอบด้วยเทคนิคการฝึกพื้นฐานคอมพิวเตอร์ที่รู้จักกันดีที่สุดซึ่งเป็นเทคโนโลยีด้านการใช้จานบันทกประกอบกับวิทยุ วิดีโอ การติว และการสอนรวมอยู่ในอุปกรณ์การสอนชุดเดียว
3. การฝึกอบรมวิธีอื่น (Other training methods) การช่วยเหลือด้านการฝึกอบรมวิธีอื่น ๆ ผู้ขายจะมีการให้คำแนะนำข่วยเหลือและข่วยด้านเทคนิคซึ่งทำให้ผู้ใช้สามารถโทศัพท์ถึงผู้เชี่ยวชาญเพื่อถามคำถามซึ่งอาจจะมีทั้งในบริษัาทเองและจากศูนย์ข้อมูล ผู้ขายได้มีการจัดระบบอิเล็กทรอนิกส์สำหรับให้ผู้ใช้ถามคำถามแลกเปลี่ยนความคิดเห็นและอน ๆ ในองค์การจำนวนมากจะใช้โทรทัศน์ในสำนักงานสำหรับฝึกอบรม การประชุมทางวิดีโอและการเรียนทางไกล เป็นต้น

4. การสับเปลี่ยนระบบ (Conversion options) เป็นกระบวนการสับเปลี่ยนจากระบบหนึ่งไปยังอีกระบบหนึ่ง ณ จุดของการเปลี่ยนระบบผุ้ใช้และบุคลากรผู้ทำงานกับเครื่องคอมพิวเตอร์ควรได้รับการฝึกในหน้าที่ใหม่การประยุกต์ใช้ซอฟต์แวร์สำหรับระบบใหม่ควรจัดหาไว้อย่างเพียงพอ และพร้อมที่จะฝช้ข้อมูลที่สมบูรณ์สับเปลี่ยนและเครื่องควรอยู่ในตำแหน่งที่จะใช้งานได้อย่างเรียบร้อย การสับเปลี่ยนระบบมักเกิดปัญหที่ต้องปรับปรุงตามมาเพราะผู้ใช้อาจต่อต้านการเปลี่ยนแปลง ปัญหาสำคัญของการสับเปลี่ยนระบบควรมีการคาดหมายไว้ล่วงหน้า การวางแผนในสิ่งที่อาจเกิดขึ้นควรกระทำเป็นกรณีสำคัญ วิธีการสับเปลี่ยนระบบใหม่มีวิธีที่แพร่หลาย 4 วิธี ดังนี้

การสับเปลี่ยนโดยตรง (Direct conversion) คือระบบซึ่งใช้อยู่ในปัจจุบันถูกสับเปลี่ยนทั้งหมดทันทีด้วยระบบใหม่ วิธีนี้มีความเสี่ยงเพราะว่าถ้าระบบใหม่ล้มเหลวบริษัทจะไม่มีอะไรใช้เลย ดังนั้นถ้าจะใช้การสับเปลี่ยนวิธีนี้จะต้องวางแผนอย่างระมัดระวังรอบคอบกว่าวิธีอื่น ๆ

การสับเปลี่ยนแบบขนาน (Parallel conversion) คือ ทั้งระบบเก่าและระบบใหม่ใช้ด้วยกันในช่วงเวลาหนึ่ง ถ้าระบบใหม่ล้าเหลว ระบบเก่าก็จะยังใช้สำรองไปได้ แต่วิธีนี้ไม่สามารถใช้ได้กับทุกกรณีเพราะระบบเก่าและระบบใหม่อาจแตกต่างกันโดยสิ้นเชิง ข้อเสียที่สำคัญของวิธีนี้คือราคาอาจแพงและใช้เวลามาก ในการใช้ 2 ระบบ ในเวลาเดียวกัน ปัจจุบันวิธีนี้ใช้น้อยมากโดยเฉพาะอย่างยิ่งกับระบบเชื่อตรง (On - Line)

การสับเปลี่ยนแบบทิ้งช่วย (Phased conversion)
คือระบบใหม่ตะถูกจำเข้ามาอย่างช้า ๆ ทีละชิ้น หลังจากที่ส่วนหนึ่งของระบบทำงานได้ดี ชิ้นต่อไปก็จะถูกนำมาใช้งาน วิธีนี้เป็นการหลีเลี่ยงปัญหาการนำเข้ามาอย่างรวดเร็วเกินไป วิธีนำเข้ามาทีละชิ้นโดยทิ้งช่วงแต่ใช้เวลานานกว่าจะเปลี่ยนเสร็จ และใช้เวลาในการเปลี่ยนข้อมูลระหว่างระบบซึ่งอาจสร้างปัญหาใหญ่ได้

การสับเปลี่ยนแบบวิธีศึกษานำทาง (Pilot study)
คือการนำระบบใหม่เข้ามาในที่เฉพาะที่หนึ่งเมื่อทำสำเร็จได้ผลดีก็นำเข้าที่อื่น ๆ ข้อดีและข้อเสียของวิธีนี้จะเหมือนกับวิธีสับเปลี่ยนแบบทิ้งช่วง

การประเมินระบบหลังจากการติดตั้งใช้งาน (Postimplementation review) เป็นการกระทำเพื่อแก้ไขข้อผิดพลาดที่อาจเกิดขึ้นได้โดยไม่ได้คาดหวัง และรวบรวมข้อคิดเห็นจากผู้ใช้งานในระยะหนึ่งแล้ว สำหรับเป็นข้อมูลในการปรับปรุงระบบใหม่ให้ดีขึ้น หัวข้อที่ใช้ในการประเมิน มีดังนี้ (1) ระบบทำงานได้ตามเป้าหมายที่กำหนดหรือไม่ (2) ระบบให้ผลประโยชน์ตามที่ระบุขั้นตอนการวิเคราะห์ความต้องการมากน้อยเพียงใด (3) ค่าใช้จ่ายของการพัฒนาระบบ การจัดหารระบบ และการติดตั้งระบบว่าเป็นไปตามที่คาดหมายหรือไม่ (4) ค่าใช้จ่าายในการใช้ระบบเป็นไปตามที่คาดหมายหรือไม่ (5) ผู้ใช้พอใจกับระบบในระดับใด (6) ระบบทำงานได้ตามความคาดหวังหรือไม่ และมีส่วนใดบ้างที่ต้องการการปรับแต่ง (7) ผลลัพธ์จากระบบถูกนำไปใช้ตามที่คาดหวังมากน้อยเพียงใด

วิธีประเมินระบบ มีดังนี้
1. การศึกษาผลกระทบแบบเป็นทางการ (Formal impact study) เป็นวิธีการประเมินผลระบบโดยการสืบหาและตัดสินใจว่าระบบงานทำตามที่คาดหวังหรือไม่ การศึกษาจะเริ่มขึ้นหลังจากระบบทำงานเต็มที่แล้วและพนักงานมีประสบการณ์เพียงพอแล้วในการที่จะป้อนกลับสิ่งที่เป็นประโยชน์
2. การตรวจสอบอย่างสม่ำเสมอ (Fegular audit) วัตถุประสงค์ในการตรวจสอบระบบคือเพื่อให้แน่ใจว่าระบบได้ทำงานตามหน้าที่ที่ควรจะเป็น การตรวจสอบอย่างสม่ำเสมอจะทำให้ผู้บริหารมั่นใจได้ว่าระบบประมวลผลข้อมูลอย่างมีประสิทธิภาพ หรือจัดหาข้อมูลอย่างมีประสิทธิผล การตรวจสอบสามารถทำโดยผู้ตรวจสอบระบบมืออาชีพ เช่น บริษัทตรวจสอบ EDP ซึ่งมีความชำนาญด้านการตรวจสอบและความเข้าใจด้านเทคโนโลยี
3. การเฝ้าตรวจสมรรถนะ (Performance monitors) คือการใช้ซอฟต์แวร์วัดสมรรถนะการทำงานของคอมพิวเตอร์ว่ามีประสิทธิภาพอย่างไร ซึ่งจะมีประโยชน์ทำให้รู้ความจริงต่าง ๆ ดังนี้ (1) เปอร์เซ็นต์ของเวลาที่ไม่ทำงานของระบบ (2) บันทึกปัญหาต่าง ๆที่เข่ามาในระบบและบรรยายถึงวิธีการเกิดปัญหา (3) แสดงปริมาณงานด้วยสถิติ เช่น จำนวนงานในแต่ละช่วงเวลา หรือจำนวนเฉลี่ยของการทำงานในหลายช่วงเวลา (4) แสดงตัวเลขสถิติซึ่งโปรแกรมหรือแฟ้มข้อมูลถูกใช้ไปเมื่อไร และใช้บ่อยอย่างไร (5) แสดงสถิติเกี่ยวกับผู้ใช้ เช่น มีจำนวนผู้เข้ามาใช้ในระบบกี่คน วันใด หรือช่วงเวลาใด (6) การใช้สถิติสำหรับฮาร์ดแวร์ปละซอฟต์แวร์ของแต่ละบุคคล (7) ช่วงเวลาเฉลี่ยในการเข้าไปในคลังข้อมูล

การบำรุงรักษาระบบ (System maintenance) การบำรุงรักษาระบบเป็นกิจกรรมที่สำคัญอย่างหนึ่งเพื่อให้ระบบทำงานได้ยอ่างต่เนื่องตามที่ต้องการ แนวทางในการบำรุงรักษาระบบนั้นที่นิยมใช้มี 4 แนวทางดังนี้
1. การบำรุงรักษาเพื่อให้มีความถูกต้องเสมอ (Corrective maintenance) คือการบำรุงรักษาและแก้ไขข้อผิดพลาดของระบบที่อาจเกิดจากการออกแบบระบบ การเขียนโปรแกรม และการติดตั้งเพื่อการใช้งาน
2. การบำรุงรักษาเพื่อปรับเปลี่ยนตามความเปลี่ยนแปลง (Adaptive maintenance) คือการบำรุงรักษาเพื่อปรับเปลี่ยนระบบตามคามเปลี่ยนเปลงของข้อมูลและความต้องการของผู้ใช้
3. การบำรุงรักษาเพื่อให้ระบบทำงานมีประสิทธิภาพสูงสุด (Perfective maintenance) คือการบำรุงรักษาระบบโดยการปรับปรุงให้ระบบทำงานได้โดยมีประสิทธิภาพสูง และตอบสนองความต้องการของผู้ใช้ได้
4. การบำรุงรักษาเพื่อการป้องกัน (Preventive maintenance) คือ การบำรุงรักษาและการตรวจสอบระบบโดยสำม่เสมอเพื่อป้องกันไม่ให้เกิดปัญหาที่คาดว่าจะเกิดขึ้น

การบำรุงรักษาซอฟต์แวร์ (Software maintenance) สิ่งสำคัญที่สุดในการบำรุงรักษาคือเรื่องที่เกี่ยวกับซอฟต์แวร์ เป็นเวลาหลายปีที่ผ่านมางบค่าใช้จ่ายประมาณครั้งหนึ่งของงบทั้งหมดของระบบสารสนเทศเพื่อการจัดการจะเกี่ยวกับการใช้จ่ายในการบำรุงรักษาซอฟต์แวร์
ในองค์การจำนวนมากการบำรุงรักษาซอฟต์แวร์จึงหันไปใช้โปรแกรม COBOL - based ข้อสรุปคือการลดค่าใช้จ่ายของการบำรุงรักษา การบำรุงรักษาในปัจจุบันจะมีโปรแกรมสำรเจรูปซึ่งสามารถหาซื้อได้ทั่วไป คือ
1. โปรแกรมปรับปรุงโครงสร้าง (Restructuring engines) คือ โปรแกรมซึ่งนำโปรแกรมโครงสร้างที่ไม่ดีออกไป และปรับปรุงเป็นโครงสร้างที่อ่านง่าน และว่ายต่อการบำรุงรักษา โปรแกรมชนิดนี้ค่อนข้างใหม่
2. การใช้รหัสสร้างโปรแกรม (Code generators) เช่น การใช้ 4GL ในการแก้ข้อผิดพลาดของ 3GL เป็นต้น
3. การใช้คลังรหัสที่นำมาใช้ใหม่ได้ (Reusable - code libraries) การใช้รหัสห้องสมุดสำหรับการบำรุงรักษาซอฟต์แวร์ประกอบด้วยการกำหนดรหัสที่ปลอดภัย