การใช้เทคโนโลยี Open Source ในการพัฒนาซอฟต์แวร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การพัฒนาระบบ โดยใช้ซอฟต์แวร์โอเพนซอร์ส และฟรีแวร์
Advertisements

Sentinel SuperPro อุปกรณ์ป้องกันการละเมิดลิขสิทธิ์ซอฟต์แวร์
ความรู้เบื้องต้นเกี่ยวกับซอฟต์แวร์คอมพิวเตอร์
ภาษา JAVA.
Introduction to C Introduction to C.
ระบบการจัดการเรียนการสอนผ่านเว็บด้วย Moodle
ธีระพงษ์ แสงรักษาวงศ์
โปรแกรมแสดงประวัติการแก้ไขแฟ้มเอกสาร (Multi-Version Text Viewer / Editor) COE นาย กัณวัตม์ ไชยารัศมี รหัส นาย ชัยวัฒน์ สุขปัญญา รหัส.
อาจารย์ที่ปรึกษา ผศ.กานดา สายแก้ว อาจารย์ผู้ร่วมประเมิน
หัวข้อชั้นสูงเกี่ยวกับคอมพิวเตอร์ซอฟต์แวร์
Management of International Relation Information System
การพัฒนาระบบการส่งคำสั่งล้างข้อมูล ระยะไกล
ภาษาคอมพิวเตอร์ กฎเกณฑ์เกี่ยวกับคำศัพท์ ไวยากรณ์ และ หลักภาษาในการเขียนคำสั่งงานให้คอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่งให้กับเราได้ มีหลากหลายชนิดต่างๆ กัน.
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
Software.
Open Source Software คืออะไร / ทำไมจึงควรเปลี่ยนมาใช้ OpenOffice.org
ความหมาย และวิวัฒนาการ ของ ระบบปฏิบัติก าร.
การพัฒนาการใช้งานในระบบเว็บ
Intro : การเขียนโปรแกรมบนอินเตอร์เน็ต
ภาษาคอมพิวเตอร์.
องค์ประกอบพื้นฐาน ของโปรแกรม Visual Basic
HTTP Client-Server.
ศุภโชค จันทรประทิน ผู้ช่วยนักวิจัย ห้องปฎิบัติการเครือข่ายคอมพิวเตอร์
ความรู้เบื้องต้นเกี่ยวกับ JAVA
Surachai Wachirahatthapong
– Web Programming and Web Database
การสร้างระบบการป้องกันการบุกรุกโดยใช้ Open Source Software
Introduction to php Professional Home Page :PHP
PHP คืออะไร หลายคนที่ทำเว็บไซต์ด้วย HTML หรือโปรแกรมช่วยสร้างเว็บไซต์ต่างๆ เช่น Dreamweaver แล้วอาจสงสัยว่าเมื่อทำ form สำหรับ รับค่าเช่น ชื่อ ที่อยู่
PHP.
ภาษาที่ใช้ในการเขียนเว็บ
ภาษาที่ใช้ในการเขียนเว็บ
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
PHP.
Introduction to ASP.NET
PHP ย่อมาจาก Personal Home Page
Operating System โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม Java
ต้อนรับเข้าสู่โลกของภาษา Java
Part 2 WebMin.
การเขียนโปรแกรมบน Android
การอบรมพัฒนาระบบ Learning Managment System ด้วยโปรแกรม Moodle คณะแพทยศาสตร์ศิริราช มหาวิทยาลัยมหิดล วันที่ 4-5 มี.ค.2551.
ระบบการจัดการเรียนการสอนผ่านเว็บด้วย Moodle
Thai Webmaster Association1 Asst.Prof.Taskeow srisod.
HTML, PHP.
ความรู้เบื้องต้นเกี่ยวกับ PHP Introduction to PHP
การพัฒนาระบบสารสนเทศงานวิจัย ในคณะทันตแพทยศาสตร์ มหาวิทยาลัยเชียงใหม่
ซอฟต์แวร์ประยุกต์ การทำงานของคอมพิวเตอร์นอกจากใช้ระบบปฏิบัติการแล้ว ผู้ใช้ต้องใช้เครื่องคอมพิวเตอร์ในการทำงานด้านต่าง ๆ ซึ่งต้องอาศัยซอฟต์แวร์ที่มีผู้ผลิตขึ้นให้เลือกใช้งาน.
ระบบปฏิบัติการ ( Operating System : OS )
๑ - ๒ พ. ค. ๕๗ น. ต. ณฤทธิ์ บุญทาเลิศ นายทหารปฏิบัติการ แผนกกรรมวิธีข้อมูล กบศ. ยศ. ทร.
โปรแกรมคอมพิวเตอร์ ในการประมวลผลข้อมูล
บทที่ 1 รู้จักกับภาษาจาวา
โปรแกรมฐานข้อมูลที่นิยมใช้
ระบบสำนักงานไร้กระดาษ (e-Office)
LOGO ดร. ปรัชญนันท์ นิลสุข Open Source.
การพัฒนาแอพพลิเคชัน Android (Android Programming).
Introduction to Web Programming
การพัฒนาโปรแกรมเสริมสำหรับการ แสดงวีดีโอจากเว็บไซต์ภายนอกใน เวิร์ดเพรส (Development plugin for displaying video from an external website in WordPress)
ซอฟต์แวร์ที่บริหารจัดการข้อมูลแบบกระจาย
ภาษาที่ใช้ในการเขียนเว็บ
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
PHP : [1] PHP เบื้องต้น. PHP คืออะไร ? PHP ได้รับการเผยแพร่เป็นครั้ง แรกในปี ค. ศ โดย Rasmus Lerdorf ต่อมาได้มีนัก โปรแกรมเมอร์เข้ามาช่วยในการ พัฒนาต่อมาตามลำดับ.
นาย เกียรติศักดิ์ แสนนวล โรงเรียนจักรคำคณาทรลำพูน
PHP. P ersonal H ome P age P rofessional H ome P age PHP : H ypertext P reprocessor.
นายณัฐพล นาคะป่า เลขที่ 36 ชั้นมัธยมศึกษาปีที่ 4/7
OS Network. Network Operating System, NOS Netware from Novell Microsoft Windows NT Server Microsoft Windows NT 2003 Server AppleShare Unix Linux.
2 มิ. ย 2547 โดย วชิราวุธ ธรรมวิเศษ 1 บทที่ 1 แนะนำเทคโนโลยีจาวา Introduction to Java Technology.
ซอฟต์แวร์ (software) จัดทำโดย นาย ยุทธพงศ์ คำยอง
Java Development Tools
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
ใบสำเนางานนำเสนอ:

การใช้เทคโนโลยี Open Source ในการพัฒนาซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ isriya_pa@sipa.or.th สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) 2005 อนุญาตให้เผยแพร่เอกสารนี้ต่อด้วยสัญญาอนุญาตแบบ Creative Commons Attribution License

Open Source คืออะไร ? ซอฟต์แวร์เสรี ผู้ใช้มีสิทธิอย่างเสรีกับตัวซอฟต์แวร์ - ใช้งาน - ปรับปรุงแก้ไข - พัฒนาต่อ - ขาย ปัจจุบันใช้งานอย่างแพร่หลาย

คุณใช้ Open Source อยู่หรือเปล่า ? Google ใช้ Linux เป็นระบบปฏิบัติการ Hotmail ใช้ FreeBSD เป็นระบบปฏิบัติการ 70% ของเว็บ ใช้ Apache เป็นเว็บเซิร์ฟเวอร์ ADSL Router ใช้ Linux เป็นระบบปฏิบัติการ โทรศัพท์มือถือของ Motorola ใช้ Linux เป็นระบบปฏิบัติการ Yahoo! ใช้ MySQL เป็นระบบฐานข้อมูล

ทำไมต้องสนใจ Open Source “Innovation Happens Elsewhere” ไม่ว่าองค์กรจะลงทุนด้านวิจัยแค่ไหน ปริมาณผลงานของเคน นอกองค์กรย่อมมีมากว่า ทางออก : นำผลงานของคนนอกมาใช้งาน วิธีการ : Open Source

ประวัติของ Open Source 1983 : Richard Stallman ประการคำว่า Free Software 1991 : Linus Torvalds เริ่มทำ Linux 1997 : Eric S. Raymond เขียน “The Cathedral and the bazaar” 1998 : Netscape เปิดเผยซอร์สของ Mozilla 1998 : Eric S. Raymond ประกาศคำว่า Open Source 2004 : Firefox 1.0 ออก

รูปแบบการพัฒนาซอฟต์แวร์แบบ Open Source ผู้สร้างเปิดเผยซอร์สโค้ด ผู้สนใจมีสิทธิแก้ไขซอร์สโค้ด ผู้สนใจมีสิทธิส่งส่วนที่แก้ไขมาให้ผู้สร้าง ผู้สร้างมีสิทธิผนวกส่วนแก้ไข ไปกับโปรแกรมต้นฉบับ ก่อให้เกิดชุมชนของผู้ใช้-ผู้พัฒนา

ข้อดีของการพัฒนาแบบ Open Source ผู้ใช้มีส่วนร่วมในการกำหนดทิศทางของโปรแกรม ผู้สร้างมีโอกาสรับฟังความคิดเห็นของผู้ใช้โดยตรง เพิ่มปริมาณผู้มีส่วนร่วม (contributor) ของโปรแกรม ลดระยะเวลาในการออกโปรแกรมรุ่นใหม่ (release cycle) ลดค่าใช้จ่ายในการพัฒนาโปรแกรม

โครงการ Open Source ที่มีชื่อเสียง ระบบปฏิบัติการ Linux, FreeBSD เว็บเซิร์ฟเวอร์ Apache ฐานข้อมูล MySQL, PostgreSQL เว็บเบราว์เซอร์ Mozilla Firefox อีเมล Mozilla Thunderbird ชุดออฟฟิศ OpenOffice.org โปรแกรมตกแต่งภาพ Gimp ภาษาโปรแกรม PHP, Python, Perl

การพัฒนาซอฟต์แวร์ด้วย Open Source Platform ส่วนที่รองรับการทำงานของซอฟต์แวร์ เช่น OS, server, library Programming ตัวโปรแกรมเอง, ภาษา, compiler, interpreter Tools เครื่องมือที่ช่วยให้การพัฒนาโปรแกรมสะดวกและมีประสิทธิภาพ เช่น debugger, version control

Platform : Normal Solutions ใช้ Open Source ลดค่าใช้จ่ายรวมของ Solution Applications 10,000 B Linux 0 B Windows 4,900 B ราคารวมของ Solution 10,000 B 14,900 B

Platform : Web Solutions Applications Web Server Apache IIS Database MySQL Oracle OS Linux Windows

Platform : ลดค่าใช้จ่ายรวม ใช้ Open Source เพื่อลดค่าใช้จ่ายโดยรวมของ Solution ผู้ซื้อ : ได้ Solution ในราคาที่ถูกลง ผู้ขาย : มีโอกาสขายได้มากขึ้น สามารถใช้ Open Source ร่วมกับซอฟต์แวร์อื่นได้ เช่น - Windows + Apache + My SQL - Linux + Oracle

Programming C/C++ Java .NET PHP Perl Python

Programming : C/C++ C เป็นภาษาหลักในการพัฒนาโปรแกรมมายาวนาน - ประสิทธิภาพสูง - เหมาะกับงานเกี่ยวกับระบบ C++ เป็น superset ของ C - เพิ่มความสามารถด้าน Object-Oriented - เขียน C++ แบบ C ได้ - ปัจจุบันโปรแกรมขนาดใหญ่ส่วนมากเขียนด้วย C++

Programming : C/C++ : GCC GCC (GNU Compiler Collection) เป็น compiler มาตรฐานในการทำ benchmark สนับสนุนภาษา C, C++, Fortran, Obj-C, Ada เวอร์ชันล่าสุด 4.0 มีใน Unix แทบทุกตัว ใช้บนวินโดวส์ได้ผ่าน Cygwin (www.cygwin.com) การใช้งานเป็น command line

Programming : C/C++ : GCC (2) เขียนโปรแกรมภาษา C ชื่อ main.c gcc main.c - ได้ผลลัพธ์คือ a.out - ทดสอบโปรแกรมโดยสั่ง ./a.out gcc -o program main.c - ได้ผลลัพธ์คือ program - ทดสอบโปรแกรมโดยสั่ง ./program

Programming : C/C++ : Editor Text editor : vi, notepad, editplus, ultraedit IDE (Integrated Development Environment - Windows : Dev-C++ - Linux : Kdevelop, Anjunta - หรือ Eclipse กับ CDT (C/C++ Development Tools)

KDevelop

Programming : Java เป็น Object-Oriented ใช้แนวคิดของ Virtual Machine สร้างโดย Sun Microsystems ปี 1990 เป็น Object-Oriented ใช้แนวคิดของ Virtual Machine ทำงานได้ข้ามแพลตฟอร์ม Java Runtime Environment แจกฟรีโดย Sun และมีครบคลุม เกือบทุกแพลตฟอร์ม Java Development Kit ชุดพัฒนาพื้นฐาน แจกฟรีโดย Sun มี 3 edition : J2ME, J2SE, J2EE เวอร์ชันล่าสุด : 5.0

Programming : Java : Diagram Java Code (.java) Java Development Kit (JDK) Java Compiler (java.exe) Java Class Byte Code (.class) Java Runtime Environment (JRE) Java Virtual Machine (java.exe) Binary Code

Programming : Java : Open Source implementations Library Compiler VM Java Class java.exe javac.exe Harmony GCJ GIJ, Kaffe

Programming : Java : IDE Eclipse (www.eclipse.org) - IBM/Oracle - เวอร์ชันล่าสุด : 3.1 NetBeans (www.netbeans.org) - Sun (Forte, Sun ONE Studio, Java Studio) - เวอร์ชั่นล่าสุด : 4.1

Programming : Java : Other Jboss (www.jboss.org) - Open Source J2EE application server Jakarta Project (jarkata.apache.org) - Open Source software for Java Platform - ดูแลโดย Apache Foundation - ตัวอย่าง : Tomcat, Ant - นำไปใช้ใน IBM WebSphere

Programming : .NET Microsoft เขียนตาม Java Multi-Platform (ในทางทฤษฎี) Multi-Language - C#, VB.NET, Managed C++, Jscript.NET, ASP.NET - Python, Ada, Cobol, Boo, Perl, Fortran .NET 2.0 Final : November 2005

Programming : .NET : Diagram (Common Intermediate Language) VB.NET compiler .NET Class (C#) CIL (Common Intermediate Language) .NET Class (VB.NET) CLR (Common Language Runtime) Binary Code

Programming : .NET : Mono Mono (www.mono-project.com) เป็นการสร้าง .NET Framework แบบ Open Source บริษัท Ximian (ปัจจุบันเป็นของ Novell) ส่งเสริมให้ .NET สามารถรันข้ามแพลทฟอร์มได้อย่างแท้จริง มีโอกาสเกิดปัญหาด้านกฎหมายในอนาคต รวมอยู่ใน : SuSE, Ubuntu, Debian ไม่รวมอยู่ใน : Red Hat, Fedora

Programming : .NET : Mono (2) Library Compiler VM .NET compiler .NET CLR .Mono compiler .Mono CLR .NET Library .NET Library Mono Library

Programming : .NET : IDE - Microsoft.NET - Windows SharpDevelop (www.icsharpcode.net/OpenSource/SD) - Microsoft.NET - Windows MonoDevelop (http://www.monodevelop.com) - Mono implement of Sharp Develop - Microsoft .NET & Mono - Linux, MacOSX

SharpDevelop

Programming : PHP เดิม : Personal Home Page ปัจจุบัน : PHP Hypertext Processor Scripting language, server side เทียบได้กับ Microsoft ASP, Sun JSP ได้รับความนิยมสูงมาก เช่น Pantip, phpBB, phpMyAdmin

Programming : PHP : Solution มักใช่ร่วมกับ Linux, Apache, MySQL LAMP/LAMPS - Linux, Apache, MySQL, PHP / SSL - (อาจใช้ PostgreSQL แทน MySQL และ Perl/Python แทน PHP ได้) สำหรับวินโดวส์แนะนำให้ใช้ AppServ (www.appserv.net)

Programming : Perl เป็น scripting Language เหมาะสำหรับทำงานบน Unix shell เขียนได้ง่าย แต่อ่านได้ยาก เพราะเป็นภาษาที่เน้นสัญลักษณ์ แนะนำให้ใช้ PHP หรือ Python

Programming : Python เป็น scripting language มีประสิทธิภาพสูง เขียนได้ง่าย ทำงานได้ข้ามแพลทฟอร์ม มี library สำคัญๆ ให้ครบ กำลังได้รับความนิยมเพิ่มขึ้นเรื่อยๆ เช่น - Google - Red Hat - BitTorrent

Programming : Python : Example C If (a > b) : print “A is greater” else: print “B is greater” int a; int b; if (a>b) { printf(“A is greater”); } else printf(“B is greater”); }

Programming : Others ภาษาโปรแกรมมิ่งอื่นๆ ที่น่าสนใจ - Ruby - Boo - Eiffel - Objective-C

Tools Debugger Packaging Version Control Bug Tracker GUI Designer

Tools : Debugger GDB – GNU Debugger - เป็น command line debugger - ใช้คู่กับ GCC - สนับสนุน C, C++, Fortran, Pascal, Obj-C - ทำงานได้บน Unix และ Windows - มี GUI เลือกใช้ได้หลายตัว เช่น DDD สำหรับภาษาอื่นๆ สามารถใช้ debugger ของ IDE

Tools : Packaging - autoconfig - autobuild - make ขั้นตอนการติดตั้งโปรแกรมบน Unix ใช้โปรแกรมเหล่านี้เข้าช่วย - autoconfig - autobuild - make วิธีการติดตั้งพื้นฐาน - ./configure - make install

Tools : Packaging (2) นิยมรวมไฟล์เป็นก้อน แล้วบีบอัดแบบ tar.gz หรือ tarball เพื่อ สะดวกในการดาวน์โหลด การบีบไฟล์ - tar cxvf filename.tar.gz file1 file2 file3 การขยายไฟล์ - tar xvfz filename.tar.gz ไฟล์แบบ tar.gz เปิดได้ด้วยโปรแกรม ZIP ทั่วไป เช่น WinZIP, WinRAR

Tools : Packaging (3) Red Hat - RPM – Red Hat Package Management ต่อมามีระบบแพกเกจที่ก้าวหน้าขึ้น สามารถติดตั้งได้อัตโนมัติ Red Hat - RPM – Red Hat Package Management Debian - DPKG – Debian Package

Tools : Packaging (4) ระบบ RPM และ DPKG มีปัญหาด้าน dependency Red Hat - YUM Debian - APT (Advance Package Tool)

Tools : Version Control - จัดการเวอร์ชันของซอร์สโค้ด - เก็บโค้ดไว้ที่เซิร์ฟเวอร์กลาง แล้วเรียกใช้เมื่อต้องการ - สนับสนุนการทำงานร่วมกันเป็นทีม - สามารถย้อนการแก้ไขกลับได้ - ใช้งานอย่างจริงจังในการพัฒนาระดับอุตสาหกรรม

Tools : Version Control (2) CVS – Concurrent Versions System - มีใน Unix เกือบทุกรุ่น - มีข้อจำกัดหลายอย่าง เช่น ไม่สามารถเปลี่ยนชื่อไฟล์ได้ - ยังใช้กันอย่างแพร่หลายในโครงการ Open Source สำคัญหลายแห่ง SVN – Subversion - ปรับปรุงจาก CVS แนวคิดใกล้เคียงกัน - แนะนำให้เริ่มที่ SVN เลย

Tools : Version Control (3) คำสั่งพื้นฐานของ CVS/SVN svn checkout ดึงซอร์สส่วนที่ต้องการจากเซิร์ฟเวอร์มาที่เครื่อง svn add เพิ่มไฟล์ใหม่ในเครื่องไปยังเซิร์ฟเวอร์ svn update ปรับปรุงการเปลี่ยนแปลงล่าสุดกับเวอร์ชันของเซิร์ฟเวอร์ svn commit ยืนยันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ (สั่งหลัง add/update)

Tools : Bug Tracker ระบบจัดการบั๊กผ่านเว็บ Bugzilla ประสิทธิภาพสูง ใช้งานอย่างแพร่หลาย ติดตั้งยาก IssueZilla เป็น Bugzilla ที่โครงการ Open Office นำมาปรับแต่ง Trac ใช้งานและติดตั้งได้ง่าย ความสามารถครบ ออกแบบมาเพื่อการ พัฒนาโปรแกรม

Tools : GUI Designer Glade (http://glade.gnome.org/) - เป็น user interface designer - Export เป็น XML - ใช้ได้กับภาษา C, C++, Java, Perl, Python, C#, Ruby Stetic - เป็น user interface designer สำหรับ Mono หรือใช้ GUI designer ที่มากับ IDE เช่น Eclipse, NetBeans, KDevelop

Glade

More information Open Source at SIPA http://www.thaiopensource.org Open Source Software Project http://www.sourceforge.net