مهندسی نرم‌افزار به کمک کامپیوتر

Computer-aided software engineering (CASE) گستره‌ای وسیع از نرم‌افزارها و ابزارهای مورد استفاده برای طراحی و پیاده‌سازی برنامه‌های کاربردی است. ابزارهای CASE مشابه ابزارهای طراحی به کمک کامپیوتر (CAD) هستند که برای طراحی محصولات سخت‌افزاری بکار برده می‌شوند مثل ابزارهای شبیه‌ساز مدارات الکتریکی و منطقی و اتوکد و ... .

این ابزارها برای توسعه نرم‌افزار با کیفیت بالا، بدون نقص و قابل نگهداری بکار برده می‌شوند.Kuhn, D.L (1989). این ابزارهای نرم‌افزاری اغلب با روش‌های توسعه سیستم‌های اطلاعاتی با کمک ابزارهای خودکار که در فرایند توسعه نرم‌افزار می‌توانند مورد
استفاده قرار بگیرند استفاده می‌شوند.P. Loucopoulos and V. Karakostas (1995).

در واقع ابزارهایی مانند CASE جهت کمک به مهندسان نرم‌افزار در طول چرخهٔ عمر نرم‌افزار ایجاد شده‌اند تا به تحلیل، طراحی، برنامه‌نویسی، آزمون و تست، نگهداری و ... نرم‌افزار کمک کنند.

 اجزا 

 ابزار ترسیمی
 مرکز اطلاعات
 مولد میان رویه
 ابزار مدیریت

 تاریخچه 
طراحی سیستم اطلاعاتی و پروژه بهینه‌سازی سیستم (ISDOS) در سال ۱۹۶۸ در دانشگاه میشیگان آغاز شد.

 نرم‌افزارهای CASE 
نرم‌افزارهای CASE توسط Alfonso Fuggetta در سه دسته طبقه‌بندی شده‌اند:
 ابزارهایی جهت پشتیبانی از وظایف خاص در چرخه زندگی نرم‌افزار هستند.
 Workbencheها که ترکیب دو یا بیشتر از دو ابزار با تمرکز بر روی یک بخش خاص از چرخه زندگی نرم‌افزار هستند.
 محیطهایی که ترکیبی از دو یا چند ابزار یا Workbenche را دارند و در طول چرخه زندگی نرم‌افزار پشتیبانی کاملی انجام می‌دهند.

 ابزار 
ابزارهای CASE در طول توسعه چرخه زندگی نرم‌افزار از وظایف خاصی پشتیبانی می‌کنند؛ که آن‌ها را می‌توان به دسته‌های ۶گانه زیر تقسیم کرد:
 کسب و کار (تجارت) و تجزیه و تحلیل مدل سازی. با استفاده از ابزارهای CASE مدل‌سازی گرافیکی انجام می‌گیرد برای مثل مدل‌سازی E/R, مدل‌سازی شی گرایی و... .
 توسعه و گسترش نرم‌افزار با ابزارهای CASE قابل انجام است. طراحی و ساخت فازهای چرخه زندگی نرم‌افزار و اشکال یابی و اشکال زدایی محیط را می‌توان با این ابزارها انجام داد به‌طور مثال می‌توان از ابزار GNU Debugger استفاده کرد تا سیستم را دیباگ کرد.
 تأیید و اعتبار سنجی نیز از جمله وظایفی است که با ابزارهای CASE امکان تحقق ان وجود دارد. تجزیه و تحلیل کد و تشخیص صحت عملکرد برنامه نوشته شده و کارایی ان و... از جمله کارهایی است که می‌توان در این زمینه انجام داد.
 مدیریت پیکربندی. کنترل ورود به مخزن اشیاء و فایل‌ها و خروج از آن‌ها به‌طور مثال با استفاده از SCCS و CMS(سیستم مدیریت محتوا).
 متریک (واحد انداره گیری) و اندازه‌گیری و سنجش معیار و اندازه‌ها. تجزیه و تحلیل کد از جهت پیچیدگی، ماژولمند بودن و تابع‌های مناسب داشتن و عدم استفاده از "go to "(چراکه فهم کد و اندازه‌گیری و سنجش و کنترل ان را مشکل می‌کند), عملکرد و غیره.
 مدیریت پروژه. مدیریت طرح پروژه و وظیفه‌ها و تکالیف تخصیص داده شده و برنامه‌ریزی برای کارها تا پروژه در زمان و بودجه تعیین شده به نتیجه برسد.
یکی دیگر از راه‌های معمول برای تشخیص ابزار CASE قائل به تمایز بین Upper CASE and Lower CASE بودن، هست. ابزارهای Upper CASE کار پشتیبانی از تجارت و کسب و کار و تجزیه و تحلیل مدل‌سازی را انجام می‌دهند. زبان‌های تصویری و نموداری سنتی و قدیمی همچون نمودارهای ER
Data flow diagram, Structure charts, Decision Trees, Decision tables و غیره برای ابزارهای Upper CASE بکار می‌روند.

ابزارهای Lower CASE جهت حمایت ازفعالیت‌های توسعه دهندگی مانند طراحی فیزیکی، اشکال یابی و رفع ان، ساخت و ایجاد، تست و آزمون برنامه، یکپارچه سازی اجزا، تعمیر و نگهداری و مهندسی معکوس بکار می‌روند. سایر فعالیت‌های در طول چرخه حیات نرم‌افزار ونحوه اعمال آن‌ها می‌تواند توسط ابزارهای Upper CASE یا Lower CASE انجام گیرد.Software Engineering: Tools, Principles and Techniques by Sangeeta Sabharwal, Umesh Publications

 جستارهای وابسته 
 مدل‌سازی داده
 معماری مدل-محور

 منابع 

رده:مدیریت داده‌ها