วันพุธ, กุมภาพันธ์ 13, 2008

เพลงนี้เพราะดีนะ

http://en-light.com/V2/s/01_GoodWind.html

(เปิดลำโพงด้วยนะ)

วันพฤหัสบดี, กุมภาพันธ์ 7, 2008

จาวากับแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบัน

จาวากับแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบัน
(Java and guideline to software development in today)


บทคัดย่อ
เทคโนลียีคอมพิวเตอร์ฮาร์ดแวร์(Hardware) และซอฟต์แวร์ (Software) ในปัจจุบันมีการเปลี่ยนแปลงเร็วมาก และเมื่อเปรียบเทียบระหว่างฮาร์ดแวร์กับซอฟต์แวร์ พบว่าฮาร์ดแวร์เปลี่ยนแปลงเร็วกว่าซอฟต์แวร์ โดยการเปลี่ยนแปลงนี้เพื่อยกระดับขีดความสามารถให้สูงขึ้น ขณะเดียวกันซอฟต์แวร์ก็จำเป็นต้องปรับเปลี่ยนตามฮาร์ดแวร์เพื่อให้สามารถทำงานร่วมกันได้ และรองรับการทำงานให้สอดคล้องกับเทคโนโลยีใหม่ ๆ ของฮาร์ดแวร์
อย่างไรก็ตาม หลายท่านอาจมีความคิดว่าซอฟต์แวร์เปลี่ยนแปลงเร็วกว่าฮาร์ดแวร์ เนื่องจากได้มีซอฟต์แวร์ประยุกต์ใหม่ ๆ จำนวนมากออกวางจำหน่ายตามท้องตลาด ซึ่งบางครั้งอาจมองดูมากเกินไปจนอาจเลือกใช้งานไม่ถูก และยังมีข่าวการอัพเดท (Update) ซอฟต์แวร์ใหม่ ๆ ตามนิตยสารคอมพิวเตอร์ เว็บไซต์ หรือแม้แต่รายการโทรทัศน์บางรายการเพื่อเป็นความรู้ให้กับผู้ใช้งานทั่วไป จากข้อมูลของหลาย ๆ สื่อที่นำเสนอข้อมูลพบว่า แนวโน้มปัจจุบันของการเขียนโปรแกรมนั้น นักพัฒนาจะหันไปใช้โปรแกรมที่เป็นโอเพินซอร์ส (Open Source) มากขึ้น เนื่องจากช่วยลดค่าใช้จ่ายด้านลิขสิทธิ์ซอฟต์แวร์ และเลือกที่มีความสามารถของการโปรแกรมเชิงวัตถุ (Object Oriented Programming:OOP) ซึ่งจะช่วยลดปัญหาเมื่อขนาดของโปรแกรมนั้นใหญ่ขึ้น ลดการเขียนชุดคำสั่งที่ซ้ำซ้อน และสามารถนำชุดคำสั่งเดิมกลับมาใช้งานใหม่ได้อีก ด้วยคุณลักษณะดังกล่าวนี้ภาษาเขียนโปรแกรมจาวา (Java) จึงเป็นอีกภาษาหนึ่งที่มีการกล่าวถึงอย่างกว้างขวาง
บทความนี้มีวัตถุประสงค์เพื่อนำเสนอความรู้เกี่ยวกับ การเลือกภาษาจาวาเป็นแนวทางสำหรับพัฒนาซอฟต์แวร์ในปัจจุบัน นำเสนอความรู้เกี่ยวกับจาวาและภาษาเขียนโปรแกรม ซึ่งนักพัฒนาสามารถใช้จาวาในการพัฒนาระบบสารสนเทศในองค์กรได้โดยเริ่มจากการศึกษาโครงสร้างและไวยากรณ์ของภาษา ตลอดจนนำเสนอความรู้เกี่ยวกับแนวทางการพัฒนาซอฟต์แวร์ เพื่อจะช่วยให้นักพัฒนาสามารถเลือกภาษาที่มีควาามสอดคล้องและเหมาะสมกับลักษณะงาน แต่อย่างไรก็ดีภาษาจาวาก็ไม่ใช่คำตอบสุดท้าย ท่านอาจเลือกศึกษา
จาวาควบคู่ไปกับภาษาเขียนโปรแกรมอื่น เพื่อจะได้วิเคราะห์ด้วยตนเองว่าภาษาใดมีความสามารถเหมาะสมที่จะนำไปประยุกต์ใช้ในการพัฒนาระบบสารสนเทศในองค์กรของท่านในลำดับต่อไป


Abstract
The computer technologies of hardware and software nowadays alter very rapidly. Then comparing between hardware and software, we found that hardware has been altering more rapid than software. Moreover, the alteration of hardware has enhanced its capability. Meanwhile software needs to adjust itself for supporting and being compatible with the new technologies of hardware.
However, many people may think that software changes faster than hardware because there are many new application softwares sold in the market, and sometimes the users do not know how to select them. Furthermore, there are news updating new software from the computer magazine, web site, or some television programs in order to give the knowledge to the users. From the information of the various media, we find the programming trend that the developers utilize the open source software increasingly because the copyright cost of software can be reduced. In addition, the developers select the software with the capability of the object oriented programming (OOP) which will reduce the problems of the large-size program, reduce writing the repatitive command and can reuse the previous command. With this characteristic, the Java programming language is one of the language that people mention extensively.
The objectives of this article are to present the knowledge about selecting the Java language as a guideline for the software development nowadays and to present the knowledge about the Java and the programming language that the developers can utilize them for developing the information system in organization by starting from the study of the structure and the syntax of the language. Also, the knowledge about the guideline for the software development can help the developers select the programming language which is compatible and suitable for the work. However, the Java language is not the final answer. You may select the study of Java along with the other programming language and can snalyze by yourself what language is capable and appropriate for applying in the development of the information system in your organization in the future.


บทนำ
ในปัจจุบันพบว่ามีเทคโนโลยีใหม่ ๆ เกิดขึ้นมากมาย ไม่ว่าจะเป็นเทคโนโลยีคอมพิวเตอร์ หรือเทคโนโลยีการสื่อสารบนอุปกรณ์ไร้สาย และเมื่อเทคโนโลยีเหล่านั้นวางสู่ท้องตลาด จากนั้นจะพบว่ามีซอฟต์แวร์ใหม่ ๆ วางจำหน่ายในลำดับถัดมา จึงอาจกล่าวได้ว่า เทคโนโลยีฮาร์ดแวร์กับซอฟต์แวร์เป็นสิ่งที่คู่กัน มักจะมีวิวัฒนาการไปพร้อม ๆ กันเสมอ เพราะซอฟต์แวร์เป็นสิ่งที่ให้ชีวิตแก่ฮาร์ดแวร์และเพิ่มคุณค่าให้กับระบบสารสนเทศในองค์กร
การตัดสินใจเลือกซอฟต์แวร์ภาษาใดภาษาหนึ่ง ด้วยจุดประสงค์ใด ๆ ก็ตาม เช่น เลือกเพื่อเพิ่มโอกาสในการทำงานตามสายอาชีพ หรือเลือกเพื่อใช้พัฒนาระบบสารสนเทศขององค์กร ก็เรียกได้ว่าเป็นการลงทุนทั้งด้านกำลังทรัพย์ เวลา สมอง และโอกาสความก้าวหน้าในอนาคต การเลือกนั้นจึงควรได้ผลลัพธ์ที่คุ้มค่าที่สุด และจากจำนวนซอฟต์แวร์ภาษาที่มีอยู่จำนวนมากในปัจจุบัน พบว่า “ภาษาจาวา” ก็เป็นอีกภาษาหนึ่งที่น่าสนใจ ที่กลุ่มนักพัฒนาซอฟต์แวร์นั้นต่างให้ความสนใจในการนำไปประยุกต์พัฒนาระบบสารสนเทศเพื่อใช้งานในหลากหลายด้าน การเลือกศึกษาภาษาเขียนโปรแกรมจาวา จึงเป็นอีกหนึ่งแนวทางที่จะใช้สร้างโอกาสความก้าวหน้าในสายอาชีพสำหรับอนาคต
จากที่กล่าวมาข้างต้น หากตัดสินใจเลือกศึกษาภาษาเขียนโปรแกรมจาวา หรือภาษาอื่นใดก็ตาม นักพัฒนาควรมีความรู้เกี่ยวกับ “ภาษาเขียนโปรแกรม” เพื่อจะได้รู้ว่าภาษาที่เลือกมานั้นเป็นภาษาที่ทำงานในระดับใด มีขีดความสามารถมากน้อยเพียงใด และเหมาะสมกับลักษณะงานหรือไม่ นอกจากนี้ยังควรคำนึงถึงระยะเวลาและอายุการใช้งานของภาษานั้น ๆ อีกด้วย
ภาษาเขียนโปรแกรม
โดยทั่วไปแล้ว ก่อนที่จะพัฒนาโปรแกรมระบบสารสนเทศขึ้นใช้งานในองค์กร ควรจะพิจารณาลักษณะของงาน ขอบเขตและความสามารถของระบบงานนั้น ๆ ก่อนเป็นลำดับแรกเพื่อให้รู้ว่าควรจะเลือกใช้โปรแกรมภาษาใดในการพัฒนาระบบ นักพัฒนาระบบต้องรู้ว่า ภาษาที่ตนเองเลือกนั้นเป็นโปรแกรมภาษาระดับใด ซึ่งสามารถแบ่งระดับของภาษาเขียนโปรแกรมได้ 3 ระดับ (Harver M. Deitel and Paul J. Deitel,2007:10) ได้แก่
1) ภาษาระดับต่ำ (Low-level language) เป็นภาษาที่มีความสามารถในการเข้าถึงหรือควบคุมฮาร์ดแวร์ได้โดยตรง คอมพิวเตอร์จะเข้าใจภาษาชนิดนี้ได้ดี แต่มนุษย์เราเข้าใจยากและมีความยุ่งยากในการเขียนชุดคำสั่งเนื่องจากชุดคำสั่งจะอยู่ในรูปแบบของเลขฐานสอง (Binary Base) ซึ่งแทนด้วยบิต(bit) 0 และ 1 ภาษาประเภทนี้ได้แก่ ภาษาเครื่อง (Machine code language) ภาษาแอสเซมบลี้ (Assembly language)
2) ภาษาระดับกลาง (Medium-level language) เป็นภาษาที่มีความสามารถในการควบคุมฮาร์ดแวร์รองจากภาษาระดับต่ำ แต่ก็มีข้อดีตรงที่สามารถเรียนรู้วิธีการเขียนโปรแกรมได้ง่ายกว่า วัตถุประสงค์ของภาษาระดับกลางนี้ยังเน้นที่การควบคุมการทำงานของฮาร์ดแวร์ ถึงแม้จะสามารถนำไปประยุกต์ใช้กับการเขียนโปรแกรมเชิงธุรกิจได้ก็ตาม แต่ก็ไม่เป็นที่นิยม ภาษาประเภทนี้ ได้แก่ ภาษาซี (C language)
3) ภาษาระดับสูง(High-level language) เป็นภาษาที่มนุษย์สามารถเรียนรู้และเข้าใจได้ง่าย แต่
คอมพิวเตอร์จะเข้าใจยาก ดังนั้นชุดคำสั่งที่เขียนด้วยภาษาระดับสูงจะต้องผ่านกระบวนการแปลภาษา(Compile) ด้วยตัวแปลภาษา (Compiler) เพื่อให้กลายเป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ และภาษาชนิดนี้ไม่สามารถเข้าถึงฮาร์ดแวร์ได้โดยตรง ส่วนมากนำภาษาระดับสูงมาประยุกต์ใช้กับการเขียนโปรแกรมเชิงธุรกิจ ซึ่งภาษาประเภทนี้ ได้แก่ โคบอล (Cobol) จาวา(Java) หรือภาษาในตระกูลดอทเน็ต (.NET) เป็นต้น
อย่างไรก็ตาม ถ้าหากมีความสนใจพัฒนาซอฟต์แวร์ในเชิงธุรกิจหรือเขียนเกมคอมพิวเตอร์ ก็จำเป็นต้องศึกษาภาษาระดับสูง ถ้าต้องการเขียนโปรแกรมเพื่อควบคุมอุปกรณ์และการทำงานโดยรวมของระบบเครื่อง เช่น การเขียนโปรแกรมระบบปฏิบัติการวินโดว์ (Windows) ก็ต้องเลือกใช้ภาษาระดับกลาง และสุดท้ายถ้าหากต้องการเขียนโปรแกรมเพื่อควบคุมฮาร์ดแวร์โดยตรง เช่น การควบคุมหุ่นยนต์ (Robot) ก็ต้องเลือกใช้ภาษาระดับต่ำ
จากที่กล่าวมาข้างต้นจะเห็นว่า การเขียนโปรแกรมด้วยภาษาระดับสูง จัดเป็นหัวใจสำคัญสำหรับใช้พัฒนางานด้านระบบสารสนเทศขององค์กร ซึ่งนักพัฒนาสามารถเลือก “ภาษาเขียนโปรแกรมระดับสูง” ได้ตามประเภทงาน ดังตัวอย่างที่แสดงในตารางที่ 1
ตารางที่ 1 แสดงการเลือกใช้ภาษาระดับสูงเพื่อพัฒนาโปรแกรม


ภาษาระดับสูงสำหรับเขียนโปรแกรมด้านธุรกิจ
งานส่วนบุคคลและธุรกิจขนาดย่อม

เช่น ระบบงานร้านเช่าวีดีโอ ระบบงานอพาร์ทเม้นท์ ระบบงานขาย ในการพัฒนาระบบสารสนเทศเพื่อใช้งานภายในองค์กรอาจเลือกใช้โปรแกรมภาษาไมโครซอฟต์แอคเซส (Microsoft Access) เดลไฟล์ (Delphi) วิสซวลเบสิค (Visual Basic) คริสตัลรีพอร์ท (Crystal Report) เอสคิวแอล (SQL) จาวาเจทูเอสอี
( Java J2SE) และซีพลัสพลัส (C++)
แต่ถ้าต้องการพัฒนาระบบงานบนเว็บ (Web) สามารถเลือกใช้โปรแกรมภาษาวีบีดอทเน็ต (VB.NET) เอเอสพีดอทเน็ต (ASP.NET) พีเอชพี (PHP) ร่วมกับฐานข้อมูลมายเอสคิวแอล (MySQL) แต่ทั้งนี้ก็ไม่เสมอไปอาจเลือกใช้โปรแกรมภาษาที่อยู่กลุ่มขององค์กรธุรกิจขนาดกลางและขนาดใหญ่ก็ได้


องค์กรธุรกิจขนาดกลางและขนาดใหญ่

เช่น ระบบงานร้านสะดวกซื้อ เว็บไซต์จำหน่ายหนังสือออนไลน์ขนาดใหญ่ ร้านเช่าวีดีโอซึทาย่า
บริษัทจำหน่ายรถยนต์ ธุรกิจค้าปลีก บริษัทจำหน่ายคอมพิวเตอร์รายใหญ่ บริษัทจำหน่ายอุปกรณ์ด้านเครือข่าย ร้านสุกี้เอ็มเค (MK) เป็นต้น ซึ่งการพัฒนาระบบสารสนเทศขึ้นใช้งานนั้นส่วนใหญ่จะเชื่อมโยงข้อมูลระหว่างสาขาและรองรับการทำงานบนเว็บ
สำหรับโปรแกรมภาษาที่ใช้พัฒนาระบบสารสนเทศภายในองค์กร เชื่อมต่อเครือข่ายข้อมูลระหว่างสาขา อาจเลือกใช้โปรแกรมภาษาจาวาเจทูอีอี (Java J2EE) จาวาเซิร์ฟเลท (Java Servlet) เอสคิวแอล (SQL) ซีชาร์พ (C#) หรือโคบอล (COBOL) โดยใช้ร่วมกันฐานข้อมูลออราเคิล (Oracle) คลังข้อมูล (Data Warehouse) หรือไมโครซอฟต์เอสคิวแอลเซิร์ฟเวอร์ (Microsoft SQL Server)
สำหรับการพัฒนาระบบงานบนเว็บไซต์สามารถเลือกใช้โปรแกรมภาษาเพิร์ล (Perl) วีบีสคริป( VBScript) เจเอสพี (JSP) เอ็กซ์เอ็มแอล (XML) ไมโครซอฟต์ดอทเน็ต (Microsoft.NET) วิสซวลสูดิโอดอทเน็ต (Visual Studio.NET) ซีชาร์พดอทเน็ต (C#.NET) หรือวิสซวลซีชาร์พดอทเน็ต (Visual C#.NET) ซึ่งการทำงานบนเว็บจำเป็นต้องนำซอฟต์แวร์ด้านกราฟิกและมัลติมิเดียอย่างเช่น อะโดบีโฟโตซอพ (Adobe Photoshop) และแมคโครมีเดียแฟลช (Macromedia Flash) เข้ามาทำงานร่วมด้วย และถ้าต้องการเขียนโปรแกรมเพื่อส่งข้อความหรือทำงานบนโทรศัพท์มือถือก็สามารถเลือกใช้โปรแกรมภาษาจาวาเจทูมี
(Java J2ME)


จากข้อมูลในตารางที่ 1 พบว่า ไม่ว่าจะพัฒนาโปรแกรมเพื่อใช้งานส่วนบุคคล งานธุรกิจขนาดย่อม ธุรกิจขนาดกลาง-ขนาดใหญ่ งานบนคอมพิวเตอร์เครื่องเดียว (Stand alone) งานที่เชื่อมข้อมูลระหว่างสาขา (On network) งานบนเว็บ (On web) หรือการทำงานบนอุปกรณ์มือถือ (On mobile) ถ้าหากเลือกใช้โปรแกรมภาษาจาวาจะสามารถรองรับความต้องการที่หลากหลายและครอบคลุมการทำงานได้ทั้งหมด อีกทั้งภาษาจาวายังมีขีดความสามารถสูง ช่วยองค์กรลดต้นทุนได้เนื่องจากไม่ต้องจ่ายค่าลิขสิทธิ์ซอฟต์แวร์ และเป็นภาษาที่มีความยืดหยุ่นในการเขียนโปรแกรมสูง
โปรแกรมภาษาจาวา
ภาษาเขียนโปรแกรมจาวา (Java programming language) ถูกพัฒนาขึ้นเมื่อปี ค.ศ 1995 โดยบริษัทซัน ไมโครซีสเต็ม (Sun Microsystem) บริษัทคู่แข่งของไมโครซอฟต์ (Microsoft) จัดเป็นซอฟต์แวร์โอเพินซอร์ส (Open Source) ที่สามารถดาวน์โหลด (Download) มาใช้งานได้ฟรีโดยไม่เสียค่าใช้จ่าย มีวิวัฒนาการมาจากภาษาซี (C) และซีพลัสพลัส (C++) ดังนั้นถ้ามีพื้นฐานสองโปรแกรมนี้มาก่อนการเรียนรู้และศึกษาจาวานั้นก็ทำได้ไม่ยากนัก
จาวาพัฒนาจากแนวคิดการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming:OOP) ซึ่งมีหลักการทำงานโดยอาศัยคลาส(Class) และอ็อบเจ็ค (Object) คลาสทำหน้าที่เป็นต้นแบบสำหรับจัดกลุ่ม (Group)
อ็อบเจ็คเข้าไว้ด้วยกัน ส่วนอ็อบเจ็คเป็นตัวแปรชนิดหนึ่งของคลาสสร้างขึ้นเพื่อใช้เข้าถึงข้อมูลและเมธอด (Mothod) ภายในคลาส จาวายังสามารถจัดการกับโปรแกรมขนาดใหญ่ที่มีความซับซ้อนสูง รวมถึงมีความสามารถในการสืบทอดคลาส (Inheritance) โดยสามารถสืบทอดข้อมูลหรือคุณลักษณะทั้งหมดของคลาสแม่ (Super Class) สู่คลาสลูก(Sub Class) และคลาสลูกก็สามารถเขียนชุดคำสั่งพิเศษเพื่อเพิ่มเติมความสามารถได้
นอกจากนี้ยังมีจุดเด่นในเรื่องของการเขียนโปรแกรมเพียงครั้งเดียวแล้วสามารถนำกลับมาใหม่ได้อีก (Reuseable) ทำให้ลดระยะเวลาในการเขียนโปรแกรม และลดการเขียนโค้ด (Code) ที่ซ้ำซ้อน
พร้อมกันนั้น สิ่งที่ทำให้จาวาแตกต่างจากภาษาเขียนโปรแกรมอื่น ๆ คือ ความสามารถของจาวาเวอชวลแมชชีน (Java Virtual Machine:JVM) ที่ทำหน้าที่เป็นตัวกลางในการแปลงไฟล์ดอทคลาส (.class) ให้สามารถนำไปใช้งานได้กับทุกแพลทฟอร์ม (Platform) โดยไม่ยึดติดอยู่กับระบบปฏิบัติการ เรียกได้ว่าเป็นการเขียนโปรแกรมเพียงครั้งเดียวและสามารถรัน (Run) ได้กับทุกระบบปฏิบัติการ(Multi-platform) ดังตัวอย่างในรูปที่ 1




รูปที่ 1 โครงสร้างการแปลโปรแกรม (Compile) ภาษาจาวา



จากรูปที่ 1 เมื่อทำการเขียนโปรแกรมด้วยภาษาจาวาเป็นที่เรียบร้อยแล้ว จากนั้นสั่งบันทึกโปรแกรม(Save) ไฟล์ที่ได้จากการบันทึกจะมีส่วนขยายเป็นดอทจาวา (.java) เรียกไฟล์นี้ว่าไฟล์ต้นฉบับ โดยไฟล์นี้จะยังไม่สามารถทำงานได้ ต้องผ่านกระบวนการแปลภาษา (Compile) จากภาษาระดับสูง (High-level language) ให้เป็นภาษาเครื่อง โดยจะแปลโปรแกรมด้วยคำสั่งจาวาซี (javac) จากนั้นจะได้ไฟล์ที่มีส่วนขยายเป็นดอทคลาส (.class) ซึ่งจะเก็บข้อมูลในลักษณะไบต์โค้ด (Bytecode) กล่าวคือพร้อมใช้งานแต่จะไม่สามารถแก้ไขข้อมูลที่อยู่ในไฟล์นี้ได้ หากต้องการแก้ไขจะต้องย้อนกลับไปแก้ไขที่ไฟล์ต้นฉบับแล้วสั่งแปลโปรแกรมซ้ำอีกครั้ง และสามารถสั่งรัน (Run) โปรแกรมเพื่อแสดงผลลัพธ์โดยใช้คำสั่งจาวา (java) ในการแปลโปรแกรมนั้นจาวาจะทำการแปลสองรอบ (Double Compile) การแปลในรอบที่สองจะถูกกระทำจาวาเวอชวลแมชชีน (Java Virtual Machine:JVM) จะทำการแปลงไฟล์ที่มีส่วนขยายดอทคลาส (.class) ให้สามารถนำไฟล์นั้นไปทำงานได้กับทุก ๆ ระบบปฏิบัติการ ซึ่งภาษาเขียนโปรแกรมอื่นไม่สามารถทำได้


สำหรับเทคโนโลยีจาวา (Java Technology) นั้นได้จัดกลุ่มการทำงานออกเป็น 3 กลุ่ม
(กาญจนา ตันวิสุทธิ์,2547:3) ได้แก่
1) J2SE (Standard Edition) สำหรับใช้เขียนโปรแกรมบนเครื่องคอมพิวเตอร์ส่วนบุคคล (Personal Computer:PC) และเครื่องสถานีงานวิศวกรรม (Work Station)
2) J2EE (Enterprise Edition) สำหรับทำงานบนเครื่องแม่ข่าย (Server) และรองรับการทำงานของ เซิร์ฟเลท (Servlets) เจเอสพี (JSP) และเอ็กซ์เอ็มแอล ( XML)
3) J2ME (Micro Edition) สำหรับเขียนโปรแกรมบนอุปกรณ์ไร้สายที่มีหน่วยความจำจำกัด เช่น โทรศัพท์มือถือ(Mobile Phone) เครื่องปาล์ม(Palm) หรือเครื่องพีดีเอ (PDA)
ซึ่งการเริ่มศึกษาภาษาจาวานั้น แนะนำให้เริ่มจาก J2SE จากนั้นก็จะสามารถเรียนรู้ J2EE และ J2ME ได้ไม่ยากนัก นอกจากนี้การเลือกเขียนโปรแกรมด้วยภาษาจาวายังมีความสอดคล้องกับแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบันอีกด้วย
แนวทางการพัฒนาซอฟต์แวร์
จากที่กล่าวมาแล้วข้างต้น ว่าการเขียนโปรแกรมด้วยจาวานั้นใช้หลักการและแนวคิดเชิงวัตถุ(Object Oriented Programming:OOP) เป็นแนวคิดที่ใช้ในการพัฒนาซอฟต์แวร์ในปัจจุบัน มีความแตกต่างจากแนวคิดการเขียนโปรแกรมในอดีตที่ใช้แนวคิดของการโปรแกรมแบบโครงสร้าง (Structure programming) เรียกอีกชื่อหนึ่งว่า การเขียนโปรแกรมเชิงกระบวนการ (Procedure programming) แนวคิดแบบเดิมนี้จะส่งผลเสียต่อการพัฒนาโปรแกรมเมื่อระบบงานมีขนาดใหญ่และซับซ้อนมากขึ้น และไม่รองรับความสามารถของการนำโค้ดของระบบงานเดิมกลับมาใช้พัฒนาใหม่ (Reuseable) เมื่อเขียนชุดคำสั่งให้ขยายความสามารถเพิ่มเติม
จากข้อจำกัดของแนวคิดดังกล่าว ส่งผลให้แนวคิดของการเขียนโปรแกรมแบบเดิมสิ้นสุดลง และถูกแทนที่ด้วยแนวคิดแบบใหม่ที่เรียกว่า “การเขียนโปรแกรมเชิงวัตถุ” และเพื่อให้สอดคล้องกับแนวคิดแบบใหม่นี้ จึงได้มีการปรับเปลี่ยนวิธีในการออกแบบระบบสารสนเทศซึ่งแต่เดิม การออกแบบระบบทางด้านตรรกะ (Logic) จะใช้แผนภาพบริบท (Context Diagram) ในการแสดงภาพรวมการทำงานของระบบสารสนเทศดังกล่าว และใช้แผนภาพกระแสข้อมูล (Data Flow Diagrm:DFD) เพื่อแสดงการทำงานในกระบวนการย่อยในแต่ละส่วนของระบบ ซึ่งการใช้แผนภาพบริบทกับแผนภาพกระแสข้อมูลนี้อาจส่งผลเสียในส่วนที่ไม่สามารถทำให้นักพัฒนามองภาพฟังก์ชั่น (Function) การทำงานของระบบได้ชัดเจนอย่างที่ควรจะเป็น
สำหรับการเขียนโปรแกรมเชิงวัตถุนี้จะใช้หลักการออกแบบที่แตกต่างไปจากแบบเดิม เรียกว่า “การออกแบบโปรแกรมเชิงวัตถุ” ซึ่งยังคงใช้กระบวนการวิเคราะห์ระบบตามแบบของวัฎจักรการพัฒนาระบบ (System Development Life Cycle:SDLC) ที่ประกอบด้วย 4 ขั้นตอน ได้ 1) การวางแผน (Planing) 2) การวิเคราะห์ระบบ (Analysis) 3)การออกแบบระบบ (Design) และ 4)การพัฒนาและนำระบบไปใช้งาน (Implementation) แต่กระบวนการออกแบบนั้นจะเปลี่ยนไปใช้วิธีการของยูเอ็มแอล (Unified Modeling Language:UML) ซึ่ง เป็นภาษาสัญลักษณ์รูปภาพมาตรฐานที่ใช้สำหรับสร้างแบบจำลองเชิงวัตถุ แทนที่การใช้แผนภาพบริบทกับแผนภาพกระแสข้อมูล ซึ่ง UML มีผู้คิดค้นร่วมกันหลายคนได้แก่ เกรดี้ บูช (Grady Booch) เจมส์ รัมบักช์(James Raumbaugh) และไอวา เจคอบสัน ( lvar Jacobson) โดยแผนภาพ (Diagram) ที่ใช้ในการออกแบบนั้นประกอบด้วย (Alan Dennis,Barbara Haley Wixom and Tegarden , 2001)
1) ยูสเคสไดอะแกรม (Use-Case diagram) เป็นแผนภาพที่แสดงความต้องการของผู้ใช้(User) และบรรยายความสามารถของระบบ ซึ่งแสดงภาพตัวอย่างของยูสเคสไดอะแกรมของระบบจัดทำใบนัดหมายระหว่างคนไข้กับแพทย์ ดังรูปที่ 2 2)คลาสไดอะแกรม (Class diagram) เป็นแผนภาพที่แสดงความสัมพันธ์ระหว่างคลาสกับอ๊อบเจ็ค 3) แอคทิวิตี้ไดอะแกรม (Activity diagram) เป็นแผนภาพที่แสดงขั้นตอนการทำงานของยูสเคสและกิจกรรมย่อยที่เกิดขึ้นในแต่ละขั้นตอน 4)สเตทชาร์ทไดอะแกรม (Statechart diagram) เป็นแผนภาพที่แสดงการเปลี่ยนแปลงสถานะต่าง ๆ ของอ๊อบเจ็ค 5)ซีเควนซ์ไดอะแกรม (Sequence diagram) เป็นแผนภาพที่ใช้บรรยายการทำงานระหว่างอ๊อบเจ็คย่อยของทุก ๆ ยูสเคส เพื่อให้ทราบว่าภายใน ยูสเคสนั้นมีเมธอด (Method) ใดบ้างและแสดงลำดับเวลาในการทำงาน 6) คะแลบบะเรชันไดอะแกรม (Collaboration diagram) จะคล้ายกับซีเควนซ์ไดอะแกรมแต่ไม่แสดงลำดับของเวลา แต่จะบอกลำดับการทำงานของแต่ละเมธอด (Method) และ 7)ดีพลอยเมนท์ไดอะแกรม (Deployment diagram) ใช้ออกแบบแผนภาพที่เกี่ยวข้องกับฮาร์ดแวร์หรือทางด้านสถาปัตยกรรมของระบบ ทั้งด้านโครงสร้างและด้านเครือข่าย (Network Topology)
ซึ่งในที่นี้อาจกล่าวได้ว่ายูสเคสไดอะแกรมและคลาสไดอะแกรม เป็นแผนภาพที่มีความสำคัญ จะขาดไม่ได้สำหรับการออกแบบโปรแกรมเชิงวัตถุ แต่ก็ไม่ได้หมายความว่าในการออกแบบระบบนั้น นักวิเคราะห์หรือนักพัฒนาจะวาดแผนภาพเพียง 2 แผนภาพนี้เท่านั้น ยังคงจำเป็นต้องวาดแผนภาพอื่นเพื่ออธิบายการทำงานของโปรแกรมและระบบควบคู่ไปด้วย




รูปที่ 2 ยูสเคสไดอะแกรมของระบบจัดทำใบนัดหมายคนไข้



ที่มา : Alan Dennis,Barbara Haley Wixom and Tegarden , 2001:163
จากรูปที่ 2 แสดงแผนภาพการทำงานของการจัดทำใบนัดหมาย ซึ่งมีบุคคลที่เกี่ยวข้องกับระบบสามคนได้แก่ คนไข้ (Patient) แพทย์ (Doctor) และคนจัดทำใบนัดหมาย (Management) ในการทำงานของระบบนั้นได้จำแนกสถานะของคนไข้ออกเป็นสองสถานะ ได้แก่ คนไข้เก่า(Old patient) และคนไข้ใหม่ (New patient) ข้อมูลของคนไข้เหล่านี้จะเกี่ยวข้องกับยูสเคสในการสร้างใบนัดหมาย (Make appointment) โดยยูสเคสนี้ประกอบด้วยการทำงานสองส่วนย่อยได้แก่ ยูสเคสจัดทำใบนัดหมายสำหรับคนไข้เก่า (Make old patient appt) และทำใบนัดหมายสำหรับคนไข้ใหม่ (Make new patient appt) ดังนั้นเมื่อมีการนัดหมายเกิดขึ้นระหว่างแพทย์กับคนไข้ใหม่ ข้อมูลของคนไข้ใหม่จะต้องถูกส่งเข้ามาทำงานในกระบวนการของยูสเคสทำใบนัดหมายสำหรับคนไข้ใหม่ (Make new patient appt) ก่อน โดยคนไข้ทุกคนมีสิทธิ์เป็นคนไข้ใหม่ได้เพียงหนึ่งครั้งเท่านั้น จากนั้นก็จะเปลี่ยนสถานะของตนเองกลายเป็นคนไข้เก่า ส่วนคนไข้เก่าเมื่อมีการนัดหมายเกิดขึ้นก็จะส่งข้อมูลไปทำงานในกระบวนการของการจัดทำใบนัดหมายสำหรับคนไข้เก่า (Make old patient appt) โดยคนไข้เก่าสามารถมีการนัดหมายกับแพทย์ได้หลายครั้ง นอกจากนี้พบว่าในยูสเคสจัดทำใบนัดหมายสำหรับคนไข้เก่า (Make old patient appt) ยังได้แยกการทำงานย่อยออกไปอีก กล่าวคือ มีการจัดเรียงลำดับเวลาในการนัดหมายของคนไข้แต่ละรายในยูสเคสของการจัดลำดับรายการนัดหมาย (Make payment arrangements) ส่วน ยูสเคสสร้างใบนัดหมาย (Make appointment) ก็ได้แยกการทำงานย่อยออกไปอีกเพื่อให้สามารถปรับปรุงข้อมูลข่าวสารการนัดหมายของคนไข้ได้ เช่น การยกเลิกการนัดหมาย การเปลี่ยนแปลงวันและเวลานัดหมาย เป็นต้น โดยทำงานผ่านยูสเคสย่อยที่ชื่อว่าปรับปรุงข่าวสารคนไข้ (Update patient information)
คนจัดทำใบนัดหมาย (Management) จะมีหน้าที่รวบรวมข้อมูลข่าวสารเพื่อใช้ดำเนินการในการสร้างตารางนัดหมาย (Produce schedule information) จากนั้นนำข้อมูลในกระบวนการนี้ไปสร้างเป็นตารางการนัดหมาย (Manage schedule) ซึ่งก่อนที่จะสร้างเป็นตารางการนัดหมายได้นั้นต้องใช้ข้อมูลของแพทย์ (Record avilability) เป็นองค์ประกอบด้วยและแพทย์ (Doctor) ก็เป็นองค์ประกอบหนึ่งของยูสเคสไดอะแกรมที่สามารถเข้าใช้งานตารางการนัดหมายได้
ดังนั้น เมื่อเลือกใช้แนวทางการออกแบบเชิงวัตถุเนื่องจากทำการเขียนด้วยโปรแกรมที่มีลักษณะเป็นการโปรแกรมเชิงวัตถุซึ่งสอดคล้องกับแนวทางการพัฒนาซอฟแวร์ในปัจจุบันอย่างเช่นภาษาจาวา ก็จำเป็นต้องเลือกเครื่องมือ (Tools) ที่มีความสามารถรองรับการทำงานดังกล่าว ในปัจจุบันพบว่าโปรแกรมแรชชันนัลโรซ (Rational Rose) ก็เป็นอีกหนึ่งเครื่องมือที่ใช้ออกแบบการโปรแกรมเชิงวัตถุ และเป็นโปรแกรมที่ได้รับความนิยมเป็นอย่างมาก
จาวากับแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบัน
จากการศึกษาเกี่ยวกับภาษาจาวา พบว่าส่งผลต่อแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบันในด้านต่าง ๆ ดังนี้
ด้านหลักสูตร ในปัจจบุนพบว่า จาวาเป็นอีกหนึ่งภาษาเขียนโปรแกรมที่ได้รับความนิยมไม้แพ้ภาษาที่
อยู่ในตระกูลดอทเน็ต (.NET) และตลาดงานก็มีความต้องการนักพัฒนาโปรแกรมที่สามารถเขียนภาษานี้ได้ อีกทั้งมีอัตราค่าจ้างสูง แต่ยังขาดแคลนผู้ที่มีความสามารถในภาษานี้ค่อนข้างมาก ดังนั้นสถาบันการศึกษาหลายแห่งที่เปิดสอนในหลักสูตร ปวช. ปวส. ปริญญาตรี หรือปริญญาโท ก็ได้พยายามนำเอาภาษานี้บรรจุเข้าไปในรายวิชาที่มีความเกี่ยวข้องกับการเขียนโปรแกรม หรือบรรจุลงในรายวิชาที่เกี่ยวกับโครงสร้างข้อมูล หรืออาจจะเป็นวิชาเกี่ยวกับการออกแบบโปรแกรมเชิงวัตถุ ล้วนแล้วแต่สามารถทำได้ทั้งสิ้น และนั่นก็นับเป็นโอกาสอันดีของนักศึกษาในรุ่นนั้น ๆ ที่มีโอกาสได้เรียนรู้โปรแกรมภาษาใหม่ ๆ
แต่สำหรับผู้ที่จบการศึกษาในหลักสูตรเก่า ความรู้ทางด้านการเขียนโปรแกรมที่เรียนมา จึงล้วนเป็นการโปรแกรมแบบโครงสร้าง (Structure Programming) เช่น โปรแกรมฟอคซ์โปร (FoxPro) ปาสคาล
(Pascal) ฟลอแทรน(Fortran) อินฟอร์มิคซ์ (Informix) ดีเบส (dBase) และ พาราดอคซ์ (Paradox) อาจเกิดความล้าสมัยจำเป็นต้องได้รับการปรับเปลี่ยน
ในทางปฏิบัติ ผู้ที่ทำงานในสายอาชีพด้านเขียนโปรแกรมอยู่แล้ว คงมากด้วยประสบการณ์ที่สั่งสมขึ้นเรื่อย ๆ ในแต่ละปี ดังนั้นการที่จะเรียนรู้ภาษาใหม่เพิ่มอีกหนึ่งภาษา คงไม่ยากนัก แต่สิ่งที่อาจเป็นปัญหาได้คือ ความไม่ต้องการที่จะเปลี่ยนแปลงความเคยชินของตนเอง เมื่อเราใช้ภาษาใดภาษาหนึ่งจนเกิดความคล่องแคล่ว เขียนโปรแกรมด้วยความคุ้นเคยและหลงรักในภาษานั้น เราอาจกลัวกับการที่ต้องเริ่มต้นใหม่กับภาษาอื่นที่ไม่คุ้นเคย ในทางกลับกันบัณฑิตที่จบใหม่ด้วยหลักสูตรเก่า ยังไม่มีโอกาสได้สัมผัสการทำงานจริง ขาดประสบการณ์ และตกอยู่ในสภาวะที่กดกัน ท่ามกลางการแข่งขันกับบัณฑิตต่างสถาบันจำนวนมาก คงเป็นเรื่องยากที่จะทำการศึกษาโปรแกรมใหม่ด้วยตนเอง
ดังนั้นอาจกล่าวได้ว่า จาวาเป็นโปรแกรมภาษาทางเลือกในปัจจุบันที่บัณฑิตรุ่นเก่าและรุ่นใหม่ควรศึกษาเพิ่มเติม เป็นภาษาที่ใช้หลักการเชิงวัตถุมีความสอดคล้องกับแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบัน ออกแบบระบบโดยใช้ยูเอ็มแอล (UML) และทำงานร่วมกับฐานข้อมูลเชิงวัตถุ (Object-oriented Databases) เช่นโอทู(O2) ซึ่งเป็นฐานข้อมูลที่มีความซับซ้อนและมีขนาดใหญ่ สามารถเก็บข้อมูลได้ทั้งภาพ เสียง ข้อความ ตัวเลข และมัลติมีเดีย รวมถึงคุณลักษณะของวัตถุและคลาส
ด้านการพัฒนาซอฟต์แวร์ การเริ่มต้นการเขียนโปรแกรมในปัจจุบันจะเน้นโปรแกรมที่ทำงานร่วมระหว่างเครื่องคอมพิวเตอร์ลูกข่ายและแม่ข่าย (Client-Server) การทำงานภายใต้สถาปัตยกรรมมัลติเทียร์ (Multi-Tiered) การทำงานบนเว็บ และที่น่าสนใจก็คือ การเขียนโปรแกรมบนโทรศัพท์มือถือและอุปกรณ์ไร้สาย ถ้าเริ่มต้นศึกษาจาวาเพื่อการทำงานดังกล่าว ควรเริ่มจากจาวามาตรฐานที่ทำงานบนเครื่องพีซี (J2SE) โดยเลือกติดตั้งเวอร์ชั่นล่าสุดได้แก่ jdk1.6
ด้านการเลือกใช้อิดิเตอร์ (Editor) การเลือกอิดิเตอร์ที่จะใช้สำหรับเขียนโปรแกรมภาษาจาวา สามารถเลือกได้หลากหลาย เช่น 1) โปรแกรมโน้ตแพด (NotePad) จะมาพร้อมกับการติดตั้งวินโดว์ (Windows) การใช้งานมีข้อเสียคือไม่แสดงหมายเลขบรรทัด (line number) ทำให้ไม่สะดวกในการแก้ไขข้อผิดพลาด (Error) ที่เกิดในแต่ละบรรทัด 2 ) โปรแกรมอีดิทพลัส (Editplus) รองรับการเขียนโปรแกรมได้หลายภาษา เช่น เอชทีเอ็มแอล (HTML) ซีและซีพลัสพลัส (C/C++) เพิร์ล (Perl) และ จาวา (Java) เป็นโปรแกรมที่เขียนโค้ดได้เฉพาะที่เป็นข้อความ (Text Editor) ใช้งานง่ายสามารถดาวน์โหลดเพื่อทดลองใช้งานได้ที่เว็บไซต์ www.editplus.com 3) โปรแกรมบลูเจ (BlueJ) พัฒนาโดยมหาวิทยาลัยแห่งหนึ่งในเดนมาร์ค เมื่อทำการเขียนโปรแกรมอิดิเตอร์ (Editor) ชนิดนี้ จะสร้างคลาสไดอะแกรม (Class Diagram) ของโปรแกรมนั้นและยังเชื่อมโยงให้เห็นความสัมพันธ์กับคลาสอื่นที่เกี่ยวข้อง แต่มีข้อเสียคือโปรแกรมทำงานได้ค่อนข้างช้า สามารถดาวน์โหลดโปรแกรมได้ที่เว็บไซต์ http://www.bluej.org 4) โปรแกรมบอร์แลนด์เจบิลเดอร์ (Borland Jbuilder) เป็นผลิตภัณฑ์ของบริษัทบอร์แลนด์จะช่วยให้การเขียนโปรแกรมแลดูง่ายขึ้น เนื่องจากมีคอมโพเน้นท์ (Component) ให้เลือกใช้มากมายเช่นเดียวกับการเขียนโปรแกรมประเภทวิสชวล
(Visual) ภาษาอื่น ๆ แต่มีค่าใช้จ่ายด้านลิขสิทธิ์ค่อนข้างสูง สามารถดาวน์โหลดโปรแกรมเพื่อทดลองใช้งานได้ที่ http://www.borland.com/ 5) โปรแกรมซันวันสตูดิโอ (Sun One Studio) เป็นผลิตภัณฑ์ของบริษัทซันไมโครซีสเทิม (Sun Microsystem) ผู้พัฒนาภาษาจาวา อย่าลืมว่าถึงแม้จาวาจะเป็นโปรแกรมโอเพินซอร์ส (Open Source) แต่ก็ไม่ได้หมายความว่าอิดิเตอร์สำหรับใช้เขียนจาวานั้นจะไม่เสียค่าใช้จ่าย ดังนั้นจึงสามารถ ดาวน์โหลดโปรแกรมเพื่อทดลองใช้งานได้ที่เว็บไซต์ http://java.sun.com เมื่อเกิดความพึงพอใจที่จะใช้งานต่อก็สามารถจ่ายเงินซื้ออิดิเตอร์ดังกล่าว และ 6)โปรแกรมเน็ตบีนส์ (NetBeans) ช่วยให้เขียนโปรแกรมได้ง่ายและเร็วขึ้น เหมาะสำหรับการใช้สวิง (Swing) และสร้างการโต้ตอบแบบจียูไอ (GUI) สามารถดาวน์โหลดโปรแกรมเพื่อใช้งานได้ฟรีที่เว็บไซต์ http://www.netbeans.org/
จากที่กล่าวมาแล้วนั้น ในขั้นตอนแรกของการเริ่มต้นเขียนจาวา สามารถเริ่มเขียนภายใต้โปรแกรมด้วยอิดิทพลัส (Editplus) เพราะจะทำให้เข้าใจหลักการและโครงสร้างของภาษาจาวาได้ดี หลังจากนั้นอาจเปลี่ยนอิดิเตอร์ไปใช้โปรแกรม เน็ตบีนส์ (NetBeans) เนื่องจากจะช่วยย่นระยะเวลาในการเขียนโปรแกรมให้เร็วขึ้น แสดงภาพตัวอย่างการเขียนโปรแกรมจากทั้งสองอิดิเตอร์ดังรูปที่ 3

รูปที่ 3 แสดงหน้าจอการเขียนจาวาด้วยโปรแกรมอิดิทพลัส (Editplus) กับโปรแกรมเน็ตบีนส์ (NetBeans)
จากรูปที่ 3 ด้านซ้ายมือเป็นการเขียนจาวาด้วยโปรแกรมอิดิทพลัส (Editplus) ซึ่งการใช้โปรแกรมชนิดนี้นักพัฒนาจะต้องเขียนชุดคำสั่งทั้งหมดด้วยตนเองโดยพิมพ์ได้เฉพาะข้อความเท่านั้น (Text Editor) ดังนั้นจึงใช้เวลานานในการพัฒนาแอพพลิเคชั่น (Application) เมื่อพิมพ์คำสั่งเป็นที่เรียบร้อยจากนั้นจึงสั่งแปล (Compile)และรัน (Run) โปรแกรมเพื่อแสดงผลลัพธ์ ส่วนรูปด้านขวามือเป็นการเขียนจาวาด้วยโปรแกรมเน็ตบีนส์ (NetBeans) จะช่วยประหยัดเวลาให้กับนักพัฒนาเพราะมีเครื่องมือต่าง ๆ ในลักษณะของวิสชวล (Visual) ให้เลือกใช้ระหว่างการออกแบบ และลดจำนวนของการเขียนโค้ดให้น้อยลงเนื่องจากโค้ดใดที่เป็นคำสั่งในโครงสร้างพื้นฐานของจาวาโปรแกรมเน็ตบีนส์จะทำการสร้าง (Generate) ให้โดยอัตโนมัติ ดังนั้นนักพัฒนาเพียงแต่เพิมเติมชุดคำสั่งที่ใช้สำหรับควบคุมเหตุการณ์ (Event) ในการทำงานเท่านั้น
หลังจากที่มีพื้นฐานการเขียนจาวาโปรแกรมมิง (Java Programming) แล้ว หากต้องการเพิ่มขีดความสามารถโดยการเขียนโปรแกรมบนคอมพิวเตอร์แม่ข่าย (Server) หรือบนเว็บก็สามารถดาวน์โหลด โปรแกรมเน็ตบีนส์ (NetBeans) สำหรับจาวา J2EE และจาวา J2ME สำหรับเขียนโปรแกรมบนโทรศัพท์มือถือ หรือถ้าต้องการเขียนโปรแกรมบนโทรศัพท์มือถือโดยไม่ใช้โปรแกรมเน็ตบีนส์ (NetBeans) ก็สามารถติดตั้งโปรแกรม J2ME Wireless Toolkit 2.1 ซึ่งจะมี KToolbar สำหรับสร้างโปรเจ็ค (Project) บิลด์ (Build) และ รันโปรเจ็ค (Run project) โดยจะแสดงผลลัพธ์ของชุดคำสั่งที่เขียนโปรแกรมบนโทรศัพท์มือถือที่โปรแกรมมือถือจำลอง (Emulator) แต่ก็ยังคงต้องอาศัยการเขียนโค้ดในโปรแกรมอิดิทพลัส (Editplus) เช่นเดิมแสดงตัวอย่างองค์ประกอบบางส่วนของการเขียนโปรแกรมบนโทรศัพท์มือถือดังรูปที่ 4





จะปรากฎ Wireless Toolkit ที่ Start Menu หลังติดตั้ง
โปรแกรมเสร็จเรียบร้อย


Project และโค๊ดที่เขียนขึ้นจะเก็บอยู่ที่ C:\WTK2.1\apps

การแสดงผลลัพธ์ของโปรแกรมภายใต้ Emulator

รูปที่ 4 องค์ประกอบบางส่วนของการเขียนโปรแกรมบนโทรศัพท์มือถือ
จากรูปที่ 4 เป็นการเขียนโปรแกรมจาวาบนโทรศัพท์มือถือ โดยใช้ J2ME Wireless Toolkit 2.1 เป็นโปรแกรมอิดิเตอร์ ซึ่งเมื่อติดตั้งอิดิเตอร์เป็นที่เรียบร้อยแล้วจะปรากฏ Wireless Toolkit ที่สตาร์ทเมนู ( Start Menu) พร้อมกับโปรมแกรมที่เกี่ยวข้อง โดยนักพัฒนาสามารถเลือกคำสั่ง KToolbar เพื่อเริ่มต้นการเขียนโปรแกรมจาวาบนโทรศัพท์มือถือ เมื่อเข้าไปในอิดิเตอร์ของ Ktoolbar แล้วสามารถสร้างโปรเจ็ค (Project) เพื่อเริ่มงานโปรแกรม เมื่อนักพัฒนาสร้างโปรเจ็คเป็นที่เรียบร้อย เครื่องจะทำการสร้างโฟลเดอร์ (Folder) ตามชื่อของโปรเจ็คสำหรับเก็บโปรแกรมที่จะถูกสร้างขึ้นในภายหลัง จากให้ผู้พัฒนาจะต้องทำการย้ายโปรแกรมที่มีส่วนขยาย (.java) ที่เขียนไว้แล้วในโปรแกรมอิดิทพลัส (Editplus) ไปเก็บไว้ที่ ไดเรคทอรี่ C:\WTK21\apps\ตาชื่อโฟลเดอร์ของโปรเจ็คที่สร้าง\scr จากนั้นสลับหน้าจอกลับมาที่หน้าต่างของโปรแกรมอิดิเตอร์ Ktoolbar แล้วคลิก (Click) ที่ปุ่บิลด์ (Build) และปุ่มรัน (Run) เพื่อแสดงผลลัพธ์ของโปรแกรมภายใต้หน้าจอโทรศัพท์จำลอง (Emulator)
สรุปได้ว่า การนำภาษาจาวามาประยุกต์ใช้สำหรับเขียนโปรแกรมทางด้านธุรกิจ สามารถประยุกต์ใช้ได้กับทุกหน่วยงาน ทุกองค์กร ที่มีการพัฒนาระบบสารสนเทศบนพื้นฐานของคอมพิวเตอร์ (Computer-Base Information System:CBIS) นอกจากนี้แนวโน้มในอนาคตของโทรศัพท์มือถือทุกรุ่น ทุกยี่ห้อ คาดว่าจะพัฒนาโทรศัพท์ให้สามารถรองรับการทำงานของจาวาเทคโนโลยี


บทสรุป
จากการศึกษาถึงแนวทางการพัฒนาซอฟต์แวร์ในปัจจุบัน พบว่าจาวาเป็นอีกหนึ่งภาษาเขียนโปรแกรมที่ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาการเขียนโปรแกรมแบบดั้งเดิม (Structure Programming) ซึ่งมีปัญหาเกี่ยวกับการจัดการโปรแกรมที่มีขนาดใหญ่ ปัญหาการนำโค้ดโปรแกรมกลับมาใช้ใหม่ (Reuseable) รวมถึงปัญหาการทำงานร่วมกับเทคโนโลยีอุปกรณ์สมัยใหม่ และการผูกติดอยู่กับระบบปฏิบัติการ ซึ่งปัญหาดังกล่าวสามารถถูกขจัดให้หมดไปภายใต้การเขียนโปรแกรมด้วยภาษา “จาวา” นอกจากนี้ยังพบว่า จาวาเป็นภาษาระดับสูงสามารถเรียนรู้และเข้าใจโค้ดได้ไม่ยากนัก นำไปประยุกต์เพื่อการพัฒนาระบบสารสนเทศในองค์กรได้อย่างหลากหลาย ทั้งระบบสารสนเทศที่ทำงานบนคอมพิวเตอร์เครื่องเดียว (Stand Alone) ทำงานบนสถาปัตยกรรมเครื่องแม่ข่ายและลูกข่าย (Client/Server) สามารถใช้พัฒนาโปรแกรมบนเว็บ ใช้เขียนเกม ตลอดจนการเขียนโปรแกรมบนโทรศัพท์มือถือและอุปกรณ์ขนาดเล็กที่มีน่วยความจำจำกัด ผู้ที่มีความสามารถในการเขียนโปรแกรมจาวา ยังสามารถเพิ่มโอกาสในการเลือกงานได้มากกว่า และเป็นที่ต้องการของตลาดงานในสายอาชีพ ดังนั้นจาวาจึงสามารถเป็นภาษาทางเลือกที่สำหรับการทำงาน เป็นภาษาที่มีขีดความสามารถสูงและทำงานได้อย่างครอบคลุม ถึงแม้จะใช้ทรัพยากรของระบบมากก็ตาม ถ้าท่านไม่กลัวกับการเริ่มต้นเรียนรู้สิ่งใหม่ จาวาก็จะไม่น่ากลัวสำหรับท่าน หากรู้จักการสร้างวินัย ฝึกฝนเขียนโปรแกรมเป็นประจำอย่างต่อเนื่อง ก็จะทำให้เกิดความชำนาญและเรียนรู้ได้อย่างรวดเร็ว เป็นการเพิ่มคุณค่าให้กับตนเองและเป็นทางเลือกที่คุ้มค่า


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

บรรณานุกรม
กาญจนา ตันวิสุทธิ์.(2547). การเขียนเกมและโปรแกรมบนมือถือ J2ME.กรุงเทพฯ: บริษัทไอดีซี อินโฟ
ดิสทริบิวเตอร์ เซ็นเตอร์ จำกัด.
Alan Dennis,Barbara Haley Wixom and Tegarden.(2001).System Analysis & Design :An Object-Oriented
Approach with UML. USA: Wiley, John & Sons, Incorporated.
Arnold K,J. Gosling and D. Holmes.(2000).The JavaTM Programming Language:Third
Edition.MA:Addison-Wesley.
Harver M. Deitel and Paul J. Deitel.(2007).Java How to Program. USA: Prentice Hall.

วันพุธ, กุมภาพันธ์ 6, 2008

กลยุทธ์นำร่อง Vista ด้วย Direct X10




กลยุทธ์นำร่อง Vista ด้วย Direct X10
(Vista’s Pilot Strategic with Direct X10)


ปัจจุบันเทคโนโลยีทางด้าน hardware และ Software มีการเปลี่ยนแปลงเร็วมาก เพื่อตอบสนองต่อความต้องการของผู้บริโภคที่เพิ่มมากขึ้น สำหรับผู้ที่อยู่ในแวดวงคอมพิวเตอร์ หรือผู้ที่มีความจำเป็นต้องใช้คอมพิวเตอร์ในชีวิตประจำวัน หากท่านกำลังใช้งานเครื่อง
คอมพิวเตอร์ภายใต้ระบบปฏิบัติการ WindowsXP (Widnows 2001) ทราบหรือไม่ว่า
XP ย่อมาจากอะไร? คำว่า XP มาจาก 2 คำด้วยกันคือ XP = Experienes ในมุมมองของผู้ผลิตอย่าง Microsoft ที่หมายถึงเป็นการกลั่นกรองและรวบรวมประสบการณ์ทั้งหมดที่มีอยู่มาใช้ในการสร้าง WindowsXP ที่คิดว่าเป็น Windows ที่ดีที่สุดสำหรับผู้ใช้งาน Home Office และอีกคำก็คือ XP = Expectations ในมุมมองของผู้ใช้ (User) ที่เต็มไปด้วยความคาดหวังว่าจะได้ใช้ผลิตภัณฑ์ที่มีคุณภาพและมีความสามารถที่เต็มเปี่ยม
อย่างไรก็ดีถึงแม้ WidnowsXP จะได้รับความนิยมอย่างแพร่หลายในเวลาอันรวดเร็ว และท่านเองอาจใช้งานโปรแกรมประยุกต์หลากหลายโปรแกรมภายใต้ XP ได้อย่างง่ายดายด้วยความคุ้นเคย แม้จะเป็นเช่นนั้น Microsoft ยังได้ส่งมอบผลิตภัณฑ์ตัวใหม่อย่าง “Windows Vista” สู่มือผู้บริโภค เพื่อให้ได้ใช้ผลิตภัณฑ์ที่มีความสดและใหม่อยู่เสมอ

Windows Vista (Window 2006) มีทั้งหมด 6 เวอร์ชั่น ได้แก่
1. Windows Vista Enterprise สำหรับองค์กรธุรกิจขนาดใหญ่
2. Windows Vista Business สำหรับองค์กรธุรกิจขนาดกลางและขนาดเล็ก
3. Windows Vista Home Basic สำหรับผู้ใช้ที่ใช้งานปกติทั่วไป
4. Windows Vista Home Premium สำหรับผู้ใช้ทั่วไปที่ต้องการเน้นความบันเทิงและ Multimedia มากขึ้น
5. Windows Vista Ultimate สำหรับผู้ใช้ทั่วไปที่ต้องการเน้นความบันเทิงและข่าวสารความเคลื่อนไหวทางธุรกิจ
6. Windows Vista Starter สำหรับผู้ใช้ทั่วไปที่ต้องการเน้นราคาประหยัด ใช้งานเช่นเดียวกับ WindowsXP แต่ทำงานเร็วขึ้นและหน้าจอสวยขึ้น



จากเวอร์ชั่นของ Vista ดังกล่าว ในปี 2007 จำนวนผู้ใช้งาน Vista ยังไม่มากนักทั้งกลุ่มผู้ใช้ทั่วไปและ
กลุ่มธุรกิจ อาจจะเนื่องมาจากผู้ใช้ยังคงคุ้นเคยกับ WindowsXP หรือไม่อยากควักเงินจากกระเป๋าเพื่อซื้อระบบปฏิบัติการตัวใหม่ ซึ่งอาจจำเป็นต้อง Upgrade ฮาร์ดแวร์ให้มี Spec สูงขึ้นเพื่อรองรับการใช้งาน อีกทั้งยังอาจจะต้องรอคอย Application ใหม่ ๆ ที่สามารถใช้งานร่วมกับ Vista และท้ายที่สุดก็คือ ผู้ใช้ต้องเรียนรู้การใช้งานใหม่อีกครั้ง

จากที่กล่าวมาจะเห็นได้ว่า Microsoft ต้องทำอะไรสักอย่างกับสินค้าตัวใหม่ จึงได้นำร่องโดยผลิตและวางจำหน่ายผลิตภัณฑ์ Direct X10 Game (2007) สำหรับใช้งานภายใต้ Vista เท่านั้น เพื่อเจาะกลุ่มวัยรุ่นและตลาดเกมทั่วโลก คราวนี้นักเล่นเกมทั้งหลายต้องยอมควักเงินจากกระเป๋าเป็นแน่ นอกจากผู้ใช้จะต้องเปลี่ยนระบบปฏิบัติการให้เป็น Vista แล้ว ยังต้องเปลี่ยน VDO Card หรือ Monitor Card เพื่อให้รองรับการเล่นเกมตัว

นี้ด้วย ซึ่งรายชื่อของ Direct X10 Game ได้แก่



1. EVE Online (Patch)2. Rail Simulator (Patch)3. World in Conflict (Pure DX10)4. Age of Conan: Hyborian
Adventure (Pure DX10)5. Crysis (Pure DX10)6. Company of Hero (Patch)7. Microsoft Flight Simulator X
(Patch)8. Supreme Commander (Patch)
เกม Direct X10 มีการปรับปรุงภาพ 3 มิติ ที่ดีขึ้น แสงและเงาสวยสมจริง รวมถึงเพิ่มประสิทธิภาพด้านอื่น ๆ อีกมากมาย

ท้ายสุดนี้สรุปได้ว่า Windows Vista เป็นอีกหนึ่งทางเลือก ที่มีการปรับปรุงประสิทธิภาพในหลาย ๆ ด้าน ทั้งด้านความเร็วและระบบรักษาความปลอดภัย แต่ที่มองเห็นความแตกต่างได้อย่างชัดเจนระหว่าง XP กับ Vista ก็คือ หน้าจอและ Interface ของ Vista ที่เปลี่ยนไป การเปิดหน้าต่างแต่ละครั้งภายใน Vista จะเป็นแบบ Zoom-In และ Zoom-Out เหมือนโปรแกรมที่ถูกสร้างจาก Flash ซึ่งมองดูตื่นตาตื่นใจดี หากท่านอยากจะทดลองใช้ก็ต้องถามตัวเองก่อนว่า ยอมที่จะจ่ายเงินเพื่อซื้อ Vista จ่ายเงินเพื่อ Upgrade ฮาร์ดแวร์ ยอมเสียเวลารอคอยโปรแกรมอื่น ๆ ที่จะทำงานภายใต้ Vista และยอมจ่ายเงินซื้อโปรแกรมชุด MS-Office2007 ด้วยหรือไม่
(http://images.tomshardware.com/2006/11/08/geforce_8800/nvidia_adrianne_image1-big.jpg)

ถ้าท่านตอบว่า “ยอม” สำหรับโปรแกรมชุด Microsoft Office2007 มีวางจำหน่ายเรียบร้อยแล้ว สามารถซื้อมาติดตั้งได้เลย ซึ่งในชุด Office นี้ก็ได้มีการออกแบบ Interface เพื่ออำนวยความสะดวกแก่ผู้ใช้มือใหม่ ที่ไม่มีประสบการณ์ในการใช้เครื่องคอมพิวเตอร์มากนัก ให้สามารถใช้โปรแกรมประยุกต์ได้อย่างง่ายดาย และในชุดของ Office2007 ประกอบด้วยโปรแกรมต่าง ๆ ดังนี้
1. Word มีการปรับปรุง Interace และรูปลักษณ์หน้าตาใหม่ สามารถแปลงไฟล์เอกสารเป็น PDF XML และ XPS ได้ อีกทั้งไฟล์ที่ถูกสร้างใน Word จะมีขนาดเล็กลง ทำให้ประหยัดพื้นที่ในการจัดเก็บ
2. Excel ได้เพิ่มความสามารถในการจัดรูปแบบ การคำนวณ การวิเคราะห์ข้อมูลเพื่อช่วยในการตัดสินใจอย่างชาญฉลาด ปรับปรุง Pivot Table (OLAP) และการแสดงข้อมูลในลักษณะของกราฟที่หลากหลาย เพิ่มความสามารถของ Excel Services ที่ทำให้สามารถใช้ข้อมูลร่วมกับเพื่อนร่วมงานและองค์กรธุรกิจคู่ค้าได้
3. PowerPoint ปรับปรุงประสิทธิภาพของงานนำเสนอ สามารถสร้าง Diagram แบบมืออาชีพได้ อีกทั้งได้เพิ่ม Library ภาพนิ่งที่สามารถนำงานเสนอจากงานหนึ่งไปใช้ร่วมกับอีกงานหนึ่งได้โดยไม่ต้องสร้างงานใหม่
4. Access สามารถสร้าง E-mail ที่มี Form ฝังตัวอยู่ สามารถสร้างรายงานได้หลากหลายมุมมองสำหรับข้อมูลเดียวกันเพื่อสนับสนุนการตัดสินใจ สามารถสำรองข้อมูลบน Server และเรียกคืนข้อมูลที่ถูกลบ มีระบบกำหนดสิทธิ์และจัดการข้อมูลที่ดีขึ้น
5. InfoPath ใช้ในการสร้าง Form Dynamic เพื่อให้องค์กรสามารถใช้ในการเก็บรวมรวมข้อมูล Share ข้อมูล หรือใช้ข้อมูลนั้น ๆ ซ้ำได้ เพื่อให้องค์กรเก็บข้อมูลได้อย่างมีประสิทธิภาพ
6. OneNote เป็นสมุดบันทึก Digital เพื่อใช้เป็นศูนย์กลางในการเก็บรวบรวมข้อมูล เพื่อง่ายต่อการค้นหาที่รวดเร็ว
7. Outlook ใช้ในการจัดการเวลาและข้อมูลส่วนตัว เพิ่มความสามารถด้านปฏิทิน สามารถ Share ปฏิทินของตัวเราร่วมกับคนอื่นในองค์กรหรือนอกองค์กรได้
8. Publisher ช่วยให้นักธุรกิจสามารถเผยแพร่เอกสารทางการตลาดได้ สามารถสร้างจดหมายเวียนอิเล็กทรอนิกส์ และแค็ตตาล็อกเวียนได้
9. SharePoint Designer ใช้ในการสร้าง Web Site สามารถเลือกเนื้อหาได้ภายใน Page ปรับปรุงและตกแต่ง Site SharePoint ได้ตามต้องการ สามารถสร้างและกำหนดเงื่อนไขการทำงานของ Workflow ให้ทำงานอัตโนมัติโดยเชื่อมโยงเข้ากับรายการใน SharePoint ได้
อย่างไรก็ตาม ถึงแม้เราจะมีกำลังทรัพย์ที่ทำให้สามารถ Update ตามเทคโนโลยีได้อย่างไม่ตกยุค แต่ก็ควรคำนึงถึงความ “จำเป็น (Need)” ด้วยว่า สิ่งนั้นจำเป็นสำหรับเราหรือไม่ ของเก่าที่มีอยู่สามารถตอบสนองและรองรับความต้องการในงานได้ดีพอแล้วหรือยัง ถ้าดีพอแล้วก็ควรรู้จักคำว่า “พอเพียง” อย่าลืมว่าการ “ยอมจ่าย” ของท่านอาจทำให้ประเทศชาติของเราขาดดุลการค้าได้ หรือถ้าท่านอยากทดลองของใหม่เพื่อเป็นความรู้ ก็อาจรอให้เวลาผ่านไปสักระยะเพื่อให้ได้สินค้าที่ราคาถูกลง

บรรณานุกรม
www.microsoft.com/windowsvista
http://www.mfa.go.th/internet/BDU
http://www.monavista.com
http://office.microsoft.com/th-th/access/FX100487571054.aspx

วันศุกร์, มกราคม 25, 2008

การเปรียบเทียบเครือข่ายระบบประสาทกับสมองมนุษย์

การเปรียบเทียบเครือข่ายระบบประสาทกับสมองมนุษย์
(Neural networks compare with the human brain)

บทคัดย่อ

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