61
การออกแบบและพัฒนาซอฟต์แวร์ บทที1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏสุราษฎร์ธานี V.1206201301

การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

การออกแบบและพัฒนาซอฟต์แวร ์บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร ์

ปริญญา น้อยดอนไพร

สาขาวชิาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี

มหาวิทยาลัยราชภัฏสุราษฎร์ธานี

V.1206201301

Page 2: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

วัตถุประสงค ์

นักศึกษาสามารถ

• ระบุซอฟต์แวร์ประเภทต่าง ๆ และหน้าที่ของซอฟต์แวร์ได้

• อธิบายเทคนิคการออกแบบซอฟต์แวร์

• เลือกใช้ซอฟต์แวร์ได้เหมาะสมกับงานและมีประสิทธิภาพ

• อธิบายประวัติความเป็นมาของซอฟต์แวร์ได้

Page 3: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ประเภทของซอฟต์แวร ์

• ซอฟต์แวร์คอือะไร

• ประเภทของซอฟต์แวร์

- ซอฟต์แวร์ระบบ

- ซอฟต์แวร์ประยุกต์

Page 4: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ซอฟต์แวร์ระบบ

• ซอฟต์แวร์ควบคุมระบบปฏิบัติการ - การจองและการก าหนด

- การจัดตาราง

- การติดตาม

• ซอฟต์แวร์จัดการอุปกรณ์ต่อพ่วง

• ซอฟต์แวร์การสื่อสาร

• ซอฟต์แวร์ช่วยพัฒนาโปรแกรม

• ซอฟต์แวร์อ านวยความสะดวก

Page 5: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ซอฟต์แวร์ประยุกต์

• โปรแกรมที่เขยีนขึ้นเอง

• โปรแกรมส าเร็จรูป - จัดการระบบฐานข้อมูล

- จัดพิมพร์ายงาน

- ท าการค านวณ

- ส าหรับงานธุรกิจ

- ทางกราฟฟิกส ์

Page 6: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

การออกแบบและพัฒนาซอฟต์แวร ์ประวัติความเป็นมาของซอฟต์แวร ์

ปริญญา น้อยดอนไพร

สาขาวชิาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี

มหาวิทยาลัยราชภัฏสุราษฎร์ธานี

V.1206201301

Page 7: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ประวัติความเป็นมาของซอฟต์แวร์

• ปี ค.ศ. ผลงาน • 1948 ทฤษฎีการสื่อสาร (Theory of Communication) • 1953 โปรแกรมช่วยให้โปรแกรมได้เร็วขึ้น speedcoding • 1955 โปรแกรม Logic Theorist • 1956 การประมวลผลแบบกลุม่ (batch processing) • 1956 แป้นพิมพ ์• 1957 ตัวแปลภาษาระดบัสูงไปเป็นภาษาเคร่ือง (compilers) • 1957 ภาษาฟอร์แทรน (Fortran) • 1959 ระบบเออรม์า (ERMA) • 1960 ภาษาโคบอล COBOL

Page 8: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ประวัติความเป็นมาของซอฟต์แวร์ (ต่อ)

• ปี ค.ศ. ผลงาน • 1960 ภาษาลสิพ์ LISP • 1962 เกมคอมพิวเตอร์แบบโตต้อบ • 1963 โปรแกรมวาดภาพ Sketchpad • 1963 รหัสแอสกี (ASCII code) • 1964 ภาษาเบสิค (BASIC) • 1965 ภาษาเขียนโปรแกรมเชิงวัตถุซิมูลา (Simula) • 1967 ภาษาโลโก้ (LOGO) ส าหรับเด็ก • 1968 เอกสารวิชาการ: ผลร้ายของการเขียนโปรแกรมด้วยค าสั่ง GOTO • 1969 มาตรฐาน RS-232-C

Page 9: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ประวัติความเป็นมาของซอฟต์แวร์ (ต่อ)

• ปี ค.ศ. ผลงาน • 1969 ระบบปฏิบัติการยูนิกส์ UNIX • 1972 วิดีโอเกม • 1976 ระบบปฏิบัติการ CP/M • 1977 มาตรฐานการเข้ารหัสข้อมูลของ IBM • 1979 โปรแกรมวิสแิคลค ์(VisiCalc) • 1981 ระบบปฏิบัติการ MS-DOS • 1982 โปรแกรมสเปรดชีต Lotus 1-2-3 • 1983 โปรแกรมประมวลผลข้อความ (word processing) • 1985 โปรแกรมเพจเมคเกอร์ (PageMaker)

Page 10: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ประวัติความเป็นมาของซอฟต์แวร์ (ต่อ)

• ปี ค.ศ. ผลงาน

• 1985 ภาษาซี พลัส พลัส (C++ )

• 1987 โปรแกรมไฮเปอรก์าร์ด (HyperCard)

• 1989 เกมซิมซิตี ้(Simcity)

• 1989 การมองเห็นเสมือยจริง วอีาร ์(VR- virtual reality)

• 1990 ระบบปฏิบัติการวินโดวส์ 3.0 (Windows 3.0 )

Page 11: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1948 ทฤษฎีการสื่อสาร (Theory of Communication)

• นักคณิตศาสตร์ชื่อ คล็อด แชนนอน (Claude Shannon) ได้สร้างทฤษฎีเชิงคณิตศาสตร์ของการสื่อสาร ซึ่งเขาได้เสนอวิธีการแทนข้อมูล

• โดยได้นิยามหน่วยที่เล็กที่สุดของข้อมูลคือ บิต (bit) และเสนอวิธีการสร้างฮาร์ดแวร์ที่ประมวลผลข้อมูลได้ โดยการสร้างวงจรสวิตซ์ ในวงจรนั้นประมวลผลข้อมูลที่เป็นตรรกะ (จริงหรือเท็จ) รับข้อมูลเข้าเป็นบิต (0 และ1 แทน เท็จ และ จริง) เข้าสู่วงจรย่อยที่ท าการสวิตซ์หรือสลับข้อมูลขึ้นอยู่กับข้อมูลที่น าเข้า วงจรย่อยนี้ได้แก่ วงจรในการน าข้อมูลมาเชื่อมกันด้วยค าว่า "และ"(and), "หรือ" (or), "นิเสธ" (not) ค าเชื่อมเหล่านี้ทางคณิตศาสตร์เรียกว่าตัวกระท าการ (operator) ผลลัพธ์ที่ออกมาเป็นบิตเช่นเดียวกัน และผลลัพธ์นี้ก็อาจใช้เป็นข้อมูลเข้าสู่วงจรย่อยถัดไป จนได้ผลลัพธ์สุดท้ายออกมา ด้วยหลักการท างานง่าย ๆ นี้ ท าให้คอมพิวเตอร์ในปัจจุบันเป็นสามารถประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ

Page 12: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1948 ทฤษฎีการสื่อสาร (Theory of Communication) ต่อ

คล็อด แชนนอน (Claude Shannon) บิดาแห่งสารสนเทศ

Page 13: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1953 โปรแกรมช่วยให้โปรแกรมได้เร็วขึ้น speedcoding

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

Page 14: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1953 โปรแกรมช่วยให้โปรแกรมได้เร็วขึ้น speedcoding (ต่อ)

คอมพิวเตอร์ IBM 701

Page 15: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1955 โปรแกรม Logic Theorist

• เฮอร์เบิร์ต ไซมอน (Herbert Simon) และ อัลเลน นิวเวล (Allen Newell) สร้างโปรแกรมที่สามารถประมวลผลข้อมูลที่ไม่ใช่ตัวเลขหรือการค านวณได้ (การประมวลผลตัวอักขระก็ถือว่าเป็นตัวเลข เพราะอักขระในคอมพิวเตอร์นั้นถูกแทนด้วยรหัสตัวเลข เช่น รหัสแอสกี)

• โปรแกรมที่สามารถหาเหตุผลได้และพิสูจน์โจทย์ที่เป็นตรรกศาสตร์ได้ นี่ เ อ ง เป็นจุ ด เ ริ่ มต้ นของศาสตร์ แห่ งปัญญาประดิษฐ์ (artificial intelligence)

Page 16: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1955 โปรแกรม Logic Theorist (ต่อ)

Herbert Simon Allen Newell

Page 17: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1956 การประมวลผลแบบกลุ่ม (batch processing)

• ในช่วงนี้ซอฟต์แวร์ด้านวิทยาศาสตร์และวิศวกรรมได้รับความสนใจมาก ระบบปฏิบัติการตัวแรกได้ถูกสร้างขึ้นส าหรับเครื่อง IBM 704

• และในระบบปฏิบัติการมีระบบอินพุตเอาท์พุต GM-NAA ให้มีความสามารถการรับอินพุตเข้าประมวลผลครั้งละหลายงาน ซึ่งระบบนี้เรียกว่า การประมวลผลแบบกลุ่ม หรือ batch processing

Page 18: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1956 การประมวลผลแบบกลุ่ม (batch processing) ต่อ

ตัวอย่างการประมวลผลแบบ batch processing

Page 19: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1956 แป้นพิมพ ์

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

• นอกจากนี้ ดัก รอส (Doug Ross) ได้เสนอหน่วยความจ าแบบเข้าถึงแบบสุ่ม (Random Access Memory: RAM) หลังจากนั้น 5 เดือน ก็มีการทดลองสร้างและใช้หน่วยความจ านี้กับเครื่องคอมพิวเตอร์ เวิร์ลวินด์ (Whirlwind)

Page 20: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1957 ตัวแปลภาษาระดับสูงไปเป็นภาษาเครื่อง (compilers)

• สเปอรรี แรนด์ (Sperry Rand) ได้พัฒนาคอมไพเลอร์ (compiler) หรือตัวแปลภาษาระดับสูงไปเป็นภาษาเครื่องส าหรับเครื่องคอมพิวเตอร์ UNIVAC ออกสู่ตลาด

• ผู้พัฒนาตัวแปลภาษานี้ คือ เกรซ ฮอปเปอร์ (Grace Hopper) โดยพัฒนาเพิ่มเติมจากงานเดิม คือ ตัวแปลภาษาชื่อ MATH-MATIC จากนั้นพัฒนาไปเป็น FLOW-MATIC ซึ่งเป็นคอมไพเลอร์ตัวแรกที่ประมวลผลข้อมูลทางธุรกิจ โดยข้อมูลนั้นเป็นภาษาอังกฤษ

Page 21: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1957 ตัวแปลภาษาระดับสูงไปเป็นภาษาเครื่อง (compilers) ต่อ

Page 22: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1957 ภาษาฟอร์แทรน (Fortran)

• ภาษาฟอร์แทรนได้ถูกพัฒนาขึ้น (Fortran มากจากค าว่า FORmula TRANslator หรือตัวแปลสูตร)

• ภาษาฟอร์แทรนเหมาะส าหรับงานด้านวิทยาศาสตร์ มีความสามารถในการท างานแบบวนซ้ าชุดค าสั่งเดิมได้ การวนซ้ านี้เรียกว่าวนรอบ หรือ loop ช่วยให้โปรแกรมที่เขียนสั้นลง และเหมาะกับการค านวณสูตรต่าง ๆ

Page 23: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1957 ภาษาฟอร์แทรน (Fortran)

Page 24: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1960 ภาษาโคบอล COBOL

• ได้มีการสร้างภาษาโคบอลจากความร่วมมือของเพนตากอน (Pentagon) บริษัทหลายบริษัท ภาษาโคบอล (COBOL - Common Business Oriented Language)

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

Page 25: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1960 ภาษาโคบอล COBOL

Page 26: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1960 ภาษาลิสพ ์LISP

• ภาษาลิสพ์ได้ถือก าเนิดขึ้น มีลักษณะพิเศษ คือ ภาษาคอมพิวเตอร์ภาษาแรกที่ได้รับออกแบบเพื่อสร้างโปรแกรมปัญญาประดิษฐ์ พัฒนาโดยจอห์น แมคคาร์ธี (John McCarthy)

Page 27: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1962 เกมคอมพิวเตอร์แบบโต้ตอบ

• นักศึกษากลุ่มหนึ่งจากสถาบันเอ็มไอที (MIT) ได้สร้างเกมคอมพิวเตอร์ชื่อ เกมสงครามอวกาศ SpaceWar ซึ่งเป็นเกมคอมพิวเตอร์แบบโต้ตอบเกมแรก เล่นครั้งแรกด้วยคอมพิวเตอร์ PDP-1 ซึ่งมีหน้าจอแสดงผลขนาดใหญ่ ท าให้สะดวกในการยิง และผู้เล่นทั้งสองฝ่ายใช้แท่งควบคุมยิงยานอวกาศของฝ่ายตรงข้าม และควบคุมการหลบแรงดึงสู่ศูนย์กลางจากดวงอาทิตย์และหลบศัตรูได้ เป็นแรงบันดาลใจในการสร้างวิดีโอเกมในช่วงต่อมา

Page 28: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1962 เกมคอมพิวเตอร์แบบโต้ตอบ

เกมสงครามอวกาศ SpaceWar เล่นด้วยเครื่อง PDP-1

Page 29: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1963 โปรแกรมวาดภาพ Sketchpad

• มีระบบวาดรูปด้วยคอมพิวเตอร์ Sketchpad พัฒนาโดย ไอวาน ซัดเธอร์แลนด์ (Ivan Sutherland) ผู้วาดสามารถวาดรูปโดยใช้ปากกาแสง (light pen) วาดลงไปบนแผ่นวาดพิเศษ และจัดการกับรูปภาพเรขาคณิตผ่านทางหน้าจอได ้

Page 30: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1963 โปรแกรมวาดภาพ Sketchpad

Ivan Sutherland: light pen

Page 31: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1963 รหัสแอสกี (ASCII code)

• มีการก าหนดรหัสมาตรฐานส าหรับการจัดการกับอักขระของข้อความในคอมพิวเตอร์ รหัสมาตรฐานนี้คือแอสกี — ASCII (American Standard Code for Information Interchange) เบื้องต้นประกอบด้วยรหัส 128 ตัวที่แทนตัวอักษรในภาษาอังกฤษ ตัวเลขอารบิค เครื่องหมายวรรคตอน และอักขระควบคุมพิเศษ เช่น อักขระบอกจบบรรทัด อักขระขึ้นบรรทัดใหม่ เป็นต้น

• ส าหรับภาษาไทย ได้มีการก าหนดรหัสเพ่ือภาษาไทยเมื่อปี .... โดยเนคเทค (NECTEC) ได้ก าหนดรหัสและต าแหน่งของตัวอักษรไทยต่าง ๆ บนแป้นพิมพ ์

Page 32: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1963 รหัสแอสกี (ASCII code) ต่อ

• แป้นพิมพ์ของไทย ส าหรับรูปแบบการจัดวางของแป้นพิมพ์ภาษาไทยนั้น มีอยู่ด้วยกัน 2 แบบ คือ

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

Page 33: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1963 รหัสแอสกี (ASCII code) ต่อ

• แป้นพิมพ์ปัตตะโชติ ออกแบบโดยคุณสฤษดิ์ ปัตตะโชติ เป็นแป้นพิมพ์แบบใหม่ที่ออกมาที่หลังเกษมณี แต่ได้รับความนิยมไม่เท่าแป้นพิมพ์แบบเกษมณี

Page 34: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1964 ภาษาเบสิค (BASIC)

• BASIC ย่อมาจาก Beginner's All Purpose Symbolic Instruction Code ภาษาเบสิกพัฒนาขึ้นครั้งแรกที่วิทยาลัย Dartmouth ในสหรัฐอเมริกา และออกจ าหน่ายเมื่อปี ค.ศ. 1963

• ผู้พัฒนาภาษาเบสิค คือ John Kemeny และ Thomas Kurz เนื่องจากการพัฒนาเพ่ือให้นักศึกษาที่เรียนวิทยาการคอมพิวเตอร์ได้เรียนรู้การเขียนโปรแกรมเบื้องต้น ภาษานี้ถูกออกแบบมาให้เขียนโปรแกรมง่าย ๆ ใช้ประโยคค าสั่งคล้ายภาษาอังกฤษ และมีการบอกบรรทัดของแต่ละต าแหน่ง เพราะภาษาเบสิกรุ่นแรกถูกพัฒนาขึ้นเพื่อการเรียนรู้การเขียนโปรแกรม

Page 35: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1964 ภาษาเบสิค (BASIC) ต่อ

ตวัอยา่ง ภาษาเบสคิ

Page 36: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1965 ภาษาเขียนโปรแกรมเชิงวัตถุซิมูลา (Simula)

• มีภาษาส าหรับเขียนโปรแกรมเชิงวัตถุ คือ ภาษา Simula เขียนขึ้นโดย Kristen Nygaard และ Ole-John Dahl

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

Page 37: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1965 ภาษาเขียนโปรแกรมเชิงวัตถุซิมูลา (Simula) ต่อ

ตัวอย่าง โครงสร้างการท างานของภาษา Simula

Page 38: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1967 ภาษาโลโก้ (LOGO) ส าหรับเด็ก

• เซย์มัวร์ ปาเปิร์ต (Seymour Papert ) เป็นนักคณิตศาสตร์และนักการศึกษาที่สถาบันเอ็มไอที เขาเป็นหนึ่งในผู้บุกเบิกปัญญาประดิษฐ์โดยเสนอแนวคิดเรื่องความรู้ของเครื่องจักร และได้สร้างภาษาโลโกในปี 1968 ซึ่งเป็นภาษาที่เหมาะส าหรับเด็กในการฝึกหัดเขียนโปรแกรม

• สามารถระดมสมอง ร่วมกันคิดเพ่ือสร้างโปรแกรม เขายังคิดเพื่อการศึกษานั่นคือ การน าเอาแนวคิดการเรียนรู้ของ ฌอง เพียเจต์ (Jean Piaget) มาใช้ในโรงเรียนได้อย่างไร และได้เน้นผลกระทบของเทคโนโลยีในการเรียนรู้ทั้งในโรงเรียนและในชีวิตประจ าวัน

Page 39: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1967 ภาษาโลโก้ (LOGO) ส าหรับเด็ก (ต่อ)

ตัวอย่าง ภาษา Logo ส าหรับเด็ก

Page 40: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1968 เอกสารวิชาการ: ผลร้ายของการเขียนโปรแกรมด้วยค าสั่ง GOTO

• Edsger Dijkstra ได้เขียนเอกสารวิชาการ กล่าวถึงข้อเสียของการเขียนโปรแกรมที่มีการกระโดดข้ามการท างานด้วยค าสั่ง GOTO (มาจาก go to: เป็นประโยคค าสั่งในภาษาคอมพิวเตอร์หลายภาษา เป็นการสั่งให้โปรแกรมข้ามไปท างานตรงต าแหน่งที่ระบุ) บ่อย ๆ ว่ามีข้อเสียในการติดตามการท างานของโปรแกรม ท าให้โปรแกรมซับซ้อนและแก้ไขได้ยากในกรณีที่เกิดข้อผิดพลาด

• จุดนี้เองได้เริ่มต้นการถกเถียงถึงข้อด้อยของการเขียนโปรแกรมแบบเป็นโครงสร้าง ซึ่ง ACM ถึงกับประกาศไม่ยอมตีพิมพ์ผลงานที่ใช้ค าสั่ง GOTO ในการเขียนโปรแกรม

Page 41: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1968 เอกสารวิชาการ: ผลร้ายของการเขียนโปรแกรมด้วยค าสั่ง GOTO (ต่อ)

Edsger Dijkstra

Page 42: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1969 มาตรฐาน RS-232-C

• มีการก าหนดมาตรฐาน RS-232-C ซึ่งเป็นมาตรฐานส าหรับการสื่อสารระหว่างคอมพิวเตอร์กับอุปกรณ์ต่อพ่วง การส่งข้อมูลเป็นแบบอนุกรม คือส่งทีละบิตต่อเน่ืองกันไป

Page 43: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1969 ระบบปฏิบตัิการยูนิกส์ UNIX

• เคนเนท ทอมสัน (Kenneth Thompson) และเดนนิส ริชชี (Dennis Ritchie) นักเขียนโปรแกรมแห่งห้องปฏิบัติการ AT&T Bell Laboratories ได้สร้างภาษาซี (C language)

• ใช้ภาษาซีพัฒนาระบบปฏิบัติการยูนิกส์ (UNIX) ส าหรับมินิคอมพิวเตอร์ ระบบปฏิบัติการนี้มีความสามารถในการแบ่งเวลาการใช้งานหน่วยประมวลผล (timesharing) มีระบบจัดการไฟล์ที่ดี และมีความปลอดภัยสูง จึงได้รับความนิยมอย่างกว้างขวางจากวิศวกรและนักวิทยาศาสตร ์

Page 44: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1972 วิดีโอเกม

• วิดีโอเกมถูกพัฒนาขึ้นครั้งแรก

โดยบริษัท Atari

Page 45: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1976 ระบบปฏิบัติการ CP/M

• แกรี่ คิลดัล (Gary Kildall) ได้พัฒนาระบบปฏิบัติการส าหรับเครื่องคอมพิวเตอร์ส่วนบุคคลขึ้น คือ ระบบปฏิบัติการ CP/M ซึ่งได้ถูกน าไปใช้อย่างกว้างขวาง เนื่องจากอ านวยความสะดวกให้ผู้ใช้สามารถประมวลผลโปรแกรมในลักษณะอื่นๆ ถ้าเป็นเครื่องคอมพิวเตอร์ 8 บิตเหมือนกัน

Page 46: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1976 ระบบปฏิบัติการ CP/M (ต่อ)

Page 47: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1977 มาตรฐานการเข้ารหัสข้อมูลของ IBM

• รัฐบาลสหรัฐได้น ามาตรฐานการเข้ารหัสข้อมูลของไอบีเอ็มมาใช้ เพื่อความมั่นใจในความปลอดภัยของการเข้ารหัสข้อความที่สื่อสารระหว่างหน่วยงานต่าง ๆ

• มาตรฐานนี้ต้องมีตัวเลข 8 หลักส าหรับใช้เป็นกุญแจในการเข้ารหัสและถอดรหัส ผู้ใช้สามารถตั้งรหัสกุญแจนี้เอง ความน่าจะเป็นที่จะถอดรหัสได้โดยการลองผิดลองถูกมีน้อยมาก เนื่องจากข้อความที่เข้ารหัสแล้วมีความเป็นไปได้แตกต่างกันถึง 70 ล้านล้านล้านล้านแบบ

Page 48: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1977 มาตรฐานการเข้ารหัสข้อมูลของ IBM

Page 49: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1979 โปรแกรมวสิิแคลค์ (VisiCalc)

• โปรแกรมในการค านวณแบบตาราง (spread sheet) ชื่อวิสิแคล VisiCalc ได้รับการพัฒนาโดยบ๊อบ แฟรงส์ตัน (Bob Frankston) กับแดน บริคลิน (Dan Bricklin) ในตอนเริ่มต้นนั้นพวกเขาเขียนโปรแกรมนี้เพื่อท างานบนเครื่องแอปเปิ้ล 2 (Apple II) แต่ภายหลังโปรแกรม VisiCalc ก็ได้รับการยอมรับและน าไปใช้กับเครื่องคอมพิวเตอร์ส่วนบุคคลทั่วไป โปรแกรมนี้ช่วยลดภาระการท างานทางธุรกิจให้กับผู้ใช้เป็นอย่างมาก

• ในปีนี้ ได้มีสารสนเทศสาธารณะเปิดให้บริการเข้ าถึ งแบบออนไลน์ที่สหรัฐอเมริกา ระบบนี้คือ CompuServe and the Source และปัจจุบันนี้ชาวอเมริกันก็ใช้ระบบสารสนเทศนี้ในการอ่านข่าว รับข้อมูลข่าวสารอื่น ๆ ฯลฯ

Page 50: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1979 โปรแกรมวสิิแคลค์ (VisiCalc) ต่อ

แฟรงส์ตันกับบรคิลิน ผูส้ร้างโปรแกรม VisiCalc

Page 51: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1981 ระบบปฏิบตัิการ MS-DOS

• ระบบปฏิบัติการ MS-DOS (Microsoft Disk Operating System) ได้รับการพัฒนาขึ้นโดยบริษัทไอบีเอ็มได้รับความร่วมมือจาก บิล เกตส์ (Bill Gates) และพอล อัลเลน (Paul Allen) เพื่อเป็นระบบปฏิบัติการส าหรับคอมพิวเตอร์รุ่นไอบีเอ็ม พีซี (IBM PC) ซึ่งเป็นคอมพิวเตอร์ส่วนบุคคล หลังจากนั้นอีก 6 ปี เกตส์และอัลเลนก็ได้แยกตัวออกไปก่อตั้งบริษัทไมโครซอฟต ์

Page 52: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1981 ระบบปฏิบตัิการ MS-DOS (ต่อ)

ตัวอย่าง ระบบปฏิบัติการ MS-DOS

Page 53: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1982 โปรแกรมสเปรดชีต Lotus 1-2-3

• มิช คาปอร์ (Mitch Kapor) ได้พัฒนาโปรแกรมโลตัส 1-2-3 (Lotus 1-2-3) ซึ่งเป็นโปรแกรมค านวณแบบตารางที่ท างานได้เร็วกว่าโปรแกรมคู่แข่งมาก มีความสามารถด้านรูปภาพและการค้นคืนข้อมูล ท าให้โปรแกรมโลตัสได้รับความนิยมสูง

Page 54: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1983 โปรแกรมประมวลผลข้อความ (word processing)

• ไมโครซอฟต์เปิดตัวโปรแกรมประมวลผลข้อความ Word แต่ก่อนโปรแกรม Word มีชื่อว่า Multi-Tool Word ซึ่งปัจจุบันโปรแกรมไมรโครซอฟต์เวิร์ด MS-word ได้เป็นหนึ่งในชุดโปรแกรมยอดนิยมในกลุ่มผู้ใช้คอมพิวเตอร์ส่วนบุคคล คือ ชุดโปรแกรมไมโครซอฟต์ออฟฟิซ

Page 55: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1985 โปรแกรมเพจเมคเกอร์ (PageMaker)

• โปรแกรมเพจเมคเกอร์ Aldus PageMaker ถูกพัฒนาขึ้นโดย Paul Brainerd ผู้ก่อตั้งบริษัท Aldus โปรแกรมนี้ใช้ในเครื่องคอมพิวเตอร์ แมคอินทอช (Macintosh) Pagemaker ได้รับความสนใจเนื่องจากมีความสามารถจัดการกับรูปภาพและข้อความในงานสิ่งพิมพ์ นอกจากนี้ยังมีรุ่นที่สามารถท างานได้บนเครื่องยี่ห้อไอบีเอ็มและยี่ห้ออ่ืนที่เข้ากันได้

Page 56: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1985 ภาษาซี พลัส พลัส (C++ )

• ภาษา C++ (อ่านว่า ซี พลัส พลัส) เป็นภาษาส าหรับเขียนโปรแกรม เชิงวัตถุ ได้รับการพัฒนาขึ้นที่ AT&T Bell Laboratories มีเหมาะส าหรับการเขียนโปรแกรมทั่วไป ภาษา C++ แตกต่างจากภาษาเนื่องจาก C++ มีความยืดหยุ่น และมีสิ่งอ านวยความสะดวกในการเขียนโปรแกรมมากกว่า เช่น มีฟั งก์ชันที่ สามารถเรียกใช้ งานได้ เลย โดยได้คงความสามารถเดิมที่ภาษา C มีไว้ นอกจากนี้นักเขียนโปรแกรมยังสามารถสร้างรูปแบบของข้อมูลที่จะไปประมวลผลได้เอง

Page 57: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1987 โปรแกรมไฮเปอรก์าร์ด (HyperCard)

• วิศวกรวิลเวียม แอทคินสัน (William Atkinson) ได้ออกแบบโปรแกรม HyperCard ซึ่งเป็นเครื่องมือช่วยสร้างโปรแกรมประยุกต์เล็ก ๆ ใช้ในบริษัทหรือองค์กร

• จุดเด่นของ HyperCard คือ ท าให้การเขียนโปรแกรมง่ายขึ้นโดยให้มีการติดต่อกับผู้เขียนโปรแกรมแบบโต้ตอบ และสร้างโปรแกรมที่มีส่วนติดต่อประสานกับผู้ใช้ (user interface) ได้นอกเหนือจากการประมวลผลข้อมูลเพียงอย่างเดียว

Page 58: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1989 เกมซิมซิตี้ (Simcity)

• บริษัท Maxis ได้น าเกม Simcity ออกสู่ตลาด ซึ่งเป็นวิดีโอเกมที่จ าลองสถานการณ์จริง (simulation) ผู้สร้างเกมนี้คือวิล ไรท์ (Will Wright) เขาสร้างขึ้นจากความใฝ่ฝันในวัยเด็กซึ่งเข้าได้สนใจแบบจ าลองพลาสติกของเรือและเครื่องบิน เขากับเจฟฟ์ บรวน (Jeff Braun) จึงตั้งบริษัท ผลิตโปรแกรมที่ให้ผู้ใช้สามารถสร้างเมืองในจินตนาการได้ในคอมพิวเตอร์ ตัวอย่างโปรแกรมในชุด Simcity เช่น SimEarth, SimAnt, Simlife นับว่าผู้สร้างโปรแกรมมีความคิดสร้างสรรค์ ที่สามารถท าให้ผู้ใช้โปรแกรมก่อเกิดความคิดสร้างสรรค์ผ่านการเล่นเกมได้

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

Page 59: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ. 1989 เกมซิมซิตี้ (Simcity) ต่อ

Page 60: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1989 การมองเห็นเสมือนจริง วีอาร์ (VR- virtual reality)

• แนวคิดเรื่องการมองเห็นเสมือนจริง (VR: virtual reality) ได้รับความสนใจอย่างมาก บริษัท Silicon Graphics ได้วางจ าหน่วยเทคโนโลยีใหม่คือโปรแกรมคอมพิวเตอร์ที่ช่วยในการออกแบบ โดยโปรแกรมจะจ าลองสิ่งแวดล้อม 3 มิติ ผู้ใช้งานสามารถโต้ตอบกับโปรแกรมเหมือนจริงนั้นได้ ซึ่งคอมพิวเตอร์ต้องมีความเร็วพอในการค านวณ

และแสดงผลข้อมูลจากตัวรับสัญญาณต่าง ๆ

เพื่อหลอกประสาทสัมผัสของผู้ใช้ให้ได ้

Page 61: การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 1 : พื้นฐานเกี่ยวกับซอฟต์แวร์ · วัตถุประสงค์

ค.ศ.1990 ระบบปฏิบตัิการวินโดวส์ 3.0 (Windows 3.0 )

• ไมโครซอฟต์ เปิดตัวระบบปฏิบัติการวินโดวส์ 3.0 ส าหรับเครื่องคอมพิวเตอร์ส่วนบุคคล ซึ่งท างานเข้ากันได้กับระบบปฏิบัติการดอส (DOS) แต่ใช้งานง่ายกว่าเนื่องจากติดต่อผู้ใช้ผ่านทางรูปภาพหรือหน้าต่างใช้งาน (window) แทนการพิมพ์ท าสั่งทีละบรรทัดในดอส วินโดวส์ 3.0 นั้นได้มีโปรแกรม Microsoft Word และ Microsoft Excel ด้วยจึงได้รับความนิยมอย่างมาก