การออกแบบซอฟต์แวร์

จาก วิกิตำรา

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

ภาพรวม[แก้ไข | แก้ไขต้นฉบับ]

การวิเคราะห์ความต้องการของซอฟต์แวร์ (SRA) เป็นขั้นตอนข้อจำกัดของกระบวนการพัฒนาซอฟต์แวร์ที่ใช้กันในวิศวกรซอฟต์แวร์ ถ้าซอฟต์แวร์เป็นกึ่งอัตโนมัติ หรือเป็นแบบผู้ใช้เป็นศูนย์กลาง การออกแบบซอฟต์แวร์อาจจะเกี่ยวข้องกับประสบการณ์ของผู้ใช้โดยอาจมีกระดานเล่าเรื่องมาช่วยในการหาข้อตัดสินใจเกี่ยวกับข้อกำหนดเหล่านั้น ถ้าหากซอฟต์แวร์เป็นแบบสำเร็จโดยอัตโนมัติ (ไม่มีหน้าจอสำหรับผู้ใช้) การออกแบบซอฟต์แวร์มักจะมีรูปแบบง่ายๆ อาจมีเพียงผังการไหลของโปรแกรม (Flow chart) หรือข้อความอธิบายรายละเอียดแผนการลำดับการทำงานต่างๆ เป็นต้น มีกรรมวิธีกึ่งมาตรฐานหลายอย่างเช่น UML หรือ Fundamental modeling concepts ในกรณีอื่นๆ เอกสารแผนงานบางอย่างก็ใช้เป็นผลิตผลของการออกแบบได้ การออกแบบซอฟต์แวร์ จะไม่ขึ้นอยู่กับแพลตฟอร์ม หรือไม่ได้กำหนดแพลตฟอร์ม เป็นอิสระที่สามารถพร้อมใช้งานได้ตามเทคโนโลยีที่จะนำไปใช้ได้เลย ดีร

หัวข้อการออกแบบซอฟต์แวร์[แก้ไข | แก้ไขต้นฉบับ]

แนวความคิดเกี่ยวกับการออกแบบ[แก้ไข | แก้ไขต้นฉบับ]

แนวความคิดเกี่ยวกับการออกแบบแยกออกเป็นการออกแบบซอฟต์แวร์ด้วยแบบพื้นฐานจากวิธีที่ต้องอาศัยประสบการณ์ มากที่จะสามารถนำมาประยุกต์ใช้ได้ การจัดทำพื้นฐานของแนวความคิดได้มีการพัฒนาขึ้นอย่างต่อเนื่อง นั่นก็คือ

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

การพิจารณาการออกแบบ[แก้ไข | แก้ไขต้นฉบับ]

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