طراحی به کمک رایانه
همه رشته‌های مهندسی برای طراحی از نرم‌افزارهای مناسب خود استفاده می‌کنند. نرم‌افزارهای مورد استفاده در طراحی معماری و طراحی صنعتی اغلب نرم‌افزارهای گرافیکی هستند. از نرم‌افزارهای سه‌بعدی که بیشتر در طراحی معماری و طراحی صنعتی استفاده می‌شوند می‌توان به "اتوکد"،" سالیدورکس"، "اینونتور"، "سالید اج" و "مکانیکال دسکتاپ" اشاره کرد. علاوه‌بر این موارد، نرم‌افزارهای گرافیکی دو بعدی مانند "فتوشاپ"، "کورل‌دراو" و "فری‌هند" نیز بسیار پر کاربرد هستند. "کتیا"، "یونیگرافیکس" و "پرو/اینجینیر" هم از بهترین نرم‌افزارهای گرافیکی مورد استفاده‌هستند که با امکان محاسبات پیچیده مهندسی مانند محاسبات تنش‌های محوری و هزاران توانمندی حرفه‌ای دیگر به طراحان کمک کرده‌اند.
مهندسی نرم‌افزار بر پایه مؤلفه
در دهه ۱۹۶۰ ما کتابخانه‌های زیر روال را بنا کردیم که در مهندسی آنتن‌سازی و کاربردهای علمی مورد استفاده قرار می‌گرفته‌است. در این کتابخانه‌ها الگوریتم‌های پیشرفته به صورت مؤثر استفاده می‌شده‌است ولی قلمرو محدودی از کاربردها داشت. امروزه پیکرپارهای چندبار مصرفی هم مراحل و هم اطلاعات را شامل می‌شوند. این عمل مهندس نرم‌افزار را قادر به ساخت کاربردهای جدید از قسمت‌های دوباره استفاده شده می‌کند. پیکرپارهای نرم‌افزاری از زبان‌های برنامه‌نویسی که دارای لغات محدود، گرامر صریح و قانون‌های ترکیب و معناشناسی می‌باشند تشکیل می‌شود. در پایین‌ترین سطح، زبان ساختار سخت‌افزار را منعکس می‌کند. در سطح متوسط یا میانی، یک زبان برنامه‌نویسی مثل سی یا اسمال تاک برای ساخت شرح رویه برنامه استفاده می‌شود؛ و در بالاترین سطح زبان از نمادهای گرافیکی یا نشان‌های دیگر برای ارائه نیاز برای راه حل استفاده می‌کند. اینجا ساختارهای اجرائی خود به خود به وجود می‌آیند. وقتی یک برنامه‌نویس خوب برنامه قابل نگهداری، با اسناد برنامه می‌نویسد. یک ماشین می‌تواند یک استفاده عالی از حافظه و سرعت بالا در اجرا را بدهد؛ ولی زبان متوسط برنامه‌نویس و برنامه را وابسته به ماشین می‌کند. این‌ها زبان‌های روندی می‌باشند. در زبان‌های غیر روندی یک برنامه با مشخص کردن نتیجه احتیاج به دست یابی به آن را داراست. نرم‌افزار پشتیبانی این خصوصیات را به کدهای قابل اجرا در ماشین تبدیل می‌کند. این بر مبنای تئوری‌های اشیای نرم‌افزار، معماری نرم‌افزار، استخوان بندی نرم‌افزار و الگوهای طراحی و تئوری‌های برنامه‌نویسی شیءگرا و برنامه‌نویسی طراحانه آن ساخته شده‌است. این ادعا می‌کند که پیکرپارهای نرم‌افزاری مثل نظر پیکرپارهای سخت‌افزاری برای مثال در مخابرات می‌تواند در نهایت مورد استفاده قرار بگیرد.