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

یک مورد نمونه از ابزار مهندسی نرم‌افزار به کمک کامپیوتر.
Computer-aided software engineering ( CASE ) گستره‌ای وسیع از نرم‌افزارها و ابزارهای مورد استفاده برای طراحی و پیاده‌سازی برنامه‌های کاربردی است. ابزارهای CASE مشابه ابزارهای طراحی به کمک کامپیوتر (CAD) هستند که برای طراحی محصولات سخت‌افزاری بکار برده می‌شوند مثل ابزارهای شبیه‌ساز مدارات الکتریکی و منطقی و اتوکد و … .
این ابزارها برای توسعه نرم‌افزار با کیفیت بالا، بدون نقص و قابل نگهداری بکار برده می‌شوند. این ابزارهای نرم‌افزاری اغلب با روش‌های توسعه سیستم‌های اطلاعاتی با کمک ابزارهای خودکار که در فرایند توسعه نرم‌افزار می‌توانند مورد
استفاده قرار بگیرند استفاده می‌شوند.
در واقع ابزارهایی مانند 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 انجام گیرد.
مدل‌سازی داده
معماری مدل-محور