กลับไปหน้าบทความ

อ่าน 10 นาที

ซอฟต์แวร์

ซอฟต์แวร์ (SW) ประกอบด้วย โปรแกรมคอมพิวเตอร์ ที่ สั่งการ ให้ คอมพิวเตอร์ดำเนิน การ [ 1 ] ซอฟต์แวร์ยังรวมถึงเอกสารการออกแบบและข้อกำหนดด้วย

ซอฟต์แวร์

หน้าเว็บได้รับการป้องกันบางส่วน

ซอฟต์แวร์ที่เขียนด้วยภาษาJavaScript

ซอฟต์แวร์ (SW) ประกอบด้วยโปรแกรมคอมพิวเตอร์ที่สั่งการ ให้ คอมพิวเตอร์ดำเนินการ[ 1 ]ซอฟต์แวร์ยังรวมถึงเอกสารการออกแบบและข้อกำหนดด้วย

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

โดยทั่วไปแล้ว ซอฟต์แวร์สามารถแบ่งออกเป็นสองประเภทหลักๆ ได้แก่:

  1. ระบบปฏิบัติการซึ่งทำหน้าที่จัดการทรัพยากรฮาร์ดแวร์และให้บริการแก่แอปพลิเคชันต่างๆ
  2. ซอฟต์แวร์ประยุกต์ซึ่งทำหน้าที่เฉพาะอย่างให้กับผู้ใช้

การเติบโตของระบบคลาวด์คอมพิวติ้งได้นำมาซึ่งรูปแบบการส่งมอบซอฟต์แวร์แบบใหม่ นั่นคือ ซอฟต์แวร์ในรูปแบบบริการ (Software as a Service หรือ SaaS) ในระบบ SaaS แอปพลิเคชันจะถูกโฮสต์โดยผู้ ให้บริการและเข้าถึงได้ผ่านทางอินเทอร์เน็ต

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

ประวัติศาสตร์

การใช้คำว่าซอฟต์แวร์เพื่ออธิบายโปรแกรมคอมพิวเตอร์ครั้งแรกนั้นได้รับการยกย่องให้แก่จอห์น ไวลเดอร์ ทูคีย์ นักคณิตศาสตร์ ในปี 1958 [ 2 ] [ 3 ] [ 4 ]คอมพิวเตอร์ที่ตั้งโปรแกรมได้เครื่องแรก ซึ่งปรากฏขึ้นในช่วงปลายทศวรรษ 1940 [ 5 ]ถูกตั้งโปรแกรมด้วยภาษาเครื่องภาษาเครื่องนั้นยากต่อการแก้ไขข้อผิดพลาดและไม่สามารถพกพาข้ามคอมพิวเตอร์ต่าง ๆ ได้[ 6 ]ในช่วงแรก ทรัพยากรฮาร์ดแวร์มีราคาแพงกว่าทรัพยากรมนุษย์ [ 7 ] เมื่อโปรแกรมมีความซับซ้อนมากขึ้นผลผลิตของโปรแกรมเมอร์ก็กลายเป็นคอขวด การนำภาษาโปรแกรมระดับสูงมา ใช้ ในปี 1958 ได้ซ่อนรายละเอียดของฮาร์ดแวร์และแสดงอัลกอริทึม พื้นฐาน ลงในโค้ด[ 8 ] [ 9 ] ภาษาใน ยุคแรก ๆ ได้แก่Fortran , LispและCOBOL [ 9 ]

ประเภท

แผนภาพแสดงวิธีการที่ผู้ใช้โต้ตอบกับซอฟต์แวร์แอปพลิเคชันบนคอมพิวเตอร์เดสก์ท็อป ทั่วไป ชั้นของซอฟต์แวร์แอปพลิเคชันจะเชื่อมต่อกับระบบปฏิบัติการซึ่งในทางกลับกันจะสื่อสารกับฮาร์ดแวร์ลูกศรแสดงถึงการไหลของข้อมูล

ซอฟต์แวร์มีสองประเภทหลัก:

  • ระบบปฏิบัติการคือ " ชั้นของซอฟต์แวร์ที่จัดการทรัพยากรของคอมพิวเตอร์สำหรับผู้ใช้และแอปพลิเคชัน ของพวกเขา " [ 10 ]ระบบปฏิบัติการมีวัตถุประสงค์หลักสามประการ: [ 11 ]
    • การจัดสรรทรัพยากรระหว่างแอปพลิเคชันต่างๆ การตัดสินใจว่าแอปพลิเคชันเหล่านั้นจะได้รับ เวลา หน่วยประมวลผลกลาง (CPU) หรือพื้นที่ในหน่วยความจำเมื่อ ใด [ 11 ]
    • จัดเตรียมอินเทอร์เฟซที่แยกรายละเอียดของการเข้าถึง รายละเอียด ฮาร์ดแวร์ (เช่น หน่วยความจำทางกายภาพ) เพื่อทำให้โปรแกรมเมอร์ทำงานได้ง่ายขึ้น[ 11 ] [ 12 ]
    • นำเสนอบริการทั่วไป เช่น อินเทอร์เฟซสำหรับการเข้าถึงอุปกรณ์เครือข่ายและดิสก์ ซึ่งช่วยให้แอปพลิเคชันสามารถทำงานบนฮาร์ดแวร์ที่แตกต่างกันได้โดยไม่จำเป็นต้องเขียนใหม่[ 13 ]
  • ซอฟต์แวร์แอปพลิเคชันทำงานบนระบบปฏิบัติการและใช้ทรัพยากรของคอมพิวเตอร์เพื่อทำงาน[ 14 ]มีซอฟต์แวร์แอปพลิเคชันหลายประเภทเนื่องจากขอบเขตของงานที่สามารถทำได้ด้วยคอมพิวเตอร์สมัยใหม่นั้นกว้างขวางมาก[ 15 ]แอปพลิเคชันคิดเป็นซอฟต์แวร์ส่วนใหญ่[ 16 ]และต้องการสภาพแวดล้อมที่จัดเตรียมโดยระบบปฏิบัติการ และบ่อยครั้งก็ต้องการแอปพลิเคชันอื่นๆ เพื่อให้สามารถทำงานได้[ 17 ]
การเปรียบเทียบฮาร์ดแวร์และซอฟต์แวร์แบบติดตั้งในองค์กรโครงสร้างพื้นฐานในรูปแบบบริการ (IaaS) แพลตฟอร์มในรูปแบบบริการ (PaaS) และซอฟต์แวร์ในรูปแบบบริการ (SaaS)

ซอฟต์แวร์ยังสามารถจำแนกประเภทตามวิธีการใช้งานได้ อีกด้วย แอปพลิเคชันแบบดั้งเดิมนั้นซื้อด้วยใบอนุญาต ถาวร สำหรับซอฟต์แวร์เวอร์ชันเฉพาะ ดาวน์โหลด และใช้งานบนฮาร์ดแวร์ที่เป็นของผู้ซื้อ[ 18 ]การเติบโตของอินเทอร์เน็ตและการประมวลผลแบบคลาวด์ทำให้เกิดโมเดลใหม่ คือซอฟต์แวร์เป็นบริการ (SaaS) [ 19 ]ซึ่งผู้ให้บริการเป็นผู้ดูแลซอฟต์แวร์ (โดยปกติสร้างขึ้นบนโครงสร้างพื้นฐานหรือแพลตฟอร์ม ที่เช่า ) [ 20 ]และให้บริการซอฟต์แวร์แก่ลูกค้า โดยมักจะแลกเปลี่ยนกับค่าธรรมเนียมการสมัครสมาชิก[ 18 ]ภายในปี 2023 ผลิตภัณฑ์ SaaS ซึ่งโดยปกติจะส่งมอบผ่านแอปพลิเคชันบนเว็บได้กลายเป็นวิธีการหลักที่บริษัทต่างๆ ส่งมอบแอปพลิเคชัน[ 21 ]

การพัฒนาและการบำรุงรักษา

แผนภาพแสดงวงจรชีวิตการพัฒนาซอฟต์แวร์ แบบดั้งเดิม จากปี 1988 ตัวเลขแสดงถึงต้นทุนโดยทั่วไปของแต่ละขั้นตอน

บริษัทซอฟต์แวร์มุ่งมั่นที่จะส่งมอบผลิตภัณฑ์คุณภาพสูงตรงเวลาและภายใต้งบประมาณ ความท้าทายคือการประมาณการความพยายามในการพัฒนาซอฟต์แวร์มักไม่แม่นยำ[ 22 ]การพัฒนาซอฟต์แวร์เริ่มต้นด้วยการคิดค้นโครงการ ประเมินความเป็นไปได้ วิเคราะห์ข้อกำหนดทางธุรกิจ และการออกแบบซอฟต์แวร์[ 23 ] [ 24 ]โครงการซอฟต์แวร์ส่วนใหญ่เร่งการพัฒนาโดย การนำซอฟต์แวร์ที่มีอยู่มา ใช้ซ้ำหรือรวมเข้าด้วยกัน ไม่ว่าจะเป็นในรูปแบบของซอฟต์แวร์สำเร็จรูปเชิงพาณิชย์ (COTS) หรือซอฟต์แวร์โอเพนซอร์ส[ 25 ] [ 26 ]การประกันคุณภาพซอฟต์แวร์ โดย ทั่วไปเป็นการผสมผสานระหว่างการตรวจสอบโค้ด ด้วยตนเอง โดยวิศวกรคนอื่นๆ[ 27 ]และการทดสอบซอฟต์แวร์ อัตโนมัติ เนื่องจากข้อจำกัดด้านเวลา การทดสอบ จึงไม่สามารถครอบคลุมทุกแง่มุมของฟังก์ชันการทำงานที่ตั้งใจไว้ของซอฟต์แวร์ ดังนั้นนักพัฒนาจึงมักมุ่งเน้นไปที่ฟังก์ชันการทำงานที่สำคัญที่สุด[ 28 ]วิธีการที่เป็นทางการถูกนำมาใช้ในระบบที่สำคัญต่อความปลอดภัยบางระบบเพื่อพิสูจน์ความถูกต้องของโค้ด[ 29 ]ในขณะที่การทดสอบการยอมรับของผู้ใช้ช่วยให้มั่นใจได้ว่าผลิตภัณฑ์ตรงตามความคาดหวังของลูกค้า[ 30 ] มี วิธีการพัฒนาซอฟต์แวร์หลากหลายวิธีซึ่งแตกต่างกันไปตั้งแต่การดำเนินการทุกขั้นตอนไปจนถึงโมเดลแบบพร้อมกันและแบบวนซ้ำ[ 31 ]การพัฒนาซอฟต์แวร์นั้นขับเคลื่อนด้วยข้อกำหนดที่ได้รับจากผู้ใช้ที่คาดหวัง ซึ่งแตกต่างจากการบำรุงรักษาที่ขับเคลื่อนด้วยเหตุการณ์ต่างๆ เช่น คำขอเปลี่ยนแปลง[ 32 ]

บ่อยครั้งที่ซอฟต์แวร์ถูกปล่อยออกมาในสภาพที่ไม่สมบูรณ์เมื่อทีมพัฒนาหมดเวลาหรือเงินทุน[ 33 ]แม้ว่าจะมีการทดสอบและการประกันคุณภาพแต่ซอฟต์แวร์เกือบทั้งหมดก็มีบั๊กที่ทำให้ระบบไม่ทำงานตามที่ตั้งใจไว้การบำรุงรักษาซอฟต์แวร์ หลังการวางจำหน่าย จึงจำเป็นเพื่อแก้ไขบั๊กเหล่านี้เมื่อพบ และทำให้ซอฟต์แวร์ทำงานได้ต่อไปแม้ว่าสภาพแวดล้อมจะเปลี่ยนแปลงไปตามกาลเวลา[ 34 ]มักมีการเพิ่มคุณสมบัติใหม่ๆ หลังจากวางจำหน่าย เมื่อเวลาผ่านไป ระดับการบำรุงรักษาจะถูกจำกัดมากขึ้นเรื่อยๆ ก่อนที่จะถูกตัดขาดโดยสิ้นเชิงเมื่อผลิตภัณฑ์ถูกถอนออกจากตลาด[ 35 ]เมื่อซอฟต์แวร์มีอายุมากขึ้นมันจะกลายเป็นที่รู้จักในชื่อซอฟต์แวร์รุ่นเก่าและสามารถใช้งานต่อไปได้เป็นเวลาหลายทศวรรษ แม้ว่าจะไม่มีใครเหลืออยู่ที่รู้วิธีแก้ไขแล้วก็ตาม[ 36 ]ตลอดอายุการใช้งานของผลิตภัณฑ์ คาดว่าการบำรุงรักษาซอฟต์แวร์จะคิดเป็น 75 เปอร์เซ็นต์หรือมากกว่าของต้นทุนการพัฒนาทั้งหมด[ 37 ] [ 38 ]

การทำโครงการซอฟต์แวร์ให้สำเร็จนั้นต้องอาศัยความเชี่ยวชาญหลายด้าน ไม่ใช่แค่โปรแกรมเมอร์ซอฟต์แวร์ เท่านั้น แต่ยังรวมถึงการทดสอบ การเขียนเอกสารการจัดการโครงการการออกแบบกราฟิกประสบการณ์ผู้ใช้การสนับสนุนผู้ใช้การตลาดและการระดมทุนด้วย[ 39 ] [ 40 ] [ 24 ]

คุณภาพและความปลอดภัย

คุณภาพซอฟต์แวร์ถูกกำหนดให้เป็นการตรงตามข้อกำหนดที่ระบุไว้รวมถึงความคาดหวังของลูกค้า[ 41 ]คุณภาพเป็นคำที่ครอบคลุมซึ่งสามารถอ้างถึงพฤติกรรมที่ถูกต้องและมีประสิทธิภาพของโค้ด ความสามารถในการนำกลับมาใช้ใหม่และการพกพาหรือความง่ายในการแก้ไข[ 42 ]โดยทั่วไปแล้วการสร้างคุณภาพลงในผลิตภัณฑ์ตั้งแต่เริ่มต้นจะคุ้มค่ากว่าการพยายามเพิ่มคุณภาพในภายหลังในกระบวนการพัฒนา[ 43 ]โค้ดที่มีคุณภาพสูงขึ้นจะช่วยลดต้นทุนตลอดอายุการใช้งานทั้งสำหรับซัพพลายเออร์และลูกค้า เนื่องจากมีความน่าเชื่อถือและบำรุงรักษาได้ง่ายกว่า [ 44 ] [ 45 ] ความล้มเหลวของซอฟต์แวร์ในระบบที่สำคัญต่อความปลอดภัยอาจส่งผลให้เกิดอันตรายร้ายแรง รวมถึงการบาดเจ็บหรือเสียชีวิต[ 44 ]จากการประมาณการบางส่วน ต้นทุนของซอฟต์แวร์คุณภาพต่ำอาจสูงถึง 20 ถึง 40 เปอร์เซ็นต์ของยอดขาย[ 46 ]แม้ว่าเป้าหมายของนักพัฒนาคือการส่งมอบผลิตภัณฑ์ที่ทำงานได้อย่างสมบูรณ์ตามที่ตั้งใจไว้ แต่ซอฟต์แวร์เกือบทั้งหมดก็มีบั๊ก[ 47 ]

การเติบโตของอินเทอร์เน็ตยังเพิ่มความต้องการด้านความปลอดภัยของคอมพิวเตอร์ อย่างมาก เนื่องจากทำให้ผู้ไม่ประสงค์ดีสามารถทำการโจมตีทางไซเบอร์จากระยะไกลได้[ 48 ] [ 49 ]หากบั๊กก่อให้เกิดความเสี่ยงด้านความปลอดภัย จะเรียกว่าช่องโหว่[ 50 ] [ 51 ] มักมีการออก แพตช์ซอฟต์แวร์เพื่อแก้ไขช่องโหว่ที่ระบุ แต่ช่องโหว่ที่ยังไม่เป็นที่รู้จัก ( zero day ) รวมถึงช่องโหว่ที่ยังไม่ได้รับการแก้ไขก็ยังคงมีความเสี่ยงต่อการถูกโจมตี[ 52 ]ช่องโหว่มีความแตกต่างกันในความสามารถที่จะถูกโจมตีโดยผู้ไม่ประสงค์ดี[ 50 ]และความเสี่ยงที่แท้จริงขึ้นอยู่กับลักษณะของช่องโหว่รวมถึงมูลค่าของระบบโดยรอบ[ 53 ]แม้ว่าช่องโหว่บางอย่างจะใช้ได้เฉพาะสำหรับ การโจมตี แบบปฏิเสธการให้บริการที่ทำให้ระบบไม่สามารถใช้งานได้ แต่ช่องโหว่อื่นๆ อนุญาตให้ผู้โจมตีแทรกและเรียกใช้โค้ดของตนเอง (เรียกว่ามัลแวร์ ) โดยที่ผู้ใช้ไม่รู้ตัว[ 50 ]เพื่อป้องกันการโจมตีทางไซเบอร์ ซอฟต์แวร์ทั้งหมดในระบบจะต้องได้รับการออกแบบให้ทนทานและฟื้นตัวจากการโจมตีจากภายนอก[ 49 ]แม้จะมีความพยายามในการรักษาความปลอดภัย แต่คอมพิวเตอร์จำนวนมากยังคงติดมัลแวร์[ 54 ]

การเข้ารหัสและการดำเนินการ

ภาษาโปรแกรม

นี่คือซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีบรรทัดสีเทาคือคำอธิบายที่อธิบายการทำงานของโปรแกรมให้มนุษย์เข้าใจ เมื่อคอมไพล์และรันแล้วจะแสดงผลเป็น " Hello, world! "

ภาษาโปรแกรมคือรูปแบบที่ใช้เขียนซอฟต์แวร์ นับตั้งแต่ทศวรรษ 1950 มีการคิดค้นภาษาโปรแกรมที่แตกต่างกันหลายพันภาษา บางภาษามีการใช้งานมานานหลายทศวรรษ ในขณะที่บางภาษาก็เลิกใช้ไปแล้ว[ 55 ]บางคำจำกัดความจัดประเภทรหัสเครื่อง —คำสั่งที่แน่นอนซึ่งฮาร์ดแวร์นำไปใช้โดยตรง—และภาษาแอสเซมบลี —ทางเลือกที่มนุษย์อ่านได้ง่ายกว่ารหัสเครื่องซึ่งสามารถแปลคำสั่งเป็นรหัสเครื่องได้แบบหนึ่งต่อหนึ่ง—เป็นภาษาโปรแกรม[ 56 ]โปรแกรมที่เขียนด้วยภาษาโปรแกรมระดับสูงที่ใช้สร้างซอฟต์แวร์มีลักษณะสำคัญร่วมกันอยู่ไม่กี่ประการ ได้แก่ ไม่จำเป็นต้องมีความรู้เกี่ยวกับรหัสเครื่องในการเขียนโปรแกรม สามารถพอร์ตไปยังระบบคอมพิวเตอร์อื่นได้ และกระชับและอ่านง่ายกว่ารหัสเครื่อง[ 57 ]ต้องอ่านง่ายและสามารถแปลเป็นคำสั่งที่ชัดเจนสำหรับฮาร์ดแวร์คอมพิวเตอร์ได้[ 58 ]

การรวบรวม การตีความ และการดำเนินการ

การคิดค้นภาษาโปรแกรมระดับสูงเกิดขึ้นพร้อมกับการพัฒนาคอมไพเลอร์ที่จำเป็นในการแปลงภาษาเหล่านั้นเป็นรหัสเครื่องโดยอัตโนมัติ[ 59 ]โปรแกรมส่วนใหญ่ไม่มีทรัพยากรทั้งหมดที่จำเป็นในการทำงานและต้องพึ่งพาไลบรารี ภายนอก หน้าที่ส่วนหนึ่งของคอมไพเลอร์คือการเชื่อมโยงไฟล์เหล่านี้ในลักษณะที่โปรแกรมสามารถทำงานบนฮาร์ดแวร์ได้ เมื่อคอมไพล์เสร็จแล้ว โปรแกรมสามารถบันทึกเป็นไฟล์ออบเจ็กต์ได้และตัวโหลด (ส่วนหนึ่งของระบบปฏิบัติการ) สามารถนำไฟล์ที่บันทึกไว้นี้ไปเรียกใช้เป็นกระบวนการบนฮาร์ดแวร์คอมพิวเตอร์ได้[ 60 ]ภาษาโปรแกรมบางภาษาใช้ตัวแปล ภาษา แทนคอมไพเลอร์ ตัวแปลภาษาจะแปลงโปรแกรมเป็นรหัสเครื่องในระหว่างการทำงานซึ่งทำให้ช้ากว่าภาษาโปรแกรมที่คอมไพล์แล้ว 10 ถึง 100 เท่า[ 61 ] [ 62 ]

ความรับผิด

ซอฟต์แวร์มักถูกปล่อยออกมาโดยที่ผู้ซื้อรู้ว่าซอฟต์แวร์นั้นยังไม่สมบูรณ์หรือมีข้อบกพร่อง ผู้ซื้อซื้อซอฟต์แวร์ในสภาพนี้โดยรู้เท่าทัน ซึ่งส่งผลให้ระบบกฎหมาย จำกัดความ รับผิดชอบต่อผลิตภัณฑ์ซอฟต์แวร์ไว้น้อยกว่าผลิตภัณฑ์อื่นๆ มาก[ 63 ]

ใบอนุญาต

Blenderเป็นโปรแกรมซอฟต์แวร์ฟรี

ตั้งแต่ช่วงกลางทศวรรษ 1970 ซอฟต์แวร์และซอร์สโค้ดได้รับการคุ้มครองโดยกฎหมายลิขสิทธิ์ซึ่งมอบสิทธิ์แต่เพียงผู้เดียวแก่เจ้าของในการคัดลอกโค้ด แนวคิดหรืออัลกอริทึมพื้นฐานไม่ได้รับการคุ้มครองโดยกฎหมายลิขสิทธิ์ แต่บางครั้งถือเป็นความลับทางการค้าและปกปิดโดยวิธีการต่างๆ เช่นข้อตกลงการไม่เปิดเผยข้อมูล [ 64 ] ลิขสิทธิ์ซอฟต์แวร์มักเป็นของบุคคลหรือบริษัทที่ให้เงินทุนหรือสร้างซอฟต์แวร์ (ขึ้นอยู่กับสัญญาที่ทำกับพนักงานหรือผู้รับเหมาที่ช่วยเขียนซอฟต์แวร์นั้น) [ 65 ]ซอฟต์แวร์บางอย่างอยู่ในโดเมนสาธารณะและไม่มีข้อจำกัดว่าใครสามารถใช้ คัดลอก แบ่งปัน หรือแก้ไขได้ ตัวอย่างที่โดดเด่นคือซอฟต์แวร์ที่เขียนโดยรัฐบาลสหรัฐอเมริกาซอฟต์แวร์ฟรีและโอเพนซอร์สยังอนุญาตให้ใช้งาน แบ่งปัน และแก้ไขได้อย่างอิสระ อาจมีเงื่อนไขที่ระบุไว้บ้าง[ 65 ] การใช้ซอฟต์แวร์บางอย่างอยู่ภายใต้ข้อตกลง ( ใบอนุญาตซอฟต์แวร์ ) ที่เขียนโดยผู้ถือลิขสิทธิ์และบังคับใช้กับผู้ใช้ซอฟต์แวร์กรรมสิทธิ์มักจะขายภายใต้ใบอนุญาตที่จำกัดการใช้งานและการแบ่งปัน[ 66 ]ใบอนุญาตซอฟต์แวร์เสรีบางประเภทกำหนดให้ต้องเผยแพร่เวอร์ชันที่แก้ไขภายใต้ใบอนุญาตเดียวกัน ซึ่งป้องกันไม่ให้ซอฟต์แวร์ถูกขายหรือแจกจ่ายภายใต้ข้อจำกัดที่เป็นกรรมสิทธิ์[ 67 ]

สิทธิบัตร

สิทธิบัตรให้สิทธิ์แก่นักประดิษฐ์ในการใช้ผลิตภัณฑ์หรือกระบวนการใหม่แต่เพียงผู้เดียวและมีระยะเวลาจำกัด[ 68 ]แนวคิดเกี่ยวกับสิ่งที่ซอฟต์แวร์สามารถทำได้นั้นไม่ได้รับการคุ้มครองโดยกฎหมาย และการนำไปใช้งานจริงจะได้รับการคุ้มครองโดยกฎหมายลิขสิทธิ์ แทน ในบางประเทศ ข้อกำหนดที่ว่าสิ่งประดิษฐ์ที่อ้างสิทธิ์จะต้องมีผลกระทบต่อโลกทางกายภาพอาจเป็นส่วนหนึ่งของข้อกำหนดสำหรับสิทธิบัตรซอฟต์แวร์ที่จะถือว่าถูกต้อง[ 69 ]สิทธิบัตรซอฟต์แวร์เป็นประเด็นถกเถียงกันมาโดยตลอด ก่อนคดีState Street Bank & Trust Co. v. Signature Financial Group, Inc. ในปี 1998 สิทธิบัตรซอฟต์แวร์โดยทั่วไปไม่ได้รับการยอมรับในสหรัฐอเมริกา ในคดีนั้นศาลฎีกาตัดสินว่ากระบวนการทางธุรกิจสามารถจดสิทธิบัตรได้[ 70 ]การยื่นขอสิทธิบัตรมีความซับซ้อนและมีค่าใช้จ่ายสูง และคดีความที่เกี่ยวข้องกับสิทธิบัตรอาจทำให้ต้นทุนของผลิตภัณฑ์สูงขึ้น[ 71 ]แตกต่างจากลิขสิทธิ์ สิทธิบัตรโดยทั่วไปจะมีผลบังคับใช้เฉพาะในเขตอำนาจศาลที่ออกสิทธิบัตรเท่านั้น[ 72 ]

ผลกระทบ

การจำลองที่สร้างขึ้นด้วยคอมพิวเตอร์เป็นหนึ่งในความก้าวหน้าที่เกิดจากซอฟต์แวร์[ 73 ]

วิศวกรCapers Jonesเขียนว่า "คอมพิวเตอร์และซอฟต์แวร์กำลังเปลี่ยนแปลงทุกแง่มุมของชีวิตมนุษย์อย่างลึกซึ้ง ไม่ว่าจะเป็นการศึกษา การทำงาน สงคราม ความบันเทิง การแพทย์ กฎหมาย และทุกสิ่งทุกอย่าง" [ 74 ]มันกลายเป็นสิ่งที่พบเห็นได้ทั่วไปในชีวิตประจำวันในประเทศที่พัฒนาแล้ว [ 75 ] ในหลายกรณี ซอฟต์แวร์ช่วยเพิ่มฟังก์ชันการทำงานของเทคโนโลยีที่มีอยู่แล้ว เช่นเครื่องใช้ใน ครัวเรือน และลิฟต์[ 76 ]ซอฟต์แวร์ยังก่อให้เกิดเทคโนโลยีใหม่ๆ อย่างสิ้นเชิง เช่นอินเทอร์เน็ตวิดีโอเกมโทรศัพท์มือถือและGPS [ 76 ] [ 77 ]วิธีการสื่อสารใหม่ๆ รวมถึงอีเมลอรัมบล็อกไมโครบล็อกวิกิและโซเชียลมีเดียเกิดขึ้นได้ด้วยอินเทอร์เน็ต[ 78 ] ปัจจุบันความ รู้จำนวนมหาศาลที่เกินกว่าห้องสมุดแบบกระดาษใดๆ สามารถเข้าถึงได้ด้วย การค้นหา บนเว็บ อย่างรวดเร็ว [ 77 ]ผู้เชี่ยวชาญด้านงานสร้างสรรค์ส่วนใหญ่ได้เปลี่ยนไปใช้เครื่องมือที่ใช้ซอฟต์แวร์ เช่นการออกแบบโดยใช้คอมพิวเตอร์ช่วยการสร้างแบบจำลอง 3 มิติการแก้ไขภาพดิจิทัลและ แอนิเมชั่ นคอมพิวเตอร์[ 73 ]อุปกรณ์ที่ซับซ้อนเกือบทุกชนิดถูกควบคุมด้วยซอฟต์แวร์[ 77 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Software&oldid=1360134349 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ซอฟต์แวร์

ซอฟต์แวร์ (SW) ประกอบด้วย โปรแกรมคอมพิวเตอร์ ที่ สั่งการ ให้ คอมพิวเตอร์ดำเนิน การ [ 1 ] ซอฟต์แวร์ยังรวมถึงเอกสารการออกแบบและข้อกำหนดด้วย

ประวัติศาสตร์

การใช้คำว่า ซอฟต์แวร์ เพื่ออธิบายโปรแกรมคอมพิวเตอร์ครั้งแรกนั้นได้รับการยกย่องให้แก่ จอห์น ไวลเดอร์ ทูคีย์ นักคณิตศาสตร์ ในปี 1958 [ 2 ] [ 3 ] [ 4 ] คอมพิวเตอร์ที่ตั้งโปรแกรมได้เครื่องแรก ซึ่งปรากฏขึ้นในช่วงปลายทศวรรษ 1940 [ 5 ] ถูกตั้งโปรแกรมด้วย ภาษาเครื่อง...

การพัฒนาและการบำรุงรักษา

บริษัทซอฟต์แวร์มุ่งมั่นที่จะส่งมอบผลิตภัณฑ์คุณภาพสูงตรงเวลาและภายใต้งบประมาณ ความท้าทายคือ การประมาณการความพยายามในการพัฒนาซอฟต์แวร์ มักไม่แม่นยำ [ 22 ] การพัฒนาซอฟต์แวร์ เริ่มต้นด้วยการคิดค้นโครงการ ประเมินความเป็นไปได้ วิเคราะห์ข้อกำหนดทางธุรกิจ...

คุณภาพและความปลอดภัย

คุณภาพซอฟต์แวร์ ถูกกำหนดให้เป็นการตรงตามข้อกำหนดที่ระบุไว้รวมถึงความคาดหวังของลูกค้า [ 41 ] คุณภาพเป็นคำที่ครอบคลุมซึ่งสามารถอ้างถึงพฤติกรรมที่ถูกต้องและมีประสิทธิภาพของโค้ด ความสามารถในการนำกลับมาใช้ใหม่และ การพกพา หรือความง่ายในการแก้ไข [ 42 ]...