3 ปัญหาที่สามารถพาโครงการวิศวกรรมไปเผชิญกับความยากลำบากโดยไม่ได้ตั้งใจคือ การสื่อสาร (Communication), ความเข้าใจ (Understanding) และ ความซับซ้อน (Complexity)
การสื่อสารระหว่างทีมพัฒนาระบบ ทีมผู้ใช้ และทีมผู้จัดการ เป็นสิ่งสำคัญ ถ้าการสื่อสารไม่ชัดเจนหรือไม่ต่อเนื่อง อาจนำไปสู่ความเข้าใจผิด หรือความต้องการที่ไม่ถูกต้องถูกส่งต่อไปยังขั้นตอนการพัฒนา ซึ่งอาจทำให้เกิดความล่าช้าหรือระบบไม่ตอบโจทย์
การทำให้ทุกคนที่เกี่ยวข้องมีความเข้าใจตรงกันเกี่ยวกับระบบนั้นเป็นความท้าทาย การที่แต่ละคนมีความเข้าใจแตกต่างกันเกี่ยวกับวิธีการทำงานหรือเป้าหมายของระบบอาจส่งผลต่อการทำงานของทีม และอาจทำให้เกิดปัญหาต่อการพัฒนาระบบในระยะยาว
ในงานวิศวกรรมระบบ ระบบหนึ่งๆ มักมีหลายองค์ประกอบที่เชื่อมโยงกัน การทำงานร่วมกันของส่วนต่างๆ นี้สร้างความซับซ้อนขึ้น ซึ่งการจัดการกับความซับซ้อนที่เพิ่มขึ้นของระบบอาจนำไปสู่ข้อผิดพลาดหรอืความล้มเหลวหากไม่ได้จัดการอย่างดี
การสร้างแบบจำลองเป็นส่วนสำคัญของกระบวนการทางวิศวกรรม วิศวกรทุกสาขาสร้างแบบจำลองของระบบที่ตนตั้งใจจะสร้าง เช่น ซอฟต์แวร์ สะพาน เครื่องบิน เพื่อบันทึก ทดสอบ และตรวจสอบความคิดของตนกับผู้มีส่วนได้ส่วนเสียรายอื่นก่อนจะเริ่มกระบวนการผลิตที่ยาวนานและมีค่าใช้จ่ายสูง Model Driven Engineering (MDE) เป็นวิธีการทางวิศวกรรมที่พยายามลดความซับซ้อนที่เกิดขึ้นโดยไม่ได้ตั้งใจ โดยส่งเสริมการใช้แบบจำลองเน้นที่ความซับซ้อนที่จำเป็นของระบบในฐานะสิ่งประดิษฐ์ชั้นยอดของกระบวนการพัฒนาซอฟต์แวร์ ซึ่งแตกต่างจากวิธีการพัฒนาซอฟต์แวร์แบบเดิมที่แบบจำลองส่วนใหญ่ใช้เพื่อการสื่อสารและวัตถุประสงค์ในการจัดทำเอกสารภายหลัง ใน MDE แบบจำลองเป็นสิ่งประดิษฐ์ที่มีชีวิตและวิวัฒนาการหลัก ซึ่งสิ่งประดิษฐ์ในการพัฒนาที่เป็นรูปธรรมสามารถผลิตได้ในลักษณะอัตโนมัติผ่านการแปลงแบบจำลองเป็นแบบจำลองและจากแบบจำลองเป็นข้อความ
วิศวกรรมแบบขับเคลื่อนด้วยแบบจำลอง (MDE - Model-Driven Engineering) คือแนวทางปฏิบัติที่ยกระดับแบบจำลองให้เป็นหัวใจสำคัญของกระบวนการวิศวกรรมโดยใช้แบบจำลองในการวิเคราะห์ จำลอง และให้เหตุผลเกี่ยวกับคุณสมบัติของระบบที่อยู่ระหว่างการพัฒนา และท้ายที่สุด สามารถสร้างส่วนสำคัญของงานด้วยขั้นตอนแบบอัตโนมัติ. MDE นำหลักการและแนวทางปฏิบัติด้าน วิศวกรรมระบบที่เชื่อถือได้และเป็นที่ยอมรับมายาวนานมาปรับใช้กับวิศวกรรมซอฟต์แวร์ (เป็นเรื่องที่คิดไม่ถึงเลยที่จะเริ่มสร้างสะพานหรือเครื่องบินโดยไม่ออกแบบและวิเคราะห์โมเดลหลายๆ โมเดลเสียก่อน) และมีการใช้กันอย่างแพร่หลายในองค์กรที่ผลิตซอฟต์แวร์ที่สำคัญต่อความปลอดภัย (เช่น ในอุตสาหกรรมการบินและอวกาศ ยานยนต์ และหุ่นยนต์) ซึ่งข้อบกพร่องอาจส่งผลร้ายแรง (เช่น การสูญเสียชีวิต) หรืออาจต้องเสียค่าใช้จ่ายสูงในการแก้ไข (เช่น ต้องเรียกคืนผลิตภัณฑ์ในปริมาณมาก) นอกจากนี้ MDE ยังถูกนำมาใช้กับระบบในหลากหลายโดเมนมากขึ้นเรื่อยๆ เนื่องจากมีประโยชน์ด้านผลิตภาพและความสม่ำเสมอ (ส่วนใหญ่มาจากการสร้างโค้ดอัตโนมัติ)
Eclipse Capella (Open Source MBSE solution, Arcadia Method, Obeo Digital Thread and Multi-User Environment Solution)
Astah (SysML, UAF, STAMP/STPA, GSN/D-Case, ASAM SCDL)
IBM Engineering Lifecycle Management (Requirement Management, Systems Design, Test Management, Asset Managementm Workflow Management)