مهندسی نرمافزار
دانشنامه عمومی
مهندسی نرم افزار ( به انگلیسی: Software engineering ) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرم افزاری با کیفیت که قابل اطمینان و با صرفه بوده و بر روی ماشین های واقعی به طور کارآمدی عمل کند.
مهندسی نرم افزار یک روش سیستماتیک، منظم و دقیق برای ساخت و ارائه محصولی نرم افزاری با کیفیت است.
مهندسی نرم افزار اغلب شامل فرایند خطی تحلیل، طراحی، پیاده سازی و آزمون است؛ که با به کارگیری روش های فنی و علمی از علوم مهندسی موجب تولید نرم افزاری با کیفیت مطلوب در طول یک فرایند انتخابی مناسب پروژه می شود.
کاربردهای مهندسی نرم افزار دارای ارزش های اجتماعی و اقتصادی هستند، زیرا بهره وری مردم را بالا برده، چند و چون زندگی آنان را بهتر می کنند. مردم با بهره گیری از نرم افزار، توانایی انجام کارهایی را دارند که قبل از آن برای شان شدنی نبود. نمونه هایی از این دست نرم افزارها عبارت اند از: سامانه های توکار، نرم افزار اداری، بازی های رایانه ای و اینترنت.
فناوری ها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهره وری و کیفیت یاری می رساند. نمونه هایی از زمینه های بهبود: پایگاه داده ها، زبان ها، کتابخانه ها، الگوها، فرایندها و ابزار.
مهندسی نرم افزار عبارت است از کاربرد مهندسی برای طراحی نرم افزار، توسعه، پیاده سازی و نگهداری از نرم افزار در یک روش سیستماتیک.
تعاریف رسمی مهندسی نرم افزار عبارتند از:
• «تحقیقات، طراحی، توسعه و تست سیستم های عامل در سطح نرم افزار، کامپایلر، نرم افزار شبکه توزیع برای پزشکی، صنعتی، نظامی، ارتباطات، هوا فضا، کسب و کار، علمی و به طور کلی برنامه های کاربردی محاسباتی. »
• «برنامه سیستماتیک علمی و دانش فناوری و روش ها و تجربه هایی برای طراحی، پیاده سازی و تست و مستندسازی نرم افزار»
• «برنامه ای سیستماتیک و منظم با قابلیت سنجش توسعه و عملکرد و نگهداری از نرم افزار»
• "یکی از رشته های مهندسی است که در رابطه با تمام جنبه های تولید نرم افزار است "
• و «ایجاد و استفاده از اصول درست مهندسی برای به دست آوردن نرم افزاری که از لحاظ اقتصادی، قابل اعتماد و به صرفه است و در ماشین های واقعی به صورت کارایی عمل می کند. »
• مهندسی نرم افزار ( به انگلیسی: Software engineering ) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرم افزاری با کیفیت که قابل اطمینان و با صرفه بوده و بر روی ماشین های واقعی به طور کارآمدی عمل کند. مهندسی نرم افزار یک روش سیستماتیک، منظم و دقیق برای ساخت و ارائه محصولی نرم افزاری با کیفیت است. مهندسی نرم افزار اغلب شامل فرایند خطی تحلیل، طراحی، پیاده سازی و آزمون است؛ که با به کارگیری روش های فنی و علمی از علوم مهندسی موجب تولید نرم افزاری با کیفیت مطلوب در طول یک فرایند انتخابی مناسب پروژه می شود. کاربردهای مهندسی نرم افزار دارای ارزش های اجتماعی و اقتصادی هستند، زیرا بهره وری مردم را بالا برده، چند و چون زندگی آنان را بهتر می کنند. مردم با بهره گیری از نرم افزار، توانایی انجام کارهایی را دارند که قبل از آن برای شان شدنی نبود. نمونه هایی از این دست نرم افزارها عبارت اند از: سامانه های توکار، نرم افزار اداری، بازی های رایانه ای و اینترنت. فناوری ها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهره وری و کیفیت یاری می رساند. نمونه هایی از زمینه های بهبود: پایگاه داده ها، زبان ها، کتابخانه ها، الگوها، فرایندها و ابزار.
ویکی واژه
از رشتههای مهندسی که به طراحی و تولید و نگهداری نرمافزار میپردازد.
جمله سازی با مهندسی نرمافزار
جملات نمونه از منابع مختلف جمع آوری شده است، اگر صحیح نیست یا توهین آمیز است، لطفا گزارش دهید.
💡 جاناتان آیو را جایگزین کرد. کریگ فدریگی، که نایب رئیس ارشد بخش مهندسی نرمافزار در اپل بود، به جهت یکپارچگی بیشتر، ای او اس به وظایف او اضافه شد. بعد از اخراج اسکات فورستال، اپل با انتشار آپدیت، تعدادی از مشکلات را حل کرد.
💡 هدف این آزمایشگاه تحقیق و ارائه راهکارهای در استفاده از مهندسی نرمافزار در سیستمهای هوشمند میباشد.
💡 در مبحث الگوهای طراحی مهندسی نرمافزار، مقداردهی کاهلانه معمولاً به کمک الگوی متد کارخانه انجام میشود.
💡 در مهندسی نرمافزار الگوی میانجی تعریف یک شی است که روابط مجموعهای از اشیاء را تهیه و تعیین میکند. این الگو به خاطر آن که میتواند رفتار برنامه را در حین اجرا تغییر دهد، به عنوان یک الگوی رفتاری شناخته میشود.
💡 در سالهای اولیهٔ ۱۹۸۰ روش غالب در مهندسی نرمافزار روش برنامهسازی ساختیافته بود. این روش بر مبنای اصل تقسیم مسئله به اجزای کوچکتر و حل تکتک آنها بنا شده بود. با افزایش اندازهٔ مسئلهها این روش به تدریج کارایی خود را از دست داد.
💡 در مهندسی نرمافزار، الگوهای طراحی رفتاری آن دسته از الگوهای طراحی هستند که الگوهای ارتباطی مشترک را بین اشیاء شناسایی کرده و آنها را تحقق میبخشند. با انجام این کار، این الگوها انعطافپذیری در برقراری این ارتباط را افزایش میدهند.