วันจันทร์ที่ 24 มกราคม พ.ศ. 2554

วงจรการพัฒนาระบบสารสนเทศ SDLC

การพัฒนาระบบสารสนเทศ
วัตถุประสงค์
     1. อธิบายแนวทางจัดหาระบบสารสนเทศเพื่อใช้งานภายในองค์กร
     2. สามารถประยุกต์ใช้วงจรการพัฒนาระบบ และแนวทางปฏิบัติ เพื่อพัฒนาระบบได้
      3. สามารถอธิบายและเลือกใช้ แนวทางในการพัฒนาระบบสารสนเทศ
     4. สามารถอธิบายหลักในการพัฒนาระบบสารสนเทศ
     5. สามารถประยุกต์ใช้การพัฒนาระบบโดยใช้วงจรการพัฒนาระบบ (SDLC)
     6. สามารถอธิบายเครื่องมือสนับสนุนการพัฒนาระบบ
แนวทางจัดหาระบบสารสนเทศเพื่อใช้งานภายในองค์กร
ในการจัดหาระบบสารสนเทศให้เกิดขึ้นภายในองค์กร จัดทำได้ 3 วิธีด้วยกัน
1. พัฒนาระบบสารสนเทศขึ้นเองโดยอาศัยเจ้าหน้าที่คอมพิวเตอร์ภายในองค์กรเป็นผู้พัฒนาระบบ
2. ว่าจ้างบริษัทที่ ปรึกษาจัดทำระบบให้
3. การซื้อซอฟต์แวร์สำเร็จมาใช้
วงจรชีวิตของการพัฒนาระบบ  (System Development Life Cycle : SDLC)
วงจรการพัฒนาระบบ คือ กระบวนในการพัฒนาระบบสารสนเทศ เพื่อแก้ปัญหาทางธุรกิจและตอบสนองความต้องการของผู้ใช้ได้ โดยภายในวงจรนั้นจะแบ่งกระบวนการพัฒนาออกเป็นกลุ่มงานหลัก ๆ  ดังนี้ ด้านการวางแผน (Planning Phase)  ด้านการวิเคราะห์ (Analysis Phase)  ด้านการออกแบบ (Design Phase)  ด้านการสร้างและพัฒนา (Implementation Phase)
วงจรการพัฒนาระบบ หรือ
 SDLC จะประกอบไปด้วย
                -
 การกำหนดปัญหา(Problem Definition) หรือ การเลือกสิ่งที่จะนำมาพัฒนาระบบงาน(Project Identification and Selection) นับว่าเป็นขั้นตอนแรกในวงจรของการพัฒนา ขั้นตอนนี้มักจะเกิดขึ้นอย่างเป็นทางการ จากการประชุมของฝ่ายบริหาร เพื่อที่จะค้นหาวิธีการทำงานที่มีประสิทธิภาพ และ มุ่งหวังที่จะใช้แทนวิธีการทำงานแบบเดิม ปรับปรุงวิธีการทำงาน หรือ เพื่อสร้างรูปแบบบริการแบบใหม่ เป็นต้น
                -
 การวิเคราะห์ปัญหา(Analysis) เมื่อผ่านขั้นตอนการการกำหนด หรือ เลือกโครงการที่จะทำการพัฒนาแล้ว ขั้นตอนต่อไปก็จะต้องนำเอาสิ่งที่ได้จากขั้นตอนแรกมาทำการวิเคราะห์ โดยนักวิเคราะห์ระบบจะต้องทำการ วิเคราะห์ระบบ ในขั้นตอนนี้เป็นขั้นตอนที่มีความสำคัญมาก และไม่ควรทำอย่างรีบเร่ง เนื่องจากโครงการพัฒนาจำนวนมากที่ประสบความล้มเหลวเพราะการวิเคราะห์ และออกแบบที่ไม่ถูกต้อง 
                -
 การออกแบบ(Design) จะเป็นการนำเอาสิ่งที่ได้จากการวิเคราะห์ มาออกแบบเป็นระบบงาน สำหรับการพัฒนาในขั้นตอนถัดไป เช่น การออกแบบ Form , Report, Dialoques, Interface, Files & Database, Program & Process design เป็นต้น
                -
 การพัฒนาระบบงาน(Development) หรือ การสร้างระบบงานจริง ขั้นตอนนี้จะเป็นขั้นตอนที่นำเอาสิ่งที่ได้จากการออกแบบระบบมาทำการCoding หรือ สร้างตัวระบบงานขึ้นมาใช้งานจริง ผู้ที่มีบทบาทสูงในขั้นตอนนี้คือ Programmer นั่นเอง
                -
 การทดสอบ(Testing) การทดสอบระบบจะเป็นการตรวจสอบความถูกต้องของระบบงานที่ถูกสร้างขึ้นมาว่าตรงตามกับความต้องการจริงๆ หรือไม่ การ Test จะมีด้วยกัน หลายระดับ กล่าวคือ 
1.
 การทดสอบในระดับ Module หรือ Unit test เป็นการทดสอบการทำงานโดยแยกเป็นส่วนย่อยๆ ในแต่ละ module 
2. การทดสอบ
 Integrate test จะนำเอา module ย่อยๆ มาทำการทดสอบการทำงานเป็นกระบวนการร่วมกัน 
3. System test
 การทดสอบโดยนำเอาโปรแกรมย่อยมาทดสอบการทำงานร่วมกันทั้งระบบ 
4. Acceptance test
 เป็นการทดสอบขั้นสุดท้าย โดย user (มี 2 ระดับ Alfa testing using simulated data, Beta testing using real data)

          - การติดตั้ง(Deployment) Direct installation, Pararell Installation, Single location installation, Phased installation
          -
 การบำรุงรักษา(Maintenance) Obtain Maintenance Request, Transforming Request into Change, Designing Change, Implementing Change



กลยุทธ์ในการพัฒนาระบบ มีหลายกลยุทธ์ ได้แก่
                1. SDLC ในรูปแบบ Waterfall

SDLC
 แบบ Wayerfall เป็นรูปแบบในการพัฒนาระบบงาน โดยแต่ละขั้นตอนเมื่อ
ดำเนินงานอยู่ ไม่สามารถย้อนกลับมายังขั้นตอนก่อนหน้าเพื่อแก้ไขข้อผิดพลาดได้
               
2. SDLC ในรูปแบบ Adapted Waterfall
SDLC
 แบบ Adapted Wayerfall เป็นรูปแบบในการพัฒนาระบบงานที่ปรับปรุงมาจากแบบ waterfall โดยในแต่ละขั้นตอนเมื่อดำเนินงานอยู่ สามารถย้อนกลับมายังขั้นตอนก่อนหน้าเพื่อแก้ไขข้อผิดพลาดหรือสามารถย้อนกลับข้ามขั้น โดยไม่จำเป็นต้องเป็นขั้นตอนที่ติดกันได้
                3. SDLC ในรูปแบบ Evolutionnary
SDLC
 แบบ Evolutionary มีแนวความคิดที่เกิดมาจากทฤษฎีวิวัฒนาการ โดยจะพัฒนาระบบงานจนเสร็จสิ้นไน Version แรกก่อน จากนั้นจึงพิจารณาถึงข้อดีและข้อเสีย แล้วจึงเริ่มกระบวนการพัฒนาระบบงานใหม่จนได้ระบบ ใน Version ที่ 2 และ Version ต่อไปจนกว่าจะได้ระบบที่สมบูรณ์ที่สุด ซึ่งต้องการการวางแผนกำหนดเพื่อจำนวน Version ตั้งแต่เริ่มโครงการพัฒนา 
หมายเหตุ การพัฒนาระบบใน
 Version ต่าง ๆ นั้น ไม่มีความสัมพันธ์กับระบบ ใน Version แรกแต่อย่างใด

                4. SDLC ในรูปแบบ Incremental
SDLC
 แบบ Incremental มีลักษณะคล้ายคลึงกับแบบ Evolutionary แต่มีข้อแตกต่างกันตรงที่ ตัวระบบเนื่องจากระบบที่เกิดขึ้นในการพัฒนาครั้งแรกนั้นจะยังไม่ใช่ระบบที่สมบูรณ์ แต่เป็นระบบส่วนแรกเท่านั้น ( จากตัวระบบทั้งหมด ) 
จนเมื่อมีการพัฒนาในขั้นตอนที่
 2 จึงได้ระบบในส่วนที่ 2 เพิ่มเติมเข้าไป และจะมีการเพิ่มส่วนอื่น ๆ เข้าไปอีก จนกลายเป็นระบบที่สมบูรณ์ที่สุด แต่อย่างไรก็ตาม ยังไม่สามารถแน่ใจได้ว่าระบบที่ได้ นั้นจะเป็นระบบที่สมบูรณ์ ดังนั้นในบางครั้ง SDLC ในรูปแบบ Evolutionary อาจจะมีบทบาทในการทำให้ระบบที่พัฒนาขึ้นโดยใช้การพัฒนาในรูปแบบอื่น ๆ มีความสมบูรณ์มากยิ่งขึ้นจนได้ Version ใหม่ที่สมบูรณ์ในที่สุด
               
5. SDLC ในรูปแบบ Spiral
SDLC
 แบบ Spiral มีลักษณะเป็นวงจรวิเคราะห์ - ออกแบบ – พัฒนา – ทดสอบ (Analysis – Design – Implementation – Testing ) และจะวนกลับมาในแนวทางเดิม เช่นนี้เรื่อยไป จนกระทั่งได้ระบบที่สมบูรณ์ 
การพัฒนาระบบงานด้วย
 SDLC ในรูปแบบนี้มีความยืดหยุ่นมากที่สุด เนื่องจาก
          1)
 การทำงานใน 1 วงรอบนั้น ไม่จำเป็นต้องได้ระบบ หรือส่วนของระบบที่แน่นอน 
          2)
 การทำ Analysis, Design, Implementation และ Testing ในแต่ละวงรอบนั้นจะสั้นหรือยาวเท่าใดก็ได้
          3)
 หากไม่มีความจำเป็นใด ๆ บางขั้นตอนอาจจะถูกข้ามไปก็ได้ 
เมื่อมีกระบวนการทางความคิดในการพัฒนาระบบแล้ว จะต้องมีวิธีการหรือแนวทางที่จะนำกระบวนการนั้นลงมาลงมือปฏิบัติเพื่อการพัฒนาระบบนั้นเป็นผลสำเร็จจนกลายเป็นระบบที่สามารถใช้งานได้อย่างมีประสิทธิภาพ วิธีดังกล่าวเรียกว่า
 “Methodology “

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

• ข้อดี
–
 ต้นแบบมีประโยชน์สำหรับความต้องการหรือการออกแบบบางอย่างที่ไม่แน่นอนหรือยังไม่มีความชัดเจนพอ
–
 ต้นแบบสร้างได้เร็วและมีค่าใช้จ่ายไม่สูง
–
 เหมาะสำหรับงานที่ให้ความสำคัญกับ User Interface ค่อนข้างมาก
–
 ทำให้ User มีส่วนสำคัญในการสร้างระบบ
•
 ข้อเสีย
–
 ไม่เหมาะกับระบบใหญ่และมีความซับซ้อนมาก
–
 ข้ามขั้นตอนการทำการวิเคราะห์, การทำเอกสารและการทดสอบระบบ 

วันอังคารที่ 18 มกราคม พ.ศ. 2554

คลังข้อมูล (Database warehoure)

ระบบคลังข้อมูล (Data Warehouse) คืออะไร?
คลังข้อมูล หมายถึง ฐานข้อมูลขนาดใหญ่ขององค์กรหรือหน่วยงานหนึ่งๆ ซึ่งเก็บรวบรวมข้อมูลจากฐานข้อมูลระบบงานประจำวัน หรือเรียกอีกอย่างว่า operational database และฐานข้อมูลอื่นภายนอกองค์กร หรือเรียกว่า external database โดยข้อมูลที่ถูกจัดเก็บในคลังข้อมูลนั้น มีวัตถุประสงค์ในการนำมาใช้งานและมีลักษณะของการจัดเก็บแตกต่างไปจากข้อมูลในฐานข้อมูลระบบงานอื่น และสามารถเก็บข้อมูลย้อนหลังได้หลายๆปี เพื่อใช้เป็นข้อมูลในการตัดสินใจหรือใช้ในการวิเคราะห์ข้อมูลที่ถูกต้องและมีประสิทธิภาพ โดยการวิเคราะห์ต้องทำได้แบบหลายมิติ (Multidimensional Analysis) โดยข้อมูลในคลังข้อมูลจะถูกนำมาใช้เพื่อสนับสนุนการตัดสินใจบริหารงานของผู้บริหาร โดยเฉพาะการเป็นข้อมูลพื้นฐานให้กับระบบงาน เพื่อการบริหารงานอื่น เช่น ระบบ DSS และระบบ CRM เป็นต้น)

วัตถุประสงค์ของการสร้างคลังข้อมูล
เป้าหมายของการสร้างคลังข้อมูล คือ การแยกกลุ่มข้อมูลสารสนเทศที่ใช้ในการวิเคราะห์ทางธุรกิจออกจากฐานข้อมูลที่ใช้งานประจำวัน (Operational Database) มาเก็บอยู่ใน Relational Database Management Systems (RDBMS) ประสิทธิภาพสูง และทำให้การเรียกใช้ข้อมูลทำได้อย่างยืดหยุ่น จากเครื่องมือที่มีอยู่บนเดสก์ทอปทั่วไป โดยลด off-loading เพิ่มกลไกช่วยการตัดสินใจ ปรับปรุงเวลาที่ตอบสนอง (response time) รวดเร็วยิ่งขึ้นอย่างมากละผู้บริหารสามารถเรียกข้อมูลรายละเอียดที่จำเป็น ที่ถูกเก็บมาก่อนหน้านี้ (historical data) มาช่วยในการตัดสินใจทางธุรกิจอย่างแม่นยำขึ้น

คลังข้อมูลแตกต่างจากฐานข้อมูลอย่างไร
โดยปกติแล้ว ฐานข้อมูลในองค์กรทั่วไปจะมีลักษณะที่ค่อนข้างทันต่อเหตุการณ์ เช่น ฐานข้อมูลพนักงานก็จะเก็บเฉพาะพนักงานในปัจจุบัน จะไม่สนใจข้อมูลพนักงานเก่า ๆ ในอดีต ซึ่งอาจจะมีข้อมูลอะไรบางอย่าง ที่มีประโยชน์สำหรับผู้บริหาร ในการวิเคราะห์ประสิทธิภาพและคุณลักษณะต่าง ๆ ขององค์กร. นอกจากนี้ ฐานข้อมูลแต่ละอันมักถูกออกแบบมาใช้เก็บข้อมูลเฉพาะด้าน จึงมีข้อมูลเฉพาะบางส่วนขององค์กรเท่านั้น ฉะนั้นคลังข้อมูลจึงถูกออกแบบมา เพื่อรวบรวมข้อมูลในทุกส่วนของทั้งบริษัท ทั้งเก่าและใหม่ไว้ด้วยกัน ไม่มีการลบทิ้งข้อมูลเก่า ๆ ที่ไม่จริงในปัจจุบัน
โดยสรุปคือ
-คลังข้อมูล ใช้เพื่อการวิเคราะห์ (ข้อมูลทั้งอดีตและปัจจุบัน)
-ฐานข้อมูล ใช้เพื่อทำการประมวลผล (เฉพาะข้อมูลปัจจุบัน)
ถ้าองค์กรมีคลังข้อมูลหลาย ๆ อันเพื่อใช้ในการวิเคราะห์ต่าง ๆ แตกต่างกันไป เช่น คลังข้อมูลด้านการเงิน และ คลังข้อมูลด้านทรัพยากรมนุษย์ เรามักเรียกคลังข้อมูลเฉพาะด้านเหล่านี้ว่า ตลาดข้อมูล (data marts)
อนึ่ง กระบวนการในการใช้ข้อมูลในคลังข้อมูลเพื่อการตัดสินใจ และวางแผนในทางธุรกิจ มักถูกเรียกว่า ปัญญาธุรกิจ (business intelligence).

คุณสมบัติของคลังข้อมูล
1. Consolidated and Consistant
- Consolidated หมายถึง การรวบรวมข้อมูลที่เกิดขึ้นในระดับปฏิบัติการมาไว้ที่ศูนย์กลางเดียวกัน (คลังข้อมูล)
- Consistant หมายถึง ข้อมูลจากแหล่งต่างๆที่รวบรวมมาไว้ในคลังข้อมูล จะต้องมีคุณสมบัติที่เหมือนกัน รูปแบบเดียวกันและสอดคล้องกัน
2. Subject-Oriented Data หมายถึง เก็บข้อมูลในระดับปฏิบัติการเฉพาะส่วนที่นำมาใช้เชิงวิเคราะห์หรือ เชิงตัดสินใจมากกว่าการเก็บข้อมูลเพื่อตอบคำถาม
3. Historical Data หมายถึง จะเก็บย้อนหลังเป็นเวลาหลายๆปี เพื่อจะได้นำไปวิเคราะห์เปรียบเทียบหาแนวโน้มของข้อมูลเปรียบกับปีที่ผ่านมา
4. Read – Only Data หมายถึง ข้อมูลในฐานข้อมูลไม่ควรมีการแก้ไขหลังจากที่นำข้อมูลเข้าสู่ฐานข้อมูลของคลังข้อมูลแล้วไม่มีการ Insert update or delete ข้อมูลภายในคลังข้อมูลนอกจากการเพิ่มข้อมูลเข้าอย่างเดียว

ข้อดีของ Data Warehouse
ความคุ้มค่าของสารสนเทศที่อยู่ในคลังข้อมูล ส่งผลดีต่อองค์กร ดังนี้
1. ให้ผลตอบแทนจากการลงทุนสูง
2. เกิดความได้เปรียบในการแข่งขัน
3. เพิ่มประสิทธิภาพในการตัดสินใจ

ข้อเสียของ Data Warehouse
1. การกรองข้อมูลและเรียก (load) ข้อมูลเข้าสู่คลังใช้เวลานาน
2. แนวโน้มความต้องการข้อมูลมีเพิ่มมากขึ้นเรื่อย ๆ ส่งผลต่อพื้นที่ในการจัดเก็บ
3. ใช้เวลาในการพัฒนาคลังข้อมูลนาน
4. ระบบคลังข้อมูลมีความซับซ้อน ต้องใช้ความสามารถของบุคคล และเทคนิคสูง

ประโยชน์ของ Data Warehousing
1. เพิ่มองค์ความรู้แก่คนทำงาน
2. สนับสนุนความต้องการข้อมูลทั้งหมดของผู้ทำงาน
3. เตรียมการสำหรับเข้าถึงข้อมูลวิกฤติ (critical data)
4. ป้องกันฐานข้อมูล ข้อมูลจะไม่ถูกเปลี่ยนแปลงมีความคงที่
5. สรุปข่าวสารในภาพรวมได้ เพื่อนำเสนอต่อผู้บริหาร
6. สามารถดูข้อมูลแบบเจาะลึก (drill down) ได้