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