เนื้อหาที่ได้เรียนในรายวิชาแต่ละสัปดาห์
การวิเคราะห์และออกแบบระบบสารสนเทศ
การวิเคราะห์และออกแบบระบบ
ความรู้ในการวิเคราะห์และออกแบบระบบมีความสำคัญ เพราะเป็นปัจจัยในการสร้างและพัฒนาระบบสารสนเทศ การวิเคราะห์ระบบเป็นเรื่องที่น่าสนใจ เพราะนักวิเคราะห์ระบบต้องติดต่อกับคนหลายคน ได้รู้ถึงการจัดการและการทำงานในองค์การ ทำให้เรามีความรู้เกี่ยวกับระบบคอมพิวเตอร์หลายแบบมากขึ้น ผู้ที่สามารถวิเคราะห์ระบบได้ดี ควรมีประสบการณ์ในการเขียนโปรแกรม มีความรู้ทางด้านธุรกิจ ความรู้เกี่ยวกับระบบเครือข่ายและฐานข้อมูล ซึ่งใช้เป็นความรู้ในการออกแบบระบบที่มีความแตกต่างกันออกไปตาม สภาพงาน ดังนั้น หน้าที่ของนักวิเคราะห์ ก็คือการศึกษาระบบ แล้วให้คำแนะนำในการปรับปรุงและพัฒนาระบบนั้นจนเสร็จสมบูรณ์ ซึ่งการทำงานทั้งหมดต้องมีลำดับขั้นตอนและการศึกษาวิธีการวิเคราะห์และการออกแบบระบบในแต่ละขั้นตอน ทำให้เข้าใจการวิเคราะห์ระบบนั้นๆ ดียิ่ง และสามารถออกแบบระบบใหม่โดยไม่ยากเย็นนัก โดยสามารถตัดสินใจว่า ระบบใหม่ควรใช้คอมพิวเตอร์ประเภทไหน ใช้โปรแกรมอะไร ออกแบบInput/Output อย่างไรเป็นต้น
ระบบ
ระบบคือกลุ่มขององค์ประกอบต่างๆ ที่ทำงานร่วมกันเพื่อจุดประสงค์อันเดียวกัน ระบบอาจจะประกอบด้วย บุคคลากร เครื่องมือ เครื่องใช้ พัสดุ วิธีการ ซึ่งทั้งหมดนี้จะต้องมีระบบจัดการอันหนึ่ง เพื่อให้บรรลุจุดประสงค์อันเดียวกัน เช่น ระบบการเรียนการสอน มีจุดประสงค์เพื่อให้นักเรียนได้รับความรู้ในเนื้อหาวิชาที่สอน
การวิเคราะห์ระบบและการออกแบบ (System Analysis and Design) การวิเคราะห์และออกแบบระบบคือ วิธีการที่ใช้ในการสร้างระบบสารสนเทศขึ้นมาใหม่ในธุรกิจใดธุรกิจหนึ่งหรือ ระบบย่อยของธุรกิจ นอกจากการสร้างระบบสารสนเทศใหม่แล้ว การวิเคราะห์ระบบ ช่วยในการแก้ไขระบบสารสนเทศเดิมที่มีอยู่แล้วให้ดีขึ้นด้วยก็ได้ การวิเคราะห์ระบบก็คือ การหาความต้องการ (Requirements) ของระบบสารสนเทศว่าคืออะไร หรือต้องการเพิ่มเติมอะไรเข้ามาในระบบ และการออกแบบก็คือ การนำเอาความต้องการของระบบมาเป็นแบบแผน หรือเรียกว่าพิมพ์เขียวในการสร้างระบบสารสนเทศนั้นให้ใช้งานได้จริง ตัวอย่างระบบสารสนเทศ เช่น ระบบการขาย ความต้องการของระบบก็คือ สามารถติดตามยอดขายได้เป็นระยะ เพื่อฝ่ายบริหารสามารถปรับปรุงการขายได้ทันท่วงที ตัวอย่างรายงานการขายที่กล่าวมาแล้วจะชี้ให้เห็นว่าเราสามารถติดตามการขายได้อย่างไร
นักวิเคราะห์ระบบ (System Analyst หรือ SA) นักวิเคราะห์ระบบคือ บุคคลที่มีหน้าที่วิเคราะห์และออกแบบระบบ ซึ่งปกติแล้วนักวิเคราะห์ระบบควรจะอยู่ในทีมระบบสารสนเทศขององค์กรหรือธุรกิจนั้นๆ การที่มีนักวิเคราะห์ระบบในองค์กรนั้นเป็นการได้เปรียบ เพราะจะรู้โดยละเอียดว่า การทำงานในระบบนั้นๆเป็นอย่างไรและอะไรคือความต้องการของระบบ ในกรณีที่นักวิเคราะห์ระบบไม่ได้อยู่ในองค์กรนั้น ก็สามารถวิเคราะห์ระบบได้เช่นกัน โดยการศึกษาสอบถามผู้ใช้และวิธีการอื่นๆ ซึ่งจะกล่าวในภายหลัง ผู้ใช้ในที่นี้ก็คือเจ้าของและผู้ที่เกี่ยวข้องในระบบสารสนเทศนั้นเอง ผู้ใช้อาจจะเป็นคนเดียวหรือหลายคนก็ได้ เพื่อให้นักวิเคราะห์ระบบทำงานได้อย่างคล่องตัวมีลำดับขั้นและเป้าหมายที่แน่นอน นักวิเคราะห์ระบบควรทราบถึงว่า ระบบสารสนเทศนั้นพัฒนาขึ้นมาอย่างไร มีขั้นตอนอย่างไรบ้าง
การจัดการข้อมูล
วงจรการพัฒนาระบบ (System Development Lift Cycle-SDLC) ระบบสารสนเทศทั้งหลายมีวงจรชีวิตที่เหมือนกัน ตั้งแต่เกิดจนตาย วงจรนี้จะเป็นขั้นตอนที่เป็นลำดับตั้งแต่ต้นจนเสร็จเรียบร้อยเป็นระบบที่ใช้งานได้ ซึ่งนักวิเคราะห์ระบบ ต้องทำความเข้าใจให้ดีว่าในแต่ละขั้นตอนจะต้องทำอะไร และทำอย่างไร ขั้นตอนการพัฒนาระบบมีอยู่ด้วยกัน 7 ขั้นตอนคือ
1. เข้าใจปัญหา (Problem Recognition)
2. ศึกษาความเป็นไปได้ (Feasibility Study)
3. วิเคราะห์ (Analysis)
4. ออกแบบ (Design)
5. สร้าง หรือพัฒนาระบบ (Construction)
6. การปรับเปลี่ยน (Conversion)
7. บำรุงรักษา (Maintenance)
1. เข้าใจปัญหา (Problem Recognition)
2. ศึกษาความเป็นไปได้ (Feasibility Study)
3. วิเคราะห์ (Analysis)
4. ออกแบบ (Design)
5. สร้าง หรือพัฒนาระบบ (Construction)
6. การปรับเปลี่ยน (Conversion)
7. บำรุงรักษา (Maintenance)
แผนภาพกระแสข้อมูล
แผนภาพกระแสข้อมูล (DFD) เป็นเครื่องมือที่ใช้กันอย่างแพร่หลายในการเขียนแบบระบบใหม่ โดยเฉพาะกับระบบที่ "หน้าที่" ของระบบมีความสำคัญและมีความสลับซับซ้อนมากกว่าข้อมูลที่ไหลเข้าส่วนประกอบของ DFD
DFD มีองค์ประกอบ 4 อย่าง ซึ่งใช้สัญลักษณ์ต่าง ๆ แทนดังต่อไปนี้
1. สัญลักษณ์แทนการประมวลผล (Process) เป็นวงกลม
2. สัญลักษณ์แทนกระแสข้อมูลเป็นลูกศร
3. สัญลักษณ์แทนแหล่งเก็บข้อมูลเป็นเส้นขนาน 2 เส้น โดยมีชื่อกำกับ
4. สี่เหลี่ยมผืนผ้าเป็นสัญลักษณ์แทนสิ่งที่อยู่นอกระบบ
การประมวลผลโพรเซส (Process) การประมวลผลโพรเซส (Process) คือ งานที่จะต้องทำแทนด้วยวงกลมและมีขื่ออยู่ภายในวงกลม เช่น
โพรเซสเป็นตัวอย่างหนึ่งของ "กล่องดำ" หมายถึงว่า เราทราบว่าข้อมูลเป็นอะไร ผลลัพธ์ อะไรที่เราต้องการ และหน้าที่โดยทั่วๆ ไปของโพรเซส แต่จะไม่ทราบว่าโพรเซสนั้นทำงานอย่างไร หลักการของกล่องดำมีประโยชน์ในการเขียนแผนภาพแสดงการเปลี่ยนแปลงของข้อมูล โดยที่ยังไม่ต้องทราบในรายละเอียดว่าโพรเซสนั้นมีรายละเอียดอะไรบ้าง ซึ่งสามารถหารายละเอียดเหล่านี้ได้ในภายหลัง
ชื่อโพรเซส เป็นตัวบอกว่าโพรเซสนั้นทำหน้าที่อะไร คำที่ใช้ควรมีความหมายที่แน่นอน ควรจะใช้คำกริยา เช่น คำนวณ แก้ไข พิมพ์ เป็นต้น ถ้าการทำงานใดที่เราไม่สามารถ หาคำแทนได้อย่างเหมาะสม อาจจะหมายความว่า งานนั้นๆ ไม่ใช่โพรเซสก็ได้
กระแสข้อมูล (Data Flow) กระแสข้อมูลแทนด้วยลูกศรโดยที่มีชื่อข้อมูลกำกับอยู่บนลูกศรนั้น
ข้อมูลที่ไหลระหว่างโพรเซสต่าง ๆ และอาจเคลื่อนที่มาจากสิ่งที่อยู่นอกระบบก็ได้ ข้อมูลที่เคลื่อนที่อาจจะเป็นเพียงข้อมูลเดี่ยวๆ เข่น เลขที่สินค้า หรือกลุ่มของข้อมูล เช่น ข้อมูล พนักงาน ข้อมูลลูกค้า เป็นต้น กลุ่มของข้อมูลควรจะเป็นเรื่องเดียวกัน หรือสัมพันธ์กัน ตัวอย่างเช่น ข้อมูลลูกค้าอาจจะมีรายละเอียดเป็นชื่อลูกค้า เลขที่ ที่อยู่ แต่ไม่ควรรวมจำนวน สินค้าในคลังอยู่ในข้อมูลเดียวกัน ถ้าต้องการอ้างอิงข้อมูลทั้งสองที่ไม่เกี่ยวข้องกันให้เขียนแยกเป็นลูกศร 2 อันข้อมูล 2 อันไม่เหมือนกันจะต้องแยกลูกศรออก
ข้อมูลแต่ละอันหรือกลุ่มข้อมูล ควรจะมีชื่อของตัวเองที่ไม่เหมือนกัน ควรหลีกเลี่ยงใช้ชื่อที่กว้างเกินไป เช่น "ข้อผิดพลาด" เพราะว่าในระบบหนึ่งๆ อาจจะมี "ข้อผิดพลาด" เกิดขึ้นหลายๆ แห่ง เราควรใช้ชื่อเฉพาะเจาะจงมากกว่านี้ เช่น "เลขที่ลูกค้าไม่ถูกต้อง" "ไม่มีสินค้านี้ในคลัง" หรือ "ไม่มีสินค้าในคลัง" เป็นตัน ในระบบใหญ่ๆ ต้องแยก รายละเอียดเหล่านี้ออกให้ชัดเจนแหล่งเก็บข้อมูล(Data Store) แทนด้วยเส้นขนานสองเส้นและมีชื่อกำกับ ข้อมูลจะถูกเก็บในไฟล์และถูกเรียกใช้เมื่อต้องการ โดยปกติแล้วไฟล์อาจจะอยู่ในจานแม่เหล็กหรือเทปแม่เหล็ก ถ้าหัวลูศรวิ่งเข้าสู่ไฟล์แสดงว่า มีการเขียนข้อมูลหรือการแก้ไขข้อมูลในไฟล์ดังในรูปข้างล่างนี้ ถ้าลูกศรวิ่งออกจากไฟล์แสดงว่ามีการอ่านข้อมูล การตั้งชื่อไฟล์ควรเป็นคำนาม
สิ่งที่อยู่นอกระบบ(Terminator) สิ่งที่อยู่นอกระบบแทนด้วยสี่เหลี่ยมผืนผ้า ซึ่งมีชื่อกำกับอยู่ด้วย ส่วนใหญ่จะเป็นตัวบุคคล หรือองค์กรต่างๆ สิ่งที่อยู่นอกระบบอาจจะเป็นที่ส่งข้อมูลเข้าสู่ระบบ หรืออาจจะเป็นที่รับข้อมูลจากระบบก็ได้ เราไม่สนใจการทำงานภายในของสิ่งที่อยู่นอกระบบ ถึงแม้ว่าจะมีการติดต่อผ่านทางข้อมูล เราจะสนใจเฉพาะข้อมูลที่เข้าสู่ระบบหรือออกจากระบบสู่ภายนอกเท่านั้น
เมื่อเราทราบส่วนประกอบของการเขียนแผนภาพ DFD แล้ว ลองเอาสัญลักษณ์เหล่านี้มาเขียนรวมกันเป็น DFD ของระบบทั้งระบบดังนี้
โพรเซสกับภาพรวมของ DFD
ภาพรวมของ DFD โดยทั่วไปมักจะมีโพรเซสทั้งหมดด้วยกัน 5 โพรเซส โดยมีเลขที่กำกับด้วย แต่ละโพรเซสทำงานของตัวเองแยกกัน ปัญหาของการเขียนโพรเซสคือ ทำอย่างไร จึงจะ "แบ่ง" งานออกจากกันได้ ในตัวอย่างอาจจะลบโพรเซสที่ 3 ออกแล้วรวมเอาไว้ในโพรเซสที่ 4 ก็ได้ หรือจะดึงงานบางส่วนในโพรเซสที่ 1 ไปรวมกับโพรเซสที่ 2 ก็ได้อีก เช่นกัน การแบ่งจำนวนงานนั้นไม่มีคำตอบว่า "ถูกหรือผิด" ที่แน่นอนตายตัว แต่คำตอบหนึ่งอาจจะดีกว่าคำตอบหนึ่งก็ได้ เราอาจจะแบ่งการทำงานใหม่ซึ่งจะทำให้ระบบนั้นดีขึ้นหรือเลวลง
การแบ่งจำนวนโพเซสใน DFD ไม่มีกฎเกณฑ์ตายตัว การแบ่งจำนวนนี้ขึ้นอยู่กับ "ความชำนาญหลังจากที่มี ประสบการณ์มาพอสมควร" ถ้าเปรียบเทียบการเขียนโปรแกรมก็ เหมือนกับการแยกเขียนโปรแกรมย่อยนั่นเอง ซึ่งจะต้องอาศัยประสบการณ์ในการเขียนโปรแกรมมาช่วยมากทีเดียว ปัญหาการแบ่งงานก็คือ ขอบเขตของงานนั่นเอง
วิธีการสร้าง DFD
ทั้งหมดนี้เป็นขั้นตอนในการสร้าง DFD ที่มีระบบมากขึ้น
1. กำหนดสิ่งที่อยู่ภายนอกระบบทั้งหมด และหาว่าข้อมูลอะไรบ้างที่เข้าสู่ระบบหรือออกจากระบบที่เราสนใจสู่ระบบที่อยู่ภายนอก ขั้นตอนนี้สำคัญมากทั้งนี้เพราะจะทำให้ทราบว่าขอบเขตของระบบนั้นมีอะไรบ้าง
2. ใช้ข้อมูลที่ได้จากขั้นตอนที่ 1 นำมาสร้าง DFD ต่างระดับ
3. ขั้นตอนถัดมาอีก 4 ขั้นตอนโดยให้ทำทั้ง 4 ขั้นตอนนี้ซ้ำๆ หลายๆ ครั้ง จนกระทั่งได้ DFD ระดับต่ำสุด
3.1 เขียน DFD ฉบับแรก กำหนดโพรเซสและข้อมูลที่ไหลออกจากโพรเซส
3.2 เขียน DFD อื่นๆ ที่เป็นไปได้จนกระทั่งได้ DFD ที่ถูกที่สุด ถ้ามีส่วนหนึ่งส่วนใด ที่รู้สึกว่าไม่ง่ายนักก็ให้พยายามเขียนใหม่อีกครั้งหนึ่ง แต่ไม่ควรเสียเวลาเขียนจนกระทั่งได้ DFD ที่สมบรูณ์แบบ เลือก DFD ที่เห็นว่าดีที่สุดในสายตาของเรา
3.3 พยายามหาว่ามีข้อผิดพลาดอะไรหรือไม่ ซึ่งมีรายละเอียดในหัวข้อ "ข้อผิดพลาดใน DFD"
3.4 เขียนแผนภาพแต่ละภาพอย่างดี ซึ่ง DFD ฉบับนี้จะใช้ต่อไปในการออกแบบ และใช้ด้วยกันกับบุคคล อื่นๆ ที่เกี่ยวข้องในโครงการด้วย
4. นำแผนภาพทั้งหมดที่เขียนแล้วมาเรียงลำดับ ทำสำเนา และพร้อมที่จะนำไปตรวจสอบข้อผิดพลาดจากผู้ร่วมทีมงาน ถ้ามีแผนภาพใดที่มีจุดอ่อนให้กลับไปเริ่มต้นที่ขั้นตอนที่ 3 อีกครั้งหนึ่ง
5. นำ DFD ที่ได้ไปตรวจสอบข้อผิดพลาดกับผู้ใช้ระบบเพื่อหาว่ามีแผนภาพใดไม่ถูกต้องหรือไม่
6. ผลิตแผนภาพฉบับสุดท้ายทั้งหมด
ข้อผิดพลาดใน DFD
การเขียน DFD อาจะเขียนได้หลายแบบ ผลลัพธ์ฉบับสุดท้ายอาจจะไม่เหมือนกันถ้าเขียนโดยนักวิเคราะห์ระบบคนละคน ถึงอย่างไรแนวทางการเขียน DFD ซึ่งจะช่วยให้ เราเขียน DFD ได้ถูกต้องมากขึ้นก็มีอยู่บ้าง ซึ่งพอสรุปได้ดังนี้
1. ถ้า DFD ซับซ้อนมาก ทุกๆ นิ้วในกระดาษถูกใช้งานทั้งหมด แสดงว่า DFD นั้นควรจะแตกย่อยไปอีกระดับหนึ่งหรือมากกว่าหนึ่ง
2. ข้อมูลที่ออกจากโพรเซส หรือผลลัพธ์มีข้อมูลขาเข้าไม่เพียงพอ เราจะต้องพิจารณาแผนภาพต่อไปอีก แต่ที่สำคัญไม่ควรใส่ข้อมูลที่ไม่เคยใช้เข้ามาในโพรเซสเป็นอันขาด
3. การตั้งชื่อโพรเซสนั้นไม่ง่ายนัก อาจจะมีปัญหา 2 อย่างคือ โพรเซสนั้นควรจะแยกออกเป็น 2 ส่วน หรือเรา ไม่ทราบว่ามีอะไรเกิดขึ้นบ้างในโพรเซสนั้นๆ ในกรณีนี้เราต้องศึกษาระบบให้ละเอียดยิ่งขึ้น
4. จำนวนระดับในแต่ละแผนภาพแตกต่างกันมาก เช่นโพรเซสที่ 1 มีลูก 2 ชั้น แต่โพรเซสที่ 2 มีลูก 10 ชั้นแสดงว่าการแบ่งจำนวนโพรเซสไม่ดีนัก จำนวนลูกของโพรเซสไม่จำเป็นต้องเท่ากัน แต่ไม่ควรจะแตกต่างกันมากนัก
5. มีการแตกแยกย่อยข้อมูล รวมตัวของข้อมูล หรือมีการตัดสินใจในโพรเซส แสดงว่าโพรเซสนั้นไม่ถูกต้องการแยกข้อมูล หรือรวมตัวของข้อมูลเป็นหน้าที่ของพจนานุกรมข้อมูล การตัดสินใจเป็นรายละเอียดอยู่ใน คำอธิบายโพรเซส
การสร้าง DFD ที่ดีเป็นงานที่ยากที่สุดสำหรับนักวิเคราะห์ระบบมือใหม่ หรือแม้แต่ผู้ที่มีประสบการณ์มาแล้วก็ตาม DFD ที่ไม่ดีจะทำให้ผลลัพธ์สุดท้ายของระบบออกมาไม่ดีเช่นเดียว กันทั้งนี้เนื่องจาก DFD เป็นรากฐานสำหรับการออกแบบและพัฒนาโปรแกรม
1. ถ้า DFD ซับซ้อนมาก ทุกๆ นิ้วในกระดาษถูกใช้งานทั้งหมด แสดงว่า DFD นั้นควรจะแตกย่อยไปอีกระดับหนึ่งหรือมากกว่าหนึ่ง
2. ข้อมูลที่ออกจากโพรเซส หรือผลลัพธ์มีข้อมูลขาเข้าไม่เพียงพอ เราจะต้องพิจารณาแผนภาพต่อไปอีก แต่ที่สำคัญไม่ควรใส่ข้อมูลที่ไม่เคยใช้เข้ามาในโพรเซสเป็นอันขาด
3. การตั้งชื่อโพรเซสนั้นไม่ง่ายนัก อาจจะมีปัญหา 2 อย่างคือ โพรเซสนั้นควรจะแยกออกเป็น 2 ส่วน หรือเรา ไม่ทราบว่ามีอะไรเกิดขึ้นบ้างในโพรเซสนั้นๆ ในกรณีนี้เราต้องศึกษาระบบให้ละเอียดยิ่งขึ้น
4. จำนวนระดับในแต่ละแผนภาพแตกต่างกันมาก เช่นโพรเซสที่ 1 มีลูก 2 ชั้น แต่โพรเซสที่ 2 มีลูก 10 ชั้นแสดงว่าการแบ่งจำนวนโพรเซสไม่ดีนัก จำนวนลูกของโพรเซสไม่จำเป็นต้องเท่ากัน แต่ไม่ควรจะแตกต่างกันมากนัก
5. มีการแตกแยกย่อยข้อมูล รวมตัวของข้อมูล หรือมีการตัดสินใจในโพรเซส แสดงว่าโพรเซสนั้นไม่ถูกต้องการแยกข้อมูล หรือรวมตัวของข้อมูลเป็นหน้าที่ของพจนานุกรมข้อมูล การตัดสินใจเป็นรายละเอียดอยู่ใน คำอธิบายโพรเซส
การสร้าง DFD ที่ดีเป็นงานที่ยากที่สุดสำหรับนักวิเคราะห์ระบบมือใหม่ หรือแม้แต่ผู้ที่มีประสบการณ์มาแล้วก็ตาม DFD ที่ไม่ดีจะทำให้ผลลัพธ์สุดท้ายของระบบออกมาไม่ดีเช่นเดียว กันทั้งนี้เนื่องจาก DFD เป็นรากฐานสำหรับการออกแบบและพัฒนาโปรแกรม
การออกแบบในระดับกายภาพแตกต่างจากระดับตรรกะในแง่ของการแสดงขั้นตอนของระบบ โดยจะให้ความสำคัญเกี่ยวกับรายละเอียดของข้อมูล ผลลัพธ์ และการประมวลผล รวมถึงชนิดของสื่อที่ใช้ในการบรรจุข้อมูลด้วย
มาดูตัวอย่างการออกแบบที่ดีกันสักตัวอย่างหนึ่ง ได้แก่ โปรแกรมในการคำนวณบัญชี เงินเดือนของบริษัทแห่งหนึ่ง ซึ่งผลที่ได้จากการคำนวณนี้จะถูกนำไปปรับค่าข้อมูล ในไฟล์หลักของข้อมูลพนักงานด้วย ดังแสดงไว้ด้วยผังงานระบบ(System Flowchart) การออกแบบระบบในระดับนี้จะระบุถึงข้อมูล และผลลัพธ์ที่ได้จากการทำงาน รวมถึงขั้นตอน ในการทำงานในกรณีที่เกิดข้อผิดพลาดขึ้นความสำคัญของผังงานระบบนี้เปรียบเสมือนเป็น "พิมพ์เขียว" ที่จะใช้ในการพัฒนาระบบต่อไป
การออกแบบฟอร์ม
การออกแบบรูปแบบรายงาน รูปแบบข้อมูลขาเข้า และรูปแบบหน้าจอ เป็นเรื่องสำคัญทีเดียว เพราะว่าทั้งหมดคือ สิ่งที่ผู้ใช้เห็นได้ง่ายที่สุด และเป็นสิ่งที่ติดต่อระหว่างผู้ใช้กับ ระบบทั้งหมด และผู้ใช้จะใช้สิ่งที่เห็นเป็นตัวช่วยตัดสินว่าระบบดีหรือไม่ ถ้าสิ่งที่ผู้ใช้เห็นไม่ว่าเป็นรายงานหรือหน้าจอคอมพิวเตอร์ ถ้าดูไม่สวยงามดูวุ่นวายทำให้ผู้ใช้ไม่พอใจ ถึงแม้ว่าในระบบจริงๆ จะทำงานได้ดีมากก็ตาม พูดอีกนัยหนึ่งก็คือ ระบบของเราควรจะมีลักษณะที่ว่า "สวยทั้งรูป จูบก็หอม" นั่นเอง
การออกแบบรูปแบบรายงาน รูปแบบข้อมูลขาเข้า และรูปแบบหน้าจอ เป็นเรื่องสำคัญทีเดียว เพราะว่าทั้งหมดคือ สิ่งที่ผู้ใช้เห็นได้ง่ายที่สุด และเป็นสิ่งที่ติดต่อระหว่างผู้ใช้กับ ระบบทั้งหมด และผู้ใช้จะใช้สิ่งที่เห็นเป็นตัวช่วยตัดสินว่าระบบดีหรือไม่ ถ้าสิ่งที่ผู้ใช้เห็นไม่ว่าเป็นรายงานหรือหน้าจอคอมพิวเตอร์ ถ้าดูไม่สวยงามดูวุ่นวายทำให้ผู้ใช้ไม่พอใจ ถึงแม้ว่าในระบบจริงๆ จะทำงานได้ดีมากก็ตาม พูดอีกนัยหนึ่งก็คือ ระบบของเราควรจะมีลักษณะที่ว่า "สวยทั้งรูป จูบก็หอม" นั่นเอง
แบบของกระดาษ
กระดาษที่ใช้พิมพ์รายงานมีอยู่ 2 ประเภทคือ กระดาษธรรมดา และกระดาษที่พิมพ์ข้อความไว้แล้ว (Preprinted forms) กระดาษธรรมดาก็คือ กระดาษเปล่าว่างๆ และเป็นชนิด ต่อเนื่องซึ่งมีอยู่ด้วยกันหลายขนาด และอาจจะทำเป็นหลายก๊อปปี้ด้วยก็ได้ สำหรับกระดาษที่พิมพ์ข้อความไว้แล้วนั้นจะมีข้อความบางข้อความที่พิมพ์ไว้ก่อนแล้ว ซึ่งข้อความเหล่านี้ ปกติจะไม่เปลี่ยนแปลง ตัวอย่างเช่น เช็ค่ซึ่งจะมีชื่อธนาคารพิมพ์อยู่ในทุกๆ ใบ ซึ่งเป็นข้อความที่ไม่เปลี่ยนแปลง และจะมีข้อความบางส่วนที่จะพิมพ์เพิ่มเติมลงไป เช่น ชื่อผู้รับเงิน เป็นต้น
กระดาษที่ใช้พิมพ์รายงานมีอยู่ 2 ประเภทคือ กระดาษธรรมดา และกระดาษที่พิมพ์ข้อความไว้แล้ว (Preprinted forms) กระดาษธรรมดาก็คือ กระดาษเปล่าว่างๆ และเป็นชนิด ต่อเนื่องซึ่งมีอยู่ด้วยกันหลายขนาด และอาจจะทำเป็นหลายก๊อปปี้ด้วยก็ได้ สำหรับกระดาษที่พิมพ์ข้อความไว้แล้วนั้นจะมีข้อความบางข้อความที่พิมพ์ไว้ก่อนแล้ว ซึ่งข้อความเหล่านี้ ปกติจะไม่เปลี่ยนแปลง ตัวอย่างเช่น เช็ค่ซึ่งจะมีชื่อธนาคารพิมพ์อยู่ในทุกๆ ใบ ซึ่งเป็นข้อความที่ไม่เปลี่ยนแปลง และจะมีข้อความบางส่วนที่จะพิมพ์เพิ่มเติมลงไป เช่น ชื่อผู้รับเงิน เป็นต้น
การออกแบบรายงาน
ปกติเวลาเราออกแบบรายงานเราจะใช้แบบฟอร์มที่มีตาราง (Spacing Chart) ซึ่งมีลักษณะเป็นช่องๆ นำมากรอกข้อความที่ต้องการจะพิมพ์ ตัวอย่างแบบฟอร์มตารางที่ใช้ในการ ออกแบบรายงาน เราจะใส่ข้อความที่ไม่มีการเปลี่ยนแปลง เช่น ชื่อรายงานในแบบฟอร์มลงในตำแหน่งที่เราต้องการให้ข้อความปรากฏในรายงาน ในกรณีที่ข้อมูลที่เปลี่ยนแปลงได้ เราจะใช้ตัวอักษร "X" แทนตัวหนังสือ และ "9" แทนตัวเลข แล้วจึงเติมจำนวนบรรทัดที่ต้องการพิมพ์ในหน้านั้นๆ นอกจากนั้นอาจจะใส่ตัวอักษรพิเศษต่างๆ เช่น $, I, - หรือ . ด้วยก็ ได้ เราจะกรอกข้อมูลเฉพาะบรรทัดแรกและบรรทัด สุดท้ายเท่านั้น ระหว่าง 2 บรรทัดนั้นจะร่างเส้นโค้งเพื่อเชื่อมโยง ซึ่งจะหมายความว่า รูปแบบข้อมูลตรงกลางจะเหมือนกัน กับบรรทัดแรกและบรรทัดสุดท้ายนั่น รูปแบบข้อมูลตรงกลางจะเหมือนกันกับบรรทัดแรกและบรรทัดสุดท้ายนั่นเอง หัวเรื่องของรายงานอาจจะประกอบด้วยชื่อรายงาน วันที่ที่พิมพ์ เลขที่หน้าของ รายงาน ข้อมูลในแต่ละแถงควรจะมีช่องว่างแทรกเพื่อให้ดูรายละเอียดได้สบายตามากขึ้นและดูไม่แน่นจนเกินไป
ปกติเวลาเราออกแบบรายงานเราจะใช้แบบฟอร์มที่มีตาราง (Spacing Chart) ซึ่งมีลักษณะเป็นช่องๆ นำมากรอกข้อความที่ต้องการจะพิมพ์ ตัวอย่างแบบฟอร์มตารางที่ใช้ในการ ออกแบบรายงาน เราจะใส่ข้อความที่ไม่มีการเปลี่ยนแปลง เช่น ชื่อรายงานในแบบฟอร์มลงในตำแหน่งที่เราต้องการให้ข้อความปรากฏในรายงาน ในกรณีที่ข้อมูลที่เปลี่ยนแปลงได้ เราจะใช้ตัวอักษร "X" แทนตัวหนังสือ และ "9" แทนตัวเลข แล้วจึงเติมจำนวนบรรทัดที่ต้องการพิมพ์ในหน้านั้นๆ นอกจากนั้นอาจจะใส่ตัวอักษรพิเศษต่างๆ เช่น $, I, - หรือ . ด้วยก็ ได้ เราจะกรอกข้อมูลเฉพาะบรรทัดแรกและบรรทัด สุดท้ายเท่านั้น ระหว่าง 2 บรรทัดนั้นจะร่างเส้นโค้งเพื่อเชื่อมโยง ซึ่งจะหมายความว่า รูปแบบข้อมูลตรงกลางจะเหมือนกัน กับบรรทัดแรกและบรรทัดสุดท้ายนั่น รูปแบบข้อมูลตรงกลางจะเหมือนกันกับบรรทัดแรกและบรรทัดสุดท้ายนั่นเอง หัวเรื่องของรายงานอาจจะประกอบด้วยชื่อรายงาน วันที่ที่พิมพ์ เลขที่หน้าของ รายงาน ข้อมูลในแต่ละแถงควรจะมีช่องว่างแทรกเพื่อให้ดูรายละเอียดได้สบายตามากขึ้นและดูไม่แน่นจนเกินไป
การออกแบบจอภาพ
จอภาพของคอมพิวเตอร์เป็นไปได้ทั้งตัวรับข้อมูลและแสดงผลลัพธ์ จอภาพมีประโยชน์สำหรับแสดงผลลัพธ์ ในกรณีที่เราไม่ต้องการพิมพ์รายงานบนกระดาษ แต่ต้องการดูผลอะไร บางอย่าง เช่น ดูสถานะเครดิตลูกค้าเฉพาะรายเป็นต้น นอกจากนั้นปัจจุบันเราก็นิยมพิมพ์ข้อมูลเข้าหรืออินพุตผ่านทางหน้าจอ เช่น ป้อนข้อมูลการเคลื่อนไหวของสินค้าเป็นต้น
ปกติหน้าจอคอมพิวเตอร์มีขนาด 80*25 (25 บรรทัด บรรทัดละ 80 ตัวอักษร) ดังนั้นเราจะมีจำนวนจำกัดในการแสดงข้อความบนจอ แบบฟอร์มจอภาพ (Screen Layout) (คล้าย ๆ Spacing Chart ของการออกแบบรายงาน) จะช่วยในการออกแบบจอภาพ โดยที่เราจะกรอกข้อความที่จะให้ปรากฏจอคอมพิวเตอร์ในแบบฟอร์มนี้
จอภาพของคอมพิวเตอร์เป็นไปได้ทั้งตัวรับข้อมูลและแสดงผลลัพธ์ จอภาพมีประโยชน์สำหรับแสดงผลลัพธ์ ในกรณีที่เราไม่ต้องการพิมพ์รายงานบนกระดาษ แต่ต้องการดูผลอะไร บางอย่าง เช่น ดูสถานะเครดิตลูกค้าเฉพาะรายเป็นต้น นอกจากนั้นปัจจุบันเราก็นิยมพิมพ์ข้อมูลเข้าหรืออินพุตผ่านทางหน้าจอ เช่น ป้อนข้อมูลการเคลื่อนไหวของสินค้าเป็นต้น
ปกติหน้าจอคอมพิวเตอร์มีขนาด 80*25 (25 บรรทัด บรรทัดละ 80 ตัวอักษร) ดังนั้นเราจะมีจำนวนจำกัดในการแสดงข้อความบนจอ แบบฟอร์มจอภาพ (Screen Layout) (คล้าย ๆ Spacing Chart ของการออกแบบรายงาน) จะช่วยในการออกแบบจอภาพ โดยที่เราจะกรอกข้อความที่จะให้ปรากฏจอคอมพิวเตอร์ในแบบฟอร์มนี้
การพัฒนาโปรแกรมและการบำรุงรักษา
หลักการวิเคราะห์และออกแบบอย่างเดียวยังมิได้รับประกันความสำเร็จของระบบ เมื่อเสร็จสิ้นขั้นตอนการวิเคราะห์ออกแบบแล้ว เราต้องเริ่มพัฒนาโปรแกรมสำหรับระบบใหม่นี้ การพัฒนาโปรแกรมในขั้นนี้จะรวมถึงการเขียนโปรแกรม ทดสอบและปรับปรุง เพื่อให้ได้ระบบที่มีประสิทธิภาพสูงสุด ในขณะเดียวกันเราจะเริ่มอบรมผู้ใช้ และเตรียมสถานที่ ให้พร้อมสำหรับคอมพิวเตอร์ (ในกรณีที่ซื้อใหม่หรือโยกย้าย) ขึ้นถัดมาเมื่อเริ่มนำโปรแกรมที่เขียนได้มาใช้งาน จะต้องถ่าย ข้อมูลเดิมเข้าสู่ระบบใหม่นี้ แล้วจึงเริ่มต้นใช้งานระบบ ใหม่ การบำรุงรักษาในขั้นตอนการพัฒนาระบบจะรวมถึงการบำรุงรักษาประจำวันคือ ทดสอบว่าระบบทำงานปกติ ถ้าหากพบว่ายังมีข้อบกพร่องที่จุดใด ระบบจะต้องได้รับการแก้ไข
หลักการวิเคราะห์และออกแบบอย่างเดียวยังมิได้รับประกันความสำเร็จของระบบ เมื่อเสร็จสิ้นขั้นตอนการวิเคราะห์ออกแบบแล้ว เราต้องเริ่มพัฒนาโปรแกรมสำหรับระบบใหม่นี้ การพัฒนาโปรแกรมในขั้นนี้จะรวมถึงการเขียนโปรแกรม ทดสอบและปรับปรุง เพื่อให้ได้ระบบที่มีประสิทธิภาพสูงสุด ในขณะเดียวกันเราจะเริ่มอบรมผู้ใช้ และเตรียมสถานที่ ให้พร้อมสำหรับคอมพิวเตอร์ (ในกรณีที่ซื้อใหม่หรือโยกย้าย) ขึ้นถัดมาเมื่อเริ่มนำโปรแกรมที่เขียนได้มาใช้งาน จะต้องถ่าย ข้อมูลเดิมเข้าสู่ระบบใหม่นี้ แล้วจึงเริ่มต้นใช้งานระบบ ใหม่ การบำรุงรักษาในขั้นตอนการพัฒนาระบบจะรวมถึงการบำรุงรักษาประจำวันคือ ทดสอบว่าระบบทำงานปกติ ถ้าหากพบว่ายังมีข้อบกพร่องที่จุดใด ระบบจะต้องได้รับการแก้ไข
การสร้างโปรแกรมและการประกันคุณภาพ
โปรแกรมเมอร์จะทำหน้าที่เขียนโปรแกรมสำหรับระบบใหม่ทั้งหมด หรือแก้ไขโปรแกรมสำเร็จรูปถ้าซื้อโปรแกรมมา ตัวนักวิเคราะห์ระบบจะต้องกำหนดมาตรฐานของโปรแกรม โดยเขียนเป็น "คู่มือสำหรับโปรแกรมเมอร์" ซึ่งจะกำหนด มาตรฐานของโปรแกรมและเอกสารไว้ในคู่มือนี้ มาตรฐานของโปรแกรมได้แก่ การเขียนโปรแกรมจะต้องเป็นแบบ โปรแกรมโครงสร้าง การตั้งชื่อข้อมูลก็ควรให้อยู่ในรูปแบบเดียวกันคือ โปรแกรมเมอร์ทุกคนใช้ชื่อเดียวกันทั้งหมด สำหรับชื่อโปรแกรมควรจะตั้งให้มีรูปแบบเหมือนกัน เช่น ใช้ตัวอักษร 6 ตัว โดยที่สามตัวแรกเป็นตัวอักษรและสามตัวหลังเป็นตัวเลข เช่น (APY000) เป็นต้น
โปรแกรมเมอร์จะทำหน้าที่เขียนโปรแกรมสำหรับระบบใหม่ทั้งหมด หรือแก้ไขโปรแกรมสำเร็จรูปถ้าซื้อโปรแกรมมา ตัวนักวิเคราะห์ระบบจะต้องกำหนดมาตรฐานของโปรแกรม โดยเขียนเป็น "คู่มือสำหรับโปรแกรมเมอร์" ซึ่งจะกำหนด มาตรฐานของโปรแกรมและเอกสารไว้ในคู่มือนี้ มาตรฐานของโปรแกรมได้แก่ การเขียนโปรแกรมจะต้องเป็นแบบ โปรแกรมโครงสร้าง การตั้งชื่อข้อมูลก็ควรให้อยู่ในรูปแบบเดียวกันคือ โปรแกรมเมอร์ทุกคนใช้ชื่อเดียวกันทั้งหมด สำหรับชื่อโปรแกรมควรจะตั้งให้มีรูปแบบเหมือนกัน เช่น ใช้ตัวอักษร 6 ตัว โดยที่สามตัวแรกเป็นตัวอักษรและสามตัวหลังเป็นตัวเลข เช่น (APY000) เป็นต้น
การประกันคุณภาพ
นักวิเคราะห์ระบบจะต้องรับประกันว่า โปรแกรมที่ได้มานั้นจะต้องมีข้อบกพร่องน้อยที่สุด ระหว่างแต่ละขั้นตอนเราจะต้องหาข้อบกพร่องที่อาจจะเกิดขึ้นได้ และกำจัดออกไปก่อนที่ จะก้าวสู่ขั้นตอนถัดไป เพราะว่าข้อบกพร่องมีอยู่ในระบบมากเท่าใด ก็จะทำให้ราคาในการแก้ข้อบกพร่องมีมากเท่านั้น และจะขึ้นอยู่กับระยะเวลาของการพัฒนาระบบด้วยว่ามีข้อ บกพร่องเกิดขึ้นนานเท่าไรแล้วด้วย ซึ่งค่าใช้จ่าวในการแก้ไขระบบจะเพิ่มขึ้นด้วยอัตราแบบ "Exponential" ตัวอย่างเช่น พบว่าลืมตรวจสอบอินพุตที่สำคัญตัวหนึ่งถ้าอยู่ในขั้น วิเคราะห์ระบบและจะแก้ไขจุดบกพร่องนี้จะเสียค่าใช้จ่ายประมาณ 10 บาท และอาจจะเพิ่มเป็น 100 บาท ถ้าพบข้อบกพร่องนี้ในการออกแบบ และเพิ่มเป็น 1,000 บาท ถ้าพบในขั้น ตอนเขียนโปรแกรมและทดสอบระบบ และอาจจะสูงขึ้นถึง 10,000 บาท ถ้าพบหลังจากนำโปรแกรมไปใช้งานแล้ว สรุปแล้วก็คือ แก้ไขในกระดาษนั้นง่ายและถูกกว่าแก้ไข ในโปรแกรมอย่างแน่นอน
นักวิเคราะห์ระบบจะต้องรับประกันว่า โปรแกรมที่ได้มานั้นจะต้องมีข้อบกพร่องน้อยที่สุด ระหว่างแต่ละขั้นตอนเราจะต้องหาข้อบกพร่องที่อาจจะเกิดขึ้นได้ และกำจัดออกไปก่อนที่ จะก้าวสู่ขั้นตอนถัดไป เพราะว่าข้อบกพร่องมีอยู่ในระบบมากเท่าใด ก็จะทำให้ราคาในการแก้ข้อบกพร่องมีมากเท่านั้น และจะขึ้นอยู่กับระยะเวลาของการพัฒนาระบบด้วยว่ามีข้อ บกพร่องเกิดขึ้นนานเท่าไรแล้วด้วย ซึ่งค่าใช้จ่าวในการแก้ไขระบบจะเพิ่มขึ้นด้วยอัตราแบบ "Exponential" ตัวอย่างเช่น พบว่าลืมตรวจสอบอินพุตที่สำคัญตัวหนึ่งถ้าอยู่ในขั้น วิเคราะห์ระบบและจะแก้ไขจุดบกพร่องนี้จะเสียค่าใช้จ่ายประมาณ 10 บาท และอาจจะเพิ่มเป็น 100 บาท ถ้าพบข้อบกพร่องนี้ในการออกแบบ และเพิ่มเป็น 1,000 บาท ถ้าพบในขั้น ตอนเขียนโปรแกรมและทดสอบระบบ และอาจจะสูงขึ้นถึง 10,000 บาท ถ้าพบหลังจากนำโปรแกรมไปใช้งานแล้ว สรุปแล้วก็คือ แก้ไขในกระดาษนั้นง่ายและถูกกว่าแก้ไข ในโปรแกรมอย่างแน่นอน