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

วงจรการพัฒนาระบบ SDLC (System Development Life Cycle)

วงจรการพัฒนาระบบ SDLC (System Development Life Cycle)

December 25th, 2008 Leave a comment Go to comments

วงจร SDLC เป็นขั้นตอนในการพัฒนาโปรแกรมหรือระบบสารสนเทศ มีขั้นตอนด้วยกันดังนี้

1. Planning ขั้นตอนของการวางแผน

1.1 วางแผนพิจารณาความต้องการในการพัฒนาระบบสารสนเทศ

1.2 เรียงลำดับความสำคัญของปัญหาหรือความต้องการ

1.3 วางแผนในเรื่องของทรัพยากรที่จำเป็นต้องใช้ในการพัฒนา

1.4 กำหนดตัวบุคคลที่จะเข้ามาพัฒนาระบบ

2. Analysis ขั้นตอนการวิเคราะห์การทำระบบ

2.1 ศึกษาความเป็นไปได้ในการที่จะพัฒนาระบบขึ้น รวมทั้งระบบจะสามารถแก้ปัญหาได้หรือไม่

2.2 ศึกษาการทำงานของระบบและศึกษาว่าระบบสามารถตอบสนองความต้องการได้หรือไม่

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

3.1 ดำเนินการพัฒนารายละเอียดของระบบทั้งหมด

3.2 ตรวจสอบ Hardware และ Software ของระบบ

4. Implement ขั้นตอนของการนำระบบไปใช้

4.1 การพัฒนาระบบ

4.2 การทดสอบระบบที่พัฒนาเรียบร้อยแล้ว

4.3 ทำการฝึกอบรมให้ความรู้กับผู้ใช้

4.4 การเปลี่ยนระบบจากเดิมเป็นระบบใหม่

5. Support ขั้นตอนของการสนับสนุน

5.1 พิจารณาสิ่งที่ต้องทำหลังจากติดตั้งระบบเรียบร้อย

5.2 หาข้อผิดพลาดและแก้ไข

5.3 คอยตรวจสอบระบบอย่างสม่ำเสมอ

วงจรการพัฒนาระบบ (System Development Lift Cycle-SDLC)วงจรนี้จะเป็นขั้นตอนที่เป็นลำดับตั้งแต่ต้นจนเสร็จเรียบร้อยเป็นระบบที่ใช้งานได้ ซึ่งนักวิเคราะห์ระบบต้องทำความเข้าใจให้ดีว่าในแต่ละขั้นตอนจะต้องทำอะไร และทำอย่างไร ขั้นตอนการพัฒนาระบบมีอยู่ด้วยกัน 7 ขั้นตอนคือ
1.
เข้าใจปัญหา (Problem Recognition)
2.
ศึกษาความเป็นไปได้ (Feasibility Study)
3.
วิเคราะห์ (Analysis)
4.
ออกแบบ (Design)
5.
สร้าง หรือพัฒนาระบบ (Construction)
6.
การปรับเปลี่ยน (Conversion)

วงจรการพัฒนาระบบ (System Development Life Cycle :SDLC)
ระบบสารสนเทศทั้งหลายมีวงจรชีวิตที่เหมือนกันตั้งแต่เกิดจนตายวงจรนี้จะเป็นขั้นตอน ที่เป็นลำดับตั้งแต่ต้นจนเสร็จเรียบร้อย เป็นระบบที่ใช้งานได้ ซึ่งนักวิเคราะห์ระบบต้องทำความเข้าใจให้ดีว่าในแต่ละขั้นตอนจะต้องทำอะไร และทำอย่างไร ขั้นตอนการพัฒนาระบบมีอยู่ด้วยกัน 7 ขั้น ด้วยกัน คือ

1. เข้าใจปัญหา (Problem Recognition)
2. ศึกษาความเป็นไปได้ (Feasibility Study)
3. วิเคราะห์ (Analysis)
4. ออกแบบ (Design)
5. สร้างหรือพัฒนาระบบ (Construction)
6. การปรับเปลี่ยน (Conversion)
7. บำรุงรักษา (Maintenance)

ขั้นที่ 1 : เข้าใจปัญหา (Problem Recognition)
ระบบสารสนเทศจะเกิดขึ้นได้ก็ต่อเมื่อผู้บริหารหรือผู้ใช้ตระหนักว่า ต้องการระบบสารสนเทศหรือระบบจัดการเดิม ได้แก่ระบบเอกสารในตู้เอกสาร ไม่มีประสิทธิภาพเพียงพอที่ตอบสนองความต้องการในปัจจุบัน

ปัจจุบันผู้บริหารตื่นตัวกันมากที่จะให้มีการพัฒนาระบบสารสนเทศมาใช้ในหน่วยงานของตน ในงานธุรกิจ อุตสาหกรรม หรือใช้ในการผลิต ตัวอย่างเช่น บริษัทของเรา จำกัด ติดต่อซื้อสินค้าจากผู้ขายหลายบริษัท ซึ่งบริษัทของเราจะมีระบบ MIS ที่เก็บข้อมูลเกี่ยวกับหนี้สินที่บริษัทขอเราติดค้างผู้ขายอยู่ แต่ระบบเก็บข้อมูลผู้ขายได้เพียง 1,000 รายเท่านั้น แต่ปัจจุบันผู้ขายมีระบบเก็บข้อมูลถึง 900 ราย และอนาคตอันใกล้นี้จะเกิน 1,000 ราย ดังนั้นฝ่ายบริหารจึงเรียกนักวิเคราะห์ระบบเข้ามาศึกษา แก้ไขระบบงาน

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

การที่จะแก้ไขระบบเดิมที่มีอยู่แล้วไม่ใช่เรื่องที่ง่ายนัก หรือแม้แต่การสร้างระบบใหม่ ดังนั้นควรจะมีการศึกษาเสียก่อนว่า ความต้องการของเราเพียงพอที่เป็นไปได้หรือไม่ ได้แก่ "การศึกษาความเป็นไปได้" (Feasibility Study)

สรุป ขั้นตอนที่ 1: เข้าใจปัญหา
หน้าที่
: ตระหนักว่ามีปัญหาในระบบ
ผลลัพธ์ : อนุมัติการศึกษาความเป็นไปได้
เครื่องมือ : ไม่มี
บุคลากรและหน้าที่ความรับผิดชอบ : ผู้ใช้หรือผู้บริหารชี้แจงปัญหาต่อนักวิเคราะห์ระบบ

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

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

สุดท้ายนักวิเคราะห์ระบบต้องวิเคราะห์ได้ว่า ความเป็นไปได้เรื่องค่าใช้จ่าย รวมทั้งเวลาที่ ใช้ในการพัฒนาระบบ และที่สำคัญคือ ผลประโยชน์ที่จะได้รับ เรื่องเวลาเป็นสิ่งสำคัญ เช่น การเปลี่ยนแปลงระบบเพื่อรองรับผู้ขายให้ได้มากกว่า 1,000 บริษัทนั้น ควรใช้เวลาไม่เกิน 1 ปี ตั้งแต่เริ่มต้นจนใช้งานได้ ค่าใช้จ่ายเริ่มตั้งแต่พัฒนาจนถึงใช้งานได้จริงได้แก่ เงินเดือน เครื่องมือ อุปกรณ์ ต่างๆ เป็นต้น พูดถึงเรื่องผลประโยชน์ที่ได้รับอาจมองเห็นได้ไม่ง่ายนัก แต่นักวิเคราะห์ระบบควรมองและตีออกมาในรูปเงินให้ได้ เช่น เมื่อนำระบบใหม่เข้ามาใช้อาจจะทำให้ ค่าใช้จ่ายบุคลากรลดลง หรือกำไรเพิ่มมากขึ้น เช่น ทำให้ยอดขายเพิ่มมากขึ้น เนื่องจากผู้บริหารมีข้อมูลพร้อมที่จะช่วยในการตัดสินใจที่ดีขึ้น
การคาดคะเนทั้งหลายเป็นไปอย่างหยาบๆ เราไม่สามารถหาตัวเลขที่แน่นอนตายตัวได้เนื่องจากทั้งหมดยังไม่ได้เกิดขึ้นจริง หลังจากเตรียมตัวเลขเรียบร้อยแล้ว นักวิเคราะห์ระบบก็นำตัวเลข ค่าใช้จ่ายและผลประโยชน์ (Cost-Benefit) มาเปรียบเทียบกันดังตัวอย่างในตาราง

ค่าใช้จ่าย

ปีที่ 0

ปีที่ 1

ปีที่ 2

ปีที่ 3

ปีที่ 4

ปีที่ 5

ค่าใช้จ่ายในการพัฒนาระบบ

200,000

-

-

-

-

-

ค่าใช้จ่ายเมื่อปฏิบัติงาน

-

50,000

52,000

60,000

70,000

85,500

ค่าใช้จ่ายรวมตั้งแต่ต้น

200,000

250,000

302,000

362,000

422,000

507,000

ผลประโยชน์

-

80,000

100,000

120,000

150,000

200,000

ผลประโยชน์ตั้งแต่ต้น

-

80,000

180,000

300,000

450,000

650,000


จะเห็นว่าหลังจากปีที่ 3 บริษัทเริ่มมีกำไรเพิ่มขึ้น ดังนั้นปัญหามีอยู่ว่าเราจะยอมขาดทุนใน 3 ปีแรก และลงทุนเริ่มต้นเป็นเงิน 200,000 บาท หรือไม่

สรุปขั้นตอนที่ 2 : การศึกษาความเป็นไปได้ (Feasibility Study)
หน้าที่
: กำหนดปัญหา และศึกษาว่าเป็นไปได้หรือไม่ที่จะเปลี่ยนแปลงระบบ
ผลลัพธ์ : รายงานความเป็นไปได้
เครื่องมือ : เก็บรวบรวมข้อมูลของระบบและคาดคะเนความต้องการของระบบ

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

ขั้นตอนที่ 3 การวิเคราะห์ (Analysis)
เริ่มเข้าสู่การวิเคราะห์ระบบ การวิเคราะห์ระบบเริ่มตั้งแต่การศึกษาระบบการทำงานของธุรกิจนั้น ในกรณีที่ระบบเราศึกษานั้นเป็นระบบสารสนเทศอยู่แล้วจะต้องศึกษาว่าทำงานอย่างไร เพราะเป็นการยากที่จะออกแบบระบบใหม่โดยที่ไม่ทราบว่าระบบเดิมทำงานอย่างไร หรือธุรกิจดำเนินการอย่างไร หลังจากนั้นกำหนดความต้องการของระบบใหม่ ซึ่งนักวิเคราะห์ระบบจะต้องใช้เทคนิคในการเก็บข้อมูล (Fact-Gathering Techniques) ดังรูป ได้แก่ ศึกษาเอกสารที่มีอยู่ ตรวจสอบวิธีการทำงานในปัจจุบัน สัมภาษณ์ผู้ใช้และผู้จัดการที่มีส่วนเกี่ยวข้องกับระบบ เอกสารที่มีอยู่ได้แก่ คู่มือการใช้งาน แผนผังใช้งานขององค์กร รายงานต่างๆที่หมุนเวียนใน ระบบการศึกษาวิธีการทำงานในปัจจุบันจะทำให้นักวิเคราะห์ระบบรู้ว่าระบบจริงๆทำงานอย่างไร ซึ่งบางครั้งค้นพบข้อผิดพลาดได้ ตัวอย่าง เช่น เมื่อบริษัทได้รับใบเรียกเก็บเงินจะมีขั้นตอนอย่างไรในการจ่ายเงิน ขั้นตอนที่เสมียนป้อนใบเรียกเก็บเงินอย่างไร เฝ้าสังเกตการทำงานของผู้เกี่ยวข้อง เพื่อให้เข้าใจและเห็นจริงๆ ว่าขั้นตอนการทำงานเป็นอย่างไร ซึ่งจะทำให้นักวิเคราะห์ระบบค้นพบจุดสำคัญของระบบว่าอยู่ที่ใด

การสัมภาษณ์เป็นศิลปะอย่างหนึ่งที่นักวิเคราะห์ระบบควรจะต้องมีเพื่อเข้ากับผู้ใช้ได้ง่าย และสามารถดึงสิ่งที่ต้องการจากผู้ใช้ได้ เพราะว่าความต้องการของระบบคือ สิ่งสำคัญที่จะใช้ในการออกแบบต่อไป ถ้าเราสามารถกำหนดความต้องการได้ถูกต้อง การพัฒนาระบบในขั้นตอนต่อไปก็จะง่ายขึ้น เมื่อเก็บรวบรวมข้อมูลแล้วจะนำมาเขียนรวมเป็นรายงานการทำงานของ ระบบซึ่งควรแสดงหรือเขียนออกมาเป็นรูปแทนที่จะร่ายยาวออกมาเป็นตัวหนังสือ การแสดงแผนภาพจะทำให้เราเข้าใจได้ดีและง่ายขึ้น หลังจากนั้นนักวิเคราะห์ระบบ อาจจะนำข้อมูลที่รวบรวมได้นำมาเขียนเป็น "แบบทดลอง" (Prototype) หรือตัวต้นแบบ แบบทดลองจะเขียนขึ้นด้วยภาษาคอมพิวเตอร์ต่างๆ และที่ช่วยให้ง่ายขึ้นได้แก่ ภาษายุคที่ 4 (Fourth Generation Language) เป็นการสร้างโปรแกรมคอมพิวเตอร์ขึ้นมาเพื่อใช้งานตามที่เราต้องการได้ ดังนั้นแบบทดลองจึงช่วยลดข้อผิดพลาดที่อาจจะเกิดขึ้นได้

เมื่อจบขั้นตอนการวิเคราะห์แล้ว นักวิเคราะห์ระบบจะต้องเขียนรายงานสรุปออกมาเป็น ข้อมูลเฉพาะของปัญหา (Problem Specification) ซึ่งมีรายละเอียดดังนี้

รายละเอียดของระบบเดิม ซึ่งควรจะเขียนมาเป็นรูปภาพแสดงการทำงานของระบบ พร้อมคำบรรยาย, กำหนดความต้องการของระบบใหม่รวมทั้งรูปภาพแสดงการทำงานพร้อมคำบรรยาย, ข้อมูลและไฟล์ที่จำเป็น, คำอธิบายวิธีการทำงาน และสิ่งที่จะต้องแก้ไข. รายงานข้อมูลเฉพาะของปัญหาของระบบขนาดกลางควรจะมีขนาดไม่เกิน 100-200 หน้ากระดาษ

สรุป ขั้นตอนที่3 : การวิเคราะห์ (Analysis)
หน้าที่
: กำหนดความต้องการของระบบใหม่ (ระบบใหม่ทั้งหมดหรือแก้ไขระบบเดิม)
ผลลัพธ์ : รายงานข้อมูลเฉพาะของปัญหา
เครื่องมือ : เทคนิคการเก็บรวบรวมข้อมูล, Data Dictionary, Data Flow Diagram, Process Specification, Data Model, System Model, Prototype, system Flowcharts

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

ขั้นตอนที่4 : การออกแบบ (Design)
ในระยะแรกของการออกแบบ นักวิเคราะห์ระบบจะนำการตัดสินใจ ของฝ่ายบริหารที่ได้จากขั้นตอนการวิเคราะห์การเลือกซื้อคอมพิวเตอร์ ฮาร์ดแวร์และซอฟต์แวร์ด้วย (ถ้ามีหรือเป็นไปได้) หลังจากนั้นนักวิเคราะห์ระบบจะนำแผนภาพต่างๆ ที่เขียนขึ้นในขั้นตอนการวิเคราะห์มาแปลงเป็นแผนภาพลำดับขั้น (แบบต้นไม้) ดังรูปข้างล่าง เพื่อให้มองเห็นภาพลักษณ์ที่แน่นอนของโปรแกรมว่ามีความสัมพันธ์กันอย่างไร และโปรแกรมอะไรบ้างที่จะต้องเขียนในระบบ หลังจากนั้นก็เริ่มตัดสินใจว่าควรจะจัดโครงสร้างจากโปรแกรมอย่างไร การเชื่อมระหว่างโปรแกรมควรจะทำอย่างไร ในขั้นตอนการวิเคราะห์นักวิเคราะห์ระบบต้องหาว่า "จะต้องทำอะไร (What)" แต่ในขั้นตอนการออกแบบต้องรู้ว่า " จะต้องทำอย่างไร(How)"

ในการออกแบบโปรแกรมต้องคำนึงถึงความปลอดภัย (Security) ของระบบด้วย เพื่อป้องกันการผิดพลาดที่อาจจะเกิดขึ้น เช่น "รหัส" สำหรับผู้ใช้ที่มีสิทธิ์สำรองไฟล์ข้อมูลทั้งหมด เป็นต้น

นักวิเคราะห์ระบบจะต้องออกแบบฟอร์มสำหรับข้อมูลขาเข้า (Input Format) ออกแบบรายงาน (Report Format) และการแสดงผลบนจอภาพ (Screen Fromat) หลักการการออกแบบฟอร์มข้อมูลขาเข้าคือ ง่ายต่อการใช้งาน และป้องกันข้อผิดพลาดที่อาจจะเกิดขึ้น

ถัดมาระบบจะต้องออกแบบวิธีการใช้งาน เช่น กำหนดว่าการป้อนข้อมูลจะต้องทำอย่างไร จำนวนบุคลากรที่ต้องการในหน้าที่ต่างๆ แต่ถ้านักวิเคราะห์ระบบตัดสินใจว่าการซื้อซอฟต์แวร์ดีกว่าการเขียนโปรแกรม ขั้นตอนการออกแบบก็ไม่จำเป็นเลย เพราะสามารถนำซอฟต์แวร์สำเร็จรูปมาใช้งานได้ทันที สิ่งที่นักวิเคราะห์ระบบออกแบบมาทั้งหมดในขั้นตอนที่กล่าวมาทั้งหมดจะนำมาเขียนรวมเป็นเอกสารชุดหนึ่งเรียกว่า "ข้อมูลเฉพาะของการออกแบบระบบ " (System Design Specification) เมื่อสำเร็จแล้วโปรแกรมเมอร์สามารถใช้เป็นแบบในการเขียนโปรแกรม ได้ทันที่สำคัญก่อนที่จะส่งถึงมือโปรแกรมเมอร์เราควรจะตรวจสอบกับผู้ใช้ว่าพอใจหรือไม่ และตรวจสอบกับทุกคนในทีมว่าถูกต้องสมบูรณ์หรือไม่ และแน่นอนที่สุดต้องส่งให้ฝ่ายบริหารเพื่อตัดสินใจว่าจะดำเนินการ ต่อไปหรือไม่ ถ้าอนุมัติก็ผ่านเข้าสู่ขั้นตอนการสร้างหรือพัฒนาระบบ (Construction)

สรุปขั้นตอนที่ 4 : การออกแบบ (Design)
หน้าที : ออกแบบระบบใหม่เพื่อให้สอดคล้องกับความต้องการของผู้ใช้และฝ่ายบริหาร
ผลลัพธ์ : ข้อมูลเฉพาะของการออกแบบ(System Design Specification)
เครื่องมือ : พจนานุกรมข้อมูล Data Dictionary, แผนภาพการไหลของข้อมูล (Data Flow Diagram), ข้อมูลเฉพาะการประมวลผล (Process Specification ), รูปแบบข้อมูล (Data Model), รูปแบบระบบ (System Model), ผังงานระบบ (System Flow Charts), ผังงานโครงสร้าง (Structure Charts), ผังงาน HIPO (HIPO Chart), แบบฟอร์มข้อมูลขาเข้าและรายงาน

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

ขั้นตอนที่ 5 : การพัฒนาระบบ (Construction)
ในขั้นตอนนี้โปรแกรมเมอร์จะเริ่มเขียนและทดสอบโปรแกรมว่า ทำงานถูกต้องหรือไม่ ต้องมีการทดสอบกับข้อมูลจริงที่เลือกแล้ว ถ้าทุกอย่างเรียบร้อย เราจะได้โปรแกรมที่พร้อมที่จะนำไปใช้งานจริงต่อไป หลังจากนั้นต้องเตรียมคู่มือการใช้และการฝึกอบรมผู้ใช้งานจริงของระบบ

ระยะแรกในขั้นตอนนี้นักวิเคราะห์ระบบต้องเตรียมสถานที่สำหรับ เครื่องคอมพิวเตอร์แล้วจะต้องตรวจสอบว่าคอมพิวเตอร์ทำงานเรียบร้อยดี

โปรแกรมเมอร์เขียนโปรแกรมตามข้อมูลที่ได้จากเอกสารข้อมูลเฉพาะของการออกแบบ (Design Specification) ปกติแล้วนักวิเคราะห์ระบบไม่มีหน้าที่เกี่ยวข้องในการเขียนโปรแกรม แต่ถ้าโปรแกรมเมอร์คิดว่าการเขียนอย่างอื่นดีกว่าจะต้องปรึกษานักวิเคราะห์ระบบเสียก่อน เพื่อที่ว่านักวิเคราะห์จะบอกได้ว่าโปรแกรมที่จะแก้ไขนั้นมีผลกระทบกับระบบทั้งหมดหรือไม่ โปรแกรมเมอร์เขียนเสร็จแล้วต้องมีการทบทวนกับนักวิเคราะห์ระบบและผู้ใช้งาน เพื่อค้นหาข้อผิดพลาด วิธีการนี้เรียกว่า "Structure Walkthrough " การทดสอบโปรแกรมจะต้องทดสอบกับข้อมูลที่เลือกแล้วชุดหนึ่ง ซึ่งอาจจะเลือกโดยผู้ใช้ การทดสอบเป็นหน้าที่ของโปรแกรมเมอร์ แต่นักวิเคราะห์ระบบต้องแน่ใจว่า โปรแกรมทั้งหมดจะต้องไม่มีข้อผิดพลาด

หลังจากนั้นต้องควบคุมดูแลการเขียนคู่มือซึ่งประกอบด้วยข้อมูลการใช้งานสารบัญการอ้างอิง "Help" บนจอภาพ เป็นต้น นอกจากข้อมูลการใช้งานแล้ว ต้องมีการฝึกอบรมพนักงานที่จะเป็นผู้ใช้งานจริงของระบบเพื่อให้เข้าใจ และทำงานได้โดยไม่มีปัญหาอาจจะอบรมตัวต่อตัวหรือเป็นกลุ่มก็ได้

สรุปขั้นตอนที่ 5 : การพัฒนาระบบ (Construction)
หน้าที่ : เขียนและทดสอบโปรแกรม
ผลลัพธ์ : โปรแกรมที่ทดสอบเรียบร้อยแล้ว เอกสารคู่มือการใช้ และการฝึกอบรม
เครื่องมือ : เครื่องมือของโปรแกรมเมอร์ทั้งหลาย Editor, compiler,Structure Walkthrough, วิธีการทดสอบโปรแกรม การเขียนเอกสารประกอบการใช้งาน

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

ขั้นตอนที่ 6 : การปรับเปลี่ยน (Construction)
ขั้นตอนนี้บริษัทนำระบบใหม่มาใช้แทนของเก่าภายใต้การดูแลของนักวิเคราะห์ระบบ การป้อนข้อมูลต้องทำให้เรียบร้อย และในที่สุดบริษัทเริ่มต้นใช้งานระบบใหม่นี้ได้

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

ขั้นตอนที่ 7 : บำรุงรักษา (Maintenance)
การบำรุงรักษาได้แก่ การแก้ไขโปรแกรมหลังจากการใช้งานแล้ว สาเหตุที่ต้องแก้ไขโปรแกรมหลังจากใช้งานแล้ว สาเหตุที่ต้องแก้ไขระบบส่วนใหญ่มี 2 ข้อ คือ 1. มีปัญหาในโปรแกรม (Bug) และ 2. การดำเนินงานในองค์กรหรือธุรกิจเปลี่ยนไป จากสถิติของระบบที่พัฒนาแล้วทั้งหมดประมาณ 40% ของค่าใช้จ่ายในการแก้ไขโปรแกรม เนื่องจากมี "Bug" ดังนั้นนักวิเคราะห์ระบบควรให้ความสำคัญกับการบำรุงรักษา ซึ่งปกติจะคิดว่าไม่มีความสำคัญมากนัก

เมื่อธุรกิจขยายตัวมากขึ้น ความต้องการของระบบอาจจะเพิ่มมากขึ้น เช่น ต้องการรายงานเพิ่มขึ้น ระบบที่ดีควรจะแก้ไขเพิ่มเติมสิ่งที่ต้องการได้

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

สรุปวงจรการพัฒนาระบบ

หน้าที่

ทำอะไร

1. เข้าใจปัญหา

1. ตระหนักว่ามีปัญหาในระบบ

2. ศึกษาความเป็นไปได้

1. รวบรวมข้อมูล

2. คาดคะเนค่าใช้จ่าย ผลประโยชน์และอื่น

3. ตัดสินใจว่าจะเปลี่ยนแปลงระบบหรือไม่

3. วิเคราะห์

1. ศึกษาระบบเดิม

2. กำหนดความต้องการของระบบ

3. แผนภาพระบบเก่าและระบบใหม่

4. สร้างระบบทดลองของระบบใหม่

4. ออกแบบ

1. เลือกซื้อคอมพิวเตอร์ฮาร์ดแวร์และซอฟต์แวร์

2. เปลี่ยนแผนภาพจากการวิเคราะห์เป็นแผนภาพลำดับขั้น

3. คำนึงถึงความปลอดภัยของระบบ

4. ออกแบบ Input และ Output

5. ออกแบบไฟล์ฐานข้อมูล

5. พัฒนา

1. เตรียมสถานที่

2. เขียนโปรแกรม

3. ทดสอบโปรแกรม

4. เตรียมคู่มือการใช้และฝึกอบรม

6. นำมาใช้งานจริง

1. ป้อนข้อมูล

2. เริ่มใช้งานระบบใหม่

7. บำรุงรักษา

1. เข้าใจปัญหา

2. ศึกษาสิ่งที่จะต้องแก้ไข

3. ตัดสินใจว่าจะแก้ไขหรือไม่

4. แก้ไขเอกสาร คู่มือ

5. แก้ไขโปรแกรม

6. ทดสอบโปรแกรม

7. ใช้งานระบบที่แก้ไขแล้ว


หลักความสำเร็จของการพัฒนาระบบงาน

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

หลักการที่ 2 : ทำการจัดตั้งและแบ่งกลุ่มของระบบหรือโครงการออกเป็นกลุ่มงานย่อย
โดยทั่วไป วงจรการพัฒนาระบบงานและโครงการ (SDLC) ได้จัดแบ่งขั้นตอนของการทำงานเป็นหลักอยู่แล้วดังนี้

1. ขั้นตอนการวิเคราะห์ระบบงาน (System Analysis)
2. ขั้นตอนการดีไซน์และวางระบบงาน (System Design)
3. ขั้นตอนการนำระบบงานเข้าสู่ธุรกิจเพื่อใช้ปฏิบัติงานจริง (System imple- mentation)
4. ขั้นตอนการติดตามและดำเนินการภายหลังการติดตั้งระบบงาน (System support)

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

หลักการที่ 3 : ขั้นตอนการพัฒนาระบบงานไม่ใช่แบบอนุกรม (sequential process)
ความหมายของหลักการนี้คือ เมื่อเราเข้าสู่วงจรการพัฒนาระบบ SDLC แล้ว เราไม่จำเป็นที่จะทำขั้นที่ 1 คือ system analysis ให้เสร็จเรียบร้อยเสียก่อน แล้วจึงค่อยทำขั้นที่ 2 คือ system design หรือต้องทำขั้นที่ 2 เสร็จค่อยทำขั้นที่ 3 เรื่อยไป การทำแบบนี้จะทำให้เราใช้ระยะเวลามากขึ้นในการพัฒนาระบบงานหนึ่งๆ

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

หลักการที่ 4 : ระบบงานข้อมูลถือเป็นการลงทุนอย่างหนึ่ง
การพัฒนาระบบงานหนึ่งๆก็ถือว่าเป็นการลงทุนอย่างหนึ่ง ซึ่งไม่แตกต่างจากที่เราลงทุนซื้อรถ เพื่อมาขนส่งสินค้าหรือซื้อเครื่องจักรมาเพื่อทำการผลิต

เมื่อระบบงานถือว่าเป็นการลงทุนชนิดหนึ่ง สิ่งที่นักวิเคราะห็ระบบจะต้องคำนึงก็คือทางเลือกต่างๆที่จะนำเงินไปลงทุน ซึ่งหมายถึงว่านักวิเคราะห์ระบบควรคิดถึงทางเลือก ของการพัฒนาระบบงานในหลายๆงานและพิจารณาถึงความเป็นไปได้ต่างๆ รวมถึงการเปรียบเทียบต้นทุนและผลกำไรที่จะเกิดจากระบบงาน ว่าระบบนั้นๆ คุ้มค่าหรือไม่อย่างไร ยกตัวอย่าง เช่น นักวิเคราะห์กำลังรับทำระบบงานสำหรับร้านให้เช่าวิดีโอร้านหนึ่งซึ่งเป็นร้านเล็กๆ มีรายได้ประมาณ 10,000 บาทต่อเดือน เขาตัดสินใจแนะนำให้ร้านนั้นซื้อคอมพิวเตอร์ราคา 2 ล้านบาท ซึ่งเขาจะพัฒนาระบบงานให้ โดยจะเสียค่าใช้จ่ายอีกประมาณ 3 แสนบาท ลักษณะแบบนี้ท่านจะเห็นได้ชัดว่า การตัดสินใจลงทุนแบบนี้ไม่คุ้มค่าแน่ นักวิเคราะห์ควรจะทำการวิเคราะห์หาทางเลือกที่เหมาะสมและนำเสนอต่อผู้ใช้โดยให้มีข้อมูล ในการเปรียบเทียบถึงข้อดีข้อเสียต่างๆ เพื่อผู้ใช้ระบบสามารถที่จะออกความเห็นหรือปรึกษาหารือเพื่อหาข้อยุติที่เหมาะสมต่อไป

หลักการที่ 5 : อย่ากลัวที่จะต้องยกเลิก
ในทุกขั้นตอนของการพัฒนาระบบงานจะมีการศึกษาถึงความเป็นไปได้ (feasibility study) ของระบบงาน ดังนั้นในทุกขั้นตอน นักวิเคราะห์ระบบจะมีโอกาสเสมอที่จะตัดสินใจว่าจะให้ระบบงานนั้นดำเนินต่อไปหรือยกเลิก

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

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

การจัดทำเอกสาร จะหมายรวมถึงการบันทึกเหตุการณ์ต่างๆ และแนวความคิด รวมทั้งข้อสรุปที่เกิดขึ้นในแต่ละขั้นตอนของการพัฒนาระบบงานและโครงการ ไม่ใช่จะเอาแค่รหัสต้นกำเนิด (source code) ของแต่ระบบเท่านั้น

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

Data Warehouse คืออะไร

ระบบคลังข้อมูล (Data Warehouse) คืออะไร?

นิยามของคลังข้อมูล (Definition of a Data Warehouse)

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

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

Metadata

วัตถุประสงค์ของการสร้างคลังข้อมูล

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

ประโยชน์ของคลังข้อมูล

โดยทั่วไปแล้วข้อมูล Operational Database จะเก็บข้อมูลในรูปแบบ Transaction Systems เมื่อมีความต้องการในการจะนำข้อมูลเหล่านั้นมาใช้เพื่อช่วยในการตัดสินใจก็จะประสบกับปัญหาต่างๆ เช่น การเรียกข้อมูลจากฐานข้อมูลขนาดใหญ่ส่งผลช้า ข้อมูลเก็บแบบเป็นตารางเท่านั้น และการนำเสนอเป็นรูปแบบที่ตายตัว ไม่มีการเปลี่ยนแปลงตามความต้องการของผู้ใช้ ไม่ตอบสนองความต้องการของการตัดสินใจ เพราะข้อมูลมีความสัมพันธ์แบบซับซ้อนสูง ซึ่งข้อมูลมีการรวมตัวจากตารางหลายๆตารางมารวมกัน มีข้อมูลย้อนหลังน้อย ข้อมูลถูกจัดเก็บแบบกระจายซึ่งยากต่อการเรียกใช้ และเสียเวลาในการค้นหาข้อมูล

จากอุปสรรคดังกล่าว ทำให้คลังข้อมูลถูกออกแบบให้มีการตอบสนองงานในรูปแบบการตัดสินใจ โดยแยกฐานข้อมูลออกจาก Operational Database และเก็บข้อมูลในรูปของข้อมูลที่มีการวิเคราะห์ โดยการวิเคราะห์นั้นต้องทำได้หลายมิติ ข้อมูลจะมีความถูกต้อง มีประสิทธิภาพ สำหรับการนำไปช่วยในการตัดสินใจรวดเร็วยิ่งขึ้น

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

o ทำการรวบรวมข้อมูลที่มีความซับซ้อนให้ง่ายต่อการจัดเก็บ

    • สามารถนำข้อมูลมาใช้ได้อย่างรวดเร็วและถูกต้อง
    • ช่วยเสริมสร้างความรู้ของบุคลากรในองค์กร และสนับสนุนการตัดสินใจให้เกิดประสิทธิภาพ
    • สร้างความได้เปรียบในการแข่งขันและปรับปรุงกระบวนการทางธุรกิจให้มีความรวดเร็วขึ้น

คุณสมบัติของคลังข้อมูล

1. Consolidated and Consistant

Consolidated หมายถึง การรวบรวมข้อมูลที่เกิดขึ้นในระดับปฏิบัติการมาไว้ที่ศูนย์กลางเดียวกัน (คลังข้อมูล)

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

2. Subject-Oriented Data หมายถึง เก็บข้อมูลในระดับปฏิบัติการเฉพาะส่วนที่นำมาใช้เชิงวิเคราะห์หรือ เชิงตัดสินใจมากกว่าการเก็บข้อมูลเพื่อตอบคำถาม

3. Historical Data หมายถึง จะเก็บย้อนหลังเป็นเวลาหลายๆปี เพื่อจะได้นำไปวิเคราะห์เปรียบเทียบหาแนวโน้มของข้อมูลเปรียบกับปีที่ผ่านมา

4. Read – Only Data หมายถึง ข้อมูลในฐานข้อมูลไม่ควรมีการแก้ไขหลังจากที่นำข้อมูลเข้าสู่ฐานข้อมูลของคลังข้อมูลแล้วไม่มีการ Insert update or delete ข้อมูลภายในคลังข้อมูลนอกจากการเพิ่มข้อมูลเข้าอย่างเดียว

คุณลักษณะเฉพาะของคลังข้อมูล

1. Subject oriented หรือการแบ่งโครงสร้างตามเนื้อหา หมายถึง คลังข้อมูลถูกออกแบบมาเพื่อมุ่งเน้นไปในแต่ละเนื้อหาที่สนใจ ไม่ได้เน้นไปที่การทำงานหรือกระบวนการแต่ละอย่างโดยเฉพาะเหมือนอย่างฐานข้อมูลปฏิบัติการในส่วนของรายละเอียดข้อมูลที่จัดเก็บในระบบทั้งสองแบบก็จะแตกต่างกันไปตามความต้องการใช้งานด้วยเช่นกัน คลังข้อมูลจะไม่จำกัดเก็บข้อมูลที่ไม่มีส่วนเกี่ยวข้องกับการประมวลผลเพื่อสนับสนุนการตัดสินใจ ในขณะที่ข้อมูลนั้นจะถูกเก็บไว้ในฐานข้อมูลปฏิบัติการหากมีส่วนที่เกี่ยวข้องกับกระบวนการทำงาน

2. Integration หรือการรวมเป็นหนึ่ง ซึ่งถือได้ว่าเป็นคุณลักษณะที่สำคัญที่สุดของคลังข้อมูล คือการรวบรวมข้อมูลจากหลายฐานข้อมูลปฏิบัติการเข้าด้วยกัน และทำให้ข้อมูลมีมาตราฐานเดียวกัน เช่นกำหนดให้มีค่าตัวแปรของข้อมูลในเนื่อหาเดียวกันให้เป็นแบบเดียวกันทั้งหมด
3. Time variancy หรือความสัมพันธ์กับเวลา หมายถึงข้อมูลในคลังข้อมูล จะต้องจัดเก็บโดยกำหนดช่วงเวลาเอาไว้ โดยจะสัมพันธ์กับการดำเนินธุรกิจของหน่วยธุรกิจนั้น เพราะในการตัดสินด้านการบริหารจำเป็นต้องมีข้อมูลเปรียบเทียบในแต่ละช่วงเวลา แต่ละจุดของข้อมูลจะเกี่ยวข้องกับจุดของเวลาและข้อมูลแต่ละจุดสามารถเปรียบเทียบกันได้ตามแกนของเวลา
4. Nonvolatile หรือความเสถียรของข้อมูล หมายถึงข้อมูลในคลังข้อมูลจะไม่เปลี่ยนแปลงบ่อย ไม่ว่าจะเป็นการเพิ่มเติมข้อมูลใหม่ หรือการปรับปรุงแก้ไขข้อมูลเดิมที่บรรจุอยู่แล้ว ผู้ใช้ทำได้เพียงการเข้าถึงข้อมูลเท่านั้น

สถาปัตยกรรมของคลังข้อมูล

1. Operational database หรือ external database layer ทำหน้าที่จัดการกับข้อมูลในระบบงานปฏิบัติการหรือแหล่งข้อมูลภายนอกองค์กร
2. Information access layer เป็นส่วนที่ผู้ใช้ปลายทางติดต่อผ่านโดยตรง ประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์ ที่ใช้ในการแสดงผลเพื่อวิเคราะห์ โดยมีเครื่องมือช่วย เป็นตัวกลางที่ผู้ใช้ใช้ติดต่อกับคลังข้อมูล

3. Data access layer เป็นส่วนต่อประสานระหว่าง Information access layer กับ operational layer
4. Metadata layer เพื่อให้เข้าใจถึงข้อมูลได้ง่ายขึ้น และเป็นการเพิ่มความเร็วในการเรียกและดึงข้อมูลของคลังข้อมูล

5. Process management layer ทำหน้าที่จัดการกระบวนการทำงานทั้งหมด

6. Application messaging layer เป็นมิดเดิลแวร์ (Middleware) ทำหน้าที่ในการส่งข้อมูลภายในองค์กรผ่านทางเครือข่าย

7. Data warehouse (physical) layer เป็นแหล่งเก็บข้อมูลของทาง information data และ external data ในรูปแบบที่ง่ายแก่การเข้าถึงและยืดหยุ่นได้

8. Data staging layer เป็นกระบวนการการแก้ไข และดึงข้อมูลจาก external database

ข้อเสียของคลังข้อมูล
1. ขั้นตอนการกลั่นกรองและโหลดข้อมูลเข้าสู่คลังข้อมูลใช้เวลานาน และต้องอาศัยผู้ที่มีความชำนาญ

2. แนวโน้มความต้องการข้อมูลมีมากขึ้นเรื่อย ๆ
3. ใช้เวลานานในการพัฒนาคลังข้อมูล
4. ระบบคลังข้อมูลมีความซับซ้อนสูง

โมเดลข้อมูลของคลังข้อมูลของ Data Warehouse

โมเดลข้อมูลของคลังข้อมูลของ Data Warehouse ซึ่งเปรียบเสมือนกับรูปลูกบาศก์ที่มีมุมมองหลากหลาย แต่ละมุมมองทำให้เกิดการคิวรีข้อมูลจาก Data Warehouseได้หลากหลายแบบคิวบ์ (Cube) ประกอบด้วยองค์ประกอบที่สำคัญคือ Dimention และ Measure การผสมผสานของ Dimention ต่างๆ ของคิวบ์ (Cube) ในบทนี้ คิวบ์ (Cube) มีโครงสร้างได้ 2 แบบคือ โครงสร้างแบบ Star Schema และ โครงสร้างแบบ Snowflake Schema

Dimensional Modeling

Dimensional Modeling เป็นชื่อเรียกของเทคนิคในการทำให้ฐานข้อมูลง่ายต่อการทำความเข้าใจ โดยการมองภาพของฐานข้อมูลเป็นลูกบาศก์ที่มี 3,4,5 มิติ หรือมากกว่านั้น ทำให้สามารถจิตนาการการ หันหรือแบ่งลูกบาศก์ที่มีลักษณะเหมือนลูกเต๋านี้ได้ นั่นคือสามารถตัดข้อมูลมาวิเคราะห์ดูในช่วงใดก็ได้ และหมุนข้อมูลดูได้จากทุกๆด้านของลูกเต๋า ตัวอย่างเช่น เราขายสินค้า (product) ในหลายๆที่ (market) และในช่วงเวลาต่างๆกัน (time) เราสามารถสร้าง Dimensional Modeling ได้โดยให้ label คือ product, market และ time อยู่บนแต่ละด้านของลูกบาศก์ที่เป็น 3 มิติ แต่ละจุดภายในลูกบาศก์เกิดจากการตัดของ coordinate ซึ่งมี label อยู่ที่ขอบของลูกบาศก์ ดังนั้นจุดต่างๆภายในลูกบาศก์คือผลลัพธ์ทางด้านธุรกิจที่พิจารณาจากทั้ง 3 เรื่องคือ สินค้า, ทีขายสินค้า, เวลา พร้อมๆกัน

การออกแบบโครงสร้างการเชื่อมโยงระหว่างตารางเก็บข้อมูล ตามลักษณะของ Dimensional แบ่งออกเป็น 2 ประเภท คือ

1. Star schema เป็นเทคนิคที่ใช้ multidimensional model โดย data warehouse จะมีตั้งแต่ 1 star schema ขึ้นไป star schema จะมีลักษณะที่มี fact table อยู่ตรงกลางล้อมรอบด้วยหลาย ๆ dimension table ที่เก็บรายละเอียดของ fact ที่ไม่ใช่ normalized center

Star Schema วิธีนี้จะช่วยเพิ่มความสามารถในการ query โดยลดประมาณ data ที่ อ่านจาก disk การวิเคราะห์การ queries ข้อมูลใน dimension table ที่เล็กจะใช้ dimension key จาก indexใน central fact table เป็นการลดจำนวนข้อมูลที่ต้องตรวจสอบ ซึ่งมีข้อดีคือ มีจำนวนของตารางน้อย ,สร้าง query ง่าย และเร็ว

2. Snowflake schema มีความแตกต่างจาก Star schema ตรงที่ dimension table จะเก็บข้อมูลจะเก็บข้อมูลที่อยู่ในรูป normal form จาก star schema เราอาจจะเกิดปัญหาในการ design ได้ snowflake จึงเกิดขึ้นมาเนื่องจากปัจจัยดังนี้

· สภาวะทางธุรกิจ

· การ design ไม่สามารถ implement โดยใช้ star schema

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

KEYWORD FOR CUBE

Slice การนำเสนอหน้าใดหน้าหนึ่ง

Dice การตัดส่วนของ CUBE ให้เล็กลง

Roll up การยุบ หรือ รวมให้สูงระดับสูงขึ้น

Drill Down การย่อยลง ให้สูงระดับต่ำลง

การประมวลผลธุรกรรมออนไลน์ (On-Line Transaction Processing; OLTP)

n ใช้อุปกรณ์บันทึกข้อมูลที่สามารถเก็บข้อมูลลงในฐานข้อมูลของระบบคอมพิวเตอร์ได้ทันที

n การปรับค่าของข้อมูลให้เป็นปัจจุบันและการเพิ่มข้อมูลลงไปในฐานข้อมูล

ปัจจัยที่จะต้องคำนึงถึงในการจัดทำระบบ OLTP

1) ขนาดและตำแหน่งของ rollback segment

2) ดัชนี การจัดกลุ่ม และ การคำนวณตำแหน่งที่อยู่ (hashing)

3) การออกแบบข้อมูลธุรกรรมให้เหมาะกับงานประยุกต์

4) หน่วยเก็บและเนื้อที่ว่างสำหรับการเก็บข้อมูลใหม่

5) ความเข้าใจลักษณะงานประยุกต์และการเขียนคำสั่งสำหรับค้นคืนข้อมูล

6) การปรับปรุงสมรรถนะของระบบอย่างต่อเนื่อง

On-line Analytical Processing (OLAP)

ในการสำรวจข้อมูลของผู้บริหารอุตสาหกรรมส่วนใหญ่ ต้องการข้อมูล เพื่อประกอบการตัดสินใจ ในรูปของ สเปรดชีด (Spreadsheets) รายงาน (Report) และ เครื่องมือวิเตราะห์ (Analytical tools) เครื่องมือที่สามารถนำเสนอข้อมูล และ วิเคราะห์ข้อมูล ดังกล่าว คือ Online Analytical processing (OLAP) โดยโปรแกรมดังกล่าว เป็นเครื่องมือ ที่นำเสนอข้อมูลในรูปแบบ ต่างๆ จาก Data Warehouse

OLAP server และ Desktop tools สนับสนุนการวิเคราะห์ความเร็วสูง ของ ชุดข้อมูลที่มีความสัมพันธ์ที่ซับซ้อน ตัวอย่างเช่น ส่วนผสมของ สินค้า(Product) ช่องทางการขาย (Channel of distribution) และ ระยะเวลา (Time period ) OLAP ถูกออกแบบให้ ความสามารถในการเรียกดูข้อมูล ที่รวดเร็ว เนื่องจาก โครงสร้างการจัดเก็บที่เหมาะสม และ การหลีกเลี่ยงการใช้ Index จำนวนมาก ทำให้ระบบแบบนี้จึงไม่เหมาะสมกับการเปลี่ยนแปลงข้อมูลจำนวนมากๆ ด้วยคุณสมบัติดังกล่าวนี้ทำให้ OLAP ถูกใช้ร่วมกับ Data Warehouse เสมอ

สรุปความแตกต่างของคลังข้อมูลกับฐานข้อมูลที่ใช้ประจำวัน

1. Consistency ทั้ง OLTP และ คลังข้อมูล ต่างก็ให้ความสำคัญในเรื่องข้อมูลควรจะมีความสอดคล้องกัน สำหรับ OLTP ซึ่งมีการทำ transaction จำนวนมากๆสิ่งที่ต้องการคือการทำ transaction ให้ครบ ไม่มีการสูญหาย ดังนั้นจึงมีความจำเป็นผู้ส่งและผู้รับจะต้องรับรู้และตรวจสอบอยู่ตลอกเวลาว่าขณะนี้มีการทำ transaction เกิดขึ้นหรือไม่ สำหรับคลังข้อมูล จะไม่สนใจทำการทำ transaction แต่ละครั้ง แต่จะสนใจว่าการ load

2. data ใหม่เข้ามานั้นทำสำเร็จหรือยัง และการ load data เข้ามาทั้งหมดนั้นถูกต้องหรือไม่

3. Transaction สำหรับระบบ OLTP นั้น ในแต่ละวันอาจมีการทำ transaction มากมายซึ่งการทำ transaction แต่ละครั้งจะใช้ข้อมูลเพียงแค่เล็กน้อยเท่านั้น สำหรับคลังข้อมูล แต่ละวันจะทำแค่เพียง 1 transaction ซึ่ง transaction นี้อาจต้องใช้ข้อมูลเป็นจำนวนมากมาย

4. Time Dimension สำหรับ OLTP นั้นจะทำงานอย่างรวดเร็วและทำ transaction อย่างสม่ำเสมอ สถานะของข้อมูลต่างๆมีการเปลี่ยนแปลงอยู่ตลอดเวลา และความสัมพันธ์ระหว่าง entity ต่างๆก็เปลี่ยนแปลงไปด้วย สำหรับระบบคลังข้อมูลมักจะเก็บข้อมูลในอดีตเพื่อใช้ในการวิเคราะห์ ดังนั้นข้อมูลจะไม่ค่อยมีการเปลี่ยนแปลงตลอดวัน

CRM (Customer Relationship Management) เกี่ยวข้องอะไรกับ Data Warehouse

ปัจจุบันกระแสของ CRM ยังเป็นกระแสที่มาแรงอยู่อย่างต่อเนื่อง เพราะไม่ว่าผู้บริหารทั้งส่วนธุรกิจ และส่วนไอที ต่างก็หนีไม่พ้นเรื่อง CRM ที่ว่านี้เลย CRM นั้นย่อมาจาก Customer Relationship Management หรือการบริหารลูกค้าสัมพันธ์นั่นเอง อย่างไรก็ตาม CRM เป็นเพียงการสร้างความสัมพันธ์อันดีกับลูกค้า โดยมีความหวังว่าลูกค้าเหล่านั้นจะมีความจงรักภักดีกับองค์กรกับแบรนด์หรือผลิตภัณฑ์ของเรา

ทำไมเราจึงต้องมี CRM การทำธุรกิจแบบเดิมๆ ที่ผ่านมา ยังไม่เพียงพอเพราะในโลกของธุรกิจ ย่อมต้องแข่งขันกันซึ่งจะทวีความรุนแรงมากขึ้น สินค้าและบริการที่แต่เดิมจะขึ้นอยู่กับผู้ผลิตว่าจะผลิตอะไรออกมาให้ใช้ เริ่มเปลี่ยนเป็นรูปแบบที่เน้นความต้องการของลูกค้าเป็นหลัก (Customer Oriented) หรือผู้บริโภคเป็นผู้กำหนดว่าต้องการสินค้าแล้วบริการอะไร

การแข่งขันที่รุนแรงนี้เอง ประกอบกับสินค้าที่แทบจะไม่มีความแตกต่าง สิ่งที่เกิดขึ้นคือ ลูกค้าไม่หลงเหลือความจงรักภักดีแล้ว นี่แหล่ะคือเหตุผลที่บริษัทหลายๆ แห่งจะเน้นไปที่การบริการ เพื่อสร้างความแตกต่าง และ CRM เองก็เป็นอีกกลยุทธ์หนึ่งที่จะช่วยสร้างความแตกต่างนี้

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

การที่จะทำให้ลูกค้าเดิมจ่ายเงินมากขึ้น แน่นอนว่าเรายังต้องการ M อีกหนึ่งตัว นั่นก็คือ Marketing นั่นเอง ดังนั้นในปัจจุบัน คำเรียกที่น่าจะดูมีพลังและสะท้อนถึงผลที่จะเกิดขึ้นกับบริษัทมากที่สุดน่าจะเป็น CRM&M มากกว่า เพราะแค่การบริหารลูกค้าเดิมนั้นให้รู้สึกดีกับ

องค์กรก็ทำให้เขารู้สึกดีระดับหนึ่ง แต่การหาผลประโยชน์จากความสัมพันธ์อันดีต่างหาก นั่นคือหัวใจหลักที่เราจะต้องรู้จักทำการตลาด ผมเองเชื่อว่ายังมีบริษัทอีกมากมายที่ยังไม่ได้ลงมานั่งวิเคราะห์พฤติกรรมของลูกค้าอย่างจริงๆ จังๆ ดังนั้นในแง่ของ Business Intelligent (BI) หรือ Data Warehouse คงจะเริ่มมีบทบาทในการสร้างความสัมพันธ์ และการหารายได้แบบหนึ่งต่อหนึ่งกับลูกค้า เช่น บริษัทบัตรเครดิตมีการวิเคราะห์พฤติกรรมการใช้จ่ายของลูกค้าผ่านบัตรเครดิตของแต่ละคนแค่ไหน และฐานข้อมูลของผู้ใช้บัตรเมื่อสามปีที่แล้วกับผู้ใช้บัตรคนเดิม ณ ปัจจุบันมีการปรับปรุงแค่ไหน สถานะของเขาเป็นอย่างไร และจะทำอย่างไรเพื่อจะได้นำเสนอสินค้าและบริการให้ตรงใจได้นั้น ถ้าเราสามารถวิเคราะห์ได้ว่าช่วงนั้นช่วงนี้ ผู้ถือบัตรอาจจะเติบโตในสายงานมีเงินเดือนมากขึ้น หรืออาจจะแต่งงาน ซื้อบ้าน หรือแม้กระทั่งกำลังจะมีลูก และอื่นๆ ตลอดชั่วอายุคน สิ่งเหล่านี้เป็นโอกาสที่จะนำเสนอสินค้าและบริการทั้งสิ้น การนำสินค้าและบริการนำเสนอให้ถูกคนถูกเวลา คงจะเป็นยุทธศาสตร์ที่สำคัญของธุรกิจในปัจจุบันและอนาคต