วันพฤหัสบดีที่ 13 กันยายน พ.ศ. 2555

เปรียบเทียบระหว่าง C#.net vs VB.net

           ถ้าจะถามว่า ภาษาบน .NET Framework ที่ชอบมากที่สุด คือ ภาษาอะไร คำตอบที่แน่นอนอยู่แล้ว ก็คือ VB.NET แต่ผู้อ่านหลายท่านก็เลือก C# เป็นคำตอบ เอาเป็นว่าเรื่องที่ว่า VB.NET กับ C# ภาษาไหนดีกว่ากันนั้น ตอบยาก เพราะมันมีหลายปัจจัยให้พิจารณา เช่น พื้นฐานภาษาของผู้พัฒนา, ประเภทของซอฟต์แวร์ที่จะพัฒนา, ข้อจำกัดเวลาในการพัฒนา เป็นต้น ซึ่งเรื่องนี้จะพยายามนำมาเสนอบ่อยๆ ตามแต่จะมีโอกาศ
          สำหรับวันนี้ขอนำเสนอข้อมูล ของอาจารย์สุเทพ ที่เขียนตอบเรื่อง เปรียบเทียบ C#.net กับ vb.net ไว้ใน Software Development Discussion Board อย่างน่าสนใจ จึงขอนำข้อมูลนั้นมาเสนอไว้ให้อ่านกัน และจะเสริมข้อมูลเพิ่มในภายหลัง

"... เปรียบเทียบ C#.net กับ vb.net
การเลือกระหว่างภาษา C#.Net และ VB.Net มักเป็นข้อที่หลายคนคิดในช่วงวางแผนก่อนที่จะเริ่ม ลงทุนลงแรงเพื่อศึกษาและนำมาใช้ในการพัฒนาระบบขึ้นมา
 
       ข้อเสนอแนะอย่างง่ายที่สุดของไมโครซอฟต์ ก็คือว่าเรามีความชำนาญ มีความคุ้นเคย ชอบพอกับภาษาใดมาก่อน ก็ให้เลือกภาษาที่เป็นแนวเดียวกันนั้น เนื่องจากทุกภาษาใน .Net จะถูกแปลเป็นภาษา Microsoft Intermediate Language (MSIL) โดยเฉพาะสองภาษา ที่จะเปรียบเทียบกันนี้ ถ้าเขียนโค้ด VB.Net อย่างถูกต้องดี รหัส MSIL ที่ได้ ก็แทบจะเหมือนกันเลย ดังนั้น performance ของงานที่ได้ ก็จะไม่แตกต่างกัน นี่เป็นการยกระดับงาน Visual Basic เป็นอย่างมาก แล้วการที่ VB.Net ใช้ Base Class Library ของ .Net framework ร่วมกันกับ C# ก็ทำให้ VB.Net programmer ถือเป็น first-class citizen ไปแล้ว
 
        การเขียนโค้ด VB.Net อย่างถูกต้องดี เช่นมีการใช้ Option Strict On หรือมีการใช้ DirectCast แทนที่จะใช้ CType เป็นต้น.
 
        รายละเอียดการเปรียบเทียบสองภาษา ในข้อความนี้ รวบรวมประมวลมาจากแหล่งข้อมูลต่างๆ หลายแห่ง ซึ่งอาจจะต้องมีการพูดถึงศัพท์หรือเทคนิคลึกๆ บ้างเพื่อให้ได้ความสมบูรณ์นะครับ
 
ดูข้อดีของ Visual Basic .Net
- รองรับ Optional argument ซึ่งสำคัญมากที่คุณต้องการใช้งานร่วมกับ ActiveX component หรือการเขียนโค้ดชนกับพวก Office
- ทำตัวไม่ซีเรียสได้ คือยอมรับการทำ late-binding ได้ ถ้าไม่กำหนด Option Strict On การเขียนโค้ดพวกนี้ใช้กับพวก ActiveX อีกนั่นเอง (ผมแนะนำให้หลีกเลี่ยงการเขียนโค้ดแบบ late-binding ใน .Net)
- รองรับการทำ named indexer (การสร้าง property ที่มี argument)
- มีคำสั่ง VB แบบเดิมๆ เช่น Left, Mid, UCase, ... ให้ใช้ง่ายๆ สำหรับผู้ใช้ VB6 มาก่อน (การเรียกใช้ฟังก์ชันแบบเดิมๆ นี้จะมีผลต่อประสิทธิภาพของโปรแกรม)
- มีประโยค With..End With ให้ใช้
- ความเรียบง่าย เช่นการสร้างประโยค Event
- สามารถกำหนดชื่อเมธอดของการ implements interface ที่ต่างจากที่กำหนดไว้ใน interface ได้ (ผมว่าไม่ค่อยได้ประโยชน์เลย ทำให้ยุ่งยากในการค้นหาเสียมากกว่า)
- มีประโยค Catch...When... ทำให้สามารถทำการ filter exception ด้วยเงื่อนไขได้ นอกเหนือจากการ filter ด้วยชนิดของ exception เท่านั้น
- Visual Studio .Net จะทำการ compile โค้ดในลักษณะ background ซึ่งช่วยเป็นข้อดีในโปรเจ็กต์ขนาดเล็ก แต่ถ้าโปรเจ็กต์ขนาดใหญ่มหึมา จะกลับเป็นข้อเสียอย่างมาก (มีฝรั่งหลายคนบ่นว่าต้องถึงกับต้องยอมเปลี่ยนจาก VB.Net มาเป็น C# เลย ในโปรเจ็กต์ที่มีไฟล์มีคลาสเป็นพันๆ)
 
ข้อดีของ C# .Net
- รองรับ XML documentation คล้ายๆ javadoc คือเอาคอมเม้นต์ในโค้ดมาแปลงเป็นเอกสาร technical manual ได้เลย แต่ใน VB.Net เวอร์ชั่น 2005 (Whidbey) ก็จะรองรับในคุณสมบัตินี้ด้วย
- สามารถทำ operator overloading ได้ (VB.Net 2005 ก็จะทำได้เช่นกัน)
- รองรับ unsigned datatype (VB.Net 2005 ก็จะทำได้เช่นกัน)
- มีประโยค using เพื่อใช้จัดการกับ resource ที่เป็นแบบ unmanaged
- รองรับ unsafe code
 
        สังเกตได้ว่า อะไรที่ใน C# มี ซึ่งเป็นสิ่งที่ซับซ้อน ใน VB.Net เวอร์ชันถัดไป ก็จะมีด้วย แต่มักจะถูกนำมาแสดงในรูปแบบที่ง่ายต่อความเข้าใจ แต่อะไรที่ VB.Net มี มักจะไม่ถูกนำไปเพิ่มให้กับ C# เช่นรูปแบบการสร้าง event ที่เรียบง่าย อย่างประโยค Handles หรือคีย์เวิร์ด My ที่จะมีใน VB.Net Whidbey (คิดว่าใน C# อาจจะไม่มี) หรือ Optional argument (ใน C# แก้ปัญหานี้ด้วยการทำ overloading แต่ก็จะไม่สามารถใช้งานร่วมกับ ActiveX component แบบเดิมได้อยู่ดี)
 
           ถ้าขนาดของโปรเจ็กต์ที่คุณคิดว่าจะต้องทำในอนาคตใหญ่มากๆ ก็ควรจะเลือก C# ไปเสียแต่แรกเลย เว้นแต่จะมีวิธีแก้ปัญหา IDE ที่ช้ามากๆ เมื่อมีไฟล์จำนวนมากของ VB.Net ได้
 
          เขาว่าภาษา VB.Net เป็น 4GL (ภาษา Generation ที่สี่) แต่ภาษา C# ถูกวางเป็น 3GL กว่าๆ คือสูงกว่า 3GL เช่น C++ แต่ไม่ถึง 4GL
 
ถ้าเอาความอย่างที่ Microsoft วาง position ไว้
ภาษา VB .Net เป็น task-oriented
ภาษา C# .Net เป็น code-focused
 
           ถ้าเอามาสร้าง application ทางธุรกิจ ภาษา VB.Net จะเป็นตัวเลือกที่ยอดเยี่ยมอย่างปฏิเสธไม่ได้ เนื่องจากแทนที่โปรแกรมเมอร์จะไม่ต้องคำนึงถึงเรื่องลึกๆ ที่เรียนกันในวิชาของพวก computer science กันบ่อยๆจึงเรียกว่ามี productivity ดี เพราะเอาเวลามาสร้างงานเลย
 
           แต่นั่นก็เป็นอีกเหตุผลหนึ่งว่า ถ้าใช้ C# ศัพท์แสงในเนื้อภาษาจะเป็นศัพท์แบบที่ใช้ในวงการ computer science เช่น abstract, static เป็นต้น ซึ่งจะจำเป็นถ้าต้องมีการใช้เครื่องมืออย่างพวก Rational Rose หรือ Modeling tools อื่นๆ
 
          สิ่งที่รวบรวมมารวมกับความคิดเห็นเพิ่มเติมบางอย่างนี้เข้าไปมีทั้งด้าน รูปแบบภาษา การใช้งานจริง และแฟกเตอร์อื่นๆ อาจจะมีข้อผิดพลาดบ้าง ถ้ามีก็ช่วยบอกเพื่อปรับปรุงเพิ่มเติมต่อไปนะครับ..."
 
          และมีข้อมูลอย่างหนึ่งที่น่าสนใจ คือ ถ้านำนักพัฒนาที่ถนัดภาษา VB.NET มาจับเขียนภาษา C# (แบบไม่ให้เตรียมตัวนะครับ) จะพบว่าสามารถเขียนได้จำนวนมาก แต่ถ้านำนักพัฒนาที่ถนัดภาษา C# มาจับเขียนภาษา VB.NET กลับพบว่ามีจำนวนน้อยที่เขียนได้ ผมสันนิษฐานว่า ไม่ใช่เพราะกลุ่ใไหนฉลาดกว่ากัน แต่เป็นเพราะความสนใจมากกว่า ผมว่านักพัฒนาที่ถนัด C# จะไม่เปิดใจรับภาษา VB.NET ว่าเป็นพี่น้องกันใน .NET Framework เลย

วันพุธที่ 12 กันยายน พ.ศ. 2555

หลักการออกแบบหน้าจอ

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

องค์ประกอบด้านข้อความ

     
ข้อความ จัดเป็นองค์ประกอบหลักที่สำคัญที่สุดในการออกแบบบทเรียนคอมพิวเตอร์ช่วยสอน การออกแบบข้อความที่ดี ผู้ออกแบบต้องคำนึงถึงองค์ประกอบย่อยหลายด้าน เช่น รูปแบบตัวอักษร ขนาดตัวอักษร ความหนาแน่นตัวอักษร สีของข้อความและการจัดความสัมพันธ์ข้อความและภาพให้สอดคล้องกับองค์ประกอบอื่นๆ เช่น ภาพ และกราฟิกบนหน้าจอ     รูปแบบและขนาดตัวอักษร การเลือกรูปแบบและขนาดของตัวอักษรที่เหมาะสมต้องคำนึงถึงระดับของผู้เรียนเป็นหลัก กล่าวคือผู้เรียนที่จัดอยู่ในเกณฑ์กลุ่มผู้อ่านช้า (Poor reader) ขนาดของตัวอักษรต้องใหญ่กว่าผู้เรียนในกลุ่มที่อ่านคล่อง การใช้ตัวอักษรใหญ่เกินไปทำให้การอ่านช้าลง เนื่องจากการที่ผู้อ่านต้องกวาดสายตาไปไกล หากตัวอักษรมีขนาดเล็กเกินไปอาจทำให้ผู้เรียน แม้จะเป็นผู้ที่อ่านคล่อง ก็อาจทำให้การอ่าน และการทำความเข้าใจมีประสิทธิภาพน้อยลงได้ มีงานวิจัยเกี่ยวกับขนาดของตัวอักษรทั้งภาษาไทยและภาษาอังกฤษ พบว่าผู้อ่านจะใช้เวลาในการอ่านตัวอักษรตัวพิมพ์ภาษาไทยหรือภาษาต่างๆ ขนาด 80 ตัวอักษรต่อบรรทัด น้อยกว่า การอ่านตัวอักษรขนาด 40 ตัวอักษรต่อบรรทัด ในขณะที่ความเข้าใจจากการอ่านตัวอักษรทั้ง 2ขนาดไม่แตกต่างกัน และขนาดของตัวอักษร (ภาษาอังกฤษ) กับการใช้ขนาดหัวเรื่องควรอยู่ระหว่าง 19-37 พอยต์ ในขณะที่ตัวหนังสือปกติมีขนาดประมาณ 12-19 พอยต์ ส่วนรูปแบบของตัวอักษรควรใช้ตัวที่อ่านง่าย  แต่หากตัวอักษรที่ไม่ใช่ส่วนของเนื้อหาหลัก เช่น ตัวอักษรหัวเรื่องใหญ่ตัวอักษรประกอบการออกแบบ หรือตัวอักษรพิเศษอื่นๆ ผู้ออกแบบอาจใช้ตัวอักษรูปแบบและขนาดต่างๆ กันออกไปได้ แต่ไม่ควรมีความหนาแน่นของตัวอักษรมากเกินไป รูปแบบและขนาดตัวอักษรจะมีความสัมพันธ์กับช่องว่างระหว่างบรรทัดและระหว่างคำด้วย ช่องว่างระหว่างบรรทัดที่เหมาะสมจะช่วยให้อ่านง่ายขึ้น แต่หากช่องว่างดังกล่าวมากเกินไปก็จะทำให้สูญเสียความต่อเนื่องของมโนทัศน์ หลักการทั่วไปคือช่องว่างระหว่างบรรทัดนอกจากจะมีขนาดเหมาะสมแล้ว ควรมีความสม่ำเสมอตลอดการนำเสนอด้วย ความหนาแน่นของตัวอักษร ส่วนใหญ่จะรวมถึงความหนาแน่นขององค์ประกอบอื่นบนจอภาพเข้าไปด้วย ผลการวิจัยพบว่า ผู้เรียนจะชอบจอภาพที่มีความหนาแน่นปานกลาง หรือประมาณ 40% ของพื้นที่หน้าจอมากที่สุด และจะเลือกจอภาพที่มีความหนาแน่นสูง หรือประมาณ 50% ของพื้นที่หน้าจอ มากกว่าจอภาพที่มีความหนาแน่นต่ำ นอกจากนี้ยังพบว่าในวิชาที่มีเนื้อหายาก ผู้เรียนจะชอบจอภาพที่มีความหนาแน่นสูง เนื่องจากจอภาพที่มีความหนาแน่นขององค์ประกอบต่างๆ สูง จะมีข้อมูลที่ช่วยให้ความเข้าใจเนื้อหาและแนวคิดหลักต่างๆ ชัดเจนและต่อเนื่องขึ้น สีข้อความ เป็นองค์ประกอบหน้าจอ ที่ช่วยกระตุ้นความน่าสนใจในการอ่าน สีเป็นตัวกระตุ้นประสาทการรับรู้ที่สำคัญ การใช้สีที่เหมาะสมจะช่วยให้อ่านง่าย และสบายตา การกำหนดสีข้อความต้องพิจารณาสีพื้นหลังประกอบเสมอ ซึ่งจะเรียกว่าคู่สี คู่สีบางคู่สามารถใช้ร่วมกันได้ บางคู่ไม่ควรนำมาใช้ร่วมกัน ผลงานวิจัยพบว่านักเรียนส่วนใหญ่ชอบคู่สีอักษรขาวหรือเหลืองบนพื้นน้ำเงิน อักษรเขียวบนพื้นดำ และอักษรดำบนพื้นเหลือง หากใช้พื้นเป็นสีเทา คู่สีที่ผู้เรียนชอบคือ สีฟ้า สีแดง สีม่วง และสีดำ สีที่ชอบน้อยคือสีส้ม สีม่วงแดง สีเขียว และสีแดง แม้งานวิจัยชิ้นนี้จะทำขึ้นในช่วงก่อนปี ค.ศ. 1991 ซึ่งขณะนั้นจอภาพสามารถแสดงได้เพียง 16 สี (ขณะนี้จอภาพแสดงได้เป็นล้านสี) แต่คู่สีหลักๆ ดังกล่าวยังคงสามารถใช้อ้างอิงในการออกแบบบทเรียนคอมพิวเตอร์ได้ หลักการออกแบบคู่สีที่ควรต้องคำนึงถึงอีกประการหนึ่ง คือ ควรใช้พื้นหลังเป็นสีเข้มมากกว่าสีอ่อน เนื่องจากสีเข้มจะช่วยลดแสงสว่างจากจอภาพ ทำให้รู้สึกสบายตามากกว่าการใช้สีอ่อนเป็นพื้นหลัง ซึ่งระยะยาวจะช่วยลดความล้าของสายตา ในการอ่านจอภาพอันเนื่องมาจากความจ้าของสีพื้น ปัจจุบันการออกแบบสีพื้นหลังได้รับการพัฒนาไปเร็วมาก เนื่องจากประสิทธิภาพในการประมวลผลและการแสดงผลของคอมพิวเตอร์พัฒนาขึ้นเร็วมาก การออกแบบสื่อมัลติมีเดียทั่วไปขณะนี้มีการออกแบบพื้นหลังให้มีพื้นผิวที่มีลวดลายมีมิติ และใช้เทคนิคในการออกแบบอย่างเต็มรูปแบบ ในการเลือกสีของตัวอักษรและขนาดของตัวอักษรที่เหมาะสม จึงควรพิจารณาอย่างถี่ถ้วน สีของตัวอักษรซึ่งมองดูชัดเจนบนพื้นสีหน้าจอบริเวณหนึ่ง อาจไม่เหมาะสมหรืออ่านยากบนพื้นสีหน้าจอเดียวกันแต่คนละบริเวณกันก็เป็นไปได้ การวางรูปแบบข้อความ องค์ประกอบที่เกี่ยวข้องกับข้อความบนจอภาพประการหนึ่งคือ การวางรูปแบบข้อความ เทคนิคในการนำเสนอข้อความให้อ่านง่าย สวยงาม น่าสนใจ ทำได้หลายวิธี ผู้ออกแบบสามารถนำเสนอข้อความทีละส่วน ทีละตอน หรือเสนอข้อความทั้งหมดในคราวเดียวกันก็ได้ ขึ้นอยู่กับเทคนิคการนำเสนอที่เหมาะสม เช่น ในการนำเสนอเนื้อหาที่เป็นขั้นตอนที่จำเป็น ต้องบรรจุอยู่ในจอภาพเดียวกัน ผู้ออกแบบอาจเสนอทีละขั้นโดยผู้เรียนเป็นผู้ควบคุมการนำเสนอ ซึ่งจะช่วยให้ผู้เรียนมีความสนใจเนื้อหาข้อความดีกว่าการนำเสนอทั้งหมดพร้อมกัน อย่างไรก็ตาม ไม่ว่าจะเสนอข้อความทีละส่วนหรือพร้อมกันทั้งหมด โดยภาพรวมแล้วการออกแบบหน้าจอจะต้องมีความเหมาะสมและน่าอ่าน ซึ่งเป็นหลักการออกแบบงานกราฟิกทั่วไป ที่ต้องคำนึงถึงรายละเอียดดังนี้
     - 
ความสมดุลของหน้าจอโดยรวม (Balance) การเฉลี่ยน้ำหนักขององค์ ประกอบบนจอภาพ ซ้าย ขวา บน ล่าง อย่างเหมาะสมนี้ ผู้ออกแบบจะจัดให้มีความสมดุลแบบแบ่งครึ่งซ้ายขวาเท่ากัน หรือการจัดภาพหรือองค์ประกอบที่ซ้ายขวาไม่เท่ากัน แต่ดูแล้วสมดุลกันก็ได้ องค์ประกอบที่จะช่วยในการจัดสมดุลของจอภาพนี้ คือ รายละเอียดทุกอย่างที่เรามองเห็นในกรอบจอภาพ เช่น โทนสี ขนาดภาพ ตำแหน่งของภาพ/คำ ช่องว่าง การฟิกประกอบหน้าจอ ประมาณข้อความ ความแน่นของภาพ/ข้อความ และการให้แสงสี
     - 
ความเรียบง่าย (Simplicity) เป็นสมบัติสำคัญของการออกแบบสื่อทุกประเภทซึ่งออกแบบได้ไม่ยาก แต่การออกแบบให้มีความเรียบง่ายและน่าสนใจด้วยนั้นทำได้ยาก โดยเฉพาะอย่างยิ่ง การออกแบบข้อความ ปัจจุบันการออกแบบหน้าจอคอมพิวเตอร์จะมีองค์ประกอบของกราฟิกในรูปแบบต่างๆ กันเกี่ยวข้องด้วย เช่น ภาพนิ่ง ภาพเคลื่อนไหว ภาพวาด และอื่นๆ โดยยังมีข้อความเป็นองค์ประกอบหลัก "ความเรียบง่าย" โดยทั่วไปจึงมักกล่าวโดยรวมซึ่งหมายถึง การออกแบบหน้าจอคอมพิวเตอร์ที่ผู้ออกแบบได้จัดผสมผสานองค์ประกอบร่วมต่างๆ เข้าด้วยกัน เพื่อให้เกิดการสื่อสารระหว่างผู้เรียนและคอมพิวเตอร์อย่างมีระบบ อ่านง่าย เข้าใจง่าย และผู้เรียนได้รับความรู้หรือเกิดการเรียนรู้อย่างมีประสิทธิภาพ 

เพื่อนๆ สามารถศึกษาข้อมูลการออกแบบส่วนต่าง ๆ เพิ่มเติมได้ที่
http://www.learners.in.th/blogs/posts/22912

ระบบรักษาความปลอดภัยและความถูกต้องของระบบงาน


 ระบบรักษาความปลอดภัยและความถูกต้องของระบบงาน

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

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

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

1. ระบบรักษาความปลอดภัยภายนอกระบบงาน (Physical Security)
ระบบรักษาความปลอดภัยในส่วนนี้จะกระทำกันภายนอกระบบงานคอมพิวเตอร์ ตัวอย่างเช่น การล็อกห้องคอมพิวเตอร์เมื่อเลิกงานหรือการล็อกคีย์บอร์ดและ CPU เพื่อป้องกันไม่ให้บุคคลภายนอกสามารถใช้คอมพิวเตอร์ได้ หรือในระบบ LAN อาจใช้เทอร์มินอลแบบไม่มีดิสก์ (Diskless Terminal) เพื่อป้องกันไม่ให้ผู้ใช้สามารถทำการก๊อปปี้ข้อมูลจากไฟล์เซอร์เวอร์ที่เก็บข้อมูลส่วนกลางได้ และในขณะเดียวกันก็สามารถที่จะป้องกันการนำเอาข้อมูลหรือโปรแกรมที่ไม่ได้อนุม้ติให้ใช้ก๊อปปี้ลงไป ซึ่งอาจจะเป็นการป้องกันไวรัสคอมพิวเตอร์ที่ดีอีกวิธีหนึ่งด้วย ดังนั้น การกระทำอะไรก็ตามที่เกิดขึ้นโดยมีวัตถุประสงค์คือ เพื่อรักษาความปลอดภัยให้กับระบบงาน แต่เกิดขึ้นภายนอก ก็ถือว่าเป็นระบบรักษาความปลอดภัยแบบกายภาพ (Physical) ทั้งสิ้น

2. ระบบรักษาความปลอดภัยภายในระบบงาน (System Security And Integrity)
ในปัจจุบันระบบงานคอมพิวเตอร์แบบเครือข่ายได้ทำให้การใช้ข้อมูลต่างๆ ของหน่วยงานเป็นไปอย่างมีประสิทธิภาพอย่างไม่เคยมีมาก่อน การกระจายอำนาจการใช้ข้อมูลออกไป (Distribution System) ของระบบงาน ทำให้ระบบจำเป็นที่จะต้องมีระบบการรักษาความปลอดภัยภายในระบบงานอย่างดีพอด้วย เพื่อป้องกันไม่ให้ผู้ที่ไม่มีสิทธิ์ใช้ข้อมูล สามารถเข้าถึงข้อมูลได้ นอกจากนี้นักวิเคราะห์ระบบยังต้องให้ความสนใจต่อความถูกต้อง (Integrity) ของระบบ เช่น ระบบงานต่างๆ โปรแกรมและฐานข้อมูลอีกด้วย ในที่นี้เราจะกล่าวถึงวิธีที่นิยมทำกันโดยทั่วไป ซึ่งมี 4 วิธี คือ

2.1 การใช้รหัสลับ (Passwords) เป็นวิธีการที่นิยมใช้กันโดยทั่วไป โดยมีวัตถุประสงค์ที่จะเข้าไปทำงานในระบบนั้นๆ ได้ ระบบก็จะปฏิเสธ การยอมให้เข้าถึงข้อมูลของระบบโดยอัตโนมัติ

2.2 การสำรองข้อมูล (System Backups) ในทุกระบบงานที่ดี การวางตารางเวลาเพื่อการสำรองข้อมูลเป็นสิ่งสำคัญอย่างยิ่งที่จะป้องกันปัญหาของการสูญเสียข้อมูลในกรณีที่ไม่คาดฝันเกิดขึ้น

2.3 การตรวจสอบได้ของระบบ (Audit Trail) ระบบงานที่ดีควรได้รับการดีไซน์ให้ข้อมูลต่างๆ ที่เกี่ยวข้องในระบบสามารถที่จะตรวจสอบย้อนกลับได้ ว่าเกิดได้อย่างไร มาจากไหน วิธีที่นิยมใช้กันก็คือ การออกรายงานหรือ Check List ต่างๆ ที่แสดงถึงเหตุการณ์หรือข้อมูลต่างๆ ที่ถูกเรียกขึ้นมาเพื่อแก้ไขหรืออินพุตเข้ามาในระบบ เอกสารต่างๆ เหล่านี้จะมีความจำเป็นอย่างมากต่อการตรวจสอบความถูกต้องของการทำงานของระบบงานคอมพิวเตอร์

2.4 การเรียกคืนข้อมูลและเริ่มต้นใหม่ของระบบ (Recovery And Restart Needs) ในระบบงานคอมพิวเตอร์ ไฟฟ้าเป็นสิ่งสำคัญอย่างยิ่ง นักวิเคราะห์ระบบหรือโปรแกรมเมอร์ทุกคนรู้ดีว่าหากไฟฟ้าดับหรือเกิดการลัดวงจรหรือฟ้าผ่าเข้ามาในสายไฟฟ้า จะส่งผลทำให้ระบบคอมพิวเตอร์ทั้งระบบเกิดความเสียหายอย่างใดอย่างหนึ่ง เมื่อระบบงานเกิดความเสียหาย (Crash) ขึ้น การนำเอาข้อมูลที่ได้สำรองเอาไว้ และการเรียกคืนข้อมูล (Restore Data) เพื่อจะทำให้ระบบฟื้นคืนชีพกลับมาใหม่อาจต้องเกิดขึ้น

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

วันอาทิตย์ที่ 9 กันยายน พ.ศ. 2555

โปรแกรมสำหรับเขียน DFD

Present ครั้งนี้ต้องพูดถึง DFD ของระบบด้วย 


วันนี้เราจึงเอาโปรแกรมที่ใช้เขียน DFD มาให้โหลดกันด้วย หลายๆคนคงมีแล้ว แต่สำหรับคนที่ยังไม่มีโหลดได้นะ 


คู่มือการใช้งาน : http://thaicourt.blogspot.com/2010/06/visio_1643.html.

หากเพื่อนๆมีโปรแกรมอื่นที่ใช้ได้และสะดวกลองนำมาโพสแนะนำได้นะ :)


วันศุกร์ที่ 24 สิงหาคม พ.ศ. 2555

การเลือกใช้รูปแบบที่เหมาะสมสำหรับเอาต์พุต

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


 
ปิยะชัย แซ่อึ้ง 

การศึกษาความเหมาะสมในการนำคอมพิวเตอร์มาใช้ในงานธุรกิจ

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

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

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

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

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

5. พิจารณาและวิเคราะห์อุปกรณ์ซอฟต์แวร์
หลักเกณฑ์ที่ใช้ในการพิจารณาซอฟต์แวร์ต่างๆกัน แบ่งออกเป็น 6 ข้อ คือ
1.        จะต้องเป็นซอฟต์แวร์ที่ตรงต่อความต้องการ (Requirements)
2.        ประสิทธิภาพในการทำงานของซอฟต์แวร์ (Performance)
3.        ง่ายต่อการใช้งาน (Easy to use)
4.        มีความยืดหยุ่นพอควร (Flexibility)
5.        คุณภาพของเอกสารและคู่มือการใช้ (Quality of Documentation)
6.        การรับรองและส่งเสริมผลิตภัณฑ์ซอฟต์แวร์ของผู้ผลิตและผู้ขาย (Manufacturer Support)

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


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

รายละเอียดเพิ่มเติม   http://itd.htc.ac.th/st_it50/it5027/image/System/Bot.html
ณัฐฐิญา   ราญรอน

วันจันทร์ที่ 13 สิงหาคม พ.ศ. 2555

การเขียน ER Model

     ขั้นตอนการเขียน ER model

      1 กำหนด Entity type โดยกำหนดมาจากความต้องการของผู้ใช้ระบบ ว่าจะให้มี Entity สำหรับเก็บข้อมูลอะไรบ้าง

        เอนติตี้(Entity) อาจเรียกว่า file หรือ table
        .1 Strong entity คือเกิดขึ้นด้วยตนเองไม่ขึ้นกับ entity ใด เช่น นักศึกษา หรืออาจารย์ หรือสินค้า เป็นต้น

        2 Weak entity คือขึ้นโดยอาศัย entity อื่น เช่น เกรดเฉลี่ย ที่มาจากแฟ้มผลการเรียน หรือ แฟ้มลงทะเบียน หรือ แฟ้มสั่งซื้อ เป็นต้น
        :: สิ่งต่าง ๆ ที่ผู้ใช้งานฐานข้อมูลจะต้องยุ่งเกี่ยวด้วย เช่น คน แผนก ประเภท การสั่งซื้อ เป็นต้น
        Entities are the principal data object about which information is to be collected. Entities are usually recognizable concepts, either concrete or abstract, such as person, places, things, or events which have relevance to the database. Some specific examples of entities are EMPLOYEES, PROJECTS, INVOICES. An entity is analogous to a table in the relational model.

      2 กำหนดความสัมพันธ์ (Relationship type) ที่เกิดขึ้นระหว่าง entity ในลักษณะของกริยา
        ดีกรีของความสัมพันธ์(Degree of relation) มี 4 แบบ
        1 Unary relationship คือความสัมพันธ์ภายใน entity เดียวกัน เช่นแต่งงานของพนักงาน แต่ถ้ามีระดับแบบลูกน้อง หัวหน้าจะเรียก Recursive relationship(Unary)
        2 Binary relationship คือความสัมพันธ์แบบสอง entity
        3 Ternary relationship คือความสัมพันธ์แบบสาม entity
        4 Quaternary relationship คือความสัมพันธ์แบบสี่ entity

      3 กำหนดแอททริบิวท์ (Attribute) ของแต่ละเอนติตี้
         
        :: แอททริบิวท์(Attibute) อาจเรียก field หรือ column คือ สิ่งที่ใช้อธิบายคุณสมบัติของเอนติตี้ เช่นคุณสมบัติของคน ก็มี รหัส ชื่อ อายุ เพศ เป็นต้น
         
         
         
         


         
        คำต่าง ๆ ที่ควรทราบ
         
        - คีย์หลัก (Primary key) :: คีย์หลักประจำแฟ้ม
            คุณสมบัติของคีย์หลัก
          1. ข้อมูลของแอททริบิวท์มีความเป็นหนึ่งเดียว(Uniqueness) กล่าวคือทุก ๆ แถวของตารางจะต้องไม่มีข้อมูลของแอททริบิวท์ที่เป็นคีย์หลักซ้ำกันเลย
          2. ต้องประกอบด้วยจำนวนแอททริบิวท์ที่น้อยที่สุด(Minimality) ที่จะสามารถใช้เจาะจง หรืออ้างอิงถึงแถวใดแถวหนึ่งในรีเลชันได้
         
        - คีย์คู่แข่ง (Candidate key) :: คีย์ที่สามารถเป็น Primary key ได้ เช่น รหัสบัตรประชาชน หรือรหัสผู้เสียภาษี
         
        - คีย์สำรอง (Alternate key) :: คีย์ตัวอื่น ๆ ในตารางหลังจากเลือก primary key แล้ว
         
        - คีย์นอก (Foreign key) :: คีย์ตัวอื่น ๆ ในตารางหลังจากเลือก primary key แล้ว
         
        - คีย์ร่วม (Composite key) :: สามารถแยกออกไปได้อีก เช่น ที่อยู่
         
        - Composite attibute :: สามารถแยกออกไปได้อีก เช่น ที่อยู่
         
        - Atomic attibute :: ไม่สามารถแยกออกไปได้อีก เช่น นามสกุล
         
        - Multivalued attibute :: อาจมีหลายค่าได้ เช่น สีรถ
         
        - Derived attibute :: ไม่มีค่าแน่นอนของตน แต่ขึ้นกับค่าอื่น เช่นอายุ ขึ้นกับปี
        เกิด และปีปัจจุบัน
         
        - Entity type :: ชื่อของ entity เช่น course (courseno,coursename)
         
        - Entity instance :: ค่าภายในของ entity เช่น bcom101,Introduction to computer

      4 คาร์ดินัลลิตี้ และปาร์ติซิเปชั่นของความสัมพันธ์ (Cardinality and participation of relationship)
          1 คาร์ดินัลลิตี้ของความสัมพันธ์(Cardinality of Relationship)
            :: แต่ละเอนติตี้มีความสัมพันธ์ต่อกัน โดยมีคำกริยามาเชื่อมระหว่างแต่ละเอนติตี้
          1. One-to-one relationship ความสัมพันธ์แบบ 1 ต่อ 1
            เช่น คนขับกับรถ หรือครูใหญ่กับโรงเรียน เป็นต้น
          2. One-to-many relationship ความสัมพันธ์แบบ 1 ต่อหลายข้อมูล
            เช่น ลูกค้ากับหมายเลขโทรศัพท์มือถือ หรือ อาจารย์ที่ปรึกษากับนักเรียน
          3. Many-to-many relationship ความสัมพันธ์แบบหลายข้อมูล ต่อหลายข้อมูล
            เช่น นักเรียนกับวิชาที่ลงทะเบียน หรือ คนงานกับโครงการสร้างบ้าน

          2 ปาร์ติซิเปชั่นของความสัมพันธ์ (Participation of relationship)
          :: ความสัมพันธ์ระหว่าง entity
           
          1. Total หรือ Mandatory participation (ต้องมี จะใช้เส้นคู่)
          2. Partial หรือ Optional participation (เลือกได้ จะใช้เส้นเดียว)
           
          อ่านแล้วยัง งงๆ  คงต้องใช้เวลา  :)
           
    Ref : http://www.thaiall.com/learn/sader.htm#01

    วันเสาร์ที่ 11 สิงหาคม พ.ศ. 2555

    PHP คืออะไร


    หลายคนที่ทำเว็บไซต์ด้วย HTML หรือโปรแกรมช่วยสร้างเว็บไซต์ต่างๆ เช่น Dreamweaver แล้วอาจสงสัยว่าเมื่อทำ form สำหรับ รับค่าเช่น ชื่อ ที่อยู่ เสร็จแล้วจะเก็บค่ายังไง หรือจะทำอย่างไรต่อ หรือเว็บบอร์ดทำงานอย่างไร CMS ทำงานอย่างไร ทำไมบางเว็บไซต์สามารถโต้ตอบกับ ผู้ใช้งานได้ คำตอบของทุกคำถามคือ PHP 

    PHP นั้นเป็นภาษาสำหรับใช้ในการเขียนโปรแกรมบนเว็บไซต์ สามารถเขียนได้หลากหลายโปรแกรมเช่นเดียวกับภาษาทั่วไป อาจมีข้อสงสัยว่า ต่างจาก HTML อย่างไร คำตอบคือ HTML นั้นเป็นภาษาที่ใช้ในการจัดรูปแบบของเว็บไซต์ จัดตำแหน่งรูป จัดรูปแบบตัวอักษร หรือใส่สีสันให้กับ เว็บไซต์ของเรา แต่ PHP นั้นเป็นส่วนที่ใช้ในการคำนวน ประมวลผล เก็บค่า และทำตามคำสั่งต่างๆ อย่างเช่น รับค่าจากแบบ form ที่เราทำ รับค่าจากช่องคำตอบของเว็บบอร์ดและเก็บไว้เพื่อนำมาแสดงผลต่อไป แม้แต่กระทั่งใช้ในการเขียน CMS ยอดนิยมเช่น Drupal , Joomla พูดง่ายๆคือเว็บไซต์จะโต้ตอบกับผู้ใช้ได้ ต้องมีภาษา PHP ส่วน HTML หรือ Javascript ใช้เป็นเพียงแค่ตัวควบคุมการแสดงผลเท่านั้

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

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

    ลองเข้าไปดู"ที่นี่"นะ มันเป็นบทความในการสอนทำเว็บไซต์




    อนาคตนักวิเคราะห์ระบบ


    อนาคตนักวิเคราะห์ระบบ

    นักวิเคราะห์ระบบ (system analyst) เป็นบุคลากรที่ต้องทำการวิเคราะห์ และออกแบบระบบสารสนเทศ เพื่อปรับปรุงและแก้ไขปัญหาของระบบเดิมที่ยังเป็นระบบที่ไม่มีคอมพิวเตอร์มาใช้ จนกระทั่งแม้มีระบบคอมพิวเตอร์ใช้อยู่ก็จำเป็นต้องมีการพัฒนาอย่างต่อเนื่องเพื่อให้เป็นไปตามความต้องการของผู้ใช้ระบบ ซึ่งควรมีประสบการณ์ในเรื่องการเขียนโปรแกรม และจะต้องมีความเข้าใจในเรื่องระบบต่างๆพร้อมทั้งสามารถเข้าใจและรับการถ่ายทอดข้อมูลต่างๆมาจากผู้ใช้ระบบได้ตรงกับความต้องการของผู้ใช้ เพื่อจะได้ออกแบบและวิเคราะห์ระบบได้อย่างถูกต้อง
    คุณสมบัติของนักวิเคราะห์ระบบ
    นักวิเคราะห์ระบบจะต้องสามารถทำงานร่วมกับคนได้ทุกประเภท จะต้องมีประสพการณ์ในการทำงานกับคอมพิวเตอร์ สามารถอธิบายให้คนเหล่านั้นเข้าใจและเห็นความสำคัญในการใช้คอมพิวเตอร์ และบางครั้งจะต้องทำงานหลายอย่างในเวลาเดียวกัน โดยจะมีหน้าที่ที่สำคัญคือ
    - นักวิเคราะห์ระบบจะเหมือนกับเป็นที่ปรึกษา
    ซึ่งโดยส่วนใหญ่นักวิเคราะห์ระบบจะมีหน้าที่นี้ โดยส่วนใหญ่ในการที่จะทำหน้าที่นี้ได้ควรจะต้องปฏิบัติงานในองค์กรนั้นเป็นหลักเพราะจะสามารถรู้ถึงลักษณะขององค์กรนั้นได้มากกว่า แต่ถ้าหากเป็นนักวิเคราะห์ระบบจากภายนอกจะต้องทำงานอย่างหนักที่จะหาวิธีที่จะวิเคราะห์และออกแบบให้เป็นไปตามองค์กรนั้น
    - นักวิเคราะห์ระบบจะเหมือนกับเป็นส่วนช่วยสนับสนุนผู้เชี่ยวชาญต่างๆ
    ในการเป็นส่วนช่วยสนับสนุนผู้เชี่ยวชาญต่างๆ ซึ่งจะเป็นลักษณะเฉพาะงานซึ่งมักไม่ค่อยมีการเปลี่ยนแปลง และไม่ค่อยมีผลกระทบกับส่วนอื่นๆ
    - นักวิเคราะห์ระบบจะเหมือนกับเป็นตัวแทนการเปลี่ยนแปลง
    ซึ่งจะต้องพยายามให้การเปลี่ยนแปลงนั้นมีผลกระทบในทางบวกมากที่สุด และจะต้องคอยอำนวยความสะดวกให้กับผู้ที่ได้รับผลกระทบ และจะต้องมีการสอนผู้ใช้สำหรับการเปลี่ยนแปลงนั้น
    -นักวิเคราะห์ระบบจะต้องสร้างคุณภาพ
    การสร้างคุณภาพจะเป็นไปได้อย่างมากเมื่อนักวิเคราะห์ระบบจะต้องรู้จักเลือกใช้เครื่องมือที่มาช่วยในการวิเคราะห์ระบบได้เหมาะสมกับงาน มีเทคนิคที่ดี มีประสบการณ์สูง มีความเข้าใจในความสามารถของเครื่องคอมพิวเตอร์เป็นอย่างดี สามารถเก็บรวบรวมข้อมูลข่าวสารจากผู้ใช้ได้ดี และสามารถสื่อสารกับโปรแกรมเมอร์ในการ code ได้ตรงกับระบบ
    ระดับความรู้
    บุคลากรที่จะดำรงตำแหน่งงานนี้ได้จะต้องมีความรู้ทางด้านคอมพิวเตอร์ และด้านการวิเคราะห์ระบบอย่างน้อยปริญญาตรีขึ้นไป และควรมีประสบการณ์ด้านการเขียนโปรแกรม
    นักวิเคราะห์ระบบในหน้าที่อื่น
    1. วิเคราะห์ระบบเท่านั้น โดยที่องค์กรที่รับผิดชอบนั้นต้องการเน้นแต่การรวบรวมข้อมูล และตัดสินใจถึงความต้องการของผู้ใช้เท่านั้น ตำแหน่งนี้คือ นักวิเคราะห์ระบบสารสนเทศ (Information analysts)
    2. วิเคราะห์และ ออกแบบระบบ โดยที่นักวิเคราะห์ระบบนั้นต้องรับผิดชอบในการทำระบบให้ สมบูรณ์รวมทั้งต้องรับผิดชอบในการออกแบบระบบใหม่ด้วย ตำแหน่งนี้คือ นักวิเคราะห์ออกแบบระบบ และนักพัฒนาซอฟท์แวร์ประยุกต์ (Systems designers, applications developers)
    3. วิเคราะห์ ออกแบบระบบ และการเขียนโปรแกรม โดยนักวิเคราะห์ระบบนั้นต้องรับผิดชอบใน การวิเคราะห์ พัฒนาออกแบบเฉพาะงาน และเขียนโปรแกรมตามที่ออกแบบ ตำแหน่งนี้คือนักเขียนและวิเคราะห์โปรแกรม (Programmer analysts)


    วันพฤหัสบดีที่ 9 สิงหาคม พ.ศ. 2555

    การดีไซน์แฟ้มหรือฐานข้อมูล

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

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

               นอกเหนือจากการจัดดีไซน์ทางด้านการประมวลผลของระบบงานว่าควรจะเป็นแบบออนไลน์หรือออฟไลน์แล้ว นักวิเคราะห์ระบบยังต้องดีไซน์ลักษณะของแฟ้มหรือฐานข้อมูลว่าจะต้องเป็นแบบใด โดยพื้นฐานของแฟ้มข้อมูลจะมีอยู่ด้วยกัน 3 แบบคือ
      
    1. แฟ้มข้อมูลแบบอนุกรม (Sequential)
                   
               เป็นแฟ้มที่เก็บข้อมูลเรียงตามลำดับไปเรื่อยๆ การดึงข้อมูลของระบบงานจะทำได้โดยการอ่านข้อมูล ที่เก็บไว้ตั้งแต่ต้นแฟ้มไปเรื่อยๆ จนกว่าจะพบลักษณะของแฟ้มข้อมูลแบบอนุกรม จึงมักจะเหมาะกับวัตถุประสงค์บางอย่าง เช่น เหมาะต่อการใช้เก็บข้อมูลจำนวนมากๆ เพื่อสำรองเอาไว้ (BackUp) เหมาะสำหรับใช้เก็บข้อมูลที่ได้เรียงลำดับไว้ดีแล้ว เพื่อออกรายงาน และแฟ้มข้อมูลแบบอนุกรมโดยส่วนใหญ่จะมีความเชื่อถือได้ (Reliability) สูงกว่าแฟ้มข้อมูลชนิดอื่น

                แฟ้มข้อมูลแบบอนุกรมจะมีข้อเสียบางประการเช่นกัน กล่าวคือ ระบบงานอาจจะต้องทำการเรียงลำดับข้อมูล (Pre-Sorting) ไว้ก่อนทุกครั้งก่อนที่จะนำเอาข้อมูลมาใช้ได้ หากระบบงานต้องการเรียกข้อมูลจุดใดจุดหนึ่งขึ้นมาใช้ ระบบงานจำเป็นจะต้องอ่านข้อมูลตั้งแต่ต้นไปเรื่อยๆ จนกว่าจะพบ ซึ่งจะทำให้เสียเวลามาก

    2. แฟ้มข้อมูลแบบแรนดอม (Random/Direct)
                หรือเรียกอีกอย่างหนึ่งว่าแฟ้มข้อมูลแบบสุ่ม เป็นแฟ้มข้อมูลที่นิยมใช้เก็บข้อมูลในลักษณะ ที่ค่อนข้างยืดหยุ่น ข้อมูลที่เก็บไม่จำเป็นจะต้องเรียงลำดับมาก่อน และการดึงข้อมูลที่จุดใดจุดหนึ่งก็สามารถกระทำได้ทันที โดยไม่ต้องอ่านตามลำดับตั้งต้นเหมือนแบบอนุกรม อย่างไรก็ดีการที่ระบบสามารถที่จะหาข้อมูลได้โดยตรงนั้น แฟ้มข้อมูลจะต้องมีการเก็บค่าดัชนี (Index) ไว้เสมอ เพื่อจะใช้เป็นตัวชี้ไปยังตำแหน่งข้อมูลได้ถูกต้อง การที่ต้องเก็บค่าดัชนีและวิธีการที่จะทำให้ระบบสามารถจะเข้าถึงงานข้อมูล ได้ทันทีนั้นทำให้ค่าใช้จ่ายของแฟ้มข้อมูลประเภทนี้จะสูงกว่าแฟ้มข้อมูลประเภทอนุกรม      
                นอกจากนี้ การดีไซน์ระบบงานที่ใช้แฟ้มข้อมูลแบบแรนดอม จะค่อนข้างยุ่งยากและซับซ้อนกว่าแฟ้มข้อมูลแบบอนุกรม

    3. แฟ้มข้อมูลไอแซม (ISAM)

                หรือ Index Sequential Access Mode เป็นการรวมเอาลักษณะของแฟ้มข้อมูลแบบอนุกรมและแรนดอมเข้าไว้ด้วยกัน ซึ่งหมายความว่าระบบงานสามารถที่จะดึงข้อมูลจากแฟ้มไอแซมแบบอนุกรมก็ได้ หรือจะเรียกผ่านดัชนีแบบแรนดอมได้

                ระบบงานคอมพิวเตอร์ทุกระบบงานในปัจจุบันต้องการกระบวนการที่จะเข้าถึง (Access) ข้อมูลที่ต้องการได้อย่างสะดวกและรวดเร็ว ดังนั้น นักวิเคราะห์ระบบจึงจะต้องพยายามดีไซน์ฐานข้อมูล (Databases) ให้เกิดความสะดวกและลดความซ้ำซ้อนกันของข้อมูลให้ได้มากที่สุด เพื่อลดความยุ่งยากในการบำรุงรักษาฐานข้อมูล การใช้ฐานข้อมูลได้ ระบบคอมพิวเตอร์จำเป็นที่จะต้องได้รับการดีไซน์ให้เหมาะสมกับทั้งซอฟต์แวร์และฮาร์ดแวร์ด้วย เช่น หน่วยความจำ (Memory) ก็ต้องมีให้เพียงพอ ทางด้านซอฟต์แวร์ก็จะต้องมีระบบบริหารฐานข้อมูล (DBMS หรือ Data Base Management System) มาเป็นตัวกลาง เพื่อที่จะเชื่อมโยงระหว่างระบบงานคอมพิวเตอร์กับฐานข้อมูล


    ศึกษาเพิ่มเติมได้ที่ >> http://www.bcoms.net/system_analysis/lesson76.asp 

    ..ศิริพร ประวิสารัตน์..

    วันเสาร์ที่ 28 กรกฎาคม พ.ศ. 2555

    วิธีการสร้างDFD และข้อผิดพลาดของ DFD

    สวัสดีคะเพื่อนๆ วันนี้มีบทความสรุปวิธีการสร้างDFD และข้อผิดพลาดของ DFD มาให้อ่านกันคะ

    วิธีการสร้าง DFD
         ทั้งหมดนี้เป็นขั้นตอนในการสร้าง DFD ที่มีระบบมากขึ้น
              1. กำหนดสิ่งที่อยู่ภายนอกระบบทั้งหมด และหาว่าข้อมูลอะไรบ้างที่เข้าสู่ระบบหรือออกจากระบบที่เราสนใจสู่ระบบที่อยู่ภายนอก ขั้นตอนนี้สำคัญมากทั้งนี้เพราะจะทำให้ทราบว่าขอบเขตของระบบนั้นมีอะไรบ้าง
              2. ใช้ข้อมูลที่ได้จากขั้นตอนที่ 1 นำมาสร้าง DFD ต่างระดับ
              3. ขั้นตอนถัดมาอีก 4 ขั้นตอนโดยให้ทำทั้ง 4 ขั้นตอนนี้ซ้ำๆ หลายๆ ครั้ง จนกระทั่งได้ DFD ระดับต่ำสุด
                   3.1 เขียน DFD ฉบับแรก กำหนดโพรเซสและข้อมูลที่ไหลออกจากโพรเซส
                   3.2 เขียน DFD อื่นๆ ที่เป็นไปได้จนกระทั่งได้ DFD ที่ถูกที่สุด ถ้ามีส่วนหนึ่งส่วนใด ที่รู้สึกว่าไม่ง่ายนักก็ให้พยายามเขียนใหม่อีกครั้งหนึ่ง แต่ไม่ควรเสียเวลาเขียนจนกระทั่งได้ DFD ที่สมบรูณ์แบบ เลือก DFD ที่เห็นว่าดีที่สุดในสายตาของเรา
                   3.3 พยายามหาว่ามีข้อผิดพลาดอะไรหรือไม่ ซึ่งมีรายละเอียดในหัวข้อ "ข้อผิดพลาดใน DFD"
                   3.4 เขียนแผนภาพแต่ละภาพอย่างดี ซึ่ง DFD ฉบับนี้จะใช้ต่อไปในการออกแบบ และใช้ด้วยกันกับบุคคล อื่นๆ ที่เกี่ยวข้องในโครงการด้วย
              4. นำแผนภาพทั้งหมดที่เขียนแล้วมาเรียงลำดับ ทำสำเนา และพร้อมที่จะนำไปตรวจสอบข้อผิดพลาดจากผู้ร่วมทีมงาน ถ้ามีแผนภาพใดที่มีจุดอ่อนให้กลับไปเริ่มต้นที่ขั้นตอนที่ 3 อีกครั้งหนึ่ง
              5. นำ DFD ที่ได้ไปตรวจสอบข้อผิดพลาดกับผู้ใช้ระบบเพื่อหาว่ามีแผนภาพใดไม่ถูกต้องหรือไม่
              6. ผลิตแผนภาพฉบับสุดท้ายทั้งหมด

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

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

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