مهندسی نرمافزار (Software engineering) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرمافزاری با کیفیت که قابل اطمینان و با صرفه بوده و بر روی ماشینهای واقعی بهطور کارآمدی عمل کند.
مهندسی نرمافزار عبارت است از کاربرد مهندسی برای طراحی نرمافزار، توسعه، پیادهسازی و نگهداری از نرمافزار در یک روش سیستماتیک.
نرمافزار عموماً از محصولات و موقعیتهایی شناخته میشود که قابلیت اطمینان زیادی از آن انتظار میرود، حتی در شرایط طاقت فرسا، مانند نظارت و کنترل نیروگاههای انرژی هستهای، یا هدایت یک هواپیمای مسافربری در هوا، چنین برنامههایی شامل هزاران خط کد هستند، که از نظر پیچیدگی با پیچیدهترین ماشینهای نوین قابل مقایسه هستند. بهعنوان مثال، یک هواپیمای مسافربری چند میلیون قطعه فیزیکی دارد (و یک شاتل فضایی حدود ده میلیون بخش دارد)، در حالی که نرمافزارِ هدایت چنین هواپیمایی میتواند تا ۴ میلیون خط کد داشته باشد.
مهندسی نرمافزار را میتوان به ۱۵ زیر رشته تقسیم کرد:
- شناخت: بررسی و استخراج نیازمندیهای نرمافزار که شامل استخراج، تحلیل و اعتبارسنجی خواستهها و تهیه مستندات مربوطه جهت طراحی نرمافزار میباشد.
- طراحی نرمافزار: فرایند تعریف معماری، اجزا، واسط و دیگر مشخصههای سیستم یا اجزا را گویند. همچنین این زیر بخش به عنوان خروجی فرایند نیز تعریف میشود.
- طراحی نرمافزار # توجهات طراحی:سازگاری، توسعه پذیری، تحمل خطا، قابلیت نگهداری، ماژولمند بودن، قابلیت اطمینان، قابلیت استفاده مجدد، استحکام، امنیت، قابلیت استفاده، کارایی، قابلیت حمل، مقیاس پذیری.
- ساخت نرمافزار:جزئیات مربوط به ایجاد کار با معنی برای نرمافزار از طریق برنامهنویسی، بازنویسی و تأیید، تست واحدها و اجزا، تست یکپارچگی، و اشکالیابی.
- تست نرمافزار: بررسی فنی -تجربی، برای ارائه به سهامداران و ذی نفعان که اطلاعاتی در مورد کیفیت محصول یا خدمات تحت تست بیا ن میکند.
- تعمیر و نگهداری نرمافزار: کلیه فعالیتهای مورد نیاز برای ارائه پشتیبانی مقرون به صرفه در نرمافزار است.
- مدیریت پیکربندی نرمافزار: شناسایی پیکربندی یک سیستم در نقاط مشخصی از زمان به منظور کنترل سیستماتیک تغییرات پیکربندی و حفظ و نگهداری یکپارچگی برنامه و ردیابی پیکربندی در طول چرخه عمر سیستم را گویند.
- مدیریت نرمافزارهای مهندسی: نرمافزار مدیریت فعالیتها و برنامهریزی، هماهنگی، اندازهگیری، نظارت، کنترل و گزارشگیری به منظور حصول اطمینان از توسعه و نگهداری سیستماتیک، منضبط و اندازهگیری شونده نرمافزار است.
- فرایند نرمافزار: تعریف، اجرا و پیادهسازی، ارزیابی، اندازهگیری، مدیریت، ایجاد تغییر و بهبود فرایند چرخه حیات خود نرمافزار را گویند.
- روشهای مهندسی نرمافزار و مدلهای تحمیل ساختار در مهندسی نرمافزار با هدف سیستماتیک و منظم کردن فعالیت، قابل تکرار بودن و در نهایت افزایش کیفیت نرمافزار و موفقیت امیزتر بودن ان ایجاد میشود.
- تمرین مهندسی نرمافزار حرفهای دربارهٔ دانش، مهارت و نگرشهای مهندسی نرمافزار است که مهندسان نرمافزار باید تمرین مهندسی نرمافزار را به صورت حرفهای، مسئولانه و اخلاقی بکنند.
- اقتصاد مهندسی نرمافزار در مورد تصمیمگیری در زمینه کسب و کار تجاری مهندسی نرمافزار است.
- مبانی ریاضی و محاسباتی
- مبانی مهندسی
- ابزار مهندسی نرمافزار و روشها: ابزارهایی مبتنی بر کامپیوتر برای مهندسی نرمافزار ایجاد شدهاند تا به فرایندهای چرخه حیات نرمافزار و روشهایی که ساختاری را بر فعالیتهای مهندسی نرمافزار اعمال میکنند کمک کندتا به هدف ساخت فعالیتهای سیستماتیک و در نهایت به موفقیت بتوان رسید.
درباره این سایت