สำหรับการถ่ายก่อนหน้าดูการแก้ไข 1 ของคำตอบนี้ อย่างไรก็ตามความคิดเห็นและการแก้ไขของคำถามนั้นทำให้ชัดเจนยิ่งขึ้นเกี่ยวกับสิ่งที่คำถามกำลังค้นหาและทำให้ฉันชัดเจนยิ่งขึ้น
ใช่วิศวกรรมซอฟต์แวร์เชิงหลักฐาน (EBSE) เป็นสิ่งหนึ่ง มีที่ดูเหมือนจะเป็นความพยายามที่ไม่กี่ไปยังฐานข้อมูล EBSE เช่นนี้ที่มหาวิทยาลัยเดอร์แฮมและเมล็ดพันธุ์ซึ่งถูกตั้งขึ้นโดยอาจารย์ที่อาชีวะ ความพยายามทั้งหมดเหล่านี้รวมถึงสิ่งที่กล่าวถึงในเอกสารจำนวนหนึ่งที่สามารถพบได้ผ่านเซิร์ฟเวอร์ IEEE XploreหรือACM Digital Library(การสมัครสมาชิกหรือการซื้อที่จำเป็นสำหรับเอกสารจำนวนมากในทั้งสอง) จะขึ้นอยู่กับยาตามหลักฐาน พวกเขาให้ความคิดเห็นวรรณกรรมของข้อมูลเชิงประจักษ์ (การสังเกตและการทดลอง) ที่เผยแพร่ ในความเป็นจริงรวมถึง "การตรวจสอบวรรณกรรม" ในสตริงการค้นหาในการค้นหาสิ่งพิมพ์ใด ๆ ที่ให้ข้อมูลในหัวข้อส่วนใหญ่ - มากกว่า 14000 ครั้งใน ACM และมากกว่า 1,000 ในฐานข้อมูล IEEE (เมื่อ จำกัด เฉพาะหัวข้อการคำนวณเท่านั้น)
เมื่อดูที่หัวข้อประเภททั่วไปที่กล่าวถึงในฐานข้อมูล EBSE และการทบทวนวรรณกรรมฉันเห็นหัวข้อทั่วไป - พวกเขามักจะเป็นอิสระจากเทคโนโลยี ดูเหมือนจะเน้นเป็นศูนย์กลางรอบกระบวนการและวิธีการมากกว่าเครื่องมือเฉพาะที่ใช้ในการดำเนินการวิศวกรรมซอฟต์แวร์
ดังนั้นแนวคิดนี้มีอยู่ในวิศวกรรมซอฟต์แวร์ Academia ตระหนักถึงแนวคิดที่อิงหลักฐานเชิงประจักษ์และสามารถนำไปใช้กับวิศวกรรมซอฟต์แวร์ได้สำเร็จ
โดยเฉพาะคำถามที่ใช้เทคนิค EBSE เพื่อเลือกกระบวนทัศน์ที่ดูเหมือนยากเนื่องจากจำนวนของตัวแปรที่เกี่ยวข้องบังคับให้สมมติฐานที่จะทำเช่นเดียวกับการลดความสามารถในการทำซ้ำการทดลองหรือการสังเกต มันกล่าวว่าถูกต้องในคำถาม - "ซึ่งกระบวนทัศน์ออกมาเป็น 'คำตอบที่ถูกต้อง' สามารถขึ้นอยู่กับสิ่งที่ตัวชี้วัดการศึกษาโดยเฉพาะอย่างยิ่งให้ความสำคัญกับบนเงื่อนไขว่าการศึกษาถือคงที่หรือแตกต่างกันไปและไม่ต้องสงสัยเลยกับปัจจัยอื่น ๆ ด้วย" แม้ว่านั่นไม่ได้หมายความว่าการศึกษากระบวนทัศน์ใดที่ "ดีที่สุด" ในสถานการณ์ที่กำหนด แต่มันก็ทำให้การทบทวนวรรณกรรมประเภทใด ๆ ของเอกสารเหล่านี้เป็นเรื่องยากอย่างเหลือเชื่อที่จะทำให้สมบูรณ์
ไม่มีทางออก "หมุนข้อเหวี่ยง" ในการเลือกกระบวนทัศน์
ด้วยกระบวนทัศน์การเขียนโปรแกรมคุณสามารถค้นหาการศึกษาในฐานข้อมูลทางวิชาการและอุตสาหกรรมต่าง ๆ เกี่ยวกับวิธีการที่กระบวนทัศน์มีอิทธิพลต่อแง่มุมต่าง ๆ ของการพัฒนาซอฟต์แวร์ - คุณภาพข้อบกพร่องประสิทธิภาพและอื่น ๆ - ภายใต้เงื่อนไขเฉพาะต่างๆตั้งแต่ความรู้และประสบการณ์ของ ทีมไปยังโดเมนปัญหา กระดาษที่เข้มงวดควรระบุเงื่อนไขที่รวบรวมข้อมูลและสมมติฐานอย่างชัดเจน ปัญหาจะพยายามแยกปัจจัยที่ทำให้ดีในแต่ละเงื่อนไขเหล่านั้น
ในทางวิชาการมีข้อความบางส่วนที่ง่ายต่อการวิจัย ยกตัวอย่างเช่นคำว่ากระบวนทัศน์การทำงานจะดีเหมาะแก่การใช้งานที่ต้องเห็นพ้องเกิดจากทฤษฎีบทโบสถ์ร็อส ด้วยเหตุนี้จึงเป็นไปได้ว่าระบบซอฟต์แวร์ที่เขียนในภาษาที่ใช้งานได้จะมีข้อบกพร่องน้อยลงที่เกี่ยวข้องกับการเกิดพร้อมกันมากกว่าระบบเดียวกันที่เขียนในขั้นตอนหรือภาษาเชิงวัตถุ
อย่างไรก็ตามจากมุมมองเชิงปฏิบัติทีมซอฟต์แวร์ไม่สามารถใช้เครื่องมือหรือเทคนิคที่ดีที่สุดสำหรับงานเพียงเพราะการวิจัยระบุ แม้ว่าเราจะพยายามผลิตระบบซอฟต์แวร์ที่มีคุณภาพสูงสุด แต่เราดำเนินงานภายใต้ข้อ จำกัด บ่อยครั้งที่ฉันเห็นข้อ จำกัด เหล่านี้ย่อเล็กสุด (หรือลบออกจากสมการ) เมื่อพูดถึงประสิทธิภาพของวิธีการใด ๆ
ในฐานะผู้ฝึกหัดเมื่อฉันมีส่วนร่วมในการเลือกใช้เทคโนโลยีฉันพยายามระบุเครื่องมือที่ดีที่สุดเท่าที่จะเป็นไปได้ แต่จากนั้นฉัน จำกัด ตัวเองให้เป็นที่รู้จักและเข้าใจโดยทีมที่ฉันมี กลับไปที่ตัวอย่างก่อนหน้าของฉันถ้าฉันมีทีมงานที่เชี่ยวชาญในการสร้างแอปพลิเคชันที่เกิดขึ้นพร้อมกันใน C ++ และไม่มีประสบการณ์ใน Haskell มันไม่สมเหตุสมผลเลยที่จะเสนอการสร้างระบบใน Haskell อย่างที่ฉันคิดว่าจะไม่สามารถทำได้ ข้อ จำกัด ด้านเวลาและงบประมาณและคุณภาพของฉันอาจได้รับผลกระทบเนื่องจากขาดประสบการณ์ด้านเครื่องมือ
ในการสรุป, วิศวกรรมซอฟต์แวร์เชิงหลักฐานโดยทั่วไปเป็นสิ่งที่ดีที่มีอยู่และการทบทวนวรรณกรรมมีอยู่จริงและพร้อมใช้งาน อย่างไรก็ตามมีบางแง่มุมของวิศวกรรมซอฟต์แวร์ที่ใช้วิธีการตามหลักฐานมีค่าน้อย การเลือกกระบวนทัศน์การเขียนโปรแกรมสู่การพัฒนาขนาดใหญ่เป็นหนึ่งในสิ่งเหล่านี้
หากคุณต้องการทราบว่าการวางแนววัตถุสามารถนำมาใช้ซ้ำหรือข้อบกพร่องในการเขียนโปรแกรมเชิงฟังก์ชันได้อย่างไรคุณจะพบสิ่งตีพิมพ์เกี่ยวกับสิ่งเหล่านั้นได้อย่างง่ายดาย อย่างไรก็ตามฉันไม่พบ (และฉันจะไม่ให้ความไว้วางใจในจำนวนมาก) สิ่งพิมพ์ที่สามารถระบุกระบวนทัศน์ที่มีประสิทธิภาพในช่วงกว้างของโครงการวิศวกรรมซอฟต์แวร์ในโลกแห่งความเป็นจริง