How to use Open Source in Software Development

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

2 comments

Comments 1 - 2 of 2 previous next Post a comment

  • + guest8d03f4 guest8d03f4 5 months ago
    ขอบคุนมาก เป็นข้อมูลที่ดี
  • + guest77bc6f guest77bc6f 3 years ago
    no cooment
Post a comment
Embed Video
Edit your comment Cancel

1 Favorite

How to use Open Source in Software Development - Presentation Transcript

  1. การใช้เทคโนโลยี Open Source ในการพัฒนาซอฟต์แวร์ อิสริยะ ไพรีพ่ายฤทธิ์ isriya_pa@sipa.or.th สำานักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) © 2005 อนุญาตให้เผยแพร่เอกสารนีต่อด้วยสัญญาอนุญาตแบบ Creative Commons Attribution License ้
  2. Open Source คืออะไร? ซอฟต์แวร์เสรี ● ผู้ใช้มีสิทธิอย่างเสรีกับตัวซอฟต์แวร์ ● – ใช้งาน – ปรับปรุงแก้ไข – พัฒนาต่อ – ขาย ปัจจุบันใช้งานอย่างแพร่หลาย ●
  3. คุณใช้ Open Source อยู่หรือเปล่า? Google ใช้ Linux เป็นระบบปฏิบัติการ ● Hotmail ใช้ FreeBSD เป็นระบบปฏิบัติการ ● 70% ของเว็บ ใช้ Apache เป็นเว็บเซิร์ฟเวอร์ ● ADSL Router ใช้ Linux เป็นระบบปฏิบัติการ ● โทรศัพท์มือถือของ Motorola ใช้ Linux เป็นระบบปฎิบัติการ ● Yahoo! ใช้ MySQL เป็นระบบฐานข้อมูล ●
  4. ทำาไมต้องสนใจ Open Source “Innovation Happens Elsewhere” ● ไม่ว่าองค์กรจะลงทุนด้านวิจัยแค่ไหน ปริมาณผลงานของคน ● นอกองค์กรย่อมมีมากกว่า ทางออก : นำาผลงานของคนนอกมาใช้งาน ● วิธการ : Open Source ี ●
  5. ประวัติของ 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 ออก ●
  6. รูปแบบการพัฒนาซอฟต์แวร์แบบ Open Source ผู้สร้างเปิดเผยซอร์สโค้ด ● ผู้สนใจมีสทธิแก้ไขซอร์สโค้ด ิ ● ผู้สนใจมีสทธิสงส่วนที่แก้ไขมาให้ผู้สร้าง ิ่ ● ผู้สร้างมีสิทธิผนวกส่วนแก้ไขไปกับโปรแกรมต้นฉบับ ● ก่อให้เกิดชุมชนของผูใช้-ผู้พัฒนา ้ ●
  7. ข้อดีของการพัฒนาแบบ Open Source ผู้ใช้มีสวนร่วมในการกำาหนดทิศทางของโปรแกรม ่ ● ผู้สร้างมีโอกาสรับฟังความคิดเห็นของผู้ใช้โดยตรง ● เพิมปริมาณผู้มีส่วนร่วม (contributor) ของโปรแกรม ่ ● ลดระยะเวลาในการออกโปรแกรมรุ่นใหม่ (release cycle) ● ลดค่าใช้จ่ายในการพัฒนาโปรแกรม ●
  8. โครงการ Open Source ที่มีชอเสียง ื่ ระบบปฏิบัติการ Linux, FreeBSD ● เว็บเซิร์ฟเวอร์ Apache ● ฐานข้อมูล MySQL, PostgreSQL ● เว็บเบราว์เซอร์ Mozilla Firefox ● อีเมล Mozilla Thunderbird ● ชุดออฟฟิศ OpenOffice.org ● โปรแกรมตกแต่งภาพ Gimp ● ภาษาโปรแกรม PHP, Python, Perl ●
  9. การพัฒนาซอฟต์แวร์ด้วย Open Source Platform ● ส่วนที่รองรับการทำางานของซอฟต์แวร์ เช่น OS, server, library Programming ● ตัวโปรแกรมเอง, ภาษา, compiler, interpreter Tools ● เครื่องมือที่ชวยให้การพัฒนาโปรแกรมสะดวกและมีประสิทธิภาพ ่ เช่น debugger, version control
  10. Platform : Normal Solutions ใช้ Open Source ลดค่าใช้จายรวมของ Solution ่ Applications 10,000 B Linux Windows 0B 4,900 B ราคารวมของ Solution 10,000 B 14,900 B
  11. Platform : Web Solutions Applications Web Server Apache IIS MySQL Oracle Database OS Linux Windows
  12. Platform : ลดค่าใช้จ่ายรวม ใช้ Open Source เพือลดค่าใช้จ่ายโดยรวมของ Solution ่ ● ผู้ซอ : ได้ Solution ในราคาที่ถูกลง ื้ ● ผู้ขาย : มีโอกาสขายได้มากขึน้ ● สามารถใช้ Open Source ร่วมกับซอฟต์แวร์อนได้ เช่น ื่ ● – Windows + Apache + MySQL – Linux + Oracle
  13. Programming C/C++ ● ● Java ● .NET ● PHP ● Perl ● Python
  14. Programming : C/C++ C เป็นภาษาหลักในการพัฒนาโปรแกรมมายาวนาน ● – ประสิทธิภาพสูง – เหมาะกับงานเกี่ยวกับระบบ C++ เป็น superset ของ C ● – เพิมความสามารถด้าน Object-Oriented ่ – เขียน C++ แบบ C ได้ – ปัจจุบันโปรแกรมขนาดใหญ่ส่วนมากเขียนด้วย C++
  15. 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 ●
  16. Programming : C/C++ : GCC (2) เขียนโปรแกรมภาษา C ชื่อ main.c ● gcc main.c ● – ได้ผลลัพธ์คือ a.out – ทดสอบโปรแกรมโดยสั่ง ./a.out gcc -o program main.c ● – ได้ผลลัพธ์คือ program – ทดสอบโปรแกรมโดยสั่ง ./program
  17. 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)
  18. KDevelop
  19. Programming : Java สร้างโดย Sun Microsystems ปี 1990 ● เป็น Object-Oriented ● ใช้แนวคิดของ Virtual Machine ● ทำางานได้ขามแพลตฟอร์ม ้ ● Java Runtime Environment แจกฟรีโดย Sun และมีครอบคลุม ● เกือบทุกแพลตฟอร์ม Java Development Kit ชุดพัฒนาพื้นฐาน แจกฟรีโดย Sun ● มี 3 edition : J2ME, J2SE, J2EE ● เวอร์ชันล่าสุด : 5.0 ●
  20. Programming : Java : Diagram Java Code (.java) Java Development Kit (JDK) Java Compiler (javac.exe) Byte Code Java Class (.class) Java Virtual Machine (java.exe) Java Runtime Environment (JRE) Binary Code
  21. Programming : Java : Open Source Open Source implementations Library Java Class Harmony Compiler java.exe GCJ VM javac.exe GIJ, Kaffe
  22. Programming : Java : IDE Eclipse (www.eclipse.org) ● – IBM/Oracle – เวอร์ชนล่าสุด : 3.1 ั NetBeans (www.netbeans.org) ● – Sun (Forte, Sun ONE Studio, Java Studio) – เวอร์ชนล่าสุด : 4.1 ั
  23. 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
  24. 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 ●
  25. Programming : .NET : Diagram C# VB.NET compiler .NET Class .NET Class CIL (C#) (VB.NET) (Common Intermediate Language) CLR (Common Language Runtime) Binary Code
  26. Programming : .NET : Mono Mono (www.mono-project.com) ● เป็นการสร้าง .NET Framework แบบ Open Source ● บริษัท Ximian (ปัจจุบันเป็นของ Novell) ● ส่งเสริมให้ .NET สามารถรันข้ามแพลทฟอร์มได้อย่างแท้จริง ● มีโอกาสเกิดปัญหาด้านกฎหมายในอนาคต ● รวมอยูใน : SuSE, Ubuntu, Debian ่ ● ไม่รวมอยู่ใน : Red Hat, Fedora ●
  27. Programming : .NET : Mono (2) Library .NET Library .NET Library Mono Library Compiler .NET compiler Mono compiler VM .NET CLR Mono CLR
  28. Programming : .NET : IDE SharpDevelop (www.icsharpcode.net/OpenSource/SD) ● – Microsoft .NET – Windows MonoDevelop (http://www.monodevelop.com) ● – Mono implement of SharpDevelop – Microsoft .NET & Mono – Linux, MacOSX
  29. SharpDevelop
  30. Programming : PHP เดิม : Personal Home Page ● ปัจจุบัน : PHP Hypertext Processor ● scripting language, server side ● เทียบได้กับ Microsoft ASP, Sun JSP ● ได้รับความนิยมสูงมาก เช่น Pantip, phpBB, phpMyAdmin ●
  31. Programming : PHP : Solution มักใช้ร่วมกับ Linux, Apache, MySQL ● LAMP/LAMPS ● – Linux, Apache, MySQL, PHP / SSL – (อาจใช้ PostgreSQL แทน MySQL และ Perl/Python แทน PHP ได้) สำาหรับวินโดวส์แนะนำาให้ใช้ AppServ (www.appserv.net) ●
  32. Programming : Perl เป็น scripting language ● เหมาะสำาหรับทำางานบน Unix shell ● เขียนได้งาย แต่อ่านได้ยาก เพราะเป็นภาษาที่เน้นสัญลักษณ์ ่ ● แนะนำาให้ใช้ PHP หรือ Python ●
  33. Programming : Python เป็น scripting language ● มีประสิทธิภาพสูง เขียนได้ง่าย ● ทำางานได้ขามแพลทฟอร์ม ้ ● มี library สำาคัญๆ ให้ครบ ● กำาลังได้รบความนิยมเพิมขึ้นเรื่อยๆ เช่น ั ่ ● – Google – Red Hat – BitTorrent
  34. Programming : Python : Example Python C if (a > b): int a; print “A is greater” int b; else: if (a>b) { print “B is greater” printf(“A is greater”); } else { printf(“B is greater”); }
  35. Programming : Others ภาษาโปรแกรมมิ่งอื่นๆ ที่น่าสนใจ ● – Ruby – Boo – Eiffel – Objective-C
  36. Tools Debugger ● Packaging ● Version Control ● Bug Tracker ● GUI Designer ●
  37. Tools : Debugger GDB – GNU Debugger ● – เป็น command line debugger – ใช้คู่กับ GCC – สนับสนุน C, C++, Fortran, Pascal, Obj-C – ทำางานได้บน Unix และ Windows – มี GUI เลือกใช้ได้หลายตัว เช่น DDD สำาหรับภาษาอื่นๆ สามารถใช้ debugger ของ IDE ●
  38. Tools : Packaging ขันตอนการติดตั้งโปรแกรมบน Unix ใช้โปรแกรมเหล่านี้เข้าช่วย ้ ● – autoconfig – autobuild – make วิธการติดตั้งพื้นฐาน ี ● – ./configure – make – make install
  39. Tools : Packaging (2) นิยมรวมไฟล์เป็นก้อน แล้วบีบอัดแบบ tar.gz หรือ tarball เพือ ่ ● สะดวกในการดาวน์โหลด การบีบไฟล์ ● – tar cxvf filename.tar.gz file1 file2 file3 การขยายไฟล์ ● – tar xvfz filename.tar.gz ไฟล์แบบ tar.gz เปิดได้ดวยโปรแกรม ZIP ทั่วไป เช่น WinZIP, ้ ● WinRAR
  40. Tools : Packaging (3) ต่อมามีระบบแพกเกจที่ก้าวหน้าขึน สามารถติดตั้งได้อัตโนมัติ ้ ● Red Hat ● – RPM – Red Hat Package Management Debian ● – DPKG – Debian Package
  41. Tools : Packaging (4) ระบบ RPM และ DPKG มีปญหาด้าน dependency ั ● มีระบบแพกเกจอีกชั้นที่คอยแก้ปญหา dependency ั ● Red Hat ● – YUM Debian ● – APT (Advance Package Tool)
  42. Tools : Version Control Version Control ● – จัดการเวอร์ชันของซอร์สโค้ด – เก็บโค้ดไว้ที่เซิรฟเวอร์กลาง แล้วเรียกใช้เมื่อต้องการ ์ – สนับสนุนการทำางานร่วมกันเป็นทีม – สามารถย้อนการแก้ไขกลับได้ – ใช้งานอย่างจริงจังในการพัฒนาระดับอุตสาหกรรม
  43. Tools : Version Control (2) CVS – Concurrent Versions System ● – มีใน Unix เกือบทุกรุน ่ – มีขอจำากัดหลายอย่าง เช่น ไม่สามารถเปลียนชื่อไฟล์ได้ ้ ่ – ยังใช้กันอย่างแพร่หลายในโครงการ Open Source สำาคัญ หลายแห่ง SVN – Subversion ● – ปรับปรุงจาก CVS แนวคิดใกล้เคียงกัน – แนะนำาให้เริมที่ SVN เลย ่
  44. Tools : Version Control (3) คำาสั่งพื้นฐานของ CVS/SVN ● svn checkout ● ดึงซอร์สส่วนที่ต้องการจากเซิรฟเวอร์มาที่เครื่อง ์ svn add ● เพิมไฟล์ใหม่ในเครื่องไปยังเซิร์ฟเวอร์ ่ svn update ● ปรับปรุงการเปลียนแปลงล่าสุดกับเวอร์ชันของเซิรฟเวอร์ ่ ์ svn commit ● ยืนยันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ (สั่งหลัง add/update)
  45. Tools : Bug Tracker ระบบจัดการบั๊กผ่านเว็บ ● Bugzilla ● ประสิทธิภาพสูง ใช้งานอย่างแพร่หลาย ติดตั้งยาก IssueZilla ● เป็น Bugzilla ที่โครงการ OpenOffice นำามาปรับแต่ง Trac ● ใช้งานและติดตั้งได้งาย ความสามารถครบ ออกแบบมาเพื่อการ ่ พัฒนาโปรแกรม
  46. 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
  47. Glade
  48. More information Open Source at SIPA ● http://www.thaiopensource.org Open Source Software Project ● http://www.sourceforge.net

+ Isriya PaireepairitIsriya Paireepairit, 3 years ago

custom

7831 views, 1 favs, 1 embeds more stats

How to use Open Source technology for software deve more

More info about this document

CC Attribution License

Go to text version

  • Total Views 7831
    • 7830 on SlideShare
    • 1 from embeds
  • Comments 2
  • Favorites 1
  • Downloads 204
Most viewed embeds
  • 1 views on http://nexos.cisi.unito.it

more

All embeds
  • 1 views on http://nexos.cisi.unito.it

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories