สถาปัตยกรรมซอฟต์แวร์เป็นศาสตร์ทางวิทยาศาสตร์

สารบัญ:

Anonim

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

บทนำ

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

ในฐานะที่เป็นระเบียบวินัยที่ดีนั้นใหม่กว่าที่สงสัยกันโดยทั่วไป ขั้นตอนแรกถูกพบในการสะท้อนในปี 1968 ของ Edsger Dijkstra เกี่ยวกับการสร้างโครงสร้างที่ถูกต้องของระบบซอฟต์แวร์ก่อนที่จะเริ่มเข้าสู่การเขียนโปรแกรม ต่อมาในการประชุมนาโต้ในปี 2512 PISharp ได้กำหนดกลุ่มของข้อมูลเชิงลึกที่น่าประหลาดใจแสดงความคิดเห็นเกี่ยวกับความคิดของ Dijkstra ซึ่งสร้างความแตกต่างระหว่างวิศวกรรมและสถาปัตยกรรมซอฟต์แวร์ จนกระทั่งถึงยุค 90 คำศัพท์ในรูปแบบที่แตกต่างกันโดยเฉพาะอย่างยิ่งการเชื่อมโยงอย่างใกล้ชิดกับการออกแบบมีการพูดคุยของระดับที่เป็นนามธรรมอย่างไรก็ตามองค์ประกอบของการตัดสินที่อนุญาตให้อ้างความต้องการสำหรับ วินัยและอาชีพโดยเฉพาะ

ผลลัพธ์และการสะท้อนกลับ

หลังจากการวิเคราะห์บรรณานุกรมของแหล่งข้อมูล“ การศึกษาสถาปัตยกรรมซอฟต์แวร์ผ่านช่องว่างการออกแบบและกฎระเบียบ” โดย Thomas G. Lane ได้รับการยอมรับว่าเป็นหนังสือเล่มแรกที่ตีพิมพ์โดย SEI ในเรื่องของ SA ในปี 1990 ในเลนนี้เขาได้นิยามคำนิยามของ AS ตามแนวคิดที่นำเสนอโดย Mary Shaw ในปีที่แล้วในหนังสือของเธอที่ชื่อว่า "ระบบเครื่องชั่งขนาดใหญ่ที่ต้องการบทคัดย่อระดับสูงกว่า" นำเสนอในการสัมมนานานาชาติครั้งที่ 5 เรื่องคุณสมบัติและการออกแบบซอฟต์แวร์ และเผยแพร่โดย IEEE Computer Society Lane กำหนด AS เป็น:

… “ สถาปัตยกรรมซอฟต์แวร์คือการศึกษาของโครงสร้างขนาดใหญ่และประสิทธิภาพการทำงานของระบบซอฟแวร์ลักษณะสำคัญของสถาปัตยกรรมของระบบรวมถึงการแบ่งหน้าที่ระหว่างโมดูลของระบบวิธีการสื่อสารระหว่างโมดูลและการแสดงข้อมูลที่ใช้ร่วมกัน”

จะสังเกตได้ว่าแนวคิดของส่วนประกอบ (“ การแบ่งหน้าที่ระหว่างโมดูลของระบบ”) และตัวเชื่อมต่อ (“ วิธีการสื่อสารระหว่างโมดูล”) นั้นเกิดขึ้นภายในคำจำกัดความอย่างไร ในหนังสือเล่มนี้ Lane ให้แนวคิดที่น่าสนใจ "ช่องว่างการออกแบบ" ซึ่งเป็นกรอบสำหรับการสร้างมาตรฐานที่สามารถช่วยนักออกแบบในการเลือกสถาปัตยกรรมที่เหมาะสมสำหรับความต้องการใช้งานของระบบใหม่ มันน่าสนใจเพราะเห็นว่าบทบาทของสถาปนิกซอฟต์แวร์ยังไม่ได้รับการยอมรับงานนี้จึงถูกมอบหมายโดยตรงให้กับผู้ออกแบบซอฟต์แวร์

หลังจากการสนับสนุนนี้แนวโน้มที่ถูกทำเครื่องหมายจะถูกตรวจพบต่อการค้นหาโมเดลโครงสร้างซอฟต์แวร์และชุดของโมเดลโดเมนได้รับการออกแบบตามการออกแบบทั่วไปเช่น DSSA (สถาปัตยกรรมซอฟต์แวร์เฉพาะโดเมน) ที่จัดทำโดย Mettala และเกรแฮมในปี 1992

มันไม่ได้จนกว่าจะเปิดตัวหนังสือ "An Introduction to Software Architecture" โดย Mary Shaw และ David Garlan ในปี 1994 ที่พวกเขาโต้แย้งว่าเนื่องจากการเพิ่มขึ้นของขนาดและความซับซ้อนของผลิตภัณฑ์ซอฟต์แวร์ปัญหาหลักไม่ได้อยู่อีกต่อไป ในอัลกอริทึมและโครงสร้างข้อมูล แต่มุ่งเป้าไปที่องค์กรของส่วนประกอบที่ประกอบกันเป็นระบบจึงแนะนำความต้องการในการสร้าง SA เป็นวินัยทางวิทยาศาสตร์วัตถุของการศึกษาซึ่งเป็นเพียง การกำหนดกรอบความคิดที่สร้างองค์กรระดับสูงของระบบความสัมพันธ์ระหว่างส่วนประกอบต่าง ๆ ที่ประกอบขึ้นและหลักการที่เป็นแนวทางในการออกแบบและวิวัฒนาการ

ในบทความนี้คำว่า "รูปแบบสถาปัตยกรรม" ถูกนำมาใช้เป็นครั้งแรกและมีการกำหนดช่วงกว้างของสิ่งเหล่านี้: ท่อและตัวกรองพื้นที่เก็บข้อมูลสถาปัตยกรรมเลเยอร์สถาปัตยกรรมตามเหตุการณ์ ฯลฯ

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

ในปีเดียวกันปี 1994 ซึ่งถือได้ว่าเป็น "ปีทองแห่งสถาปัตยกรรมซอฟต์แวร์" อีกเหตุการณ์หนึ่งที่เกี่ยวข้องกับสถาปัตยกรรมเกิดขึ้น Mary Shaw และ David Garlan เปิดตัวแนวคิดของคำอธิบายสถาปัตยกรรม (ADLs) ในหนังสือของพวกเขา "ลักษณะของภาษาระดับสูงสำหรับสถาปัตยกรรมซอฟต์แวร์" การศึกษาบ่งชี้ถึงทางเลือกที่มีให้สำหรับคำจำกัดความของ SA ของระบบ ประการแรกผ่านการทำให้เป็นมาตรฐานของเครื่องมือการเขียนโปรแกรมที่มีอยู่และโมดูลการเชื่อมต่อระหว่างพวกเขาและประการที่สองเพื่ออธิบายการออกแบบของพวกเขาโดยใช้ไดอะแกรมอย่างไม่เป็นทางการและวลีสำนวน จากการสะท้อนเหล่านี้พวกเขากำหนดชุดของระเบียบและคุณสมบัติเฉพาะซึ่งก่อให้เกิดพื้นฐานของ ADL

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

เหตุการณ์ที่เกี่ยวข้องอีกเหตุการณ์หนึ่งคือการเปิดตัววิทยานิพนธ์ของ Roy Fielding ในปี 2000 ซึ่งเขาได้นำเสนอแบบจำลอง REST ซึ่งเป็นผู้กำหนดหัวข้อของเทคโนโลยีอินเทอร์เน็ตและการบริการและแบบจำลองเชิงทรัพยากรที่เป็นศูนย์กลาง ของวินัย ในปีเดียวกันนั้นได้มีการเผยแพร่คำแนะนำ IEEE Std 1471 รุ่นสุดท้ายซึ่งพยายามที่จะทำให้เป็นเนื้อเดียวกันและสั่งให้ระบบการตั้งชื่อของคำอธิบายสถาปัตยกรรมและรูปแบบคล้ายคลึงกันเป็นแบบจำลองพื้นฐานของการแสดงแนวคิด

สิ่งพิมพ์ที่จัดทำโดย SEI ที่เกี่ยวข้องกับ AS ตั้งแต่ปี 1990 ถึงปัจจุบันสะท้อนให้เห็นในตารางด้านล่างสะท้อนให้เห็นถึงการจัดตั้งชุมชนที่ดำเนินการวิจัยและพัฒนาทางวิทยาศาสตร์ในสาขาวิชา

สรุปผลการวิจัย

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

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

บรรณานุกรม

  1. Lane, Thomas G. การศึกษาสถาปัตยกรรมซอฟต์แวร์ผ่านช่องว่างและกฎการออกแบบ มหาวิทยาลัย Carnegie Mellon: Pittsburgh, Pennsylvania 15213, November 1990 http://www.sei.cmu.edu/pub/documents/90.reports/pdf/tr18.90.pdf CMU / SEI-90-TR-18.D Garlan, M. Shaw ความรู้เบื้องต้นเกี่ยวกับสถาปัตยกรรมซอฟต์แวร์ มกราคม 2537 http://www.sei.cmu.edu/publications/documents/94.reports/94.tr.021.html CMU / SEI-94-TR-021.Mary Shaw, David Garlan ลักษณะของภาษาระดับสูงสำหรับซอฟต์แวร์การควบคุมการเข้าถึงข้อมูล เพนซิล: สถาบันวิศวกรรมซอฟต์แวร์, 1994. CMU / SEI-94-TR-023.Shaw, Mary. ระบบที่มีขนาดใหญ่ขึ้นนั้นต้องการ Abstractions ระดับสูง sl: IEEE Computer Society, พฤษภาคม 1989. pp. 143-146 เล่มที่ 14 เล่มที่ 3, ฉบับที่ห้าของการประชุมเชิงปฏิบัติการนานาชาติเรื่องข้อกำหนดซอฟต์แวร์ หมายเหตุวิศวกรรมซอฟท์แว ACM SIGSOFT.Fielding Roy Thomasลักษณะทางสถาปัตยกรรมและการออกแบบสถาปัตยกรรมซอฟต์แวร์ที่ใช้เครือข่าย มหาวิทยาลัยแห่งแคลิฟอร์เนีย. เออร์: sn, 2000. วิทยานิพนธ์ปริญญาเอกอาหารเสริม, พอล สิ่งที่ดึงดูดใจใน Software Arquitecture Pennsylvania, USA: สถาบันวิศวกรรมซอฟต์แวร์, มหาวิทยาลัย Carnegie Mellon, มกราคม, 1996. CMU / SEI-96-TR-008. Erik Mettala, Marc H. Graham. โปรแกรมสถาปัตยกรรมซอฟต์แวร์เฉพาะโดเมน sl: รายงานพิเศษ, มิถุนายน 1992 CMU / SEI-92-SR-009รายงานพิเศษ, มิถุนายน 2535 CMU / SEI-92-SR-009รายงานพิเศษ, มิถุนายน 2535 CMU / SEI-92-SR-009
สถาปัตยกรรมซอฟต์แวร์เป็นศาสตร์ทางวิทยาศาสตร์