งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การใช้เทคโนโลยี Open Source ในการพัฒนาซอฟต์แวร์"— ใบสำเนางานนำเสนอ:

1 การใช้เทคโนโลยี Open Source ในการพัฒนาซอฟต์แวร์
ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) 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 0 B Windows 4,900 B ราคารวมของ Solution 10,000 B 14,900 B

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

12 Platform : ลดค่าใช้จ่ายรวม
ใช้ Open Source เพื่อลดค่าใช้จ่ายโดยรวมของ Solution ผู้ซื้อ : ได้ Solution ในราคาที่ถูกลง ผู้ขาย : มีโอกาสขายได้มากขึ้น สามารถใช้ Open Source ร่วมกับซอฟต์แวร์อื่นได้ เช่น - Windows + Apache + My SQL - 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 ( การใช้งานเป็น 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 เป็น 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

20 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

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

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

23 Programming : Java : Other
Jboss ( - 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 (Common Intermediate Language)
VB.NET compiler .NET Class (C#) CIL (Common Intermediate Language) .NET Class (VB.NET) CLR (Common Language Runtime) Binary Code

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

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

28 Programming : .NET : IDE - Microsoft.NET - Windows
SharpDevelop ( - Microsoft.NET - Windows MonoDevelop ( - Mono implement of Sharp Develop - 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 (

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

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

34 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”); }

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 - autoconfig - autobuild - make
ขั้นตอนการติดตั้งโปรแกรมบน Unix ใช้โปรแกรมเหล่านี้เข้าช่วย - autoconfig - autobuild - make วิธีการติดตั้งพื้นฐาน - ./configure - 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
ต่อมามีระบบแพกเกจที่ก้าวหน้าขึ้น สามารถติดตั้งได้อัตโนมัติ Red Hat - RPM – Red Hat Package Management Debian - DPKG – Debian Package

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

42 Tools : 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 ที่โครงการ Open Office นำมาปรับแต่ง 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


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

งานนำเสนอที่คล้ายกัน


Ads by Google