วันจันทร์ที่ 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) ได้