FAC_ID FAC_NAME Faculty Room_No Course_ID 1 Course_Name Teacher_ID Room OFFER M TEACH N Teacher M Teacher_Name N OPEN M Course M HAVE N Student STD_ID STD_NAME STD_SEX
บทที 10 การออกแบบ Output และ Input Logical Design เป็นเพียงการวเิ คราะห์ในรายละเอยี ด ด้วยการกําหนดความสมั พนั ธ์ของสว่ นประกอบ ตา่ งๆ ในระบบ ขนั ตอนตอ่ ไปคอื กระบวนการออกแบบเพือพฒั นาให้เป็นรปู ร่าง (Physical) ด้วยการนํา Logical Design ทีได้มาจากขนั ตอนของการวิเคราะห์ มาออกแบบให้อยใู่ นรูปของการปฏิบตั ิงานได้จริง (Physical Design) ผลลพั ธ์หรือเอาตพ์ ตุ จากการประมวลผลเพือให้ได้สารสนเทศทีต้องการ จะต้องมีความถกู ต้องและมีความ น่าเชือถือ ตรงกบั ความต้องการของผ้ใู ช้งาน 10.1. กิจกรรมหลกั ทีต้องมใี นการออกแบบระบบ ลกั ษณะระบบสารสนเทศ ประกอบไปด้วย ข้อมลู ดบิ (Data) สว่ นจดั เกบ็ ข้อมลู (Data Stores)บคุ ลากร ทางคอมพิวเตอร์ (people) กระบวนการ (Procedures) ฮาร์ดแวร์ (Hardware) ซอฟตแ์ วร์ (Software) และสารสนเทศ (Information) ซึงสว่ นประกอบตา่ งๆ เหลา่ นีมีความสมั พนั ธ์กนั ในสว่ นแรกของการออกแบบ คอื การออกแบบตรรกศาสตร์ ตอ่ มาจึงเริมออกแบบทางกายภาพโดยในการออกแบบต้องนําเอกสารตา่ งๆ ทีแสดงถงึ ความ ต้องการของผ้ใู ช้ระบบทีได้มาจากการวเิ คราะห์ระบบขนั สดุ ท้ายมาใช้ เพือนํามากําหนดในการออกแบบทางกายภาพ การ ออกแบบทางกายภาพนนั ต้องเริมจากการออกแบบการแสดงผลลพั ธ์ (Output Design) กอ่ นเพราะจะมีผลกบั การ ออกแบบการนําเข้าข้อมลู (Input Design) แล้วคอ่ ยออกแบบการจดั เกบ็ ข้อมลู (Data Stores) ซึง ประกอบด้วยแฟ้ มข้อมลู และฐานข้อมลู (File and Database) จากนนั เป็นการออกแบบการประมวลผล (System Procession) และการออกแบบซอฟต์แวร์ (Software Design) ตามลาํ ดบั ซึงในการออกแบบ แตล่ ะสว่ นต้องสมั พนั ธ์กนั ขนั ตอนสดุ ท้ายของการออกแบบระบบ คอื การทํารายงานและการนําเสนอผลการออกแบบ โดยสรุปกิจกรรมในการออกแบบระบบได้ดงั รูป People Procedure Data Stores Data s Information Hardware Software
10.2. การออกแบบ Output การออกแบบ Output จะต้องดําเนนิ การก่อนการออกแบบข้อมลู เข้า (Input Design) ด้วยเหตผุ ล สําคญั คอื รูปแบบของรายงานทีทําการออกแบบ ทําให้ได้ข้อมลู นําเข้า ดงั นนั การออกแบบรายงานจงึ ทําให้ทราบถงึ ข้อมลู นําเข้าทจี ําเป็นต้องป้ อนเข้าสรู่ ะบบ การออกแบบ Output ควรเริมต้นด้วยการเขยี นลงในแบบฟอร์ม (Report Layout Form) ซงึ ถือเป็น สิงสาํ คญั เพือใช้ในการตดั สนิ ใจได้วา่ จะมีรายละเอียดของข้อมลู ใดบ้างในรายงาน โดย Output ทีออกแบบนนั จะต้อง ตรงกบั ความต้องการ (Requirements) รวมทงั พจนานกุ รมข้อมลู (Data Dictionary) ทีทําให้ทราบถึง ประเภทของข้อมลู ทราบถงึ ขนาดความกว้างข้อมลู ทําให้สามารถกําหนดจํานวนคอลมั น์ทีต้องการใช้ในรายงานได้อยา่ ง ถกู ต้อง โดยรายละเอยี ดทเี ขยี นลงในแบบฟอร์มอาจใช้ข้อความ หรือใช้ตวั อกั ษร X เพือแทนข้อมลู ตวั อกั ษร และเลข 9 เพือแทนข้อมลู ตวั เลข 10.2.1. ชนิดของ Output Output คอื ข้อความ เอกสาร หรือรายงานชนดิ หนงึ โดยนําข้อมลู จากไฟลม์ าพิมพ์ หรือนําข้อมลู มาผา่ นการ ประมวลผลเพือได้เอาต์พตุ ทีต้องการ ดงั นนั เอาต์พตุ จงึ อาจหมายถึง - รายงาน (Report) - เอกสาร (Document) - ข้อความ (Message) กระบวนการตา่ งๆ เพือให้ได้มาซงึ เอาตพ์ ตุ ทีต้องการนนั อาจมาจากแหลง่ ข้อมลู ด้วยวธิ ีการตา่ งๆดงั ตอ่ ไปนี 1. เรียงจากแฟ้ มข้อมลู โดยตรง (Retrieval from a data store) เป็นรายงานทีสามารถทําการแสดง (List) หรือสงั พิมพ์ได้ด้วยการนําข้อมลู ในแฟ้ มข้อมลู นนั มาพิมพ์ได้ทนั ที Data Output 2. นําข้อมลู มาผา่ นการประมวลผลเพือให้ได้รายงานทีต้องการ (Transmission from a process) เป็น เอาตพ์ ตุ ทีมกี ารนําข้อมลู จากแฟ้ มข้อมลู ผา่ นกระบวนการประมวลผลเพือให้ได้เอาตพ์ ตุ ทีต้องการ Data Process Output 3. รบั ข้อมลู โดยตรงจากการคีย์ข้อมลู เข้า (Direct from an input source) เป็นเอาต์พตุ ทีได้จากการคยี ์ ข้อมลู เข้าโดยตรง Input Output
การออกแบบ Output หรือการออกแบบรายงานทีดนี นั ควรมกี ารออกแบบให้มีข้อมลู ทีสมั พนั ธ์กนั กบั รายงาน ตา่ งๆ ทีเกียวข้อง กลา่ วคอื ในรายงานฉบบั หนงึ อาจนําเสนอข้อมลู เพียงเพืออธิบายสรุปผลบางอย่าง ถ้าผ้ใู ช้งานต้องการ รายละเอยี ดข้อมลู ในรายงาน อาจจําเป็นต้องดรู ายงานอีกฉบบั หนึงเพือทําการตรวจสอบ ดงั นนั ข้อมลู ในรายงานที เกียวข้องจงึ ต้องมคี วามสมั พนั ธ์กนั ตวั อย่างเชน่ หลงั จากมีการประเมนิ ผลเป็นทีเรียบร้อยแล้ว จะพิมพ์รายงานสรุปผลจํานวนผ้สู อบตกรายวชิ า ซึงเป็นข้อมลู สรุปจํานวนนกั ศกึ ษาทีสอบตกในรายวชิ าตา่ งๆ คณบดีอาจต้องการเพียงยอดจํานวนนกั ศกึ ษา เพือนําไปประกอบการ พิจารณาวา่ เหน็ สมควรตอ่ การเปิ ดลงทะเบียนในรายวชิ าทีนกั ศกึ ษาสอบตกในภาคการศกึ ษาตอ่ ไปหรือไม่ แตถ่ ้าต้องการ ทราบในรายละเอียดวา่ มนี กั ศกึ ษารายใดบ้างทีสอบตกอาจจําเป็นต้องใช้รายงานอนื ประกอบ เช่น รายงานรายชือ นกั ศกึ ษาสอบตกรายวชิ า เป็นต้น รายงานสรุปผลจาํ นวนผสู้ อบตกรายวิชา รายชือนกั ศึกษาตกรายวชิ า รหสั วชิ า ชือวชิ า ยอดผสู้ อบตก รหสั วชิ า - ชือวชิ า 0220802 การเขยี นโปรแกรม 10 รหสั ชือ-สกุล สาขา 0230805 การวเิ คราะห์และออกระบบ 9 45126001 นายสมควร สุขเกษม คอมพิวเตอร์ธรุ กจิ 0230804 ระบบการจดั การฐานขอ้ มูล 5 45126002 นายเกง่ กาจ หาญกลา้ คอมพวิ เตอร์ธุรกจิ 45126003 นางสาวหนงึ นชุ ชมพู่ คอมพวิ เตอร์ธรุ กจิ ถงึ แม้เทคโนโลยีทางคอมพิวเตอร์ในปัจจบุ นั จะมีสว่ นช่วยทําให้การออกแบบงานมรี ูปแบบทีสวยงาม แตร่ ายงาน ทีนําเสนอรูปแบบทีสวยงามใชว่ า่ จะเป็นรายงานทีดเี สมอไป รายงานทีดจี ะพจิ ารณาถึงข้อมลู หรือสารสนเทศทีประกอบ กนั เป็นรายงาน และตรงกบั ความต้องการของผ้ใู ช้เป็นหลกั รายงานในระบบมจี ํานวนมากมาย ตา่ งก็มีความสาํ คญั ในการนําเสนอข้อมลู ตอ่ ผ้ใู ช้งานในแงม่ มุ ตา่ งๆดงั นนั การ ออกแบบรายงานควรพจิ ารณาถงึ สงิ ตอ่ ไปนี 1. ใครเป็นผ้ใู ช้รายงานนี 2. ใช้ประโยชนจ์ ากรายงานนีอยา่ งไร 3. รายละเอียดข้อมลู ในรายงานต้องการมากเพยี งใด 4. รายงานนีมคี วามต้องการใช้บอ่ ยแคไ่ หน เชน่ ทกุ วนั ทกุ สปั ดาห์ หรือทกุ เดอื น 5. รายงานแสดงออกทางใด เชน่ ทางจอภาพ หรือทางเครืองพิมพ์ ตวั อยา่ งรายงานการลงทะเบียนแตล่ ะรายวชิ า 1. ใครเป็นผ้ใู ช้รายงานนี -ฝ่ ายทะเบียนและวดั ผล -คณบดี -นกั ศกึ ษา -อาจารย์ผ้สู อน 2. ใช้ประโยชน์จากรายงานนีอยา่ งไร
- ฝ่ ายทะเบียนและวดั ผล เพือต้องการทราบรายชือและจํานวนนกั ศกึ ษาทีลงทะเบียนเรียนในแตล่ ะรายวชิ า - คณบดี เพือต้องการทราบจํานวนนกั ศกึ ษาทีลงทะเบียนเรียนแตล่ ะรายวชิ า - นกั ศกึ ษา ตรวจสอบรายวชิ าทีตนลงทะเบียนจากบอร์ดวา่ มหี รือไม่ และเรียนอย่กู ลมุ่ ใด - อาจารย์ผ้สู อน ตรวจสอบจํานวนนกั ศกึ ษาในรายวชิ าพร้อมทงั พิมพ์รายชือนกั ศกึ ษาในกลมุ่ ทีสอน 3. รายละเอยี ดข้อมลู ในรายงาน 4. รายงานนีต้องการใช้บอ่ ยแคไ่ หน - ใช้ทกุ ๆ ภาคการศกึ ษาเมอื มีการเปิ ดลงทะเบบี นแล้วเสรจ็ 5. รายงานแสดงออกทางใด - ทางเครืองพิมพ์ และทางจอภาพ 10.2.2. การจดั รูปแบบรายงาน การจดั รูปแบบรายงาน เป็นเรืองทีสาํ คญั อย่างหนงึ ทีทําให้สามารถสือความหมายให้กบั ผ้ใู ช้งานได้ครบถ้วน รวมทงั ผ้พู ฒั นาระบบงาน ดงั นนั รูปแบบรายงานทีดคี วรมีรายละเอยี ดดงั นี 1. หวั รายงาน (Heading) : หวั รายงานหรือชือรายงาน จําเป็นต้องมใี นทกุ ๆ รายงานและทกุ หน้า เพือสือความหมายข้อมลู ในรายงานวา่ เป็น รายงานอะไร หากรายงานมมี ากกวา่ หนงึ หน้า ในหน้าถดั ๆ ไปจะต้องมชี ือรายงานและเลขหน้ากํากบั ไว้เสมอ โดย เลขหน้าอาจกํากบั ได้โดยแสดงตวั อย่างตามลาํ ดบั เชน่ 1,2,3.....หรือ 1 of 10, 2 of 10..... เป็นต้น ในสว่ นของหวั รายงานซงึ อยบู่ รรทดั แรกๆ นนั นอกจากจะมชี ือรายงาน เลขหน้าแล้ว อาจจะมชี ือบริษทั หรือ หน่วยงาน วนั ทีพร้อมเวลาทีพิมพ์รายงาน เพือสามารถตรวจสอบได้วา่ เป็นรายงานทีทนั สมยั (Update) หรือไม่ และอาจใสช่ ือโปรแกรมไว้เป็นได้เพือเป็นประโยชนต์ อ่ ผ้พู ฒั นา เชน่ หากในวนั ข้างหน้าจําเป็นต้องมีการ ปรบั หรือแก้ไขรายงานนี จะทําให้ทราบชือโปรแกรมจากรายงานนีได้ทนั ที ทําให้ไมต่ ้องเสียเวลากบั การค้นหา โปรแกรมเพือทําการแก้ไข 2. รายละเอียด (Details) : พืนทีในสว่ นของรายละเอียดจะมีพืนทีมากทีสดุ เพือใช้แสดงรายละเอยี ดหรือข้อมลู ตา่ งๆ ซงึ รายละเอยี ดหรือ ข้อมลู นนั อาจจะแสดงตอ่ เนืองกนั ไป หรือมีการรวมกลมุ่ และมีการควบคมุ ข้อมลู (Control Break) เป็น สว่ นๆ การกําหนดเงือนไขการพิมพ์โดยมีรายละเอียดดงั นี - การควบคมุ (Control Break) คือมกี ารรวมข้อมลู ทีเกียวข้องและแตกเป็นกลมุ่ ย่อย ในทีนีคือการควบคม การแสดงรายละเอียดของข้อมลู ด้วยหมายเลขรหสั ลกู ค้า - เงือนไขการพิมพ์ (Conditions) คือมีการพิมพ์รายงานด้วยการกําหนดเงือนไข ในทีนีคอื การกําหนดเงือนไข ด้วยวนั ทีสนิ สดุ สปั ดาห์ 15/03/47 - ยอดสรุป (Summaries) คอื ยอดรวมเวลาทํางานของร้านที.......
3. ผลสรุป (Summaries) : รายงานบางรายงานถกู ออกแบบมาเพือสรุปผลสารสนเทศ โดยจะไมม่ ีการแสดงรายละเอียดใดๆ ซึงในบางครงั ผ้บู ริหารหรือผ้ทู ีใช้รายงานประเภทนีต้องการทราบยอดจํานวนเท่านนั โดยไมต่ ้องการทราบรายละเอียด 4. หมายเหตุ (Remarks) : รายงานบางประเภทอาจจําเป็นต้องมหี มายเหตหุ รือคําแนะนํา เพือให้ผ้อู า่ นหรือผ้ใู ช้รายงานเข้าใจใน รายละเอยี ดมากขนึ 10.2.3. ประเภทของรายงานมีดงั นี 1. รายงานแสดงรายละเอยี ด (Detailed Reports) รายงานแสดงรายละเอียด คือ รายงานทีอา่ นข้อมลู จากแฟ้ มข้อมลู ซึงอาจจะไมไ่ ด้มีการปรุงแตง่ ข้อมลู เลย หรือ อาจจะมกี ารปรับแตง่ เลก็ น้อย เชน่ รายงานแสดงรายชือนกั ศกึ ษา, รายงานวชิ าทีเปิ ดลงทะเบียน เป็นต้น 2. รายงานแสดงประวตั ขิ ้อมลู (Historical Reports) รายงานแสดงประวตั ิข้อมลู จะมีลกั ษณะคล้ายกบั รายงานแสดงรายละเอียด แตม่ ีข้อแตกตา่ งคือ ตวั รายงานจะ แสดงข้อมลู ประจําวนั (Transaction) เพือใช้ในการตรวจสอบ หรือ ยืนยนั วา่ ระบบได้ดาํ เนินการและเกบ็ ข้อมลู ได้ อยา่ งถกู ต้อง ตวั อยา่ งรายงานประเภทนี เชน่ รายงานการเบิกของจากคลงั ประจําวนั รายงานการเบิกถอนเงินธนาคาร ของลกู ค้า รายงานการลงทะเบียนรายวชิ าในแตล่ ะวนั เป็นต้น 3.รายงานสรุปผลข้อมลู (Summary Reports) รายงานสรุปผลข้อมลู จดั เป็นรายงานสาํ หรบั ผ้บู ริหารทีต้องการดผู ลสรุปเพยี งอย่างเดยี ว โดยไมต่ ้องการดขู ้อมลู ในรายละเอียด เพือใช้ในการพิจารณาและตดั สินใจ เชน่ รายงานงบกําไรขาดทนุ , รายงานยอดสรุปจํานวนผ้สู อบตก รายวชิ า เป็นต้น 4.รายงานข้อยกเว้น หรือกรณีพเิ ศษ (Exception Reports) รายงานข้อยกเว้นหรือกรณีพิเศษนี เป็นรายงานทีมกี ารกรองข้อมลู (Filter) บางอย่างออกไป เพือคงไว้ เพียงแตข่ ้อมลู ทีต้องการ เช่นรายงานผลเฉลยี สะสมรายวิชาทีตํากวา่ เกณฑ์ จะแสดงข้อมลู นกั ศกึ ษาเฉพาะทีมยี อด คะแนนเฉลียสะสมทีไมถ่ ึง 2.00 สว่ นทีอย่ใู นเกณฑ์หรือสงู กวา่ ในเกณฑ์ จะไมน่ ํามาพิมพ์ 10.2.4. การนําเสนอข้อมลู ในรายงาน แบ่งเป็น 2 ชนิด
1. รูปแบบตาราง (Tabular Format) : รายงานในลกั ษณะรูปแบบตารางนีเป็นรูปแบบทีใช้ทวั ไป โดยรูปแบบจะ แบ่งเป็นแถว (Row) และคอลมั น์ (Column) และอาจมยี อดรวมตวั เลขทีอาจเสนอเป็นแนวนอน (Horizontal) หรือ แนวตงั (Vertical) 2. รูปแบบกราฟ (Graph Format) : รายงานในลกั ษณะกราฟนนั มกั ใช้งานทางธรุ กิจทีสรุปผลการดาํ เนินงานใน เชิงเปรียบเทียบ ทําให้เหน็ ภาพชดั เจนกวา่ ในลกั ษณะข้อมลู เชน่ การเปรียบเทียบผลกําไรในแตล่ ะไตรมาส เมือเทียบกบั การเปรียบเทียบในลกั ษณะตวั เลขอาจเห็นได้ไมช่ ดั เจน แตถ่ ้าเปรียบเทียบในลกั ษณะกราฟจะเปรียบเทียบได้ชดั เจนขนึ โดยกราฟทีนําเสนออาจเป็นได้ทงั กราฟเส้น กราฟแท่ง และกราฟวงกลม เป็นต้น 10.2.5. การออกแบบรายงานทางจอภาพ การติดตอ่ ระบบงานระหวา่ งผ้ใู ช้ระบบ จะเป็นไปในลกั ษณะของการโต้ตอบ มีการแลกเปลยี นข้อมลู กนั ทงั สว่ น Input และOutput ผ้ใู ช้ระบบเป็นผ้ทู ีป้ อนข้อมลู ให้กบั ระบบ เมอื คอมพิวเตอร์ได้รบั ข้อมลู เข้าจะทําการประมวลผล เป็น Output ให้กบั ผ้ใู ช้ระบบ โดย Output ทีระบบประมวลผลออกมาอาจเป็น Input ของผ้ใู ช้งาน เพือทําการรับ ข้อมลู ตอ่ และประมวลผลอีกครัง การโต้ตอบระหวา่ งคอมพิวเตอร์กบั ผ้ใู ช้งาน ในสว่ นของคอมพิวเตอร์จะมขี ้อจํากดั ทีมากกวา่ เนืองจากมีพืนที จํากดั อย่ใู นหน้าจอคอมพิวเตอร์ เชน่ การนําเสนอรายงานทางจอภาพ หน้าจออาจมีขนาดเลก็ เกินไปกบั ผลลพั ธ์ทีต้องการ แสดงทงั หมด ดงั นนั จงึ ควรทําการออกแบบผลลพั ธท์ ีสามารถแสดงได้ทีละหน้าหรือทีละสว่ นทีตอ่ เนืองกนั ไป เพือให้ ผ้ใู ช้งานสามารถดขู ้อมลู ได้ทงั หมดและตอ่ เนืองได้ทางจอภาพ ซงึ เป็นไปได้ทีผ้ใู ช้งานต้องการดรู ายละเอยี ดข้อมลู ทาง จอภาพเพียงอย่างเดียว หรือดรู ายละเอียดทางจอภาพเพือความแนน่ อนก่อนทีจะพิมพ์ลงเครืองพิมพ์ การนําเสนอรายงานทางจอภาพมขี ้อดี คอื ช่วยลดปริมาณกระดาษ และช่วยลดคา่ ใช้จา่ ยลงได้มาก แตร่ ายงาน บางประเภทจําเป็นต้องนําเสนอทางกระดาษ เพือใช้ในการอ้างอิงข้อมลู และจดั เกบ็ เพือเป็นหลกั ฐานไว้ใช้งานตอ่ ไป ซึง ผดิ กบั รายงานทางจอภาพทีเป็นเพียงการนําเสนอผา่ นทางจอภาพ ไมส่ ามารถจดั เกบ็ ได้ ในสว่ นของรายงานทาง เครืองพิมพ์จะต้องคํานงึ ถึงประเภทของรายงาน ขนาดกระดาษ และการใช้เครืองพิมพ์ 10.3. การออกแบบ Input
การออกแบบ Input อาจเริมต้นเขยี นด้วยแบบฟอร์ม (Screen Layout Form) ซงึ มีลกั ษณะคล้ายกบั แบบฟอร์มของการออกแบบเอาตพ์ ตุ แตจ่ ํานวนแถวและคอลมั น์จะถกู จํากดั กลา่ วคือจอภาพปกตทิ ีแสดงผลในลกั ษณะ ของข้อความ (Text) จะมอี ยจู่ ํานวน 25 แถว 80 คอลมั น์ ซงึ การออกแบบ Input จดั เป็นขนั ตอนแรกในการเตรียม ข้อมลู เพือป้ อนให้กบั ระบบ และทําการประมวลผลเพือให้ได้ผลลพั ธ์ทีต้องการ โดยวตั ถปุ ระสงค์ของการออกแบบอินพตุ (Objective of Input Design) มีดงั นี 1. ควบคมุ จํานวนอนิ พตุ : การเตรียมข้อมลู (Data Preparation) และการป้ อนข้อมลู (Data entry) ซงึ จะต้องมพี นกั งานป้ อนข้อมลู (Data Entry Operator) และจําเป็นต้องใช้กําลงั คน อาจใช้เวลามาก ในการตระเตรียมข้อมลู เพือป้ อนเข้าสรู่ ะบบเพือการประมวลผล นนั หมายถงึ การมีคา่ ใช้จ่ายทีเพิมขนึ ในช่วงของ การตระเตรียมข้อมลู หนว่ ยประมวลผลกลางจะอยใู่ นสภาวะนิง (Sit Idle) จนกระทงั มกี ารป้ อนข้อมลู เพือให้ ระบบทําการประมวลผล ดงั นนั การควบคมุ จํานวนอินพตุ ทําให้อนิ พตุ ตา่ งๆทีจําเป็น จงึ มสี ว่ นทําให้มกี าร ประมวลผลข้อมลได้รวดเร็วยิงขนึ 2. หลีกเลยี งความลา่ ช้า : ผลของการประมวลผลทีลา่ ช้า เกดิ จากการตระเตรียมข้อมลู เพือป้ อนข้อมลู เข้า และ คอมพิวเตอร์จะอยใู่ นสภาวะรอข้อมลู เพือ Input ทําให้ไมไ่ ด้ใช้ประโยชน์จากซีพียไู ด้อย่างเตม็ ที ควรมกี าร จดั การ Input ข้อมลู ทีดี มีการพิจารณาความลา่ ช้าของระบบวา่ เกิดจากสาเหตใุ ด เชน่ ในบางชว่ งเวลาทีวกิ ฤต ทีอาจมขี ้อมลู เข้าหรือมกี ารใช้บริการมากเป็นพเิ ศษ ในชว่ งนีอาจเกิดปัญหาคอขวด (Bottleneck) ได้ 3. หลีกเลยี งการป้ อนข้อมลู ทีผดิ พลาด : สารสนเทศทถี กู ต้อง จะมีความเชือถือได้มากหรือไมน่ นั ขนึ อยกู่ บั ข้อมลู ที ป้ อนเข้าไปในระบบ เชน่ สมมตวิ า่ ในหนึงสปั ดาห์มกี ารบนั ทึกข้อมลู การขายจํานวนประมาณ 10,000 รายการ และมรี ายการประมาณ 300 รายการทีมีข้อมลู ผิดพลาด นนั หมายถงึ มีข้อผิดพลาดในข้อมลู 3 เปอร์เซ็นต์ นกั วิเคราะห์ระบบจะต้องทําการลดจํานวนข้อผดิ พลาดจากการป้ อนข้อมลู เข้า ซงึ จําเป็นต้องมกี ารตรวจสอบ ข้อมลู เข้าโดยโปรแกรม เพือแจ้งให้กบั ผ้ใู ช้งานวา่ เกิดการป้ อนข้อมลู ผิดพลาดในระบบแล้ว 4. หลีกเลยี งขนั ตอนพิเศษหรือขนั ตอนทีไมจ่ ําเป็น : ในบางครงั จํานวนรายการและจํานวนข้อมลู มปี ริมาณมากเกิน เกิดจากการไมม่ ีการควบคมุ ข้อมลู เชน่ การสงั จา่ ยเช็ค ซงึ ในความเป็นจริงลกู ค้าอาจมีการสงั จ่ายเชค็ ทีถกู ต้อง และแบบกรณีพเิ ศษทีปะปนกนั ไป ทําให้ขนั ตอนการประมวลผลโดยรวมอาจเกิดประสิทธิผลทีตําลง ดงั นนั ขนั ตอนพิเศษนีอาจทําการแยกสว่ นเฉพาะไป เพือจะได้ไมป่ ะปนกนั การแตกสว่ นงานในขนั ตอนของการสงั จา่ ย เชค็ แบบกรณีพิเศษออกไปอีกสว่ นหนงึ จะทําให้ขนั ตอนการประมวลผลของการสงั จ่ายเช็คแบบปกติ สามารถ ทํางานได้รวดเร็วและสะดวก และลดปริมาณข้อมลู ทีไมจ่ ําเป็นออกไป 5. มขี นั ตอนการใช้งานงา่ ย : เป็นไปได้วา่ หากมกี ารควบคมุ ข้อมลู เข้า จะมสี ว่ นทําให้ผ้ใู ช้งานใช้งานระบบยากขนึ แตอ่ ยา่ งไร การควบคมุ ข้อมลู เข้าจะทําให้ระบบดขี นึ ในด้านของการประมวลผลข้อมลู ในขนั ตอ่ ไปทีมคี วาม ถกู ต้องสงู และง่ายตอ่ การตรวจสอบ ควรมรี ูปแบบการควบคมุ ข้อมลู และแสดงข้อมลู แนะนําให้ชดั เจน การช่วย ลดความยงุ่ ยากในการทํางานให้กบั ผ้ใู ช้งานและใช้งานง่าย ทําให้ผ้ใู ช้งานมกี ารยอมรับในระบบ 10.3.1. การออกแบบหน้าจอรับข้อมลู (Data Entry Screens Design) : ในการออกแบบหน้าจอรบั ข้อมลู มีแนวทาง 14 ข้อ คือ 1. เมอื เข้าไปทีหน้าจอรบั ข้อมลู เคอร์เซอร์ (Cursor) ต้องอย่ทู ีตาํ แหนง่ แรกของข้อมลู รบั ตามเนือหาของหน้าจอนนั ตาํ แหน่งนนั ควรอย่มู มุ บนซ้ายมอื หลงั จากผ้ใู ช้ใสข่ ้อมลู แล้วเคอร์เซอร์ (Cursor) ควรเลือนไปทีช่องรบั ข้อมลู ถดั ไป เสมอ คอื ด้านลา่ งหรือด้านข้างถดั ไปเพือให้การป้ อนข้อมลู เป็นธรรมชาติจากบนซ้ายไปขวา แล้วจึงลงมาบรรทดั ถดั ไป
2. ทกุ ชอ่ งรับข้อมลู ต้องมีคาํ อธิบาย โดยแสดงกํากบั ทีชอ่ งนนั ซึงจะต้องระบใุ ห้ชดั เจนและอยใู่ นตาํ แหน่งทีถกู ต้อง และควรมรี ูปแบบเดยี วกนั เพือให้ผ้ใู ช้ไมส่ บั สนในการทํางาน 3. ถ้าชอ่ งรบั ข้อมลู นนั มีรูปแบบเฉพาะให้แสดงรปู แบบเฉพาะนนั เพือให้ผ้ใู ช้ป้ อนข้อมลู ไมผ่ ดิ พลาด ตวั อย่างเชน่ ถ้า เป็นวนั ทีเริมต้น (Start Date) ซงึ กําหนดฟิ ลดเ์ ป็น DD/MM/YYYY คอื ใสว่ นั นีเป็นเลข 2 หลกั ตามด้วย “/” ตามด้วยเดอื นซงึ เป็นเลข 2 หลกั ตามด้วย “/” ตามด้วยปี เป็นเลข 4 หลกั 4. ในทกุ ครังทีป้ อนข้อมลู ในชอ่ งรับข้อมลู นนั ครบถ้วนให้ผ้ใู ช้กด “Enter” เพือไปยงั ช่องรับข้อมลู ถดั ไป หรือในกรณี ทีใสข่ ้อมลู เท่าจํานวนของข้อมลู นนั แล้ว เคอร์เซอร์ควรไปยงั ช่องรบั ข้อมลู ถดั ไปอตั โนมตั เิ พือรับข้อมลู ตอ่ ไป เพือ อาํ นวยความสะดวกตอ่ ผ้ใู ช้ 5. กรณีข้อมลู รับเข้าเป็นตวั อกั ษรแล้วควรออกแบบให้สามารถใสต่ วั อกั ษรพิเศษอตั โนมตั ิโดยผ้ใู ช้ไมต่ ้องใสเ่ อง เช่น ถ้าต้องการให้ผ้ใู ช้ป้ อนรหสั สนิ ค้าทจี ะคนั ด้วย “-“ คอื รหสั สนิ ค้ามาตรฐานคอื 99-999-99 แล้วผ้ใู ช้เพียงป้ อนตวั เลข คือ 9999999 คา่ แสดงผลการป้ อนจะเป็น 99-999-99 ให้ผ้ใู ช้เห็นทนั ที โดยผ้ใู ช้ไมต่ ้องยงุ่ ยากกบั การป้ อน “-“ เป็น ต้น 6. กรณีข้อมลู รบั เข้าต้องการแสดงผลรับเป็นเลข “0” ให้แสดงโดยผ้ใู ช้ไมต่ ้องป้ อนเอง เชน่ ถ้าป้ อนรหสั โครงการทีมี การแสดงผลเป็น zzzz คือแสดงตวั เลข “0” ถ้าคา่ นนั เป็น “0” ดงั นนั เมอื ผ้ใู ช้ป้ อนเลข “45” เมือแสดงผลรับ ข้อมลู นนั จะแสดง “0045” เป็นต้น 7. กรณีนีข้อมลู รับเข้าเป็นจํานวนเลขทีนําไปคํานวณคา่ เชน่ ถ้าเป็นตวั เลขทีแทนจํานวนเงนิ ควรมี “,” คนั หลกั พนั หรือจดุ ทศนิยมขนึ อตั โนมตั ิ คือ เมอื ผ้ใู ช้ใส่ จํานวนเงนิ 1980 บาท จะเป็น 1,980.00 บาท ทนั ที 8. กรณีชอ่ งรับข้อมลู นนั มคี า่ ทีสามารถกําหนด (Default) ได้ ระบบนนั ควรแสดงคา่ ทีกําหนดนนั (Default) ที ช่องนนั เพืออาํ นวยความสะดวกกบั ผ้ใู ช้โดยผ้ใู ช้เพียงกด “Enter” เพือรบั คา่ นนั เลยโดยผ้ใู ช้ไมต่ ้องป้ อนข้อมลู นนั เช่นถ้าเป็นวนั ทีใช้คอื วนั ทีปัจจบุ นั เป็นคา่ ทีกําหนดให้ผ้ใู ช้เหน็ ซงึ ผ้ใู ช้สามารถกด “Enter” เพือรบั คา่ เข้าระบบได้ ทนั ที แตถ่ ้าต้องการเปลยี นสามารถเปลยี นได้ตามความต้องการของผ้ใู ช้ เป็นต้น 9. สาํ หรับข้อมลู รบั ทีเป็นรหสั ทีต้องมกี ารตรวจสอบกอ่ นบนั ทึก คอื คา่ นนั มีความสมั พนั ธ์กบั คา่ อืนทีบนั ทกึ ไว้เดิมแล้ว เมอื มกี ารป้ อนรหสั นนั ต้องรบั คา่ นนั ไปตรวจสอบทีแฟ้ มข้อมลู ทีอ้างถงึ เพือตรวจสอบวา่ เป็นรหสั เดิมหรือไม่ ถ้าใชใ่ ห้ แสดงผลพร้อมคา่ ทีต้องการแสดงเพือระบรุ ายละเอียดของรหสั นนั ให้ผ้ใู ช้ทราบวา่ ป้ อนรหสั ไมผ่ ดิ เชน่ กรณีในการใส่ รหสั ลกู ค้าคือ “001” ซงึ หมายถึง “บริษัท ก” เมอื ผ้ใู ช้ป้ อนรหสั ลกู ค้าคือ “001” ควรแสดง “บริษัท ก” ให้ผู้ ใช้ได้เหน็ ทางหน้าจอด้วย เป็นต้น 10. ควรมีป่ มุ คําสงั ตา่ งๆ ตามความเหมาะสมของการใช้งานหน้าจอนนั เชน่ มปี ่ มุ คําสงั เพือออกจากหน้าจอ Data Entry (Data Entry Screen) โดยไมต่ ้องบนั ทกึ ข้อมลู (Exit without Adding record) หรือมี ป่ มุ คําสงั ในการเคลยี ร์หน้าจอ (Clear Current Record) เป็นต้น 11. หลงั จากป้ อนข้อมลู ในหน้าจอนนั สมบรู ณ์แล้วและได้รบั การตรวจสอบแล้วควรมกี ารให้ผ้ใู ช้ได้ตรวจสอบ และ ยืนยนั หรือยกเลกิ กอ่ นบนั ทึกข้อมลู เข้าเครืองเชน่ “บนั ทกึ ข้อมลู ทีเพิมเติมนีหรือไม”่ (Add this record?(y/n) เป็นต้น 12. ควรเตรียมป่ มุ รบั คาํ สงั เพือเคลอื นย้ายเคอร์เซอร์ในฟิ ลด์ตา่ งๆ ในหน้าจอเพือให้ผ้ใู ช้ได้แก้ไขก่อนจะบนั ทกึ เข้า เครือง เชน่ อาจใช้ป่ มุ “TAB” ในการเคลอื นไปยงั ฟิ ลดถ์ ดั ไป และใช้ “SHIFT+TAB” ในการเคลือนไปยงั ฟิ ลดก์ อ่ นหน้า เป็นต้น
13. ถ้าผ้ใู ช้ดาต้าแคปเจอร์เพือป้ อนข้อมลู ในการออกแบบหน้าจอดาต้าเอนทรี นนั ควรให้สอดคล้องกบั ดาต้าแคป เจอร์นนั เชน่ หน้าจอ ดาต้าเอนทรี ซึงสอดคล้องกบั เอกสาร (Source Document) 14. ในการออกแบบหน้าจอควรมคี ําสงั ตอ่ ไปนีคือ เพิมข้อมลู (Add) ปรบั แก้ข้อมลู (Change) ลบข้อมลู (Deletes) และแสดงผลข้อมลู (View) ของรายการตา่ งๆ คําสงั ทีต้องระวงั เป็นพิเศษควรมกี ารยืนยนั คําสงั นนั กอ่ นจะปฏบิ ตั ิคาํ สงั นนั ด้วย 10.3.2. ประเภทของการออกแบบความสมั พนั ธ์กบั ผ้ใู ช้ 1. การออกแบบความสมั พนั ธ์กบั ผ้ใู ช้ด้วยเมนู ระบบเมนถู ือเป็นการออกแบบความสมั พนั ธ์ประเภทหนงึ ทีนิยมใช้กนั มาก เนืองจากในชีวติ ประจําวนั มกั ใช้ใน ลกั ษณะนี เชน่ ในร้านอาหาร หากเราต้องการสงั อาหารมกั จะเลอื กรายการอาหารทีตนต้องการจากเมนู เช่นเดยี วกบั ระบบเมนใู นคอมพิวเตอร์ ทีผ้ใู ช้งานสามารถเลือกรายการทีตนต้องการได้ โดยรปู แบบของเมนมู ลี กั ษณะตา่ งๆ 2. การออกแบบความสมั พนั ธ์กบั ผ้ใู ช้ด้วยคําสงั
การออกแบบความสมั พนั ธก์ บั ผ้ใู ช้ด้วยคาํ สงั ผ้ใู ช้งานจะต้องมคี วามรู้ในการใช้คําสงั ตา่ งๆ เป็นอย่างดจี ึงจะ สามารถทําการโต้ตอบกบั ระบบได้ เชน่ ในระบบปฏิบตั ิการดอส (DOS) หรือระบบปฏบิ ตั กิ ารยนู ิกส์ (Unix) ผ้ใู ช้งานต้องรู้คาํ สงั การใช้งานตา่ งๆ เพือติดตอ่ กบั ระบบ จงึ จะสามารถปฏิบตั กิ ารโต้ตอบกบั ระบบได้หรือโปรแกรม ฐานข้อมลู เชน่ dBASE หรือ FoxPro ทีออกแบบความสมั พนั ธ์กบั ผ้ใู ช้ ด้วยการป้ อนคําสงั เพือใช้งาน 3. การออกแบบความสมั พนั ธ์กบั ผ้ใู ช้แบบกราฟิ ก การออกแบบความสมั พนั ธ์กบั ผ้ใู ช้แบบกราฟิ ก หรือทเี รียกวา่ Graphics User Interface ในปัจจบุ นั เป็นทีนิยมมาก เนืองจากสามารถสือสารกบั ผ้ใู ช้ในลกั ษณะข้อความได้แล้ว ยงั สามารถสือสารในรูปแบบของภาพตา่ งๆได้ อกี ด้วย ทําให้ผ้ใู ช้งานเกิดความเข้าใจและใช้งานได้ง่ายกวา่ ซึงตรงกบั คาํ วา่ รูปภาพเพียงหนึงรูป สามารถแสดง ความหมายได้มากมาย เช่น ในระบบสนิ ค้าคงคลงั ในการตรวจสอบคลงั สนิ ค้าอะไหลห่ รือเครืองมอื ตา่ งๆ อาจมีการ ออกแบบให้สามารถดลู กั ษณะสินค้าในคลงั ได้ เป็นต้น
บทที 11 แนวความคดิ เชิงวตั ถุ (Object – Oriented Concept) 11.1. ความหมายของ Object ความหมายของ Object แบ่งไดเ้ ป็น 2 ประเภทคือ สิงทีเป็นรูปธรรมและนามธรรม ทีมอี ยจู่ ริงบนพนื โลก (real-world) - สิงทีมีลกั ษณะเป็นรูปธรรม (จบั ตอ้ งได)้ เช่น จกั รยาน รถ สุนขั องคก์ ร ใบรายการสินคา้ เป็นตน้ - สิงทีมีลกั ษณะเป็นนามธรรม (จบั ตอ้ งไม่ได)้ เช่น ความเป็นเจา้ ของ เทียวบิน การวิง แสง เป็นตน้ Object ทุก object จะประกอบดว้ ย 2 ส่วนปฏบิ ตั ิการคือ attribute และ method โดย attribute หรือเรียก ไดอ้ กี อยา่ งวา่ data และ method ทีเรียกไดว้ า่ behavior จะมีรายละเอยี ดดงั ต่อไปนี Object data : ในทาง o-o programming จะเรียก data ของ object วา่ attribute และในการเขียนโปรแกรม ส่วน attribute ของ object จะเป็นส่วนขอ้ มลู ลบั ของ object ทีจะทราบเฉพาะภายใน object เท่านนั (จะไดท้ ราบ ต่อไปว่าทาํ ไม) ซึงในทีนีจะขอยกตวั อยา่ งบางตวั อยา่ งของ attribute บน Object บางส่วนดงั นี Object คน จะมี attribute คือ หลายเลขบตั รประชาชน, วนั เกิด, เพศ, เบอร์โทรศพั ท์ เป็นตน้ Object สุนขั จะมี attribute คือ ชือ, สี, พนั ธ,์ อาหาร เป็นตน้ หมายเหตุ คาํ วา่ data และ attribute นนั มีความใกลเ้ คียงกนั ในความหมาย โดยถา้ พดู ถงึ “สี” ความหมายของ attribute คือ สี และ data คือ แดง, ดาํ , เหลือง, เขียว เป็นตน้ ดงั นนั คาํ ว่า attribute จะครอบคลุมกวา่ Object Behavior : Behavior ของ Object คือสิงที Object นนั ๆ สามารถทาํ ไดใ้ นทาง Procedural language จะเรียก Behavior เป็น Procedure , Function หรือ Subroutine ส่วนในทาง O-O programming จะเรียก Behavior เป็น Method ซึง Method คือลาํ ดบั คาํ สงั ในการทาํ งานของ Computer ตวั อยา่ ง เช่น Object คน จะมี Methods คือ การเดิน, ยนื , มบี ตั รประจาํ ตวั , มรี ถ เป็นตน้ Object สุนขั จะมี Methods คือ การเห่า, การหายใจ ,การกระดิกหาง เป็นตน้ หมายเหตุ คาํ วา่ Method sหรือ Behavior จะมีความหมายเหมือนกนั ภายใน Object หนึง นนั จะประกอบดว้ ย attribute และ method ซึงไดท้ ราบแลว้ ในขา้ งตน้ โดยโครงสร้างของ Object แลว้ นนั สามารถเปรียบเทียบไดว้ า่ ส่วนของ attribute จะไดร้ ับการห่อหุม้ (Encapsulate) ดว้ ย method ดงั นนั เมอื object ใดๆ ตอ้ งการจะติดต่อกนั จะตอ้ งผา่ นส่วนทีเรียกวา่ method เท่านนั จากลกั ษณะดงั กลา่ วส่วนของ method จึงตอ้ งมีขอ้ มลู ทีสามารถเปิ ดเผยให้ object อนื ทราบไดด้ งั นี - ชือของ method ทีใชใ้ นการอา้ งถึง - คุณลกั ษณะ หรือ properties ของ object นนั ๆ - Parameters ทีใชใ้ นการรับส่งค่าระหวา่ ง method
หมายเหตุ คาํ วา่ Object Orientation นนั มาจากคาํ วา่ Object ซึงแปลว่าวตั ถุทงั ทีจบั ตอ้ งได้ และจบั ตอ้ งไมไ่ ด้ และ Orientation ซึงมาจากคาํ ว่า Orient ซึงเป็นคาํ กริยาทีแปลวา่ นาํ ทาง นาํ ไป ซึงเมอื นาํ คาํ ทงั สองมารวมกนั แลว้ Object Orientation จะหมายถงึ การใช้ Object เป็นตวั หลกั เพอื การพจิ ารณาความเป็นจริงต่างๆทีเกิดขึนในโลก 11.2. การสือสารระหว่าง Object ในการสือสารระหว่างกนั ของ Object จาํ เป็นตอ้ งมสี ่วนทีเรียกวา่ Message เป็นส่วนประกอบสาํ คญั ร่วมดว้ ย เพือใหท้ ราบถึงจุดประสงคใ์ นการตดิ ต่อระหวา่ งกนั สมมตวิ า่ Object หนึงเป็น Sender และอีก Object หนึงเป็น Receiver ดงั นนั เมอื Sender ส่ง message ไปเพอื ร้องขอการทาํ งานบางอยา่ ง receiver จะส่งผลเป็นค่า return value กลบั ไปยงั sender attribute attribute message method Receiver method Return Value Sender ตวั อยา่ ง ระบบการทาํ งานทีมี Object Employee และ Object Payroll ทาํ งานร่วมกนั โดยที Object Payroll ทาํ หนา้ ทีคาํ นวณค่าเงินเดือนของ Object Employee ส่วนประกอบภายในของทงั 2 Object ไดแ้ ก่ 1. Object Employee ประกอบดว้ ย - attribute : SocialSecurityNumber, Gender, DateofBirth - method : GetsocialSecurityNumber, GetGender, getDateOfBirth 2. Object Payroll ประกอบดว้ ย - attribute : Pay - method : calculatePay ในกรณีนี object Payroll จะตอ้ งทาํ การร้องขอ SocialSecurityNumber (หมายเลขบตั รประชาชน) ทีเป็น ส่วน attribute ของ object Employee โดย Object Payroll จะทาํ การส่ง message ไปยงั method GetSocialSecurityNumber เพือร้องขอขอ้ มลู SocialSecurityNumber เพอื ทาํ การคาํ นวณค่าเงินเดือน ของพนกั งาน จากหลกั การสือสารระหว่างกนั ของ Object 2 Object สามารถแยกประเภทของการสือสารออกไดเ้ ป็น 2 กรณี ดงั นี กรณีที 1 Object Sender ร้องขอขอ้ มลู จาก Object receiver และจาํ เป็นตอ้ งรอการคืนค่ากลบั ตวั อยา่ ง เช่น object School ตอ้ งการถามรายชือของนกั เรียน โดยส่ง message ไปยงั Object student และทางฝ่ าย Object Student จะทาํ การส่งคืนค่า (Return) รายชือกลบั ไปยงั School Object กรณีที 2 Sender ตอ้ งการส่งค่าบางค่าไปเปลยี นแปลงขอ้ มลู ทีฝัง Receiver ซึงในกรณีนี Sender ไมจ่ าํ เป็นตอ้ งสนใจ การคนื ค่ากลบั เช่น Object School ตอ้ งการเปลียนชือนกั เรียน โดยส่ง message ไปที object Student เพือแจง้
การเปลยี นชือ จากนนั object student จะทาํ การเปลยี น attribute ทีเป็นชือนกั เรียนใหเ้ ป็นชือใหม่ ในกรณีนี object school จะไมส่ นใจวา่ จะมคี ่า return กลบั มาหรือไม่ 11.3. Class Object ทุกตวั จะตอ้ งอยใู่ น Class ซึง Class กบั Object เป็นสิงทีคู่กนั เสมอ สามารถทราบรายละเอยี ดและคุณสมบตั ิ (Characteristic) ของ Object ไดด้ ว้ ยการดทู ี Class Class คือ กลุม่ ของ Object ทีมโี ครงสร้างพนื ฐานพฤติกรรมเดยี วกนั ดงั นนั Object ทีมคี ุณสมบตั ิลกั ษณะเดยี วกนั นีจะ รวมกลุ่มอยใู่ น Class เดียวกนั (Object are grouped in class) จึงสามารถสรุปไดว้ า่ Class คือ ตน้ แบบขอ้ มลู (Information) ทีมีไวเ้ พือสร้าง Object นนั เอง Class นอกจากจะมชี ือ Class ทีบอกคุณสมบตั ิของ Class นนั แลว้ ยงั มี Attribute และ Operation ต่างๆ ซึงเป็นตวั อธิบายรายละเอยี ด และหนา้ ทีต่างๆโดยสามารถแสดงในลกั ษณะ Template ดงั นี Name Attributes Operations Responsibilities ตวั อย่าง Class ของ Student Student {abstract} StudentIdNumber FirstName LastName Address City State Zipcode TelephoneNumber DateofBirth GradPointAverage Etc…. RegisterForCourse DropCourse ChangeAddressPhone RequestTranscript Etc…
ตวั อย่าง Class คือแบบรูปดาวทีสร้างจากแผน่ ไม้ (Template) และ Object คือรูปดาวทีสร้างจากตวั แบบรูปดาวทีทาํ หนา้ ทีเป็น Class นนั ซึง Object ทีถกู สร้างขึนมาจะมีลกั ษณะเหมอื นกบั Class ทีเป็นตน้ แบบ แต่โดยคุณสมบตั ิของ Object แลว้ จะสามารถเพมิ คุณสมบตั ิเฉพาะของตวั เองขึนมาได้ ในทีนีไดแ้ สดงใหเ้ ห็นวา่ แต่ละ Object จะเพมิ สีขึนมาเป็น คุณสมบตั ิเฉพาะตวั เองขึนมาได้ ในทีนีแสดงใหเ้ ห็นวา่ แต่ละ Object จะเพมิ สีขึนมาเป็นคุณสมบตั ิเฉพาะของตวั เองขึนมาได้ แต่คุณสมบตั ิพนื ฐานจะไดร้ ับการสืบทอดมาจาก class ทีเป็นตน้ แบบ ตวั อย่าง มแี มน่ กตวั หนึง แม่นกตวั นนั สามารถมองไดว้ า่ เป็น Object แต่เมอื มลี กู นกเกิดขึน ลกู นกกม็ องไดว้ า่ เป็น Object เนืองจากลกู นกจะสืบทอดคุณสมบตั จิ ากแม่ ซึงทาํ ใหเ้ ราสามารถมองไดว้ ่า แมน่ กเป็น Class ๆ หนึงเช่นกนั 11.4. Encapsulation (Protection) Encapsulation คือรากฐานอยา่ งหนึงของแนวความคิดในเชิง Object-Oriented ซึงขอ้ ดีของ Encapsulation คือการป้ องกนั attribute (data) ของ object จากความเสียหาย เพราะถา้ ส่วนของโปรแกรมทงั หมด อนุญาตใหม้ ีการ เขา้ ถงึ Attribute ไดต้ ามทีตอ้ งการแลว้ นนั จะส่งผลให้ attribute นนั ง่ายต่อการถกู ใชอ้ ยา่ งผดิ ๆ ทาํ ใหค้ ่า attribute เปลียนแปลงไป ซึงก่อใหเ้ กิดความเสียหายตามมา Encapsulation คือการห่อหุม้ attributes และ methods เขา้ ไวด้ ว้ ยกนั Encapsulation จะทาํ หนา้ ทีป้ องกนั มใิ ห้ Object อนื ทีอยภู่ ายนอก เขา้ ถึง Object หนึงๆ ไดอ้ ยา่ งอสิ ระจะมเี ฉพาะ methods ทีอยใู่ น Object เท่านนั จะสามารถติดต่อกบั attribute ทีอยใู่ น Object เดียวกนั ได้ เรียกไดว้ า่ การ Encapsulation มคี ุณสมบตั ิของ Information hiding Information Hiding คือการจาํ กดั การมองเห็นขอ้ มลู ภายใน Object เช่นการกาํ หนดคุณลกั ษณะเป็น “public” เพือใหส้ ามารถเชือมต่อกบั Object ภายนอกได้ และกาํ หนดเป็น “private” เพือจาํ กดั attribute ใหอ้ ยภู่ ายใน object เท่านนั 11.5. Inheritance (การสืบทอดคุณสมบตั )ิ ใน Procedural Programming จะทาํ การจดั หาส่วนของโปรแกรมทีมกี ารใชซ้ าํ บ่อยๆ เพือนาํ กลบั มาใชใ้ หม่ (reuse) ในรูปของโปรแกรมยอ่ ย (Procedure หรือ Function) ซึงเราจะสามารถเรียกใชซ้ าํ ไดห้ ลายครังตามตอ้ งการ อยา่ งไรกต็ าม ใน O-O Programming มคี ุณสมบตั ิขอ้ นีเช่นกนั แต่ยงั มกี ารออกแบบทีพิเศษมากขึนกวา่ การ reuse คือ ความสามารรถในการจดั การกบั Class และกลมุ่ ของ Class ต่างๆ โดยคณุ สมบตั ิทีเรียกวา่ “Inheritance” ที ประกอบดว้ ยหลกั การของ Superclass/Subclass, Abstraction และ is-a relationship ซึงหลกั การต่างๆ เหลา่ นีจะช่วยใหก้ ารออกแบบโครงสร้างโปรแกรมแบบ O-O ทาํ ไดง้ ่ายขึน Inheritance คือ คุณสมบตั ิที Class ๆ หนึง สามารถสืบลกั ษณะของ attribute และ method ของ อกี Class หนึงไดก้ ารทาํ เช่นนีทาํ ใหค้ ุณสามารถ Create Class ใหมข่ ึนโดยนาํ สาระสาํ คญั ทีเหมอื นกนั ของ attribute และ behavior(method) จาก class อืนมาใชไ้ ด้ ดงั รูป
Class A B C Inheritance A B C Subclass or object จากรูปทีขา้ งตน้ A, B, C คือ method ทีสืบทอดมาจาก Class เดิม ส่วน คือ method ที Subclass สร้าง ขึน และ , คือ attribute ทีสร้างขึนใชใ้ น SubClass เพอื แสดงลกั ษณะของตวั เองลกั ษณะการ Inheritance จะมี 2 แบบ คือ แบบที 1 Object ใหม่ 1 Object ทีถกู สร้างขึนมามกี ารสืบทอดลกั ษณะจาก Class แมเ่ พียง 1 Class จะเรียกว่า Single inheritance จะเห็นไดว้ ่า Object Helicopter จะสืบทอดลกั ษณะมาจาก Object Aircraft เพยี ง Object เดียว Vehical Object Ship Obj Aircraft Obj Helicopter Obj New Object
แบบที 2 บาง Object จะมีการสืบทอดลกั ษณะจาก Class แม่ 2 Class ขึนไป ซึงจะเรียกวา่ Multiple inheritance ดงั รูป Vehical Object Ship Obj Aircraft Obj Weapon Obj Helicopter Obj Missile Obj Single inheritance หมายถึง การที Object หนึงๆ ไดร้ ับการสืบทอดลกั ษณะจาก Object อนื เพียง 1 Object Multiple inheritance หมายถงึ การที Object หนึงๆ ไดร้ ับการสืบทอดลกั ษณะจาก Object อืนมากกวา่ 1 Object จากรูปดา้ นบนจะเห็นวา่ Object Missile จะเกดิ จาก Object Aircraft และ Object Weapon การสืบทอดลกั ษณะแบบนีมขี อ้ ควรระวงั คือ ชือของ attribute ในแต่ละ Object ทีไดร้ ับการสืบทอดมา ถา้ ชือซาํ กนั จะเกิด ความกาํ กวมขึน ซึงควรหลกี เลียงการตงั ชือกนั ในแต่ละ Object สรุปไดว้ า่ คุณสมบตั ิทกุ ๆ สิง (attribute,method) ทีอยู่ ใน Parent Class จะถกู ถ่ายทอดไปสู่ Childclass 11.5.1.Superclasses&Supclasses Superclass เป็นคุณสมบตั ิหนึงทีเกิดจากการ Inheritance โดย Superclass หรือ Parent class หมายถึง class ทีมี attribute และ method ทีจะให้ class ทวั ไปสืบทอดคุณสมบตั ิจากตวั เอง ส่วน subclass หรือ child class หมายถึง class ทีสืบคุณสมบตั ิมาจาก parent class ในการสืบทอดคุณสมบตั ิจาก Superclass ไปยงั Subclass นนั Subclass จะมคี ุณสมบตั ขิ อง attribute และ method ทุกอยา่ งจาก Superclass ตวั อยา่ งดงั รูป Motor Vehicle Bus Truck Car
11.6. Polymorphism Polymorphism หมายถงึ การบอกแบบเดียว แต่ไดร้ ับการตอบสนองหลายรูปแบบ (Poly=”many”, morph = “form” ซึงเป็นไปตามหลกั การของเทคโนโลยเี ชิงวตั ถทุ ีกล่าวมาแลว้ คือ จะเนน้ ทีตวั ปฎิบตั ิการมากกวา่ การปฎิบตั ิการ ดงั นนั รายละเอยี ดหรือหนา้ ทีต่างๆ จะขึนอยกู่ บั เราวา่ จะไปมคี วามสมั พนั ธก์ บั ตวั ปฎิบตั กิ ารเหลา่ นนั อยา่ งไร ตวั อย่าง DrawChart() คือ ฟังกช์ นั การวาด หมายรวมถึงความสามารถในการวาดรูปไดใ้ นหลายๆ ลกั ษณะมิได้ เฉพาะเจาะจง เช่น การวาดรูปวงกลม วงรี สามเหลียม สีเหลียม ฯลฯ ซึงหมายความวา่ หากตอ้ งการใหม้ กี ารตอบสนองรูปวาด ต่างๆ นนั ผใู้ ชส้ ามารถติดต่อไดด้ ว้ ยการใชฟ้ ังกช์ นั DrawChart() เพียงฟังกช์ นั เดียว ส่วนจะมกี ารตอบสนองการวาดใน ลกั ษณะใดนนั ขึนอยกู่ บั รายละเอยี ด ดงั นนั ผใู้ ชง้ านไมจ่ าํ เป็นตอ้ งจดจาํ ฟังกช์ นั ในการวาดต่างๆ มากมาย ซึงแตกต่างจากการเขียน โปรแกรมแบบเดิม ทีจาํ เป็นตอ้ งมีฟังกช์ นั การวาดต่างๆ มากมายในการวาดรูปเหล่านนั เช่น ฟังกช์ นั วาดรูปสีเหลียมฟังกช์ นั วาด รูปสามเหลียม วงกลมฯลฯ ดงั นนั หลกั การของ Object-Oriented นีจะสามารถลดความยงุ่ ยากในการจดจาํ คาํ สงั และลด คาํ สงั ลงไดม้ าก แต่ละ Class สามารถมกี ารตอบสนองทีต่างกนั ต่อ method เดียวกนั นีเรียกวา่ polymorphism 11.7. ความสมั พนั ธใ์ นแบบ Composition ตวั อยา่ ง Employee คือ Person และการทาํ งานของ Employee จะไม่มกี ารส่ง message ไปยงั person object เพราะ Employee object มีหนา้ ทีเพียงใหบ้ ริการต่อ person object นนั สรุปไดว้ า่ Employee object คือ person object หนึงนนั เองดงั รูปแสดงความสมั พนั ธ์ Person Class และ Employee class ใน ลกั ษณะ inheritance อยา่ งไรก็ตาม Composition จะอยใู่ นสถานะทีต่างจาก inheritance เพราะ Composition จะแทนไดด้ ว้ ยการติดต่อกนั ระหวา่ ง Object ต่างๆ มีการรับส่ง message แลกเปลยี นกนั เพอื ร้องขอ การทาํ งานหรือใหบ้ ริการ ซึง Composition จะช่วยใหอ้ อกแบบระบบไดง้ ่ายขึน Person - Name : String - SSNum :String - Age :int + getName : Stirng + getSSNum:string + getAge :int + setName :void + setSSNum : void + setAge :void Employee - CompanyID:string - จากออ้ tring - SSNum :String - Age :int + getName : Stirng
+ getSSNum:string + getAge :int + setName :void + setSSNum : void + setAge :void ขอ้ ดีของ Composition มดี งั นี 1. ทาํ ใหร้ ะบบมีความซบั ซอ้ นนอ้ ยทีสุด โดยการจดจาํ เพยี งขอ้ มลู ชินใหญ่ๆ ทีประกอบจากส่วนประกอบยอ่ ยๆ หลายๆ ส่วน เช่น เมอื พดู ถงึ พวงมาลยั เกียร์ เครืองยนต์ เบรก เบาะนงั กระจก ฯลฯ สิงทีกลา่ วมาทงั หมดนีสามารถพดู ไดง้ ่ายๆวา่ “รถยนต”์ และสามารถรู้ไดท้ นั ทีวา่ ภายในรถยนตป์ ระกอบดว้ ยส่วนต่างๆ เหล่านี โดยไม่จาํ เป็นตอ้ งบรรยายถงึ ส่วนประกอบยอ่ ยๆ ทงั หมด 2. Composition มสี ่วนช่วยในการ reuse เช่น การแลกเปลียนส่วนต่างๆ ของระบบสามารถทาํ ไดเ้ พราะชนิ ส่วน ต่างๆ เป็น object ทีมกี ารทาํ งานเป็นของตนเอง และไมถ่ กู ควบคุมจาก object อนื ยกตวั อยา่ ง รถยนตห์ นึงคนั ลอ้ ที ทาํ หนา้ ทีช่วยในการเคลือนทีของรถยนตน์ นั สามารถถอดเปลยี นไดแ้ ละสามารถใชล้ อ้ ยหี อ้ อนื ไดเ้ ช่นกนั ไมจ่ าํ เป็นจะตอ้ ง เป็ นชินส่วนเดิมเท่านนั 3. การแบ่งระบบออกเป็นส่วนการทาํ งานยอ่ ยๆ นนั ส่วนต่างๆ จะสามารถทาํ งานไดเ้ ป็นอิสระต่อกนั ส่งผลใหก้ ารทดสอบ หรือปรับปรุงแกไ้ ขแต่ละส่วนสามารถทาํ ไดอ้ ยา่ งอิสระ ไม่ส่งผลกระทบต่อ object หรือส่วนยอ่ ยอืนๆ ในระบบ จะ เห็นไดว้ า่ class ของรถยนตห์ นึงคนั จะประกอบไปดว้ ย class ต่างๆ โดยทีแต่ละ class เหลา่ นีมีหนา้ ทีเฉพาะใน การทาํ งานของตนเอง เช่น Class ลอ้ จะทาํ หนา้ ทีหมนุ เพือใหร้ ถเคลอื นที class ประตู จะทาํ หนา้ ทีเปิ ด และปิ ดเมือ ตอ้ งการเขา้ หรือออกจากรถ เป็นตน้ เมอื จะตอ้ งทาํ การแกไ้ ขส่วนประกอบภายในของ class รถยนตเ์ ช่น แบตเตอรีหมด ทาํ การเปลียนแบตเตอรี (ขอ้ งเกียวกบั class แบตเตอรีเพียง class เดียว)หรือตอ้ งการใหเ้ ครืองยนตม์ คี วามแรงเพมิ มากขึน สามารถเพมิ กาํ ลงั ความเร่งใหก้ บั เครืองยนตไ์ ด้ (ขอ้ งเกียวกบั class เครืองยนตเ์ พยี ง classเดียว) หรือเมอื ยาง ลอ้ แบน สามารถสูบลมเพมิ ใหก้ บั ยางรถยนตไ์ ด้ (ขอ้ งเกียวกบั class ยางรถยนตเ์ พียง class เดียว) จะเห็นไดว้ า่ เมอื แยกส่วนประกอบต่างๆ ออกเป็น Class จะสะดวกในการทาํ งานของระบบมากขนึ ดงั ภาพแสดงส่วนประกอบของ Class รถยนตใ์ นแบบ composition
Class เบรค{ Class ประตู{ Class ลอ้ { } } } Class แบตเตอร์รี{ } Class ลูกสูบ{ Class เครืองยนต{์ } } Class พวงมาลยั { Class กระจก{ } } 11.7.1. ชนิดของ Composition สามารถแบ่งออกไดเ้ ป็น 2 ประเภทดงั นีคือ 11.7.1.1. Aggregations 11.7.1.2. Association ซึงทงั 2 ประเภทนีจะแทนทีการทาํ งานร่วมกนั ของ object โดย aggregation จะแสดงใหเ้ ห็นส่วนประกอบยอ่ ยๆ ที ประกอบขนึ เป็นส่วนประกอบหลกั 1 ชินงานทีสมบรู ณ์ เช่น Computer จะประกอบไปดว้ ย monitor, CD- ROM, Harddisk, Power Supply, Mainboard, Sound Card เป็นตน้ ส่วน Association จะแสดงใหเ้ ห็นถึงส่วนประกอบยอ่ ยหลายๆ ส่วนทีเป็นอิสระต่อกนั แต่มาประกอบร่วมกนั ขนึ เพอื ใหเ้ ป็นชุดงาน 1 ชินที สมบรู ณ์ เช่น Stereo จะประกอบดว้ ย ลาํ โพง, หูฟัง, รีโมต เป็นตน้ ซึงทงั สองวิธีนีจะต่างกนั ทวี ิธีการคิด ดงั นี 11.7.1.1. Aggregations ส่วนใหญ่แลว้ ิธีการของ Composition จะคิดในแนวของ Aggregation ซึงหมายถึงการนาํ ส่วนประกอบยอ่ ยๆ หลายๆ อยา่ งมาประกอบเป็นหนึง object ทีสามารถใชง้ านไดอ้ ยา่ งสมบูรณ์ เช่น TV เครืองหนึง ผคู้ นทีผา่ นไปมาคง สงั เกตแต่เพียงวา่ ใชง้ านอยา่ งไร ขนาดจอกีนิว แต่จะไม่มใี ครสนใจวา่ ภายในประกอบดว้ ยอะไรบา้ ง มหี ลอดภาพเป็นอยา่ งไร มี transistor เป็นอยา่ งไร หรือเมอื ตอ้ งการเลอื กซือรถยนตค์ นั หนึง โดยทวั ไปจะพิจารณาเพียงวา่ มีเครืองยนตแ์ รงหรือไม่ มสี ิงอาํ นวยความสะดวกเช่น Stereo หรือไม่ ซึงทงั หมดนีเป็นการมองภาพรวมทงั หมดของวตั ถุ มองวตั ถุว่าเป็นชนิ งานที สมบูรณ์หนึงชิน นนั คือการมองในแง่มมุ ของ Programmer ซึงเป็นผทู้ าํ การติดต่อกบั Class หรือเป็นผใู้ ช้ Class ถา้ เป็นตวั อยา่ งโครงสร้างของ object car เมอื Programmer ตอ้ งการจะติดต่อกบั Object car หรือเรียกใช้ object car จะสามารถทาํ ไดโ้ ดยสะดวกมากกว่าทีจะตอ้ งเรียกใชก้ ารทาํ งานของ object Engine, object door, object stereo เป็นตน้ ทีเป็นส่วนประกอบของ object car เรียกไดว้ า่ object car คือส่วน interface ทีสร้างไวเ้ พอื ใชต้ ิดต่อกบั programmer หรือ object อนื แต่ทงั นีในมมุ มองของผอู้ อกแบบระบบ จะตอ้ งมองถงึ รูปแบบการสร้าง object car ภายในระบบดว้ ย นนั คือส่วนประกอบภายในจะตอ้ งประกอบดว้ ย object
ยอ่ ยๆ เพีอสะดวกในการทาํ งานและการแกไ้ ขระบบในภายหลงั เช่น โครงสร้าง object รถยนตใ์ นมุมมองของผอู้ อกแบบ ระบบจะตอ้ งสร้าง object ต่างๆ ซึงเรียกไดว้ ่าเป็นการออกแบบดว้ ยวิธี Composition แบบ Aggregation ดงั นนั วธิ ี composition แบบ aggregation คือการสร้าง object ยอ่ ยๆ ไวภ้ ายในระบบเพือพงึ พาอาศยั กนั ใน การทาํ งาน โดยยดึ หลกั ทวี า่ ใหส้ ่วน interface แก่ user (programmer หรือ object อืน) ใหน้ อ้ ยทีสุด และจาก ลกั ษณะของ object ยอ่ ยๆ ยงั ช่วยใหก้ ารเปลยี นแปลงแกไ้ ขระบบแก่ผอู้ อกแบบและพฒั นาระบบใหเ้ ป็นไปไดง้ ่ายขึนดว้ ย อีกตวั อยา่ งหนึงของวิธี Composition แบบ aggregation คือ โครงสร้างการทาํ งานของระบบคอมพิวเตอร์ ซึงจะ สามารถออกแบบในแบบ aggregation ได้ เมือกล่าวถงึ โครงสร้าง Object Computer ผอู้ อกแบบระบบจาํ เป็น ทีจะตอ้ งนึกถงึ ส่วนประกอบต่างๆ เหลา่ นีอยา่ งเป็น Object ยอ่ ยๆ 11.7.1.2. Association ในส่วนของ Aggregation นนั จะแสดง object ยอ่ ยภายใน ทีอยภู่ ายใต้ Object หนึง แต่ Association จะ แสดงส่วนของ object ทงั หมดทีเป็นอิสระต่อกนั ทีมกี ารทาํ งานเฉพาะไมข่ ึนกบั ส่วนของ object อืนๆ แต่นาํ Object เหล่านีมาประกอบกนั ขนึ เพอื ใหม้ ีการทาํ งานทีสมบูรณ์ เช่นระบบคอมพิวเตอร์หนึงเครืองจะประกอบดว้ ย object ของ monitor, keyboard, mouse และกลอ่ งๆ หนึงทีทาํ การควบคุม (main box) เป็นตน้ โดยแต่ ละส่วนเหล่านีมหี นา้ ทีใหบ้ ริการเฉพาะอยา่ งแก่คอมพวิ เตอร์ mouse ทาํ หนา้ ทีใหบ้ ริการแก่ main box ในการเคลือนที ของลกู ศรบนจอคอมพวิ เตอร์ หรือจอภาพทาํ หนา้ ทีใหบ้ ริการแสดงผลภาพผา่ นหนา้ จอแก่ main box ฯลฯ Aggregation คือ object ทีซบั ซอ้ นซึงประกอบจาก object อืน ส่วน Association คือ object หนึงที ตอ้ งการบริการจาก object อนื ดงั นนั object ทีแยกออกมาไดจ้ ึงต่างกนั aggregation จะเนน้ ใหแ้ สดงส่วน interface ใหน้ อ้ ยทีสุดคือ ส่วน association จะเนน้ ใหแ้ สดงส่วนของ object ต่างๆ ทีนาํ มาประกอบกนั และแต่ ละส่วนของ object เหล่านีสามารถแยกทาํ งานไดอ้ ยา่ งอิสระ โดยขอบริการใชง้ านกนั ระหว่าง object โดยมสี ่วน interface เป็นของตนเอง 11.7.2. ความเหมือนและต่างกนั ระหว่าง Association และ Aggregation ความเหมือนระหวา่ ง Association และ Aggregation - เนืองจากการออกแบบดว้ ยวิธี Composition นนั ทงั แบบ Aggregation และ Association แต่ละส่วนจะ ไดร้ ับการสร้างเป็น Object ทาํ ใหง้ ่ายในการ reuse เช่น ในแบบ association เมือ computer เครืองอืน ตอ้ งการใช้ printer สามารถร้องขอบริการมายงั object printer ได้ หรือ ในแบบ aggregation การทาํ งาน ของ object mainboard ทีไดส้ ร้างขึนไวแ้ ลว้ นนั สามารถนาํ โครงสร้างของ Object mainboard นีไปใช้ กบั object อนื ได้ โดยไม่จาํ เป็นตอ้ งสร้าง object mainboard ขึนมาใหม่ - ลกั ษณะของ Object ทงั Aggregation และ Association จะมกี ารทาํ งานของแต่ละ object เป็น ลกั ษณะเฉพาะทีสามารถปรับเปลียน หรือแกไ้ ข โครงสร้างภายใน object นนั ไดโ้ ดยสะดวก ไม่กระทบต่อการทาํ งาน ของ object อืน ความแตกต่างระหวา่ ง Association และ Aggregation - ความสมั พนั ธร์ ะหว่าง Object ส่วนของ aggregation นนั วตั ถุแต่ละชินจะทาํ งานโดยพึงพาอาศยั กนั ซึงถา้ วตั ถุ ชินใดขาดหายไปจากส่วนประกอบจะทาํ ใหก้ ารทาํ งานรวมทงั หมดกระทบกระเทือนไปดว้ ย เช่นระบบคอมพวิ เตอร์ เมอื ขาด object mainboard ไป จะส่งผลใหร้ ะบบคอมพวิ เตอร์ไม่สามารถทาํ งานต่อไปได้
- ส่วนของ Association วตั ถแุ ต่ละส่วนจะทาํ งานในแบบการขอบริการซึงกนั และกนั ดงั นนั เมือขาดการทาํ งานของ วตั ถุชินใดไป อาจจะทาํ ใหก้ ารทาํ งานโดยรวมทีเกิดขึนไมส่ มบรู ณ์ แต่ไม่ถึงกบั ทาํ ใหก้ ารทาํ งานทงั หมดหยดุ ชะงกั เช่น ระบบคอมพิวเตอร์เมือขาด Object Printer ไประบบคอมพวิ เตอร์ยงั คงทาํ งานไดเ้ ป็นปกติ สามารถเปิ ดเครือง เปิ ด โปรแกรมการทาํ งานต่างๆ ได้ จะมเี พยี งการขอบริการไปยงั Object Printer นนั ถกู ตดั ขาดไป ทาํ ให้ object printer ไมท่ าํ งานเท่านนั - สิงหนึงทีตอ้ งสงั เกตคือ ตอ้ งแยกความแตกต่างระหว่าง Association และ Aggregation ใหไ้ ดอ้ ยา่ งชดั เจน ซึงทงั สองคาํ นีมหี ลกั การทีแตกต่างกนั ดงั นนั ในการออกแบบระบบโปรแกรม จะตอ้ งตดั สินใจใหไ้ ดว้ า่ จะใชว้ ธิ ี ออกแบบดว้ ยวิธี Association หรือ Aggregation ซึงโดยปกติจะขึนอยกู่ บั ระบบทีจะทาํ การออกแบบและ การวเิ คราะหข์ องการออกแบบวธิ ีใดเหมาะสมมากกวา่ กนั
บทที 12 Object Oriented Programming and UML(Unified Modeling Language) ในสมยั ก่อนการเขยี นโปรแกรมคอมพิวเตอร์ยงั เป็นเรืองยงุ่ ยากและไม่แพร่หลาย ผคู้ นส่วนใหญ่ยงั นิยมใชง้ านทางดา้ น hardware ทงั ๆ ที software สามารถช่วยลดตน้ ทนุ และทาํ การเปลียนแปลงไดง้ ่ายกวา่ ทงั นีเนืองจากขอ้ จาํ กดั ของ Software ทีซับซ้อน ภาษาทีใชใ้ นการเขียน โปรแกรมทคี อ่ นไปในทางภาษาเครืองซึงยากทมี นุษยจ์ ะเขา้ ใจ รวมทงั การลงทุนในการเปลยี นแปลงระบบในชว่ งแรกค่อนขา้ งราคาสูง เป็นเหตใุ ห้ การนาํ Software มาใชง้ านไม่เป็นทีนิยม ต่อมาเมือวิวฒั นาการทางดา้ นคอมพวิ เตอร์มีความกา้ วหนา้ มากขนึ เรือยๆ ควบคูไ่ ปกบั การพฒั นา ทางดา้ น Software จากคอมพิวเตอร์ระดบั mainframe มาเป็นคอมพิวเตอร์ส่วนบคุ คล ทมี ีราคาถกู ลง จนกระทงั คนทวั ไปสามารถมี คอมพิวเตอร์ส่วนบุคคลใชง้ านภายในบา้ นไดน้ นั ซึง Software ไดร้ ับการพฒั นาใหส้ ามารถใชง้ านบนคอมพิวเตอร์ส่วนบุคคลไดเ้ ช่นกนั การ พฒั นาทางดา้ น Software ในระยะหลงั จะเพิมความสะดวกในการใชง้ านใหผ้ ูใ้ ชม้ ากขึน ภาษาทีใชใ้ นโปรแกรมเป็นภาษาชนั สูง นอกจากนียงั มี เทคนิคมากมายในการสร้าง Software ทสี ามารถนาํ ไปใชง้ านไดห้ ลายรูปแบบ ดงั นนั Software จึงไดร้ ับความนิยมสูงขนึ ดงั จะเห็นไดจ้ าก การทีมี Software ใหม่ๆ เกดิ ขนึ อยเู่ สมอในปัจจุบนั 12.1. เทคนิคในการเขียนโปรแกรม ตงั แตอ่ ดีตจนถงึ ปัจจุบนั นีมภี าษาทาง Programming มากมายใหเ้ ลือกใชง้ าน เช่น Assembly, Pascal, C, C++, LISP, Smalltalk, Java, VB เป็นตน้ โดยเทคนิคในการเขยี นโปรแกรมภาษาตา่ งๆ เหล่านีสามารถสรุปอยา่ งกวา้ งๆ ได้ 4 ประเภทดงั นี 1. Unstructured Programming 2. Procedural Programming 3. Modular Programming 4. Object-Oriented Programming 12.2. Unstructured Programming การเขยี นโปรแกรมแบบไม่มีโครงสร้าง จะประกอบดว้ ยส่วนของโปรแกรมหลกั (main program) มีกลมุ่ ของขอ้ มูล (data) อยู่ ภายในโปรแกรมหลกั ซึง data นีสามารถเรียกใชไ้ ดท้ วั ทงั โปรแกรม ส่วนของโปรแกรมทมี กี ารใชง้ านซาํ ในตาํ แหน่งทแี ตกต่างกนั ในโปรแกรม จะตอ้ งคดั ลอกขอ้ มูลมาวางไวอ้ กี ทหี นึง (เพราะวิธีการนีจะยงั ไม่มีการเขยี นโปรแกรมยอ่ ย) การเขียนโปรแกรมในลกั ษณะนีจะมขี อ้ เสีย เนืองจากใช้ เนือทีในการเกบ็ โปรแกรมคอ่ นขา้ งมาก ตวั โปรแกรมจะมีขนาดใหญ่ แสดงภาพโปรแกรมแบบไมม่ ีโครงสร้าง จะรวม main program และ data ไวเ้ ป็นกอ้ นเดียวกนั Prgram Main Program data 12.3. Procedural Programming การเขยี นโปรแกรมในลกั ษณะนี จะนาํ ประโยค (Statement) ทีใชซ้ าํ หลายๆ ครังรวมเขา้ เป็นกลุ่มเดียวกนั เรียกวา่ Procedure โดยที Procedure จะสามารถเรียกใชซ้ าํ ไดต้ ามตอ้ งการในตาํ แหน่งอนื ๆ ภายในโปรแกรม ผา่ นฟังกช์ นั call (ในภาษา C) ดงั รูป Main Prograom Procedure จากรูปลกั ษณะการทาํ งานของ Procedural Programming คือ main program สามารถกระโดดมาทาํ งานที Procedure และ กลบั ไปทาํ งานทีโปรแกรมหลกั ต่อไปได้ การทาํ งานจะเกิดเริมแรกทีโปรแกรมหลกั (main program) ซึงจะทาํ การเรียก procedure โดย
ผา่ นฟังกช์ นั call และขอ้ มูล (data) เขา้ ไปใน Procedure สุดทา้ ยผลลพั ธข์ องขอ้ มลู จะเปลยี นแปลงไปเมือการทาํ งานของ Procedure เสร็จสิน (ในทีนี procedure หมายถงึ ไมม่ ี subprocedure อยภู่ ายใน) ดงั รูป Program Main Program data Procedure 1 Procedure 2 Procedure 3 โครงสร้างการทาํ งานในลกั ษณะนีมีขอ้ ดีคือ สามารถหาจุดผดิ พลาด (error) ทเี กดิ ขนึ ไดง้ า่ ยตวั อยา่ งเชน่ ถา้ มี procedure ถกู สร้างขึนภายใน โปรแกรม และ procedure นีสามารถทาํ หนา้ ทไี ดอ้ ยา่ งถกู ตอ้ ง แน่นอนวา่ ต่อไปในทุกๆ ครังทีเรียก procedure นีการทาํ งานจะถกู ตอ้ งเสมอ ดงั นนั ถา้ มจี ุดผิดพลาดทเี กดิ ขนึ ในโปรแกรม เป็นไปไดว้ า่ จะเกดิ ขึนทีจุดอนื ทไี ม่ไดอ้ ยใู่ น procedure นี ทาํ ใหก้ ารคน้ หาจุดผดิ พลาดมีชว่ งการ คน้ หาทแี คบลง จากรูปดา้ นบน จะเห็นไดว้ า่ ในขณะนนั โปรแกรมไดแ้ บ่งออกเป็นโปรแกรมยอ่ ยๆหลายๆ โปรแกรมยอ่ ยซึงแตล่ ะโปรแกรมยอ่ ย จะ ทาํ งานขึนกบั การควบคมุ กบั การควบคมุ ของโปรแกรมหลกั (ใหส้ ังเกตว่า data จะอยทู่ โี ปรแกรมหลกั ) 12.4. Modular Programming ในส่วนของ Modular Programming จะต่อเนืองมาจาก Procedure Programming คือ จะนาํ Procedure หลายๆ procedure มารวมกลุ่มกนั เป็น modules และในแต่ละ module จะมี data เป็นของตนเอง โปรแกรมจะทาํ โดยเรียก procedure ที อยใู่ นแตล่ ะ module รวมทงั มีการผ่านคา่ parameter(data) ร่วมดว้ ย ซึงสภาวะการทาํ งานภายใน module จะเกิดขนึ เพยี งหนึง procedure ต่อหนึง module และภายในหนึงโปรแกรมจะเกิดสภาวะการทาํ งานเพยี งหนึง module ตอ่ โปรแกรมทงั หมด Modular Programming ซึงประกอบไปดว้ ยหลายๆ module และแต่ละ module จะประกอบไปดว้ ย procedure และ data ทีเป็น data ของโปรแกรมหลกั และเฉพาะทใี ชง้ านใน module นนั ดงั แสดงในรูป Program Main Program data Module 1 Module 2 data + data 1 Data+data 2 Procedure 1 Procedure 2 Procedure 3
12.5. Object-Oriented Programming (o-o programming) o-o programming เป็นวธิ ีการเขยี นโปรแกรมแบบใหม่ ซึงจะเรียกโปรแกรมยอ่ ยทีทาํ หนา้ ทีเฉพาะวา่ object และยงั ไดร้ วม data เขา้ เป็นส่วนของ object ดว้ ย นอกจากนี o-o ยงั มีโครงสร้างทพี เิ ศษนอกเหนือจาก procedure programming หรือ module programming คอื การทาํ งานของแตล่ ะ object จะไม่สินสุดลง เมอื กระบวนการทาํ งานของ โปรแกรมจบการทาํ งานบน object นนั แลว้ ซึง object ทีอยใู่ นโปรแกรมเหล่านี จะพร้อมเสมอในการเริมทาํ งาน ต่อจากตาํ แหน่งเดิมเมือเกดิ การเรียกใชง้ าน object อีก ครัง ซึงแตกตา่ งกบั การเขียนโปรแกรมในแบบอืนๆ ทโี ปรแกรมยอ่ ยจะตอ้ งเริมการทาํ งานใหม่เมือถูกเรียกใชอ้ ีกครัง ดงั นนั เทคนิคนีจึงสามารถชว่ ย ลดปัญหาทจี ะเกดิ ขึนจากการเขยี นโปรแกรมดว้ ยวธิ ีอืนๆได้ Object-Oriented Programming โดยแตล่ ะ object สามารถตดิ ต่อกนั ไดโ้ ดยการส่ง message ไปที object อืน ดงั รูป Program Object 1 Object 2 data data Object 3 Object 4 data data 12.6. ความแตกต่างระหว่าง Procedural Programming และ o-o Programming วธิ ีการเขียนโปรแกรมทีกลา่ วมาขา้ งตน้ สามารถแบง่ ออกไดเ้ ป็น 2 แนวคิดหรือ 2 วิธีการในการพฒั นา Software ไดแ้ กว่ ิธีการทาง procedural programming และวธิ ีการทาง o-o programming ซึงมีความแตกต่างกนั ดงั นี 12.6.1. โครงสร้ างของ Programming แนวคดิ แบบ procedural programming ภายในโครงสร้างของโปรแกรมจะแบง่ เป็น 2 ส่วนคือส่วนของโปรแกรมหลกั (main program) ทีมี data เป็นส่วนประกอบ และส่วนของโปรแกรมยอ่ ย (procedures หรือ functions) โดย data ทีประกาศใชอ้ ยู่ ภายในโปรแกรมหลกั นนั จะถูกเรียกโดยโปรแกรมยอ่ ยต่างๆ ทอี ยภู่ ายในโปรแกรม ลกั ษณะของ data ทมี ีการประกาศใชท้ วั ทงั โปแกรมนนั เรียกว่าเป็นการประกาศใชแ้ บบ global แนวคดิ แบบ o-o programming dataจะไดร้ ับการประกาศใชเ้ ฉพาะภายใน object แตล่ ะ object เท่านนั (จะไมป่ ระกาศเป็น global) ซึง object อนื สามารถเขา้ ถึง data ไดโ้ ดยผ่าน method ของ object ทีเป็นเจา้ ของ data เทา่ นนั จะเห็นไดว้ า่ โครงสร้างตามแนวคิด o-o programming จะดกี ว่าแบบ procedural programming เนืองจากการประกาศใช้ data แบบ global จะมผี ลเสียตอ่ การควบคมุ การเปลยี นแปลง data ของโปรแกรมซึงยากตอ่ การแกไ้ ขโปรแกรมในภายหลงั 12.6.2. ช่วงชีวิต (Life Time) ใน procedural programming ชว่ งชีวิตของโปรแกรมยอ่ ยนนั จะเทา่ กบั ช่วงเวลาการทาํ งานของโปรแกรมทผี ่านเขา้ มา และออกจาก โปรแกรมยอ่ ย ดงั นนั เมอื โปรแกรมหลกั ดาํ เนินงานผา่ นโปรแกรมยอ่ ยไปแลว้ คา่ ทีอยใู่ นโปรแกรมยอ่ ยนนั จะกลบั สู่สภาพเดมิ เหมอื นขณะโปรแกรม ยอ่ ยอยใู่ นสภาพเริมตน้ ใน o-o programming ช่วงชีวิตของ object จะเริมตงั แต่โปรแกรมเริมทาํ งานจนกระทงั สินสุดการทาํ งาน หรือ เมอื object นนั ถูกตอ้ งตดั ขาดออกจากโปรแกรม ซึง object จะถกู ตดั ขาดจากโปรแกรมเมอื ไมม่ ี object ใดๆ เรียกใช้ object นนั อีก(ไมม่ ี คาํ สังจาก object ใดๆทเี รียกใช้ object นนั อีก) 12.6.3. การส่งข้อมลู บน network (เครือข่าย)
procedural programming จะแบ่งส่วน data ของ program ออกจากโปรแกรมยอ่ ยอยา่ งชดั เจนดงั นนั การส่งขอ้ มูลขา้ มระบบ ในทาง Procedural programming จะเขา้ ใจวา่ ปลายทางของอกี ฝังจะมี program ทสี ามารถจดั การกบั data ได้ ดงั นนั จะมีเพยี ง data เทา่ นนั ทีจะถกู ส่งขา้ ม network ไป ใน o-o programming ส่วนของ data และ method จะถกู ห่อหุม้ เขา้ ดว้ ยกนั เป็น object หนึงๆ ซึงเป็นขอ้ ดอี ยา่ งหนึงของ o-o programming เชน่ ในระบบ network ขอ้ มูลของ object ทถี ูกส่งขา้ มไปนนั จะมีทงั data และ operation รวมกนั อยู่ จากความแตกตา่ งในดา้ นต่างๆระหว่าง procedural programming และ o-o programming ซึงไดเ้ ปรียบเทยี บใหเ้ หน็ ความแตกต่าง และบอกถงึ ขอ้ ดอ้ ยของระบบแบบเดิม (procedural programming) รวมทงั แนวทางแกไ้ ขดว้ ยแนวคิดแบบใหม่ (o-o programming) ทีใหป้ ระสิทธิภาพในการทาํ งานทีดกี ว่า 12.7. เทคนิคต่างๆ ของ o-o programming เทคนิคต่างๆ เหล่านีเป็ นคณุ สมบัตทิ ีมอี ย่ใู น o-o programming ได้แก่ 12.7.1. ความสามารถในการเพิมหรือขยายโปรแกรม (Extendibility) 12.7.2. ความสามารถในการนาํ กลบั มาใชใ้ หม่ (Reusability) 12.7.3. ความสามารถในการเขา้ กนั ไดก้ บั ส่วนประกอบอืนๆ (Compatibility) 12.7.4. ประสิทธิภาพ (Efficiency) 12.7.5. งา่ ยในการใช้ (Easy to uses) 12.7.6. ง่ายในการออกแบบ (Easy to designs) 12.7.1. ความสามารถในการเพิมหรือขยายโปรแกรม (Extendibility) การเปลยี นแปลงแกไ้ ข หรือเพิมเติมบางส่วนของโปรแกรม สาํ หรับโปรแกรมขนาดเลก็ มกั จะทาํ ไดไ้ มย่ ุ่งยากนกั แต่สาํ หรับโปรแกรมทมี ีขนาด ใหญ่ ซึงคอ่ นขา้ งลาํ บากอยา่ งมากในการทาํ การเปลยี นแปลงเนืองจากการแกไ้ ข-เพิมเตมิ บางส่วนลงในโปรแกรมเพียงเลก็ นอ้ ย จะเสียงมากต่อ ผลกระทบทอี าจจะทาํ ใหร้ ะบบการทาํ งานของโปรแกรมทงั ระบบล่มได้ ในระบบการทาํ งานแบบเดิม (procedural programming) กอ่ นทีจะทาํ การเปลียนแปลงโปรแกรมได้ จะตอ้ งทาํ การศึกษาการออกแบบและการสร้างโปรแกรม ทีค่อนขา้ งจะยงุ่ ยากมาก ดว้ ยเหตทุ ี data ของ ระบบสามารถจะถูกเปลยี นแปลงไดโ้ ดยทุกส่วนของโปรแกรม ซึงเป็นการยากทจี ะควบคุมผลกระทบทีอาจเกดิ ขึน ดงั นนั o-o programming จึงไดแ้ กป้ ัญหาโดยใชเ้ ทคนิคบางประการในการ implement คณุ สมบตั ิตา่ งๆ ของ o-o programming มสี ่วน สนบั สนุนความสามารถในการเพิมหรือขยายโปรแกรม ดงั นี - การออกแบบระบบ : หลกั การในการออกแบบทีมองทุกอยา่ งใหเ้ ป็ น object นนั ทาํ ใหง้ า่ ยในการออกแบบ เพราะทกุ ชนิ ส่วนของ โปรแกรมสามารถนาํ มาเชอื มต่อกนั ได้ และไม่วา่ จะเป็นการเปลยี นแปลงระบบหรือแกไ้ ขใดๆในระบบจะทาํ ไดง้ า่ ยขนึ เนืองจากแต่ละ ส่วนในโปรแกรมมกี ารทาํ งานเป็นส่วนๆเฉพาะ - ไม่รวมทีศูนยก์ ลาง : แต่ละ object มีความเป็นอสิ ระต่อกนั ทาํ ใหก้ ารเปลยี นแปลงตอ่ object หนึงๆ ไม่ส่งผลกระทบตอ่ object อนื ๆ ทงั หมดภายในระบบ วิธีของ o-o จะมสี ถาปัตยกรรมทีช่วยใหผ้ ูอ้ อกแบบโปรแกรมสามารถออกแบบโครงสร้างไดง้ า่ ยขึน โดยจะ ไมร่ วมการทาํ งานใหอ้ ยทู่ ีศูนยก์ ลางเท่านนั ซึงเป็นผลดตี อ่ การทาํ งานของโปรแกรมเป็นอยา่ งมาก 12.7.2. ความสามารถในการนาํ กลบั มาใช้ใหม่ (Reusability) บ่อยครังทรี ะบบการทาํ งานของโปรแกรม จะมกี ารทาํ งานในรูปแบบเดิมซาํ ๆ ดงั นนั การนาํ บางส่วนของโปรแกรมกลบั มาใชใ้ หม่ ยอ่ มส่งผลดีด่ อรูปแบบการเขยี นโปรแกรม รวมทงั ลดขอ้ ผิดพลาดทอี าจเกดิ ขึนจากการเขียนโปรแกรมทีมีขนาดใหญ่ ในระบบแบบเดมิ จะไมส่ นบั สนุน ความสามารถในลกั ษณะนี แตใ่ น o-o programming สามารถตอบสนองคุณสมบตั ขิ อ้ นีได้ 12.7.3. ความสามารถในการเข้ากันได้กบั ส่วนประกอบอืนๆ (Compatibility) การเขา้ กนั ไดก้ บั ส่วนประกอบอนื นนั จะมคี วามสาํ คญั มาก เพราะผลิตภณั ฑ์ Software จาํ เป็นตอ้ งทาํ งานกบั ส่วนประกอบอนื ๆดว้ ย และ บอ่ ยครังมกั จะประสบปัญหาในการเชือมตอ่ กนั เนืองจากความแตกต่างในรูปแบบทสี นบั สนุนโดย OS(Operating systems) ของระบบ ทตี า่ งกนั จุดสาํ คญั หลกั ทีจะทาํ ใหก้ ารออกแบบ Software ใหส้ ามารถเขา้ กบั ส่วนประกอบอนื ๆ ได้ ขึนอยกู่ บั มาตรฐานการสือสารภายใน โปรแกรมทตี อ้ งคาํ นึงถึงดงั นี - มาตรฐานของระบบไฟล์ (Standardized file formats) : ทาํ ใหไ้ ฟลท์ ตี า่ งกนั สามารถทาํ งานไดบ้ น OS เดียวกนั ได้ - มาตรฐานของโครงสร้างขอ้ มูล (Standardized data structures) : ขอ้ มูลทีมีโครงสร้างการทาํ งานต่างกนั จะสามารถ นาํ มาใชไ้ ดบ้ นเครือง PC เดยี วกนั ดว้ ยคณุ สมบตั ทิ สี นบั สนุนตอ่ o-o เช่น โปรแกรมทมี โี ครงสร้างขอ้ มูลสนบั สนุนการทาํ งานแบบ Big andian และlittle andian จะสามารถดาํ เนินการบนเครือง PC เครืองเดยี วกนั ได้
- มาตรฐานในส่วนติดตอ่ กบั ผูใ้ ช้ (Standardized user interfaces) : การตดิ ต่อกบั ผูใ้ ชใ้ น o-o programming จะมี ส่วนทีเรียกวา่ framework ชว่ ยในการตดิ ตอ่ สือสารระหวา่ ง user ทาํ ให้ user สามารถเขา้ ใจและเรียนรู้การทาํ งานไดง้ ่ายขึนดว้ ย โดยทวั ๆ ไปแลว้ มาตรฐานการจดั การทีเรียกวา่ protocol ทมี สี ่วนสาํ คญั ตอ่ การจดั การกบั Software จะเรียกวา่ middleware protocol ซึงมีอยใู่ น Microsoft’s OLE-COM (ActiveX) เป็นตน้ 12.7.4. ประสิทธิภาพ (Efficiency) ประสิทธิภาพคือความสามารถของระบบ Software ทขี นึ อยกู่ บั ความเป็นไปไดข้ อง hardware เชน่ ความถีในการทาํ งานของ procedure ทีวา่ งของ memory ทมี ีอยู่ เป็นตน้ หลกั การทีสาํ คญั ในการสร้าง Software ไมไ่ ดข้ นึ อยกู่ บั ความเร็วในการทาํ งานของ Software แต่ขนึ อยกู่ บั ความถกู ตอ้ งในการทาํ งานทีสมดลุ กนั กบั จุดมุ่งหมายอนื เช่น ความสามารถในการขยายโปรแกรม (Extendibility) การนาํ บางส่วนของโปรแกรมกลบั มาใชใ้ หม่ (Reusability) 12.7.5. ง่ายในการใช้ (Easy to uses) หมายถึง คนทวั ไปๆ ทมี พี นื ฐานความรู้ต่างกนั ควรจะเรียนรู้การใช้ Software และสามารถประยกุ ตใ์ นการแกป้ ัญหาเลก็ ๆนอ้ ยๆ ได้ เช่น การลง โปรแกรม เป็นตน้ ซึงระบบทีไดร้ ับการออกแบบมาดี ดอ้ งมคี วามชดั เจนในการสร้าง (มีเป้ าหมายในการสร้าง) ตอ้ งง่ายในการเรียนรู้และการใชง้ าน ของผูใ้ ช้ (พืนฐานของ Software ตอ้ งสามารถอา่ นได,้ เคลือนไหว mouse ได,้ คลกิ ทีป่ มุ ได,้ พมิ พไ์ ด้ เป็นตน้ ) 12.7.6. ง่ายในการออกแบบ (Easy to designs) ใน o-o programming นนั จะแบ่งส่วนของโปรแกรมออกเป็นโปรแกรมยอ่ ยๆทีเรียกว่า Object ซึงการออกแบบส่วนประกอบยอ่ ยๆ นนั ง่ายกว่าการสรา้ ง Software ขนาดใหญ่ขนึ เป็นชนิ เดยี วโดยไม่มีการแบ่งส่วนการทาํ งานออกเป็นกลุม่ ๆ (Object) นอกจากนีในการแกไ้ ข หรือปรับปรุงสามารถทาํ ไดง้ ่าย เนืองจากการทาํ งานแตล่ ะส่วนไดแ้ ยกออกจากกนั อยา่ งชดั เจนเป็นแต่ละ object 12.8. ความหมาย Unified Modeling Language (UML) UML หมายถงึ ภาษารูปภาพทีทาํ การกาํ หนดลกั ษณะของ Class การสร้าง class และเป็นเอกสารทบี อกถงึ รายละเอยี ดของระบบโครงสร้าง โปรแกรม ถา้ เปรียบไปแลว้ UML คลา้ ยๆ กบั พิมพเ์ ขยี วของระบบ UML จะสามารถแสดงโครงสร้างของระบบ object-oriented ใน รายละเอียดลกึ ๆ ได้ กบั พิมพเ์ ขียวของระบบ UML จะสามารถแสดงโครงสร้างของระบบ object-oriented ในรายละเอยี ดลึกๆ ไดด้ ีใน รูปแบบของแผนภาพ (diagram) แผนภาพเหลา่ นีจะทาํ ใหเ้ กดิ ความเขา้ ใจทตี รงกนั ระหว่างผูอ้ อกแบบระบบ และ programmer ทาํ ใหก้ าร ปรับปรุงแกไ้ ขโปรแกรมทาํ ไดง้ า่ ยขึน ในการศึกษาการออกแบบ o-o ใหเ้ กิดประโยชน์นนั จาํ เป็นตอ้ งสามารถอา่ น เขยี น และเขา้ ใจภาษารูปภาพ UML พร้อมทงั เขา้ ใจการออกแบบและวิเคราะหท์ าง o-o ควบคกู่ นั ไปดว้ ย โครงสร้าง Class diagram โครงสร้างแผนภาพของ class หรือ class diagram สามารถแบ่งไดเ้ ป็น 3 ส่วน คอื class, attribute และ method โครงสร้างของ Class diagram จะแทนทีไดด้ ว้ ยรูปสีเหลยี มผนื ผา้ ทไี ดแ้ บ่งออกเป็น 3 ส่วน ดงั รูป Cabbie ชือ Class attibute -companyName : String -Name : String +Cabbie : Constructors +Cabbie : +setName :void Methods +giveDirections :void -turnRight :void -turnLeft :void +getCompanyName :String ชือ Calss, Attributes และ Methods ภายใน class diagram จะประกอบดว้ ยขอ้ มลู 3 ส่วนคอื ชือ class, attributes และ method ทจี ะไดก้ ลา่ วถงึ ดงั นี ชือ Class : ควรตงั ใหส้ อดคลอ้ งกบั การทาํ งาน เช่น class ทีใชค้ าํ นวณเกรด ควรตงั ชอื เป็น CalGrade เป็นตน้ สัญลกั ษณ์ของ class และ object จะคลา้ ยๆ กนั คือ จะตอ้ งขนึ ตน้ ดว้ ยตวั อกั ษรตวั ใหญ่ ใชอ้ กั ษรตวั หนา และไมข่ ดี เส้น
Attributes : โดยปกตแิ ลว้ ส่วนของ attribute จะมตี วั บ่งบอกชนิด (type) ทีใชบ้ อกชนิดของขอ้ มูล ซึงแสดงไดบ้ น class diagram ถา้ พิจารณาจะมี Attributes ดงั นี - CompanyName :String - Name : String ทงั 2 attribute นี กาํ หนดชนิดของขอ้ มูลเป็น string (ตวั อกั ขระ) แต่จริงๆ แลว้ การกาํ หนดชนิดของ attribute อาจจะกาํ หนดเป็นขอ้ มูล ชนิดอืนไดเ้ ช่น integer, float เป็นตน้ ทงั นีขนึ กบั ความเหมาะสมในการใชง้ านของขอ้ มูลชนิดนนั ๆ คณุ สมบตั ิของ attribute มดี งั นี 1. attribute ทแี สดงบน class diagram สามารถบ่งบอกไดถ้ ึงชนิดของค่ารับ และค่าส่ง (parameter) ทใี ชโ้ ดย method ที อยภู่ ายใน class นนั ๆ 2. ในหนึง attribute สามารถเป็นไดท้ งั ค่ารับ และค่าส่ง (parameter) ของ object 3. ถือไดว้ ่า attribute เป็นตวั เกบ็ ขอ้ มลู ทเี กยี วกบั object นนั ๆ Methods : เรียกไดว้ ่าเป็นส่วนทีเกบ็ ขนั ตอนการดาํ เนินงานของระบบในส่วนนนั ๆ และแตล่ ะ method สามารถแสดงการรับคา่ และคนื ค่า parameter ซึงจะกาํ หนดชนิด (type) ของการคนื คา่ ไวท้ ี method โดยใชส้ ญั ลกั ษณ์ : คนั เชน่ +cabbie : +giveDirection : void +getCompanyName :String ในบางกรณีที method ประกอบดว้ ยการรับคา่ และส่งคา่ parameter จะสามารถเขยี นโครงสร้างการทาํ งานบน UML ไดด้ ว้ ยการคนั ระหวา่ ง parameter ดว้ ยสญั ลกั ษณ์ , เช่น +getCompanyName(parameter1, parameter2, parameter3) : String มีกรณีพิเศษของ method ทีการตงั ชือ method สามารถใชช้ ือซาํ กนั ไดท้ งั ๆทอี ยใู่ น class เดยี วกนั ในลกั ษณะนีจะเรียกว่า constructors จะเหน็ วา่ cabbie method อยู่ 2 method เครืองหมาย : จะใชแ้ สดงลกั ษณะการมองเหน็ จากภายนอกดว้ ยเครืองหมาย +, - และไมแ่ สดงเครืองหมาย อธิบายไดด้ งั นี - สญั ลกั ษณ์ (+) แสดงความเป็น public หมายความว่า attribute และ method นนั สามารถมองเหน็ ไดจ้ าก object อนื - สัญลกั ษณ์ (-) แสดงความเป็น private หมายความวา่ attribute และ method นนั สามารถมองเห็นไดเ้ ฉพาะภายใน object เดียวกนั หรือสามารถเรียกใชภ้ ายใน object เดียวกนั เท่านนั - ไม่แสดงเครืองหมาย แสดงความเป็น protect หมายความวา่ attribute หรือ method นีจะอนุญาตใหข้ อ้ มูลใน package เทา่ นนั ทจี ะสามารถเขา้ ถึง attribute หรือ method นีได้ และ package นีคอื กลมุ่ ของ class ทีไดร้ วมไวด้ ว้ ยกนั เป็นกลุ่มๆ หนึงโดยผูอ้ อกแบบระบบ หรือผูพ้ ฒั นาระบบ
บทที 13 การพฒั นาและตดิ ตังระบบ (System Implementation) หลงั จากทีผา่ นขนั ตอนการวิเคราะห์และออกแบบระบบมาแล้ว ขนั ตอนตอ่ ไปคือการพฒั นาและตดิ ตงั ระบบ (System Implementation) ซงึ ในทีนจี ะมคี วามหมายรวมถึง การเขียนโปรแกรม (Coding) การทดสอบโปรแกรม (Testing) การตดิ ตงั (Installation) การจดั ทําเอกสาร(Documentation) การฝึกอบรม(Training) และการสนบั สนนุ การหลงั การติดตงั โปรแกรม(Support) ซงึ ภายในเนือหาจะไม่ เน้นสอนการเขียนโปรแกรมแตอ่ ย่างใด แตเ่ ป็นการแนะนําแนวทางในการทดสอบโปรแกรมหลงั จากทีเขยี น โปรแกรมเสร็จสนิ แล้ว ซงึ โดยทวั ไปหน้าทีของนกั วเิ คราะหร์ ะบบจะไมไ่ ด้รบั ผิดชอบในการเขยี นโปรแกรมโดยตรง เพียงแตเ่ ป็นผ้ปู ระสานงานในระหวา่ งทีโปรแกรมเมอร์ทําการเขียนโปรแกรมเท่านนั แตใ่ นบางครงั หรือในบาง โอกาสนกั วเิ คราะห์และออกแบบระบบยงั รบั หน้าทีในการเขยี นโปรแกรมเองอกี ด้วย อย่างไรกต็ ามนกั วเิ คราะห์ ระบบจะต้องมีแนวทางในการตรวจสอบหรือทดสอบโปรแกรมทีเขยี นเสร็จสินแล้ว ก่อนทีจะนําไปตดิ ตงั ระบบเพือ ใช้งานจริง เพือป้ องกนั ข้อผดิ พลาดทีอาจจะเกิดขนึ ได้หรือเพือเป็นการลดข้อผิดพลาดให้มีน้อยทีสดุ จะทําให้ได้ ระบบทีสมบรู ณ์มากทีสดุ ตอ่ ไป หลงั จากการตดิ ตงั และได้รบั การแก้ไขแล้ว การพฒั นาระบบจะประสบผลสําเร็จและเป็นทียอมรบั ของผ้ใู ช้ได้หรือไมน่ นั ไมใ่ ชเ่ พยี งการได้รบั การ ยอมรบั จากผ้ใู ช้งานการทดสอบใช้ต้นแบบทีสร้างขนึ มาในระหวา่ งขนั ตอนการออกแบบระบบเทา่ นนั แตย่ งั หมายถงึ การสร้างเอกสารประกอบการใช้งานระบบ การจดั ฝึกอบรมพนกั งาน การแก้ไขและปรับปรุงระบบ หลงั จากการติดตงั จงึ จะทําให้ทกุ สว่ นทเี กียวข้องกบั ระบบใหมเ่ กิดการทํางานทีสอดคล้องกนั และกนั ได้อย่างลงตวั มากทีสดุ 13.1. แนะนําขนั ตอนการพฒั นาและติดตงั ระบบ ในขนั ตอนการพฒั นาและตดิ ตงั ระบบ มีวตั ถปุ ระสงคเ์ พือการปรับเปลยี นจากระบบงานเดิมเข้าสู่ ระบบงานใหมท่ ีได้ผา่ นการวิเคราะห์และออกแบบมาแล้ว โดยเริมจากเขยี นโปรแกรมของระบบงาน ทดสอบ โปรแกรมทีเขยี นขนึ เพือให้เป็นโปรแกรมทีน่าเชือถือ สามารถทํางานได้อย่างมีข้อผดิ พลาดน้อยทีสดุ พร้อมทงั จดั ทําเอกสารคมู่ ือการใช้ระบบ เพือเตรียมจดั ฝึกอบรมให้กบั พนกั งาน ซงึ จะสง่ ผลให้เป็นระบบทีสามารถทํางาน ได้อยา่ งมปี ระสทิ ธิภาพ ทงั นีขนั ตอนเหลา่ นีโดยสว่ นมากแล้ว จะไมอ่ ย่ใู นความรับผิดชอบของนกั วเิ คราะห์ระบบ ยกเว้นกรณที ีองคก์ รนนั แตง่ ตงั ให้นกั วิเคราะห์ระบบรบั ผดิ ชอบการเขยี นโปรแกรมและตดิ ตงั ระบบรวมอยดู่ ้วย อยา่ งไรกต็ าม เนืองจากนกั วิเคราะห์ระบบเป็นผ้ปู ระสานงานระหวา่ งผ้เู กยี วข้องกบั การพฒั นาระบบทงั หมด ดงั นนั หน้าทใี นสว่ นนีจดั วา่ ยงั เป็นสว่ นหนึงของความรบั ผดิ ชอบ เพืออํานวยความสะดวกให้กบั ทีมงานเขียนโปรแกรม และติดตงั ระบบ นอกจากนยี งั คอยดแู ลการทํางานให้เป็นไปตามสิงทีได้ออกแบบและวิเคราะห์มาเพือให้ตรงกบั ความต้องการของผ้ใู ช้มากทีสดุ ในการทําให้ระบบทีวเิ คราะห์และออกแบบมาแล้วนนั เกิดผลขนึ คอื การพฒั นาและติดตงั ระบบ (System Implementation) แตก่ อ่ นการติดตงั ระบบ นกั วเิ คราะห์ระบบควรมีการวางแผนงานในการ ติดตงั ซงึ แผนงานนนั จะต้องครอบคลมุ กิจกรรมตงั แตก่ ารทดสอบโปรแกรม การทดสอบระบบ การติดตงั ระบบ วธิ ีการตดิ ตงั การจดั ทําเอกสารคมู่ อื การจดั ฝึกอบรม และการสนบั สนนุ หลงั การติดตงั
สบื เนืองจากในการพฒั นาระบบนนั มีหลายแนวทางหรือวธิ ีการ (Methodology) ทีจะทําให้แตล่ ะ ขนั ตอน ของวงจรพฒั นาระบบนนั ลลุ ว่ งได้ 15.1.1. การพฒั นาระบบแบบเร่งดว่ น (Rapid Application Development : RAD) ในขนั ตอนการพฒั นาและตดิ ตงั ระบบ มีวตั ถปุ ระสงค์เพือการปรับเปลยี นจากระบบงานเดมิ เข้าสู่ ระบบงานใหมท่ ีได้ผา่ นการวเิ คราะห์และออกแบบมาแล้ว โดยเริมจากเขยี นโปรแกรมของระบบงาน ทดสอบ โปรแกรมทีเขยี นขนึ เพือให้เป็นโปรแกรมทีนา่ เชือถือ สามารถทํางานได้อยา่ งมีข้อผดิ พลาดน้อยทีสดุ พร้อมทงั จดั ทําเอกสารคมู่ ือการใช้ระบบ เพือเตรียมจดั ฝึกอบรมให้กบั พนกั งาน ซึงจะสง่ ผลให้เป็นระบบทีสามารถทํางานได้ อยา่ งมปี ระสทิ ธิภาพ ทงั นีขนั ตอนเหลา่ นีโดยสว่ นมากแล้ว จะไมอ่ ยใู่ นความรับผิดชอบของนกั วเิ คราะห์ระบบ ยกเว้นกรณีทีองค์กรนนั แตง่ ตงั ให้นกั วเิ คราะห์ระบบรบั ผิดชอบการเขยี นโปรแกรมและตดิ ตงั ระบบรวมอย่ดู ้วย อย่างไรกต็ าม เนืองจากนกั วิเคราะห์ระบบเป็นผ้ปู ระสานงานระหวา่ งผ้เู กยี วข้องกบั การพฒั นาระบบทงั หมด ดงั นนั หน้าทใี นสว่ นนีจดั วา่ ยงั เป็นสว่ นหนึงของความรับผิดชอบ เพืออาํ นวยความสะดวกให้กบั ทีมงานเขยี นโปรแกรม และติดตงั ระบบ นอกจากนยี งั คอยดแู ลการทํางานให้เป็นไปตามสิงทีได้ออกแบบและวิเคราะห์มาเพือให้ตรงกบั ความต้องการของผ้ใู ช้มากทีสดุ ในการทําให้ระบบทีวเิ คราะห์และออกแบบมาแล้วนนั เกิดผลขนึ ก็คอื การพฒั นาและตดิ ตงั ระบบ (System Implementation) แตก่ อ่ นการตดิ ตงั ระบบ นกั วเิ คราะห์ระบบควรมีการวางแผนงานในการ ตดิ ตงั ซงึ แผนงานนนั จะต้องครอบคลมุ กิจกรรมตงั แตก่ ารทดสอบโปรแกรม การทดสอบระบบ การตดิ ตงั ระบบ วธิ ีการตดิ ตงั การจดั ทําเอกสารคมู่ อื การจดั ฝึกอบรม และการสนบั สนนุ หลงั การตดิ ตงั 15.1.1. การพฒั นาระบบแบบเร่งดว่ น (Rapid Application Development : RAD) RAD เป็นวธิ ีการพฒั นาระบบ (Methodology) วธิ ีการหนงึ ทีรวบรวมเทคนิค (Techniques) เครืองมือ (Tools) และ เทคโนโลยี เพือผสมผสานและประยกุ ต์ใช้ในการสนบั สนนุ การ พฒั นาระบบให้สามารถลลุ ว่ งโดยใช้เวลาน้อยทีสดุ ทงั นีขนึ อยกู่ บั ความพร้อมขององคก์ รในขณะนนั ไมว่ า่ จะเป็น เรืองคา่ ใช้จา่ ย บคุ ลากร รวมทงั ความต้องการทีแน่นอนของผ้ใู ช้ระบบ จากแนวคดิ ในวธิ ีการแบบ RAD ทีมีวตั ถปุ ระสงคเ์ พือให้การพฒั นาระบบในวงจรการพฒั นา สามารถ ดําเนินการเสร็จสินได้อย่างรวดเร็ว จึงทําให้การแบ่งขนั ตอนในวงจรการพฒั นาระบบของแตล่ ะวธิ ีการทีสนบั สนนุ แนวคดิ RAD แตกตา่ งกนั ออกไปรวมถึงขนั ตอนการพฒั นาและติดตงั ระบบ (System Implementation) จะใช้เวลาในการดําเนินงานน้อยกวา่ วธิ ีการแบบ Waterfall ซงึ เป็นวิธีการทีใช้เวลา ในการพฒั นาระบบคอ่ นข้างนาน เนืองจากแตล่ ะขนั ตอนจะเริมได้กต็ อ่ เมอื ขนั ตอนกอ่ นหน้าเสร็จสินแล้ว อยา่ งไรก็ ตามเนือหาในหนงั สอื ไมไ่ ด้มเี จตนาชีนําวา่ แนวทางใดทีดที ีสดุ หรือประสบความสาํ เร็จมากทีสดุ เนืองจากการ พฒั นาระบบในความเป็นจริงแล้วจะต้องเลือก ผสมผสานและประยกุ ตใ์ ช้เทคนิค เครืองมอื และเทคโนโลยที ีมีอยู่ มากมายเพือให้เหมาะสมกบั ความพร้อมขององค์กรในขณะนนั ซงึ เป็นตวั แปรสาํ คญั ในการกําหนดวธิ ีการ (Methodology) ตา่ งๆ เพือเป็นแนวทางในการพฒั นาระบบ ตอ่ ไปนีเป็นวธิ ีการตา่ งๆ ในกลมุ่ ของการพฒั นาระบบด้วยวธิ ีการแบบ RAD ทีชว่ ยลดระยะเวลาในการ พฒั นาลง เชน่
1. การพฒั นาด้วยการสร้างตวั ต้นแบบ (Prototype Approach to Development) : เป็น กระบวนการเพือสร้างการทํางานบางสว่ นหรือทงั หมดของระบบ ทีเหมือนระบบจริงมากทีสดุ เทา่ ทีจะ เป็นไปได้ แตต่ ้นแบบนนั จะยงั ไมส่ มบรู ณจ์ นกวา่ จะได้รบั การเพิมเตมิ การทํางานทีละสว่ นจนครบทกุ สว่ น ของระบบ ขนั ตอนการพฒั นาระบบด้วยตวั ต้นแบบ แบง่ ออกเป็น 3 ขนั ตอน ดงั นี ขนั ตอนที 1 การวางแผน (Planning) ขนั ตอนที 2 วิเคราะห์(Analysis) ขนั ตอนที 3 ออกแบบและพฒั นา(Design and Implementation) 2. การพฒั นาด้วยวธิ ีการวนรอบ (Spiral Approach to Development): เป็นวิธีการพฒั นา ระบบแบบทําซํา (Iterative Development) โดยในการทําซําแตล่ ะรอบนนั อาจจะทําซําใน ขนั ตอนการวางแผน (Planning) วเิ คราะห(์ Analysis) ออกแบบ(Design) และการพฒั นา (Development) รวมอยดู่ ้วย โดยจะเริมต้นทีการวางแผนการทําซําก่อน โดยการทําซําแตล่ ะรอบ จะทําการสร้างตวั ต้นแบบเพิมเติมจนครบทงั ระบบ ในการสร้างตวั ต้นแบบแตล่ ะรอบจะแบง่ ขนั ตอนในการ สร้ าง 1. วางแผนเพือทําซํารอบตอ่ ไป (Plan next Iteration) 2. วเิ คราะห์และออกแบบ (Analysis and Design 3. ทดสอบและรวมตวั ตน้ แบบ การพฒั นาระบบด้วยวธิ ีการแบบ Spiral เริมตน้ ทีขนั ตอนการวางแผน (Plan first Iteration) เป็นขนั ตอนทีจะ รวบรวมสารสนเทศใหเ้ พียงพอต่อการสร้างตวั ตน้ แบบใหไ้ ดม้ ากทีสุด ศกึ ษาความเป็นไปได้ สาํ รวจความตอ้ งการ ของระบบกาํ หนดทางเลอื กในการแกป้ ัญหา และกาํ หนดจาํ นวนรอบในการทาํ ซาํ ตวั ตน้ แบบ หลงั จากนนั จึงเริมตน้ สร้างตวั ตน้ แบบรวบที1 ทดสอบและประเมินตน้ แบบ และวางแผนเพอื สร้างตน้ แบบรอบที 2 เพมิ เติม ทาํ เช่นนี ต่อไปจนกระทงั ครบทกุ ส่วนงานของระบบ จากวิธีการพฒั นาระบบแบบ RAD ทงั ในรูปแบบของการใชต้ วั ตน้ แบบและแบบ Spiral จะเห็นว่าการพฒั นาระบบ นนั จะรวดเร็วกว่าวิธีการพฒั นาระบบแบบ Waterfall เนืองจากมกี ารรวมกิจกรรมบางอยา่ งใหส้ ามารถดาํ เนินการ ขนานกนั ไปไดเ้ ขา้ ไวด้ ว้ ยกนั จึงทาํ ใหข้ นั ตอนในการพฒั นาระบบลดนอ้ ยลง อกี ทงั ยงั เลือกใชก้ ารสร้างตน้ แบบเพือ จาํ ลองการทาํ งานของระบบจริงทีละส่วนจนกว่าจะครบทุกส่วน และจะกลายเป็นระบบทีสมบูรณ์ทีสุด 15.1.2. การพฒั นาระบบดว้ ยเครืองมือ (Tool-based Development) เป็นการพฒั นาระบบทีใชว้ ิธีการเลอื กเครืองมอื สนบั สนุนการพฒั นาระบบทตี รงกบั ความตอ้ งการทีสุด และ จะไม่พฒั นาระบบทีมีความตอ้ งการทียากแก่การพฒั นาดว้ ยเครืองมอื องคก์ รต่างๆ ไมน่ ิยมเลอื กใชว้ ิธีการพฒั นาระบบวธิ ีนี เนืองจากองคก์ รเองไมส่ ามารถระบุความตอ้ งการที ยากต่อการพฒั นาระบบได้ ซึงในความเป็นจริงแลว้ ระบบงานทีจะพฒั นาขึนมานนั เพือตอบสนองความตอ้ งการใน ระหว่างการทาํ งาน ดงั นนั วิธีการนีถงึ แมจ้ ะพฒั นาระบบไดง้ ่ายแต่ไม่สามารถตอบสนองความตอ้ งการสาํ หรับระบบ ใหมไ่ ดอ้ ยา่ งเตม็ ที 15.1.3. การซือซอฟตแ์ วร์สาํ เร็จรูปมาใชง้ าน (Packaged Software)
กรณีทีองคก์ รเลอื กทีจะซือซอฟตแ์ วร์สาํ เร็จรูปมาใชใ้ นระบบงานใหม่ ก่อนทีจะมกี ารติดตงั ระบบ โปรแกรมเมอร์จะตอ้ งพิจารณาว่าซอฟตแ์ วร์ทีซือมานนั จะตอ้ งไดร้ ับการแกไ้ ขอยา่ งไรจึงจะมลี กั ษณะการทาํ งานที ตรงกบั ความตอ้ งการขององคก์ ร การแกไ้ ขซอฟตแ์ วร์ทีซือมาสามารถจาํ แนกได้ 3 ลกั ษณะดงั ต่อไปนี - การปรับฟังกช์ นั การทาํ งานของซอฟตแ์ วร์สาํ เร็จรูป (Customize Packages) - การรวมซอฟตแ์ วร์สาํ เร็จรูปใหท้ าํ งานร่วมกนั (Integration Packages) - การยกระดบั ความสามารถของซอฟตแ์ วร์สาํ เร็จรูป (Upgrading Packages) 1. การปรับฟังกช์ นั การทาํ งานของซอฟตแ์ วร์สาํ เร็จรูป (Customize Packages) : เป็นการแกไ้ ขซอฟตแ์ วร์ทีซือจาก ภายนอกองคก์ ร ดว้ ยการเพิมหรือลดฟังกช์ นั การทาํ งานของซอฟตแ์ วร์ทีซือมา ใหส้ ามารถทาํ งานไดเ้ หมาะสมกบั ระบบงานขององคก์ รทกี าํ ลงั พฒั นา เนืองจากซอฟตแ์ วร์สาํ เร็จรูปบางผลติ ภณั ฑม์ ีฟังกช์ นั ครอบคลมุ การทาํ งานใน ดา้ นตางๆ มากมายจนเกินความตอ้ งการของระบบ ดงั นนั จึงตอ้ งมกี ารลดฟังกช์ นั การทาํ งานลง หรือเพมิ ฟังกช์ นั การ ทาํ งานสาํ หรับซอฟตแ์ วร์ทีมีการทาํ งานไมค่ รบตามระบบงาน ซึงลกั ษณะการเพิมหรือลดฟังกช์ นั การทาํ งานมี 3 ชนิดดงั นี 1. Configuration : เป็นการเลือกตวั เลือกลกั ษณะการทาํ งานของซอฟตแ์ วร์ทีมกี ารเตรียมตวั เลอื กนนั ไวใ้ หแ้ ลว้ หรือ เป็นการเปลยี นแปลงค่าพารามิเตอร์ต่างๆ ของซอฟตแ์ วร์เพอื ใหร้ ูปแบบการทาํ งานเหมาะกบั ระบบงานขององคก์ ร เช่น การเลอื กรูปแบบของ Interfaces จากตวั เลือกทีซอฟตแ์ วร์มีให้ เป็นตน้ 2.Modification : เป็นการเปลยี นแปลงโคด้ ของซอฟตแ์ วร์ เพือใหม้ รี ูปแบบการทาํ งานทีเหมาะสมกบั ระบบงานของ องคก์ ร การแกไ้ ขซอฟตแ์ วร์ในลกั ษณะ Modification นีจะตอ้ งอาศยั โปรแกรมเมอร์ทีมีความชาํ นาญเป็นพิเศษ เนืองจากซอฟตแ์ วร์สาํ เร็จรูปบางชนิดไมอ่ นุญาตใหม้ กี ารแกไ้ ขโคด้ หรือหากอนุญาตใหแ้ กไ้ ข แต่อาจจะมเี งือนไข คือจะไมร่ ับผดิ ชอบต่อความเสียหายทีอาจจะเกดิ ขนึ และขอ้ เสียของ Modification คือ เมอื แกไ้ ขโคด้ ไปแลว้ จะทาํ ให้ เกิดปัญหาในการ Upgrade ซอฟตแ์ วร์จากทางผขู้ าย 3.Enhancement : เป็นการเพมิ โคด้ หรือเพมิ โมดูลการทาํ งานของซอฟตแ์ วร์ เพอื เพมิ ฟังกช์ นั การทาํ งานใหก้ บั ซอฟตแ์ วร์สาํ เร็จรูปทีซือมา การ Customize ซอฟตแ์ วร์สาํ เร็จรูปในลกั ษณะนีไมใ่ ช่การแกไ้ ขโคด้ แต่เป็นการเพิม ฟังกช์ นั การทาํ งานเขา้ ไปในซอฟตแ์ วร์ 2.การรวมซอฟตแ์ วร์สาํ เร็จรูปเฉพาะดา้ นใหท้ าํ งานร่วมกนั (Integration Packages) : เป็นการรวมซอฟตแ์ วร์ สาํ เร็จรูปในงานเฉพาะดา้ นของแต่ละหน่วยงาน ใหส้ ามารถทาํ งานร่วมกนั ไดด้ ว้ ยการใชข้ อ้ มลู ร่วมกนั แต่เดิมการใช้ ซอฟตแ์ วร์สาํ เร็จรูปอาจจะนาํ มาใชง้ านในแต่ละแผนกแตกต่างกนั ไป โดยมกี ารสร้างและจดั เก็บขอ้ มลู กนั เองแต่ละ แผนก การแกไ้ ขซอฟตแ์ วร์สาํ เร็จรูปลกั ษณะนีมีแนวคิดคือการสร้างและใชข้ อม้ ลู ร่วมกนั ไดจ้ ากทุกแผนกไมว่ า่ จะ เป็นแผนกบุคคล แผนกบญั ชี การเงิน ผลิต จดั ซือ เป็นตน้ เช่นขอ้ มลู พนกั งานจะถกู สร้างและจดั เก็บโดยแผนก บุคคล แต่แผนกบญั ชีสามารถนาํ ขอ้ มลู พนกั งานไปใชเ้ พอื คาํ นวณเงินเดือนและภาษีได้ โดยไม่ตอ้ งสร้างขอ้ มลู พนกั งานเอง ขอ้ ดีของการแกไ้ ขซอฟตแ์ วร์สาํ เร็จรูปประเภทนีคือ แต่ละแผนกจะไดข้ อ้ มลู ทีมีรูปแบบเป็นมาตรฐาน เดียวกนั ในการใชง้ านนนั เอง การรวมซอฟตแ์ วร์สาํ เร็จรูปเฉพาะดา้ นใหท้ าํ งานร่วมกนั ไดใ้ นองคก์ ร เรียกอกี อยา่ งหนึงวา่ “EAI (Enterprise Application Integration)” เป็นกระบวนการทีใชเ้ ชือมโยงแต่ละหน่วยการทาํ งานขององคก์ ร ทงั หน่วยการ ทาํ งานทางธุรกิจและสารสนเทศใหส้ ามารถทาํ งานร่วมกนั ได้ โดยเลือกใชว้ ิธีการ 2 วิธี ดงั นี - ใช้ Middleware ในการเชือมโยงการทาํ งานของแต่ละซอฟตแ์ วร์
- จดั ซือซอฟตแ์ วร์ ERP ทีมี Middleware เพือการเชือมโยงการทาํ งานเตรียมไวใ้ หเ้ รียบร้อยแลว้ Middleware คือ ซอฟตแ์ วร์อรรถประโยชนท์ ีมีลกั ษณะเป็นกึงโปรแกรมประยกุ ตแ์ ละกึงโปรแกรมระบบหรือที เรียกว่า Utility Software ทีคอยเชือมการทาํ งานร่วมกนั ระหว่างเทคโนโลยที ีแตกต่างกนั ไดต้ วั อยา่ งเช่น ODBC Drive, CORBA และ DCOM เป็นตน้ ERP (Enterprise Resource Planning) คือกระบวนการในการใชซ้ อฟตแ์ วร์เพอื เชือมโยงการทาํ งานแต่ละหน่วยงาน ขององคก์ ร (Middleware) เพือปรับปรุง พฒั นาประสิทธิภาพและประสิทธิผลขององคก์ ร 3.การยกระดบั ความสามารถของซอฟตแ์ วร์สาํ เร็จรูป (Upgrading Packages) : การแกไ้ ขซอฟตแ์ วร์สาํ เร็จรูปเพอื การ ติดตงั ระบบประเภทนี อาจมหี ลายลกั ษณะ เช่น ยกระดบั ความสามารถของซอฟตแ์ วร์ใหท้ าํ งานง่ายขึน การแกไ้ ข ขอ้ ผดิ พลาดทีพบจากซอฟตแ์ วร์เวอร์ชนั (Version) เดิม การเพมิ ฟังกช์ นั การทาํ งานของซอฟตแ์ วร์ เป็นตน้ แต่การ Upgrade ซอฟตแ์ วร์บ่อยครังนนั เป็นสิงทีไม่ดีนกั เนืองจากถกู มองว่าองคก์ รเลอื กซอฟตแ์ วร์ทีไมม่ ปี ระสิทธิภาพมา ใชง้ านได้ และจากทีไดก้ ลา่ วไวแ้ ลว้ วา่ หากซอฟตแ์ วร์สาํ เร็จรูปไดร้ ับการ Customize หรือการ Integrate มาแลว้ จะ ทาํ ใหก้ าร Upgrade นนั ยงุ่ ยากขึนจนถึงไม่สามารถ Upgrade ไดเ้ ลย ดงั นนั ก่อนทจี ะมีการแกไ้ ขซอฟตแ์ วร์สาํ เร็จรูป เพอื การติดตงั ระบบ ควรมีการวางแผนอยา่ งรอบคอบ เพอื ป้ องกนั การเกิดปัญหาลกั ษณะนี จากเนือหาในขอ้ นี เป็นการแนะนาํ ใหผ้ อู้ ่านไดร้ ู้จกั กบั ขนั ตอนการพฒั นาและติดตงั ระบบ (System Implementation) ซึงถา้ พิจารณาสืบเนืองมาจากการเลอื กวิธีการ (Methodologies) ในการพฒั นาระบบนนั จะเห็นว่าองคก์ รสามารถ เลือกพฒั นาระบบไดห้ ลายทางดว้ ยกนั ดงั นนั ก่อนการพฒั นาและติดตงั ระบบควรมกี ารวางแผนการติดตงั ระบบ อยา่ งรอบคอบ หากเป็นกรณีทีองคก์ รเลอื กทีจะพฒั นาระบบดว้ ยทีมงานพฒั นาระบบทจี ดั ตงั ขึนเอง ตอ้ งมที ีม โปรแกรมเมอร์ เพือเขียนโปรแกรมของระบบขึนมา และเมอื กระบวนการของการพฒั นาโปรแกรมดาํ เนินการเสร็จ สินแล้ สิงสาํ คญั ก่อนการติดตงั ระบบคือ การทดสอบโปรแกรม 15.2. การทดสอบโปรแกรม (Software Testing) การทดสอบโปรแกรมเป็นขนั ตอนทีสาํ คญั ขนั ตอนหนึงหลงั จากทีโปรแกรมเมอร์ไดเ้ ขียนโปรแกรมเสร็จ สินแลว้ จะตอ้ งทดสอบว่าโปรแกรมนนั ใหผ้ ลลพั ธท์ ีถกู ตอ้ งหรือไม่ เมือพบขอ้ ผดิ พลาดจะไดท้ าํ การแกไ้ ขและ ป้ องกนั ขอ้ ผดิ พลาดทีจะเกิดขึนต่อไป ทงั นีเพือเป็นการทดสอบความสมบูรณ์ของโปรแกรม รวมทงั ความน่าเชือถอื และความถกู ตอ้ งของผลลพั ธจ์ ากโปรแกรมทีพฒั นาขึน ซึงเทคนิคในการทดสอบโปรแกรมนนั มีหลากหลายวธิ ี ใน ทีนีจะขอแบ่งออกเป็น 2 กลุ่ม ดงั นี 15.2.1. การทดสอบโดยไม่ใชเ้ ครืองคอมพวิ เตอร์ (Manual Testing) - การทดสอบแบบตรวจการณ์ (Inspection) - การทดสอบตามลาํ ดบั คาํ สงั ในโปรแกรม (Desk Checking) 15.2.2. การทดสอบดว้ ยเครืองคอมพวิ เตอร์ (Automated Testing) - การทดสอบดว้ ยการตรวจสอบไวยากรณ์ (Syntax Checking) - การทดสอบทีละโมดลู (Unit Testing) - การทดสอบแบบเพมิ โมดลู (Integration Testing) - การทดสอบดว้ ยโมดลู ตวั แทน(Stub Testing) - การทดสอบรวม (System Testing) 15.2.1. การทดสอบโดยไม่ใชเ้ ครืองคอมพิวเตอร์ (Manual Testing)
เป็นการทดสอบโปรแกรมโดยการตรวจสอบจากโปรแกรมเมอร์เอง ไม่มีการใชเ้ ครืองคอมพิวเตอร์เพอื ทดสอบโดย อตั โนมตั ิซึงการทดสอบแบบโดยไมใ่ ชเ้ ครืองคอมพวิ เตอร์ แบ่งไดเ้ ป็น 2 ชนิด คือ การทดสอบแบบตรวจการณ์ (Inspection) และการทดสอบตามลาํ ดบั คาํ สงั ในโปรแกรม (Desk Checking) - การทดสอบแบบตรวจการณ์ (Inspection) : เป็นเทคนิคการทดสอบโปรแกรมโดยโปรแกรมเมอร์ตรวจสอบเอง ดว้ ยการเปรียบเทียบโคด้ ของโปรแกรมทีเขียนขนึ กบั รายการ Error ทีโปรแกรมเมอร์ทราบแลว้ วา่ จะตอ้ งเกิดขนึ จากโปรแกรมภาษาทีใชใ้ นการพฒั นาโปรแกรม โดยการตรวจสอบวา่ โคด้ ทีเขียนนนั มี Error เกิดขึนตาม รายการหรือไม่ เช่น Error ทีสามารถเกิดขึนไดใ้ นภาษา COBOL ซึงจะมีรายการ Error ในค่มู ือ ดงั นนั สามารถ นาํ คู่มือนนั มาทาํ การเปรียบเทียบกบั โปรแกรมทีพฒั นาขึนได้ เทคนิคชนิดนีใชใ้ นการป้ องกนั การเกิด ขอ้ ผดิ พลาดในรูปแบบเดิมไมใ่ หเ้ กิดขึนซาํ อกี ครัง โดยในบางกรณีโปรแกรมเมอร์สามารถทดสอบโปรแกรม แบบตรวจการณ์ในขณะเขียนโปรแกรมได้ จะทาํ ใหล้ ดเวลาในการทดสอบโปรแกรมชนิดนีไดภ้ ายหลงั แต่การ ทดสอบชนิดนีไมไ่ ดท้ าํ ใหโ้ ปรแกรมเมอร์ทราบว่าไดว้ า่ มผี ลลพั ธท์ ีถกู ตอ้ งหรือไม่ เนืองจากไมไ่ ดท้ ดสอบการ ทาํ งานของโปรแกรม เป็นเพยี งการทดสอบความผดิ พลาดของโคด้ เท่านนั - การทดสอบตามลาํ ดบั คาํ สงั ในโปรแกรม (Desk Checking) : เทคนิคการทดสอบโปรแกรมชนิดนี กระทาํ โดยผู้ ทีไดร้ ับการแต่งตงั ใหเ้ ป็นผทู้ ดสอบโปรแกรมซึงอาจจะเป็นโปรแกรมเมอร์หรือไมก่ ็ได้ แตจ่ ะตอ้ งมคี วามเขา้ ใจ ในการทาํ งานทางตรรกะของโปรแกรม ดว้ ยการตรวจสอบโคด้ ของโปรแกรมตามลาํ ดบั คาํ สงั ในโปรแกรม วา่ มี ตรรกะทีผดิ ปกติหรือไม่ แต่วิธีการนีจะทาํ ใหเ้ สียเวลาในการทดสอบโปรแกรมค่อนขา้ งมากถา้ ระบบงานทีมี ความซบั ซอ้ นสูง 15.2.2. การทดสอบดว้ ยเครืองคอมพวิ เตอร์ (Automated Testing) เป็นการทดสอบโปรแกรมดว้ ยเครืองคอมพวิ เตอร์ ซึงจะทาํ ใหเ้ สียเวลาในการทดสอบ แบ่งไดเ้ ป็น 4 ชนิด ไดแ้ ก่ การทดสอบดว้ ยการตรวจสอบไวยากรณ์ (Syntax Checking) การทดสอบทีละโมดลู (Unit Testing) การ ทดสอบแบบเพมิ โมดูล (Integration Testing) การทดสอบดว้ ยโมดูลตวั แทน (Stub Testing) และการทดสอบรวม (System Testing) 1. การทดสอบดว้ ยการตรวจสอบไวยากรณ์ (Syntax Checking) : เป็นการทดสอบโปรแกรม ดว้ ยการตรวจสอบ ไวยากรณ์ (Syntax) ทีเขียนขึน โดยปกติแลว้ จะไดร้ ับการตรวจสอบดว้ ย Compiler ซึงจะใชเ้ วลาไม่นานสามารถ ทราบผลได้ แต่วิธีการนีไมท่ าํ ใหท้ ราบไดว้ ่าผลลพั ธจ์ ากการทาํ งานของโปรแกรมนนั จะถกู ตอ้ งหรือไม่ เนืองจาก เป็นทดสอบเพยี งไวยากรณ์ของโปรแกรมเท่านนั 2. การทดสอบทีละโมดูล (Unit Testing) : Unit Testing หรือบางครังเรียกอกี อยา่ งว่า Module Testing เป็นการ ทดสอบโปรแกรมทีละโมดลู เพอื หาขอ้ ผดิ พลาดทีจะเกิดขึนภายในการทาํ งานของแต่ละโมดลู 3. การทดสอบแบบเพมิ โมดลู (Integration Testing) : เป็นการทดสอบโปรแกรมโดยการเพิมจาํ นวนโมดลู เพือการ ทดสอบ ซึงวธิ ีการนีจะอาศยั Structure Chart ทีมีอยแู่ ลว้ ช่วยในการทดสอบโปรแกรม ซึงวธิ ีการในการทดสอบ แบบ Integration นีแบ่งออกเป็น 2 ลกั ษณะไดแ้ ก่ การทดสอบแบบเพมิ โมดูลจากบนลงลา่ ง (Top-down Approach) และการทดสอบแบบเพมิ โมดูลจากลา่ งขึนบน (Bottom-up Approach) - การทดสอบแบบเพมิ โมดลู จากบนลงลา่ ง (Top- down Approach) : เป็นการทดสอบโปรแกรม โดยทดสอบ โมดลู จากบนลงลา่ ง
- การทดสอบแบบเพมิ โมดูลจากล่างขึนบน (Bottom-up Approach) : เป็นการทดสอบโปรแกรม โดยทดสอบ โมดูลจากล่างขนึ บน 4. การทดสอบดว้ ยโมดลู ตวั แทน (Stub Testing) : โดยทวั ไปแลว้ โมดลู ทีอยใู่ นระดบั บนจะเรียกใชข้ อ้ มลู จากโมดูล ระดบั ลา่ ง แต่การทดสอบโปรแกรมแบบเพมิ โมดลู (Integration) นนั จะทดสอบโมดูลทีละระดบั ฉะนนั Stub Testing คือ กลมุ่ คาํ สงั สนั ๆ ทีเขียนขึนมาเพือเป็นโมดลู ตวั แทนในการทดสอบโปรแกรม 5. การทดสอบรวม (System Testing) : เป็นการทดสอบโปรแกรมทีมีวิธกี ารคลา้ ยกบั การทดสอบแบบ Integration แตกต่างกนั ตรงที Integration Testing จะทดสอบโดยใชโ้ มดูลเพมิ ไปเรือยๆ จนกระทงั ครบทุกโมดลู ของ โปรแกรม แต่ System Testing จะทดสอบจากโปรแกรมเพมิ ไปเรือยๆ จนกระทงั ครบทุกโปรแกรมของ ระบบงาน วา่ โปรแกรมทกุ โปรแกรมเมือทาํ งานร่วมกนั แลว้ จะใหผ้ ลลพั ธท์ ีถกู ตอ้ งหรือไม่ นอกจากนีแลว้ System Testing ยงั เป็นการทดสอบระบบงานว่า สามารถทาํ งานใหผ้ ลลพั ธท์ ีมปี ระสิทธิภาพเป็นทียอมรับ หรือไม่ และเพอื ทาํ ใหม้ นั ใจไดว้ า่ ระบบงานนนั สามารถตอบสนองความตอ้ งการของผใู้ ชไ้ ดอ้ ยา่ งตรงจุดมาก ทีสุด 15.2.3. กลยทุ ธใ์ นการทดสอบระบบ กลยทุ ธท์ ีใชใ้ นการทดสอบประสิทธิภาพในการทาํ งานของระบบ สามารถจาํ แนกเป็น การทดสอบการทาํ งานสูงสุด (Peak Load Testing) การทดสอบประสิทธิภาพของเวลา (Performance Testing) การทดสอบการกรู้ ะบบ (Recovery Testing) การทดสอบการเกบ็ ขอ้ มลู (Storage Testing) การทดสอบกระบวนการ (Procedure Testing) และการ ทดสอบผใู้ ช้ (User Testing) 1. การทดสอบการทาํ งานสูงสุด(Peak Load Testing): เป็นการทดสอบประสิทธิภาพในการประมวลผลของระบบ เมอื มกี ารทาํ รายการมากทีสุด ณ ช่วงเวลาใดเวลาหนึง เพือทดสอบว่าระบบจะสามารถรองรับการทาํ รายการ คาํ สงั มากทีสุดไดเ้ พียงใด และนานเท่าใดเมอื ตอ้ งประมวลผลจาํ นวนรายการคาํ สงั ทีมากทีสุดดงั กล่าวใน ช่วงเวลาหนึง เช่น ระบบลงทะเบียนนกั ศกึ ษาผา่ นทางอินเตอร์เนต็ สามารถรองรับการทาํ รายการของนกั ศกึ ษาไดส้ ูงสุด 1000 รายการต่อวนั ในการทดสอบสมมติใหม้ ีการทาํ รายการ 1200 รายการต่อวนั ในช่วงภาคการศกึ ษาฤดรู ้อน การ ทดสอบลกั ษณะนีจะทาํ ใหท้ ราบไดว้ า่ ระบบสามารถรองรับการทาํ รายการมากกวา่ ขีดสูงสุดทกี าํ หนดไดห้ รือไม่ และไดน้ านเพียงใด มปี ัญหาอะไรเกดิ ขนึ บา้ ง เป็นการปรับปรุงระบบหากมกี ารเพิมจาํ นวนระเบียนขอ้ มลู ใน ฐานขอ้ มลู ในอนาคต 2. การทดสอบประสิทธิภาพของเวลา (Performance Testing) : เป็นการทดสอบระบบ เพือพจิ ารณาถึงช่วงเวลาทีใช้ ในการประมวลผลรายการ วา่ ใชร้ ะยะเวลานานเพยี งใดในการทาํ รายการไมว่ า่ จะเป็นการประมวลผลแบบกลุ่ม (Batch Processing) หรือการประมวลผลแบบออนไลน์ (On-line Processing) รวมทงั ทดสอบช่วงเวลาทีใชใ้ น การเขา้ ถึงขอ้ มลู แบบลาํ ดบั (Sequential Access) และแบบสุ่ม (Random Access) ดว้ ย 3. การทดสอบการกรู้ ะบบ (Recovery Testing) : เป็นการทดสอบความสามารถในการกรู้ ะบบกรณีทีระบบลม้ ความสามารถในการกรู้ ะบบนีรวมทงั การกขู้ อ้ มลู ดว้ ย 4. การทดสอบการเกบ็ ขอ้ มลู (Storage Testing) : เป็นการทดสอบความสามารถของระบบในการเกบ็ ขอ้ มลู วา่ สามารถเก็บขอ้ มลู ไดส้ ูงสุดเป็นจาํ นวนเท่าใด เพือจะไดเ้ ตรียมการรองรับจาํ นวนขอ้ มลู ทีอาจจะเพมิ มากขึนใน อนาคต
5. การทดสอบกระบวนการ (Procedure Testing) : เป็นการทดสอบการจดั ทาํ เอกสารคู่มอื การดาํ เนินงานของระบบ และคู่มอื การใชง้ านสาํ หรับผใู้ ช้ ว่าสามารถสร้างความเขา้ ใจใหก้ บั ผใู้ ชไ้ ดม้ ากนอ้ ยเพียงใด และเมือเกิดปัญหาใน เบืองตน้ ขึน ผใู้ ชส้ ามารถอ่านคู่มอื เพอื แกไ้ ขปัญหานนั ไดห้ รือไม่ 6. การทดสอบผใู้ ช้ (User Testing) : หรือบางครังเรียกว่า Human Factors Testing เป็นการทดสอบการใชง้ านจริง ของระบบเพอื ตอ้ งการทราบวา่ ผใู้ ชจ้ ะทาํ อยา่ งไรเมือพบปัญหาทีเกิดขนึ นอกจากการทดสอบดงั กล่าวขา้ งตน้ ทงั หมดแลว้ ยงั จะตอ้ งมกี ารทดสอบการยอมรับของผใู้ ชท้ ีมตี ่อระบบใหม่ จึงจะ ถือว่าระบบนนั ไดผ้ า่ นการทดสอบอยา่ งครบถว้ นแลว้ 15.2.4. การทดสอบการยอมรับของระบบโดยผใู้ ช้ หลงั จากทีไดท้ ดสอบความสมบูรณ์และความถกู ตอ้ งของโปรแกรมแลว้ ยงั จะตอ้ งทาํ การทดสอบการยอมรับของ ระบบจากผใู้ ชท้ ีมตี ่อระบบอกี ดว้ ย ซึงเป็นการทดสอบทีสาํ คญั เทียบเท่ากบั การทดสอบโปรแกรม เนืองจากการ พฒั นาระบบนนั เพอื ตอบสนองความตอ้ งการในการดาํ เนินงานของผใู้ ชร้ ะบบ ดงั นนั ระบบงานใหม่ จะสามารถ ติดตงั ไดต้ อ้ งผา่ นการยอมรับจากผใู้ ช้ โดยวิธีการทดสอบการยอมรับของระบบนนั สามารถแบ่งออกเป็น 2 ประเภท คือ Alpha Testing และ Beta Testing 1. Alpha Testing : คือ การทดสอบความสมบรู ณ์ของระบบโดยผใู้ ช้ และใชข้ อ้ มลู สมมติในการทดสอบ ในการ ทดสอบประเภทนี จะสมมติใหร้ ะบบอยใู่ นสถานการณ์ทีอาจจะเกิดขึนไดจ้ าก Alpha Testing นีจะทาํ ใหท้ ราบได้ ว่าระบบมีขอ้ ผดิ พลาดอะไรเกิดขึนบา้ ง โดยการทดสอบจะมี 4 ประเภทคือ Recovery Testing : เป็นการทดสอบการกรู้ ะบบ หากเกิดกรณีทีระบบลม้ เพือทดสอบวา่ ระบบมปี ระสิทธิภาพ ในการกขู้ อ้ มลู และดาํ เนินระบบต่อไปไดน้ ่าพอใจหรือไม่ Security Testing : เป็นการทดสอบความปลอดภยั ของระบบ วา่ มีเครืองมือรักษาความปลอดภยั ทีมี ประสิทธิภาพเป็นทีน่าพึงพอใจหรือไม่จากสถานการณก์ ารลกั ลอบเรียกใชข้ อ้ มลู Stress Testing : เป็นการทดสอบประสิทธิภาพการทาํ งานของระบบภายใตค้ วามกดดนั เช่นจะเกิดอะไรขึนเมือ ผใู้ ชป้ ้ อนขอ้ มลู ไม่ครบทุกField หรือจะเกิดอะไรขึนเมอื มกี ารเขา้ ถึงขอ้ มลู ในเวลาเดียวกนั จากผใู้ ชห้ ลายคน เป็นตน้ Performance Testing : เป็นการทดสอบประสิทธิภาพการทาํ งานของระบบภายใตส้ ภาพแวดลอ้ มของ คอมพิวเตอร์ เช่นภายใตร้ ะบบปฎิบตั กิ ารคอมพวิ เตอร์ทีแตกต่างกนั ภายใตร้ ะบบเครือข่ายคอมพวิ เตอร์ทีแตกต่างกนั ว่าระบบมี Response time มากนอ้ ยเพียงใด ทงั นีขอ้ มลู ทีใชใ้ นการทดสอบแบบ Alpha Testing เป็นขอ้ มลู ทีสมมติขึน แต่จะมอี กี ประเภทหนึงทีใชข้ อ้ มลู จริงจาก การดาํ เนินงานในชีวติ ประจาํ วนั ในการทดสอบ นนั คือ Beta Testing 2. Beta Testing : คือ การทดสอบความสมบรู ณข์ องระบบโดยผใู้ ช้ และใชข้ อ้ มลู จริงในการทดสอบและภายใต้ สถานการณ์ทีเกิดขึนจริง การทดสอบประเภทนีถือวา่ เป็นการซอ้ มติดตงั ระบบเพอื ใชง้ านจริง เนืองจากเป็นการ ทดสอบระบบอยา่ งสมจริงไมว่ ่าจะเป็นสถานการณ์ ขอ้ มลู ขนั ตอนการดาํ เนินงาน เอกสารคู่มือ การฝึกอบรม การสนบั สนุนการทาํ งาน รวมทงั ยงั เป็นการแกป้ ัญหาทีพบจากการทดสอบแบบ Alpha Testing ดว้ ย 15.3. การติดตงั ระบบ (Installation) เมือทดสอบโปรแกรมและระบบ จนผใู้ ชย้ อมรับแลว้ ระบบงานทีไดร้ ับการพฒั นาพร้อมทีจะนาํ มาใชง้ านจริง ดว้ ย การติดตงั (Installation) การติดตงั ระบบ คือ การเปลยี นการทาํ งานจากระบบงานเดิมไปเป็นระบบงานใหม่ แต่การ
เปลยี นแปลงไปสู่สิงใหมย่ อ่ มมผี ลกระทบต่อผใู้ ชง้ านบางกลุม่ ทียงั คงมคี วามคุน้ เคยกบั วิธกี ารดาํ เนินงานแบบเก่า รวมทงั ขอ้ จาํ กดั ในเรืองของความพร้อมในการเปลยี นแปลง ดงั นนั จึงควรเลือกแนวทางทีเหมาะสมในการติดตงั ดว้ ย ซึงแบ่งออกเป็น 4 แนวทางดงั นี 1. การติดตงั ระบบทนั ทีทนั ใด (Direct Installation) 2. การติดตงั แบบขนาน (Parallel Installation) 3. การติดตงั แบบนาํ ร่อง (Single Location Installation/Pilot Installation) 4. การติดตงั แบบยอมติดตงั เป็นระยะ (Phased Installation) 15.3.1. การติดตงั ระบบทนั ทีทนั ใด (Direct Installation) เป็นวิธีการติดตงั ทีมกี ารใชร้ ะบบงานใหม่ทนั ที และระบบงานเก่ายกเลกิ การใชง้ านทนั ทีเช่นเดียวกนั วธิ ีการแบบนี องคก์ รเสียค่าใชจ้ ่ายนอ้ ยแต่มคี วามเสียงสูง เนืองจากในการใชง้ านจริงนนั ขอ้ มลู ทีนาํ เขา้ สู่ระบบมคี วามเป็นไปไดใ้ น การเกดิ ขอ้ ผดิ พลาดขึนไดม้ ากกวา่ ขอ้ มลู ทีสมมติขึนเพอื การทดสอบ และหากเกิดกรณีเช่นนีจะส่งผลกระทบต่อผใู้ ช้ ระบบ จนทาํ ใหร้ ะบบหยดุ ชะงกั ได้ วิธีการแกป้ ัญหาอยา่ งหนึงคือนาํ ระบบเก่าเขา้ มาใชง้ านอีกครัง แต่จะเสียเวลามาก เนืองจากตอ้ งปรับปรุงขอ้ มลู ในระบบเก่าทงั หมด แตก่ ารติดตงั วธิ ีนียงั มขี อ้ ดีคือ สามารถเลือนกาํ หนดการใชง้ าน ระบบใหมอ่ อกไปไดห้ ากองคก์ รหรือผใู้ ชง้ านยงั ไม่มคี วามพร้อมสาํ หรับระบบใหม่ อยา่ งไรก็ตามระบบทีพร้อมจะติดตงั เพือใชง้ าน จะตอ้ งผา่ นการทดสอบอยา่ งหนกั ในทุกสถานการณ์ และ ผา่ นการแกไ้ ขขอ้ ผดิ พลาดทีเกิดขึนจากการทดสอบมาแลว้ อยา่ งครบถว้ น 15.3.2. การติดตงั แบบขนาน (Parallel Installation) เป็นวิธีการทีมกี ารใชร้ ะบบงานใหม่ไปพร้อมๆ กบั การใชร้ ะบบงานเก่า จนกวา่ ผใู้ ชแ้ ละผบู้ ริหารจะพอใจ ระบบใหมแ่ ละตดั สินใจทีจะหยดุ ใชร้ ะบบเก่า การติดตงั แบบขนาน เป็นวิธีการตดิ ตงั ทีตอ้ งใชค้ ่าใชจ้ ่ายค่อนขา้ งสูง เนืองจากการดาํ เนินงานสองระบบในเวลาเดียวกนั หมายถึงการเพิมพนกั งานบางตาํ แหน่งเพือดแู ลระบบใหม่ ทงั ยงั ตอ้ งคอยดแู ล บาํ รุงรักษาระบบใหม้ คี วามสมบูรณ์และมปี ระสิทธิภาพมากทีสุด ในบางครังอาจทาํ ใหผ้ ใู้ ชร้ ะบบเกิด ความสบั สนได้ แต่วธิ ีการนีจะทาํ ใหส้ ามารถเปรียบเทียบผลของการดาํ เนินงานระหว่างระบบใหมก่ บั ระบบเก่าได้ 15.3.3. การติดตงั แบบนาํ ร่อง (Single Location Installation/Pilot Installation) เป็นวธิ ีการทีมกี ารใชร้ ะบบงานใหมเ่ พียงหน่วยเดียวขององคก์ รก่อนเพือเป็นการนาํ ร่อง แลว้ จึงค่อย ปรับเปลียนทงั หมดเมือเห็นวา่ ระบบใหม่นนั ลงตวั แลว้ เชน่ การใชร้ ะบบงานใหม่เฉพาะแผนกจดั ซือแผนกเดียวกนั การใชร้ ะบบงานใหมเ่ ฉพาะสาขาเดยี วก่อน หรือเฉพาะบางภูมิภาคก่อน เป็นตน้ ขอ้ ดีของวธิ ีการนีคือ เสียค่าใชจ้ ่ายนอ้ ยกว่าสองวธิ ีแรก และเมอื เกิดขอ้ ผดิ พลาดหรือความเสียหายเนืองจาก ระบบงานใหม่ ความเสียหายนนั จะจาํ กดั อยเู่ พียงแค่สถานทีขององคก์ รทีจดั ใหม้ กี ารตดิ ตงั ระบบใหม่แบบนาํ ร่อง เท่านนั หรือจาํ กดั อยเู่ พยี งสาขาเดียว ไม่ทาํ ใหก้ ารดาํ เนินธุรกิจของทงั องคก์ รเสียหายไปดว้ ย ทงั ยงั สามารถติดตาม ผล และดูแลระบบใหมไ่ ดอ้ ยา่ งเตม็ ที เพอื ปรับปรุงและแกไ้ ขใหเ้ ป็นระบบทีสมบูรณ์ก่อนทีจะนาํ ไปปรับเปลียนกบั ส่วนทีเหลอื ขององคก์ ร อยา่ งไรกต็ าม ทีมนกั พฒั นาหรือนกั วิเคราะหร์ ะบบ ยงั คงตอ้ งมีการดแู ลรักษาระบบใหม่ไปพร้อมๆ กบั ทีให้ ความสนใจกบั ระบบเก่าทียงั คงใชง้ านอยสู่ ่วนใหญ่ซึงคลา้ ยกบั วิธีการอืน หากแตค่ วามสบั สนทีเกดิ ขึนนนั นอ้ ยกว่า 15.3.4. การติดตงั แบบทยอยติดตงั เป็นระยะ (Phased Installation)
เรียกอกี อยา่ งหนึงวา่ “Staged Installation” เป็นวิธีการทีมกี ารใชร้ ะบบงานใหม่เพยี งบางส่วนก่อนระยะ หนึงควบคู่ไปกบั ระบบงานเก่า แลว้ จึงค่อยๆ ทยอยใชร้ ะบบงานใหมเ่ พมิ ขึนทีละส่วนจนกระทงั ครบทกุ ส่วนของ ระบบงานใหม่อยา่ งเต็มรูปแบบในทีสุด วธิ ีการนีมีลกั ษณะคลา้ ยกบั แบบนาํ ร่อง คือเริมจากจุดเดียวก่อน แตกต่างกนั ตรงทีวิธีแบบทยอยติดตงั เป็นระยะ ไมค่ าํ นึงถงึ สถานที แต่คาํ นึงถงึ ระบบงานยอ่ ยโดยการติดตงั ทีละระบบ ซึงอาจจะ กระจายไปตามสาขาต่างๆ ทีมกี ารใชร้ ะบบงานยอ่ ยนนั เมอื ระบบยอ่ ยทีใชเ้ ริมแรกสมบรู ณ์แลว้ จึงเริมนาํ ระบบยอ่ ย ต่อไปมาใชง้ าน เป็นเช่นนีไปเรือยๆ จนครบทงั ระบบในทสี ุด ขอ้ ดี : ของวิธีการนีคือ สามารถจาํ กดั ความเสียงทีเกิดขึนได้ เนืองจากการปรับเปลยี นเป็นช่วงระยะเวลาและบาง สถานทีความเสียงหรือขอ้ ผดิ พลาดจึงเกดิ ขึนในชว่ งทีมกี ารเปลยี นแปลงและสถานทีทีใชร้ ะบบงานใหมเ่ ท่านนั ขอ้ เสีย : คือ ความไม่สอดคลอ้ งของการดาํ เนินงานในระบบใหมแ่ ละระบบเก่า เนืองจากมกี ารนาํ ระบบงานยอ่ ยของ ระบบใหม่ เขา้ มาใชร้ ่วมกบั ระบบเก่า เช่น หากมกี ารนาํ ระบบการสงั ซือซึงเป็นระบบใหม่ เขา้ มาใชง้ านก่อนอาจจะ เกิดปัญหาในการติดต่อระหวา่ งฐานขอ้ มลู ของระบบใหมก่ บั ฐานขอ้ มลู ของระบบเก่าได้ -การวางแผนการติดตงั ระบบ (Planning Installation) : การติดตงั ระบบงานใหม่หมายถึง การเปลียนแปลงทีจะเกิด ขึนกบั การดาํ เนินงานในชวี ิตประจาํ วนั ของผใู้ ชร้ ะบบ ซึงมีความคนุ้ เคยกบั ระบบเก่ามานาน การเปลียนแปลงนนั ยงั รวมถงึ วิธีการดาํ เนินงาน การเปลียนแปลงรูปแบบเอกสาร รูปแบบการนาํ เขา้ ขอ้ มลู การเปลยี นแปลงโปรแกรม หรือ แมก้ ระทงั การเปลยี นแปลงรูปแบบของขอ้ มลู บางอยา่ งทีจะตอ้ งนาํ เขา้ สู่ระบบซึงนบั ไดว้ ่าเป็นขนั ตอนทีสาํ คญั ขนั ตอนหนึง ดงั นนั ก่อนการติดตงั ระบบ นกั วิเคราะหจ์ ึงจาํ เป็นตอ้ งมีการวางแผนเพอื เลือกวิธีการติดตงั อยา่ ง รอบคอบและระมดั ระวงั มากทีสุด เพอื ป้ องกนั ไมใ่ หเ้ กดิ การต่อตา้ นระบบใหมจ่ ากผใู้ ช้ ซึงอาจจะเกิดขึนไดอ้ ยา่ ง ฉบั พลนั ในระหวา่ งใชร้ ะบบใหม่ ทาํ ใหเ้ กิดความเสียหายแก่องคก์ รในทีสุด โดยการเลือกวธิ กี ารในการติดตงั ให้ เหมาะสมกบั องคก์ ร ซึงอาจจะมกี ารผสมผสานวิธีการติดตงั ไดม้ ากกว่า 2 วธิ ี ขึนอยกู่ บั สถานการณ์และความพร้อม ขององคก์ ร ผนวกกบั ปัจจยั ดา้ นบุคลากร ความคลอ่ งตวั ความกลา้ ทีจะเสียงกบั ความสบั สนทีจะเกิดขนึ กบั ลกู คา้ นกั วเิ คราะห์ระบบควรมกี ารตงั คาํ ถามเพือการตดั สินใจเลอื กใชว้ ิธีการติดตงั ระบบใหม่ และเมือเลือกวธิ ีการไดแ้ ลว้ ควรจดั ทาํ ตารางการตดิ ตงั ระบบใหม่ ประชาสมั พนั ธใ์ หท้ ุกคนในองคก์ รรับทราบถงึ ตารางการติดตงั ระบบนนั เพือ การเตรียมพร้อมในการเตรียมงานของทุกฝ่ าย รวมทงั วางแผนเพอื จดั เตรียมทีมงานสาํ หรับดแู ลระบบใหมอ่ ยา่ ง ชดั เจนเพอื รองรับปัญหาทีจะเกิดขนึ ไดอ้ ยา่ งทนั ท่วงที สิงทีสาํ คญั ของการวางแผนในการติดตงั ระบบใหมส่ าํ หรับ การดาํ เนินธุรกิจ คือ ไม่ควรวางแผนใหม้ กี ารติดตงั ระบบใหม่ในช่วงเวลาทีทาํ เงินใหธ้ ุรกิจไดม้ ากทีสุดของปี เนืองจากหากมกี ารติดตงั ระบบใหมใ่ นช่วงนนั ซึงแน่นอนว่า ระบบใหม่นนั ยอ่ มจะเกิดปัญหาขึนในระหวา่ งการ ดาํ เนินงาน และส่งผลใหส้ ร้างความไมพ่ อใจแก่ลกู คา้ ในทีสุด ดงั นนั ไมว่ า่ จะเป็นวธิ ีการตดิ ตงั ระบบแบบใดกต็ าม นกั วเิ คราะห์ระบบควรมคี วามเขา้ ใจเกียวกบั การดาํ เนินธุรกิจเป็นอยา่ งดี เพอื ใหก้ ารติดตงั ระบบนนั ส่งผลกระทบต่อ ผลประโยชนใ์ นการดาํ เนินธุรกิจขององคก์ ร 15.4. การจดั ทาํ เอกสาร (Documentation) ในระหวา่ งการพฒั นาระบบงานใหมน่ นั จะเกิดเอกสารแสดงรายละเอียดของระบบงานมากมาย ไมว่ ่าจะเป็น เอกสารทีเกิดจากขนั ตอนการวิเคราะห์ระบบ หรือออกแบบระบบก็ตาม เมอื มาถึงขนั ตอนการติดตงั ระบบแลว้ ชุด เอกสารเหล่านนั จะตอ้ งทาํ การปรับปรุงใหเ้ ป็นเอกสารทีแสดงรายละเอยี ดของระบบใหม่ทีถกู ตอ้ งมากทีสุด นอกจากนีในขนั ตอนการติดตงั นกั วิเคราะหร์ ะบบยงั จะตอ้ งจดั ทาํ เอกสารคู่มอื สาํ หรับผใู้ ช้ เพอื แสดงรายละเอียด
ขนั ตอนการทาํ งาน ภาพรวมของระบบใหมท่ งั หมด เพือใชอ้ า้ งองิ ในระหวา่ งการใชง้ านระบบใหม่ สามารถจาํ แนก การจดั ทาํ เอกสารออกเป็น 2 ประเภท ดงั นี - การจดั ทาํ เอกสารของระบบ (System Documentation) - การจดั ทาํ เอกสารของผใู้ ช้ (User Documentation) 15.4.1. การจดั ทาํ เอกสารของระบบ (System Documentation) เอกสารของระบบ คือ เอกสารทีแสดงขนั ตอนการทาํ งานภายในของระบบ และรายละเอียดขอ้ มลู เฉพาะ ของการออกแบบระบบ เช่น แบบจาํ ลองชนิดต่างๆ ทีใชเ้ ป็นเครืองมือในระหวา่ งการวเิ คราะหร์ ะบบ (Diagrams) พจนานุกรมขอ้ มลู (Data Dictionary) แบบร่างสาํ หรับการออกแบบแบบฟอร์ม รายงาน หนา้ จอ และตน้ แบบ เป็นตน้ ซึงสามารถจาํ แนกเอกสารของระบบนีออกเป็น 2 กลุม่ ไดแ้ ก่ เอกสารภายใน (Internal Documentation) และเอกสารภายนอก (External Documentation) เอกสารภายใน (Internal Documentation) : คือเอกสารของระบบทีแสดงรายละเอยี ดส่วนของโคด้ โปรแกรมทีเขียนขนึ พร้อมทงั คาํ อธิบายโปรแกรม ผลการรันโปรแกรมและอนื ๆทีเกียวขอ้ งกบั โปรแกรม ระบบ เอกสารภายนอก (External Documentation) : คือเอกสารทีเป็นแผนภาพ และแบบจาํ ลองชนิดต่างๆของ ระบบ เช่นแผนภาพกระแสขอ้ มลู (Data Flow Diagram: DFD) แผนภาพแสดงความสมั พนั ธข์ องขอ้ มลู (Entity Relationship Diagram :E-R diagram) แผนผงั โครงสร้าง (Structure Chart) เป็นตน้ เอกสารของระบบ จะช่วยใหก้ ารบาํ รุงรักษาระบบทาํ ไดส้ ะดวกขึน เนืองจากโดยขอบเขตของเอกสารแลว้ สามารถเป็นขอ้ มลู สาํ หรับอา้ งอิงการทาํ งานของระบบเมอื เกิดปัญหาได้ และหากเกิดกรณีทีองคก์ รเปลียน ทีมงานพฒั นาระบบ เอกสารเหล่านนั จะช่วยใหท้ ีมพฒั นาทมี ใหม่ ทาํ ความเขา้ ใจกบั โปรแกรม ขนั ตอนการ ทาํ งานและอืนๆทีเกิดขึนในระบบไดร้ วดเร็วยงิ ขึน 15.4.2. การจดั ทาํ เอกสารของผใู้ ช้ (User Documentation) เอกสารของผใู้ ช้ คือ เอกสารทีจดั ทาํ ขึนเพอื แสดงขนั ตอนการใชง้ านระบบ และวิธีการใชง้ านโปรแกรม เอกสาร สาํ หรับผใู้ ชย้ งั รวมถึงค่มู อื การใชง้ าน (User’s Guide) คู่มอื สาํ หรับบริหารระบบ (System Administration’s Guide) ซึงคู่มอื เหล่านีอาจจะอยใู่ นรูปของเอกสารเป็นเล่ม และแสดงไวใ้ นส่วนช่วยเหลือ (Help) ภายในโปรแกรมก็ได้ แต่ การจดั รูปแบบของการอธิบายรายละเอยี ดการใชง้ านโปรแกรม จะตอ้ งมีรูปแบบทีน่าสนใจ อา่ นเขา้ ใจง่าย คน้ หาง่าย แสดงหวั ขอ้ ชดั เจน รวมทงั แสดงถึงปัญหาทีอาจจะเกดิ ขนึ เนืองจากการใชง้ านและวธิ ีแกป้ ัญหา โดยการจดั รูปแบบ จะมหี ลกั เกณฑค์ ลา้ ยกบั การออกแบบส่วนช่วยเหลอื ของโปรแกรมในขนั ตอนการออกแบบระบบนนั เอง 15.5. การฝึกอบรมพนกั งาน (Training) ปัจจุบนั นีองคก์ รต่างๆ ไดเ้ ลง็ เห็นถึงความสาํ คญั ของการฝึกอบรมพนกั งานของตนมากขึน สงั เกตไดจ้ ากการ ขยายตวั ของกจิ การสถาบนั อบรมหลกั สูตรคอมพวิ เตอร์ ทงั นีอาจจะเนืองมาจากความคิดเห็นทวี า่ ระบบที พฒั นามาอยา่ งสมบูรณ์แลว้ จะยงั ไม่สามารถก่อใหเ้ กิดประสิทธิภาพใหก้ บั องคก์ รไดอ้ ยา่ งเตม็ ที หากขาดความ เขา้ ใจและทกั ษะในการใชง้ านระบบเป็นอยา่ งดีของผใู้ ชร้ ะบบ กรณีทีระบบงานนนั เป็นระบบใหมท่ งั หมด การอาศยั ความเขา้ ใจจากค่มู อื การใชง้ านโปรแกรมเพียงอยา่ ง เดียว อาจจะยงั ไม่เพยี งพอ แต่ยงั จะตอ้ งสร้างทกั ษะเริมตน้ ในการดาํ เนินงานใหแ้ ก่ผใู้ ชง้ านอกี ดว้ ย ดงั นนั
องคก์ รและนกั วเิ คราะหร์ ะบบจึงตอ้ งร่วมมอื กนั จดั หลกั สตู รฝึกอบรมการใชง้ านโปรแกรม ซึงมีวธิ ีการและ เทคนิคแตกต่างกนั ไปแต่ละองคก์ ร ขึนอยกู่ บั สภาพแวดลอ้ มและสถานการณ์ในขณะนนั องคก์ ร และปัจจยั สาํ คญั ทีส่งผลกระทบต่อการจดั หลกั สูตรฝึกอบรมใหแ้ ก่พนกั งานนนั ก็คือ “ค่าใชจ้ ่าย” ดงั นนั รูปแบบในการ ฝึกอบรมพนกั งานจึงมีแตกต่างกนั ไป ซึงอาจจะมกี ารจดั ฝึกอบรมในลกั ษณะต่างๆ ดงั นี 1. จดั เป็นหลกั สูตรฝึกอบรมเป็นกลมุ่ 2. ฝึกอบรมดว้ ยคอมพิวเตอร์ช่วยสอนเช่น CAI(Computer-aided Instruction), CBI(Computer-base Training) หรือ WBT(Web-Base Training) 3. ฝึกอบรมดว้ ย CAI พร้อมกบั มีผเู้ ชียวชาญคอยแนะนาํ 4. ผใู้ ชฝ้ ึกอบรมดว้ ยตวั เองจากส่วนช่วยเหลอื ของโปรแกรม 5. ฝึกอบรมโดยผจู้ าํ หน่ายโปรแกรมของระบบ หรือกลมุ่ ผรู้ ับพฒั นาระบบภายนอกองคก์ ร 6. ฝึกอบรมผา่ นทางอนิ เตอร์เน็ตกรณีทีองคก์ รมสี าขาอยตู่ ่างจงั หวดั และตอ้ งการลดค่าใชจ้ ่ายในการ เดินทาง การจดั หลกั สูตรฝึกอบรมพนกั งาน จะตอ้ งไดร้ ับการวางแผนเป็นอยา่ งดี โดยจะตอ้ งทราบถึงกลมุ่ พนกั งาน เป้ าหมายทีจะจดั ฝึกอบรม หนา้ ทีการทาํ งานของกลุ่มเป้ าหมายนนั จดั หวั ขอ้ การฝึกอบรม จดั ตงั วตั ถุประสงค์ ของหลกั สูตรทีพนกั งานจะตอ้ งไดร้ ับหลงั จากจบหลกั สูตรแลว้ การประเมนิ ผลหลงั การฝึกอบรม 15.6. การบริการใหค้ วามช่วยเหลือหลงั การติดตงั ระบบ (Support) การบริการใหค้ วามช่วยเหลอื หลงั การติดตงั ระบบ คือ การจดั เตรียมความช่วยเหลือเพอื การแกป้ ัญหาทีเกิดขึนกบั ผใู้ ชห้ ลงั จากติดตงั และใชง้ านระบบใหม่ การใหก้ ารสนบั สนุนแก่ผใู้ ชภ้ ายหลงั จากการใชร้ ะบบงานใหม่ สาํ หรับองคก์ รอาจจะมกี ารแต่งตงั ทีมงานเพือคอยให้ ความช่วยเหลือ ซึงอาจจะมีการจาํ แนกหนา้ ทีในการช่วยเหลอื ไดห้ ลายลกั ษณะ เช่น ช่วยเหลอื เมอื มกี ารติดตงั โปรแกรมใหม่หรือฮาร์ดแวร์ใหม่ คอยใหค้ าํ ปรึกษาและความช่วยเหลือแก่ผใู้ ชง้ านเมอื เกิดปัญหาในเบืองตน้ แบ่งแยกขอ้ มลู จากฐานขอ้ มลู ไปสู่เครืองคอมพิวเตอร์ของผใู้ ชง้ าน เป็นตน้ 15.6.1. การใหค้ วามชว่ ยเหลอื แบบอตั โนมตั ิ (Automating Support) สาํ หรับองคก์ รทีมขี นาดเลก็ การจดั ตงั ทีมงานเพือคอยใหค้ วามช่วยเหลอื เมอื เกิดปัญหาขึนนนั จะทาํ ใหเ้ สียค่าใชจ้ ่าย ในส่วนของค่าตอบแทนแรงงานส่วนนนั การลดค่าใชจ้ ่ายในส่วนนนั องคก์ รอาจจะใชว้ ธิ ีการใหก้ ารช่วยเหลอื แบบ อตั โนมตั ิ ดว้ ยเทคโนโลยกี ารติดต่อสือสารทีทนั สมยั ในปัจจุบนั เช่น - On-line Support Forum ผใู้ ชส้ ามารถตงั กระทูไ้ วเ้ พือแนะนาํ เทคนิคการใชง้ านใหก้ บั ผใู้ ชค้ นอนื ไดท้ ราบ หรือ สามารถเปิ ดประเดน็ ตงั คาํ ถามไดโ้ ดยผา่ นเครือข่ายอินเตอร์เน็ต หรือกรณีทีเป็นองคก์ รขนาดเลก็ จะสามารถทาํ ไดโ้ ดยผา่ นเครือข่ายอินทราเน็ต - Bulletin Board กระดานฝากขอ้ ความหรือข่าวสาร กรณีเช่นนีทางองคก์ รเองสามารถใหค้ วามรู้หรือข่าวสารแก่ ผใู้ ชง้ านไดโ้ ดยฝากเป็นขอ้ ความไวท้ กี ระดานฝากขอ้ ความนีไดอ้ ตั โนมตั ิ - Voice-response System : ระบบเสียงตอบรับอตั โนมตั ิ ผใู้ ชร้ ะบบสามารถเรียกไปยงั หมายเลขทีทางองคก์ ร กาํ หนดไว้ โดยระบบเสียงตอบรับอตั โนมตั จิ ะมีเมนูใหเ้ ลือกโดยการกดป่ ุมโทรศพั ทต์ ามหวั ขอ้ ทีผใู้ ชต้ อ้ งการ นอกจากนีองคก์ รยงั สามารถใหก้ ารสนบั สนุนหลงั การติดตงั ระบบโดยผา่ นทาง E-mail ไปยงั ผใู้ ชร้ ะบบทีเป็นลกู คา้ ขององคก์ รไดอ้ กี ดว้ ย
15.6.2. Help Desk คือ จุดใหค้ วามชว่ ยเหลือแก่ผใู้ ชร้ ะบบ ไม่วา่ จะเป็นปัญหาดา้ นใดกต็ ามทีเกิดขึนจากการดาํ เนินงานของระบบ ในปัจจุบนั จะสามารถพบกบั Help Desk ไดม้ ากมายซึงจะมีชือเรียกแตกต่างกนั ไป และองคก์ รเหล่านีส่วนใหญ่จะ เป็นองคกรทีมีผใู้ ชร้ ะบบเป็นลกู คา้ ซึงจะเรียก Help Desk ขององคก์ รแตกต่างกนั ไป เช่น Call Center, Customer Service, Web call center, Customer Care เป็นตน้ องคก์ รทีจดั ใหม้ ี Help Desk จะตอ้ งจดั ฝึกอบรมใหก้ บั ทีมงานทีจะมาทาํ หนา้ ทีในส่วนนีเป็นอยา่ งดี ทีมงานนนั จะตอ้ งมีความรู้และเขา้ ใจเกียวกบั การดาํ เนินงานของระบบ และมที กั ษะในการตอบคาํ ถามทีผใู้ ชร้ ะบบซกั ถาม พร้อมทงั สามารถยอมรับฟังปัญหาต่างๆ ทีเกิดขึนไดอ้ ยา่ งเต็มใจ การยอมรับระบบใหม่ของผใู้ ช้ นบั วา่ มอี ิทธิพลมากต่อการเปลียนแปลงการดาํ เนินงานจากระบบเดิมมาเป็นระบบ ใหม่ เพอื ป้ องกนั ไมใ่ หเ้ กิดความลม้ เหลวในการใชง้ านระบบใหม่ จะตอ้ งตระหนกั ถงึ วา่ ระบบทีพฒั นาขึนมาแมว้ ่า จะสมบรู ณ์ทีสุดแลว้ กต็ าม ไมอ่ าจเป็นระบบทดี ีทีสุดได้ หากผใู้ ชไ้ มย่ อมรับระบบนนั และการสร้างการยอมรับ จะตอ้ งสร้างความคุน้ เคยใหแ้ ก่ผใู้ ชง้ านไดเ้ ห็นว่า การเปลียนแปลงลกั ษณะการทาํ งานมาเป็นระบบใหมน่ นั ไมใ่ ช่ เรืองยากหรือซบั ซอ้ น และไมใ่ ช่เรืองของการลดบทบาทการทาํ งานของผใู้ ช้ แต่ช่วยใหผ้ ใู้ ชท้ าํ งานไดด้ ียงิ ขึนอนั เป็น การเพิมพนู ประสิทธิภาพใหก้ บั องคก์ ร และนาํ ประโยชนส์ ูงสุดใหเ้ กิดกบั องคก์ รของตนได้ ดงั นนั การจดั ฝึกอบรม และการใหก้ ารสนบั สนุนหลงั การติดตงั ระบบจึงเป็นเรืองทีไมค่ วรมองขา้ ม
บทที 14 การซ่อมบํารุงระบบ (System Maintenance) การบาํ รุงรกั ษาระบบ (System Maintenance) เป็นขนั ตอนสุดทา้ ยของวงจรการพฒั นาระบบ (SDLC) หลงั จากติดตงั ระบบใหมเ่ พือใชง้ านแทนระบบเก่าแลว้ เป็นทที ราบกนั ดีวา่ การดาํ เนินงานกบั ระบบใหมซ่ ึงผใู้ ชย้ งั ไมม่ ีความคุน้ เคยมากพอ อาจมปี ัญหาในระหวา่ งการทาํ งานเกิดขนึ มากมาย ปัญหา เหล่านนั สามารถแกไ้ ขและใหค้ าํ ปรึกษาไดจ้ ากทีมงานทถี ูกแต่งตงั ขนึ ใหเ้ ป็นฝ่ายบริการใหค้ วาม ช่วยเหลอื หลงั การใชง้ านระบบ (Support) ซึงรายละเอียดไดก้ ล่าวไวแ้ ลว้ แตเ่ มอื ปัญหาดงั กล่าวไดร้ ับ การแกไ้ ขจนกระทงั ลงตวั และผใู้ ชม้ คี วามคนุ้ เคยกบั ระบบใหมแ่ ลว้ เมอื เวลาผา่ นไปนกั วิเคราะห์ระบบ จะตอ้ งรักษาและพฒั นาประสิทธิภาพการทาํ งานของระบบให้ยงั คงตอบสนองความตอ้ งการของผใู้ ชไ้ ด้ อยเู่ สมอ เนืองจากการเปลียนแปลงไปของสภาพเศรษฐกจิ ทาํ ใหเ้ งือนไขหรือรูปแบบการดาํ เนินงานอาจ เปลียนแปลงตามไปดว้ ย อีกทงั เทคโนโลยีทางดา้ นคอมพิวเตอร์ทีมกี ารพฒั นาใหท้ นั สมยั และมศี กั ยภาพ ในการทาํ งานเพิมขนึ เรือยๆ ดงั นนั จึงตอ้ งมีการซ่อมบาํ รุงและรกั ษาระบบใหย้ งั คงมีประสิทธิภาพในการ ทาํ งานอยเู่ สมอ 14.1. กิจกรรมในขนั ตอนการซ่อมบาํ รุงระบบ (System Maintenance) การซ่อมบาํ รุงระบบ เป็นขนั ตอนเพอื การดูแลระบบเมือมขี อ้ ผดิ พลาดเกิดขนึ ทมี งานที รบั ผดิ ชอบหนา้ ทใี นส่วนนี จะตอ้ งทาํ การแกไ้ ขขอ้ ผดิ พลาดนนั เชน่ ขอ้ ผดิ พลาดของโปรแกรม (Errors) ระหวา่ งผใู้ ชป้ ฏิบตั งิ าน เป็นตน้ รวมทงั ยงั เป็ นขนั ตอนเพอื การปรับปรุง ดดั แปลง หรือแกไ้ ขทงั โปรแกรมและขนั ตอนการทาํ งานของระบบ นอกจากนียงั จะตอ้ งปรบั ปรุงการทาํ งานบางส่วนของระบบ ใหส้ ามารถทาํ งานตามความ ตอ้ งการของผใู้ ชท้ เี พิมขึนอยู่เสมอ ทงั นีเนืองจากการเปลียนแปลงไปของสภาพเศรษฐกิจ ทาํ ให้เงือนไข หรือรูปแบบการดาํ เนินงานอาจเปลียนแปลงตามไปดว้ ยอีกทงั เทคโนโลยีทางดา้ นคอมพวิ เตอร์ทมี กี าร พฒั นาใหท้ นั สมยั และมีศกั ยภาพในการทาํ งานเพมิ ขึนเรือยๆ ดงั นนั จึงตอ้ งมีการซ่อมบาํ รุงและรกั ษา ระบบใหย้ งั คงมีประสิทธิภาพในการทาํ งานอยเู่ สมอ การเริมดาํ เนินการซ่อมบาํ รุงระบบนนั สามารถเริมไดท้ นั ทหี ลงั จากทีเริมใชง้ านระบบใหม่ แต่ จะซ่อมบาํ รุงเป็นระยะเวลานานเพียงใดนนั ขึนอยกู่ บั องคก์ ร ผใู้ ชร้ ะบบ และทีมนกั พฒั นาทีมีความเห็น พอ้ งกนั วา่ ระบบใหม่ทีใชง้ านมาในช่วงระยะเวลาหนึงนนั ไดก้ ลายเป็นระบบเกา่ ทไี ม่สามารถทาํ งานได้ อยา่ งมีประสิทธิภาพอีกตอ่ ไป และทางองคก์ รจะพจิ ารณาเพือตดั สินวา่ จะพฒั นาระบบขนึ มาใหมห่ รือจะ ซือจากผขู้ ายภายนอกองคก์ รดี ซึงทาํ ใหค้ รบรอบของวงจรการพฒั นาระบบ (SDLC)
หลงั จากใชง้ านระบบใหม่ไปไดช้ ่วงระยะเวลาหนึง ทมี งานซ่อมบาํ รุงระบบ อาจจะตอ้ งมีการ ปรับปรุงการทาํ งานของระบบใหท้ นั สมยั ตามสภาพการณข์ องธุรกิจและจากการร้องขอของผใู้ ช้ แต่ เนืองจากการปรบั ปรุงระบบในแต่ละครังนนั จะตอ้ งเกิดคา่ ใชจ้ ่ายซึงหมายถึงตน้ ทุนเขา้ มาเกียวขอ้ งดว้ ย ดงั นนั ในการรอ้ งขอใหป้ รับปรุงระบบแต่ละครงั จะตอ้ งไดร้ ับการอนุมตั จิ ากผบู้ ริหาร นกั วิเคราะห์ ระบบ โปรแกรมเมอร์และผเู้ กียวขอ้ งทกุ ฝ่าย และเพอื ใหก้ ารดาํ เนินการซ่อมบาํ รุงเป็นไปอยา่ งมีลาํ ดบั ขึนตอนจึงมีกระบวนการในการซ่อมบาํ รุงระบบ ทงั หมด 4 ขนั ตอน ดงั นี 14.1.1. เกบ็ รวบรวมคาํ รอ้ งขอใหป้ รับปรุงระบบ 14.1.2. วิเคราะหข์ อ้ มลู การรอ้ งขอเพือการปรับปรุง 14.1.3. ออกแบบการทาํ งานทีตอ้ งการปรับปรุง 14.1.4. ปรับปรุงระบบ 14.1.1. เก็บรวบรวมคาํ รอ้ งขอใหป้ รับปรุงระบบ : เป็นขนั ตอนแรกของการซ่อมบาํ รุงระบบ เริมจาก องคก์ รจะตอ้ งจดั เตรียมแบบฟอร์มการร้องขอใหป้ รับปรุงระบบ ซึงแตล่ ะองคก์ รอาจจะมี รูปแบบแตกตา่ งกนั ไป หรืออาจจะใชแ้ บบฟอร์มเดียวกนั กบั แบบฟอร์มเพอื ขอใหพ้ ฒั นาระบบ ใหม่ โดยผใู้ ชจ้ ะระบถุ ึงปัญหาทเี กิดขึน ซึงเป็นสาเหตใุ หม้ คี วามตอ้ งการใหป้ รับปรุงระบบ ซึงมี ปัญหาทอี าจมคี วามแตกตา่ งกนั ออกไป ดงั นนั ในการเก็บรวบรวม จะตอ้ งจดั กลุ่มของปัญหา หรือจดั การขอ้ มูลทรี วบรวมมาไดใ้ หม้ ขี อบเขตอยา่ งชดั เจน 14.1.2. วเิ คราะหข์ อ้ มลู การรอ้ งขอเพือการปรับปรุง : หลงั จากรวบรวมขอ้ มลู ร้องขอไดแ้ ลว้ ทีมงาน ซ่อมบาํ รุงระบบจะตอ้ งวิเคราะหข์ อ้ มูลเหล่านนั เพอื เพิมความเขา้ ใจในปัญหาซึงการวเิ คราะห์ จะตอ้ งประเมินถึงผลกระทบทจี ะเกิดขึนกบั ระบบ หากมีการปรบั ปรุงการทาํ งานบางส่วนของ ระบบ รวมถึงการประเมินถึงความเสียงทีจะเกิดขึนและความเป็นไปไดข้ องการปรับปรุง และ ทาํ การพจิ ารณาอนุมตั วิ า่ คาํ ร้องขอเพอื ปรับปรุงระบบในส่วนใดทีเหมาะสมทสี ุด 14.1.3. ออกแบบการทาํ งานทีตอ้ งการปรบั ปรุง : เป็นการออกแบบการทาํ งานในบางส่วนของระบบที ตอ้ งการปรับปรุงหรือดดั แปลง กรณีทีการร้องขอนนั ไดร้ บั การอนุมตั แิ ลว้ ในขนั ตอนนีมี ลกั ษณะและวธิ ีการออกแบบระบบคลา้ ยกบั วิธีการออกแบบโดยทวั ไป 14.1.4. ปรับปรุงระบบ : เป็นขนั ตอนสุดทา้ ยหลงั จากทีไดม้ กี ารออกแบบแลว้ ไมว่ า่ จะเป็นการ ออกแบบเพอื ปรบั ปรุงโปรแกรมหรือปรบั ปรุงเงือนไขในการตรวจเชค็ ขอ้ มลู ใดกต็ าม ทีมงาน จะตอ้ งนาํ แบบร่างทีไดอ้ อกแบบไวม้ าพฒั นาใหส้ ัมฤทธิผล เช่น ดดั แปลงโปรแกรมเพอื เพิมเติม สิงตา่ งๆ หรือเพมิ Table ในฐานขอ้ มูล เป็นตน้
จากกระบวนการของการซ่อมบาํ รุงระบบ สิงทไี ด้ คือระบบทไี ดร้ บั การปรบั ปรุงหรือดดั แปลงแลว้ ซึงไม่วา่ จะเป็นการปรับปรุงครังทีเทา่ ใดก็ตาม สิงทีนกั วเิ คราะหแ์ ละทมี งานจะตอ้ งไม่ลืมคอื จะตอ้ ง ปรับปรุงชุดเอกสารทงั เอกสารระบบ (System Document) และเอกสารของผูใ้ ช้ (User Document) ใหเ้ ป็ นปัจจุบนั เสมอ 14.2. ประเภทของการซ่อมบาํ รุงระบบ ในระหวา่ งการซ่อมบาํ รุงระบบ ทมี งานทรี บั ผิดชอบอาจจะตอ้ งดาํ เนินการหลายอยา่ งตลอด ช่วงเวลาของการใชง้ านระบบ เช่นปรบั ปรุง แกไ้ ขขอ้ ผดิ พลาด หรือเปลียนแปลงหนา้ ทีการทาํ งาน บางส่วนของระบบ เป็ นตน้ เพือใหส้ ามารถใชง้ านระบบไดอ้ ยา่ งมีประสิทธิภาพมากขนึ การ ดาํ เนินการดงั กลา่ วไดถ้ ูกนาํ มาจดั กลุ่มเพอื แบง่ ประเภทของการซ่อมบาํ รุงระบบ ซึงมีทงั หมด 4 ประเภทดงั นี 14.2.1. Corrective Maintenance 14.2.2. Adaptive Maintenance 14.2.3. Perfective Maintenance 14.2.4. Preventive Maintenance 14.2.1. Corrective Maintenance เป็นประเภททมี ีความสาํ คญั ทสี ุด เนืองจากเป็นการซ่อมบาํ รุงเพอื ความถกู ตอ้ งของระบบทนั ทที ี มีขอ้ ผดิ พลาดเกิดขึน หรือแกไ้ ขขอ้ ผดิ พลาดใหถ้ ูกตอ้ งนนั เอง การซ่อมบาํ รุงระบบประเภทนี มกั จะ เกิดขนึ ทนั ทีหลงั จากทีไดต้ ดิ ตงั ระบบงานใหม่ และตอ้ งแกไ้ ขทนั ทีทเี กิดขอ้ ผดิ พลาดขนึ เนืองจาก เป็นการแกไ้ ขเมอื มีปัญหาเกิดขนึ ทนั ทีจากการใชง้ านระบบใหม่ จึงอาจทาํ ใหเ้ กิดความไมค่ ล่องตวั ในระหวา่ งการทาํ งาน หรืออาจทาํ ใหก้ ารดาํ เนินงานหยดุ ชะงกั ซึงเป็นขอ้ เสียของการซ่อมบาํ รุง ระบบประเภทนี แต่เป็นขอ้ เสียทอี งคก์ รไมอ่ าจจะเลยี งไดน้ อกจากตอ้ งการลดขอ้ ผดิ พลาดทีจะ เกิดขนึ ในการพฒั นาระบบใหไ้ ดม้ ากทสี ุด 14.2.2. Adaptive Maintenance เป็นการซ่อมบาํ รุงระบบ เพอื ดดั แปลงขนั ตอนการทาํ งานบางส่วนของระบบตามความตอ้ งการ และตามเงอื นไขในการดาํ เนินธุรกิจทีเพมิ ขึน การซ่อมบาํ รุงระบบประเภทนีไมจ่ าํ เป็นตอ้ ง ดาํ เนินการในทนั ทหี ลงั จากการติดตงั ระบบเหมอื นกบั แบบแรก เนืองจากเงือนไขทางธุรกจิ หรือ เทคโนโลยตี า่ งๆ นนั ค่อยๆ เปลียนแปลงไปตามเวลาและสภาพการณ์ ซึงองคก์ รสามารถ เตรียมพร้อมทจี ะเปลียนแปลงไดจ้ ากการติดตามขา่ วสารเทคโนโลยแี ละวงการธุรกจิ 14.2.3. Perfective Maintenance
เป็นการซ่อมบาํ รุงระบบ เพอื เพมิ เติมลกั ษณะของการทาํ งานบางอยา่ งเขไ้ ปในระบบ เพอื ใหด้ ู แปลกใหมแ่ ละสามารถใชง้ านไดง้ า่ ยมากขนึ เช่น เพิมลกั ษณะ Interface ของโปรแกรมใหมใ่ ห้ สามารถใชง้ านงา่ ยมากขึนยงิ กวา่ เดิม หรือลดขนั ตอนบางอย่างในการป้ อนขอ้ มลู เขา้ สู่ระบบ เพือให้ สามารถนาํ ขอ้ มูลเขา้ สู่ระบบไดเ้ ร็วขนึ เป็นตน้ การซ่อมบาํ รุงระบบประเภทนีเสมอื นเป็นการเติม เตม็ ประสิทธิภาพการทาํ งานใหแ้ ก่ระบบนนั เอง 14.2.4. Preventive Maintenance เป็นการซ่อมบาํ รุงระบบเพอื ป้ องกนั หรือลดโอกาสทจี ะเกิดขอ้ ผดิ พลาดขนึ ในระหวา่ งการ ดาํ เนินงานในอนาคต เช่น การเพิมความสามารถในการเกบ็ ขอ้ มลู ใหส้ ามารถรองรบั จาํ นวนลูกคา้ ที เพมิ มากขึนในอนาคต เป็นตน้ การซ่อมบาํ รุงระบบประเภทนีจะตอ้ งมกี ารวางแผนไวล้ ่วงหนา้ ว่าจะ ดาํ เนินการซ่อมบาํ รุงระบบเป็นประจาํ ในชว่ งเวลาใดบา้ ง เช่น เป็นประจาํ ทกุ อาทติ ย์ หรือทกุ เดือน เป็ นตน้ จากประเภทของการซ่อมบาํ รุงระบบทงั 4 ประเภท จะเห็นวา่ Corrective Maintenance เป็นประเภท ทมี ีความสาํ คญั ตอ่ ระบบมากทสี ุด เนืองจากเป็ นการซ่อมบาํ รุงทจี ะตอ้ งดาํ เนินการเป็นลาํ ดบั แรก หลงั จากการติดตงั ระบบเพอื แกไ้ ขสิงทีผดิ พลาดใหถ้ ูกตอ้ งทนั ทีทีพบ เพือใหร้ ะบบมีความถกู ตอ้ ง อยา่ งสมบูรณ์มากทีสุด จึงจะสามารถซ่อมบาํ รุงระบบในประเภทตา่ งๆ ไปไดโ้ ดยไม่ตอ้ งยอ้ นกลบั มาแกไ้ ขอีกครงั 14.3. ปัจจยั ทีมผี ลกระทบต่อตน้ ทนุ ในการซ่อมบาํ รุงระบบ เมอื ใชง้ านระบบใหมไ่ ปช่วงระยะเวลาหนึงแลว้ ระบบใหมน่ นั จะกลายเป็นระบบทผี ใู้ ชค้ ุน้ เคย และกลายเป็นระบบเก่าในทสี ุด เมอื สภาพการณเ์ ปลียนไปและจาํ เป็ นตอ้ งพฒั นาระบบขนึ มาใหม่ อีกครงั หากเห็นวา่ ระบบนนั ไมส่ ามารถแกไ้ ขไดแ้ ลว้ หรือการแกไ้ ขนนั ตอ้ งใชเ้ งินทุนเทา่ กบั การ พฒั นาระบบใหม่ ซึงหมายถึงการลงทนุ จาํ นวนมากทมี าพรอ้ มกบั ความเสียง การซ่อมบาํ รุงรกั ษา ระบบใหส้ ามารถดาํ เนินงานอยา่ งมีประสิทธภิ าพและสามารถปรับปรุงแกไ้ ขไดง้ า่ ยนนั ถึงแมจ้ ะเกิด ตน้ ทุนในการซ่อมบาํ รุงแตเ่ มอื เปรียบเทยี บกบั การพฒั นาระบบงานใหม่ทงั หมดแลว้ ยงั นบั วา่ การ ซ่อมบาํ รุงระบบใชต้ น้ ทนุ นอ้ ยกวา่ มาก และทาํ ใหอ้ งคก์ รไม่ตอ้ งเผชิญกบั ความเสียงทอี าจเกิดขนึ อกี ดว้ ย ดงั นนั องคก์ รและทมี นกั พฒั นาจึงควรพฒั นาระบบใหเ้ ป็นระบบทีมีความงา่ ยตอ่ การซ่อมบาํ รุง (Maintainability) ซึงหมายถึงระบบนนั จะตอ้ งสามารถทาํ ความเขา้ ใจ แกไ้ ข ดดั แปลงหรือปรบั ปรุง ไดอ้ ยา่ งงา่ ยดาย ซึงปัจจุบนั องคก์ ร ตา่ งๆ ไดเ้ ล็งเห็นความสาํ คญั ของการซ่อมบาํ รุงระบบมากขึน เนืองจากจะช่วยใหไ้ มต่ อ้ งเสียคา่ ใชจ้ ่ายในการพฒั นาระบบใหม่นนั เอง
อยา่ งไรก็ตามการซ่อมบาํ รุงระบบยงั จะตอ้ งเกิดตน้ ทุนอยเู่ ชน่ กนั แตจ่ ะเกิดตน้ ทนุ สูงหรือตาํ นัน ขึนอยกู่ บั ปัจจยั หลายประการทแี วดลอ้ มตอ่ ระบบงานนนั ปัจจยั เหล่านนั ไดแ้ ก่ 14.3.1. จาํ นวนขอ้ ผดิ พลาดทแี ฝงอยูภ่ ายในระบบ (Defects) 14.3.2. จาํ นวนลูกคา้ (Customers) 14.3.3. คุณภาพของเอกสาร (Documentation) 14.3.4. คุณภาพของทีมงานซ่อมบาํ รุงระบบ (Personnel) 14.3.5. เครืองมอื ทใี ชส้ นบั สนุนการซ่อมบาํ รุงระบบ (Tools) 14.3.1. จาํ นวนขอ้ ผดิ พลาดทแี ฝงอยูภ่ ายในระบบ (Defects) : คอื จาํ นวนขอ้ ผดิ พลาดทีไมส่ ามารถ คน้ พบไดภ้ ายหลงั จากการตดิ ตงั ระบบ ปัจจยั ขอ้ นีเองทีทาํ ใหต้ อ้ งมีการซ่อมบาํ รุงระบบแบบ Corrective เพอื หาขอ้ ผดิ พลาดทเี กิดขนึ และแกไ้ ขใหถ้ ูกตอ้ งทนั ที จึงทาํ ใหเ้ กิดตน้ ทุนในการซ่อม บาํ รุงระบบขึน ถา้ ภายในระบบไม่มขี อ้ ผดิ พลาด การซ่อมบาํ รุงแบบ Corrective จะไมเ่ กิดขนึ หรือถา้ มี จะใชเ้ วลาในการคน้ หาไม่นาน ทาํ ใหต้ น้ ทนุ นอ้ ยไปดว้ ย 14.3.2. จาํ นวนลูกคา้ (Customers) : ปัจจยั เนืองจากจาํ นวนผใู้ ชท้ ีเป็ นลกู คา้ มผี ลกระทบต่อตน้ ทุนใน การซ่อมบาํ รุง กล่าวคือ หากองคก์ รมีจาํ นวนลูกคา้ นอ้ ยกลุ่มจาํ นวนการรอ้ งขอเพอื ใหป้ รับปรุง ระบบจะมีจาํ นวนนอ้ ยตามไปดว้ ย ตน้ ทนุ ในการซ่อมบาํ รุงจะตาํ ไมว่ า่ จะเป็นการแกไ้ ขโปรแกรม การแกไ้ ขเอกสาร หรือการฝึกอบรม เนืองจากมีกลุ่มผใู้ ชซ้ ึงเป็นลูกคา้ เพียงกลุ่มเลก็ ๆ นนั เอง ในทาง กลบั กนั หากผใู้ ชร้ ะบบมีจาํ นวนมาก หลากหลายกลุ่ม จาํ นวนการร้องขอเพอื ปรับปรุงมีมากตามไป ดว้ ย ทมี งานซ่อมบาํ รุงระบบจะตอ้ งแยกแยะกลุ่มลกู คา้ ออกเป็นหลายกลุ่มเพอื ฝึกอบรมสาํ หรับการ ปรับปรุงในแต่ละครงั ทาํ ใหเ้ กิดคา่ ใชจ้ ่ายสูง แต่อยา่ งไรกต็ ามการทีมีจาํ นวนผใู้ ชร้ ะบบทีเป็ นลกู คา้ มากราย ยงิ จะทาํ ใหอ้ งคก์ รพบขอ้ ผดิ พลาดของระบบไดเ้ ร็วขึนและสามารถแกไ้ ขไดต้ ามจาํ นวน ขอ้ ผดิ พลาดทีถูกคน้ พบ รวมทงั ยงั สามารถคน้ พบเงือนไขตา่ งๆ จากลูกคา้ ซึงหมายถึงความตอ้ งการ ของลูกคา้ ผใู้ ชร้ ะบบ เพอื นาํ มาปรบั ปรุงใหต้ รงตอ่ ความตอ้ งการของลูกคา้ มากทสี ุด ถึงแมจ้ ะเกิด ตน้ ทุนทสี ูงกต็ าม 14.3.3. คุณภาพของเอกสาร (Documentation) : ปัจจยั ทีมีผลกระทบตอ่ ตน้ ทนุ ในการซ่อมบาํ รุงใน ขอ้ นีคอื คุณภาพของเอกสาร กรณีทที ีมนกั พฒั นาระบบจดั ทาํ เอกสารของระบบ (System Documentation) ไม่มคี ุณภาพ กล่าวคอื ไม่มีการจดั การกบั เอกสารทดี ี หรือไม่ปรับปรุงเอกสารให้ เป็นปัจจุบนั จะทาํ ใหท้ ีมงานการปรับปรุงหรือแกไ้ ขระบบงานในภายหลงั นนั เป็ นไปดว้ ยความ ลาํ บาก และใชเ้ วลาปรบั ปรุงระบบนานกวา่ ทีควรจะเป็น ทาํ ใหต้ น้ ทุนในการซ่อมบาํ รุงสูงขนึ ไป ดว้ ย
14.3.4. คุณภาพของทมี งานซ่อมบาํ รุงระบบ (Personnel) : คณุ ภาพของทมี งานซ่อมบาํ รุงระบบ เป็น อีกปัจจยั หนึงทีช่วยใหต้ น้ ทนุ ในการซ่อมบาํ รุงระบบตาํ ลงได้ หากบคุ ลากรในทมี นีมีประสบการณ์ และความชาํ นาญ เช่น โปรแกรมเมอร์ทีมีประสบการณแ์ ละความชาํ นาญจะสามารถดแู ลโปรแกรม ของระบบงานไดด้ ีกวา่ โปรแกรมเมอร์ทมี ีประสบการณน์ อ้ ยกวา่ เนืองจากสามารถทาํ ความเขา้ ใจ โปรแกรมไดเ้ ร็วกวา่ จึงทาํ ใหไ้ มเ่ สียเวลาในการแกไ้ ขมากนกั 14.3.5. เครืองมอื ทใี ชส้ นบั สนุนการซ่อมบาํ รุงระบบ (Tools) : เครืองมอื สนบั สนุนการซ่อมบาํ รุง ระบบ จะช่วยใหก้ ารดูแลระบบและโปรแกรมมีความสะดวกมากขึน เช่น ซอฟตแ์ วร์บางชนิด สามารถสร้างเอกสารตา่ งๆ ของระบบไดอ้ ตั โนมตั ิ ทาํ ใหไ้ มเ่ สียเวลาในการสร้างกรณีทเี อกสารชนิด นนั ยงั ไมม่ สี ่งผลใหต้ น้ ทุนในการรักษาระบบนอ้ ยลง จากปัจจยั ดงั กล่าวขา้ งตน้ ลว้ นแตส่ ่งผลกระทบตอ่ ตน้ ทนุ ในการซ่อมบาํ รุงระบบ อยา่ งไรก็ตามหาก ในระหวา่ งการพฒั นาระบบ ทีมนกั พฒั นาไดต้ ระหนกั ถึงขนั ตอนในการซ่อมบาํ รุงระบบภายหลงั จากการติดตงั ใชง้ านระบบแลว้ ควรจะพฒั นาระบบนนั อยา่ งมีประสิทธิภาพ มีโครงสรา้ งของ โปรแกรมทดี ี มีการทดสอบโปรแกรมและแกไ้ ขขอ้ ผดิ พลาดใหไ้ ดม้ ากทสี ุดเท่าทีจะมากได้ ก่อนที จะตดิ ตงั โปรแกรมเพอื ใชง้ านจริง จะทาํ ใหซ้ ่อมบาํ รุงรักษาระบบไดง้ า่ ย และตน้ ทนุ ทเี กิดขึนจะนอ้ ย ตามไปดว้ ย 14.4. การจดั การการซ่อมบาํ รุงระบบ (Maintenance Management) องคก์ รตา่ งๆ อาจจะมคี วามตงั ใจทีจะซ่อมบาํ รุงระบบใหส้ ามารถดาํ เนินงานอยา่ งมี ประสิทธิภาพใหน้ านทสี ุด เพอื หลีกเลยี งการพฒั นาระบบใหม่ทงั หมดทีมีตน้ ทุนสูง ดงั นนั การ จดั การซ่อมบาํ รุงระบบ จึงเป็ นขอ้ หนึงทคี วรตระหนกั ถึงหากองคก์ รตอ้ งการใหม้ กี ารซ่อมบาํ รุง ระบบอยา่ งมีประสิทธิภาพแต่เกิดค่าใชจ้ ่ายไม่มากนกั ในการบริหารงานดา้ นการซ่อมบาํ รุงระบบ จะมีการจดั การอย่ทู งั หมด 3 ดา้ นดว้ ยกนั ดงั นี 14.4.1. บคุ ลากรในทมี งานซ่อมบาํ รุงระบบ (Maintenance Personnel Management) องคก์ รอาจจะตอ้ งพิจารณาตดั สินใจวา่ จะแยกทีมพฒั นาระบบ ออกจากทมี งานซ่อมบาํ รุงระบบ หรืออาจจะตดั สินใจใหเ้ ป็นทีมเดียวกนั ซึงขนึ อยกู่ บั สถานการณข์ องแต่ละองคก์ รทจี ะตดั สินใจ เลือกแนวทางใด ทจี ะทาํ ใหก้ ารซ่อมบาํ รุงระบบนนั มีประสิทธิภาพมากทีสุด ประกอบกบั โปรแกรมเมอร์ผเู้ ชียวชาญบางคนถนดั ทีจะพฒั นาโปรแกรมมากกว่าทจี ะแกไ้ ขโปรแกรมทสี รา้ งขนึ จากโปรแกรมเมอร์คนอืน อาจจะเนืองดว้ ยเหตผุ ลใดก็ตาม ดงั นนั จึงขึนอยกู่ บั องคก์ รเองวา่ จะ บริหารงานบคุ ลากรดา้ นนีอยา่ งไร ใหก้ ารซ่อมบาํ รุงระบบมปี ระสิทธิภาพมากทีสุดตามความ เหมาะสมกบั สถานการณข์ ององคก์ ร
14.4.2. การประเมนิ ผลประสิทธิภาพในการซ่อมบาํ รุงระบบ (Maintenance Effectiveness Measurement) : นอกจากการบริหารงานดา้ นบคุ ลากรในทมี งานซ่อมบาํ รุงระบบจะตอ้ งมี ประสิทธิภาพ และเหมาะสมกบั องคก์ รแลว้ ในการบริหารจดั การการซ่อมบาํ รุงระบบยงั จะตอ้ งมี การประเมนิ ผลการซ่อมบาํ รุงระบบดว้ ย โดยสามารถประเมนิ ไดจ้ ากหลกั เกณฑด์ งั ตอ่ ไปนี 1. จาํ นวนขอ้ ผิดพลาดทีเกิดขึน 2. ระยะห่างของเวลาทีเกิดขอ้ ผิดพลาดแตล่ ะครงั 3. ชนิดของขอ้ ผิดพลาด จากหลกั เกณฑใ์ นการประเมินจาํ นวนขอ้ ผดิ พลาดทีเกิดขนึ จะมีความสมั พนั ธ์กบั ระยะห่างของเวลา ทเี กิดขอ้ ผดิ พลาดแตล่ ะครัง กล่าวคอื การซ่อมบาํ รุงระบบทีดีนนั หลงั จากเริมตน้ ซ่อมบาํ รุงระบบ แบบ Corrective ภายหลงั จากติดตงั ระบบแลว้ จาํ นวนของขอ้ ผดิ พลาดจะตอ้ งลดลง และระยะห่าง ของเวลาทเี กิดขอ้ ผดิ พลาดจากจุดหนึงไปยงั อกี จุดหนึง จะตอ้ งยาวนานขึน จึงจะถือว่าการซ่อมบาํ รุง ระบบนนั ไดผ้ ลและมีประสิทธิภาพ นอกจากนีการซ่อมบาํ รุงระบบทีดี เมือเกิดขอ้ ผดิ พลาดชนิดใดขนึ แลว้ จะตอ้ งไม่มีขอ้ ผิดพลาดชนิด นนั ซาํ อีกเมือเวลาผา่ นไป 14.4.3. การควยคุมการร้องขอใหป้ รับปรุงระบบของผใู้ ช้ (Maintenance Requests Control) การบริหารจดั การดา้ นการควบคุมการรอ้ งขอใหป้ รับปรุงระบบของผใู้ ช้ เป็นการจดั การประการ สาํ คญั เนืองจากบางองคก์ รทีมผี ใู้ ชง้ านระบบหลายกลุ่ม จะเกิดการรอ้ งขอใหป้ รบั ปรุงระบบมากมาย แตกตา่ งกนั ไปตามกลุ่มของผใู้ ช้ ดงั นนั การควบคุมการร้องขอจึงเป็นสิงสาํ คญั ทีจะตอ้ งพจิ ารณาวา่ การรอ้ งขอจากกลุ่มผใู้ ชก้ ลุ่มใดทจี าํ เป็นมากทีสุด หรือการรอ้ งขอใหแ้ กไ้ ขขอ้ ผดิ พลาดใดทเี ร่งด่วน ทีสุด ดงั นนั องคก์ รจะตอ้ งมีกระบวนการในการพิจารณาคดั เลอื กการรอ้ งขอเหล่านนั ซึงอาจจะเริมจาก พจิ ารณาทกี ารรอ้ งขอเพอื แกไ้ ขขอ้ ผดิ พลาดทรี า้ ยแรงก่อน แลว้ จึงพจิ ารณาคดั เลือกการรอ้ งขอเพอื การปรับปรุงระบบหรือเพอื การดดั แปลงระบบองคก์ รและทีมงานจะตอ้ งพจิ ารณาวา่ การดดั แปลงน นนั จะมีผลกระทบตอ่ ขนั ตอนการทาํ งาน และเงือนไขในการดาํ เนินธุรกิจมากนอ้ ยเพยี งใด โดย อาจจะเริมจากการประเมนิ ผลกระทบเหล่านนั จดั หมวดหมู่ของการรอ้ งขอ จดั ลาํ ดบั ความสาํ คญั และจดั ลาํ ดบั ในการปรบั ปรุงใหแ้ ก่คาํ รอ้ งขอเหลา่ นนั อยา่ งไรก็ตามกระบวนการในการพจิ ารณาคาํ ร้องขอตา่ งๆ ควรมกี ารวิเคราะหถ์ ึงความเสียง ความเป็นไปไดข้ องการปรับปรุงแต่ละโครงการอยา่ ง รอบคอบดว้ ย
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148