مهندسی نرمافزار
تولید و ارائه نرم افزارهای کاربردی / From Wikipedia, the free encyclopedia
مهندسی نرمافزار[1] (به انگلیسی: Software engineering) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرمافزاری با کیفیت که قابل اطمینان و با صرفه بوده و بر روی ماشینهای واقعی بهطور کارآمدی عمل کند.
مهندسی نرمافزار یک روش سیستماتیک، منظم و دقیق برای ساخت و ارائه محصولی نرمافزاری با کیفیت است.
مهندسی نرمافزار اغلب شامل فرایند خطی تحلیل، طراحی، پیادهسازی و آزمون است؛ که با بهکارگیری روشهای فنی و علمی از علوم مهندسی موجب تولید نرمافزاری با کیفیت مطلوب در طول یک فرایند انتخابی مناسب پروژه میشود.
کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههایی از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرمافزار اداری، بازیهای رایانهای و اینترنت.
فناوریها و خدمات مهندسی نرمافزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: پایگاه دادهها، زبانها، کتابخانهها، الگوها، فرایندها و ابزار.
مهندسی نرمافزار عبارت است از کاربرد مهندسی برای طراحی نرمافزار، توسعه، پیادهسازی و نگهداری از نرمافزار در یک روش سیستماتیک.[2][3][4]
تعاریف رسمی مهندسی نرمافزار عبارتند از:
- «تحقیقات، طراحی، توسعه و تست سیستمهای عامل در سطح نرمافزار، کامپایلر، نرمافزار شبکه توزیع برای پزشکی، صنعتی، نظامی، ارتباطات، هوا فضا، کسب و کار، علمی و بهطور کلی برنامههای کاربردی محاسباتی.»[5]
- «برنامه سیستماتیک علمی و دانش فناوری و روشها و تجربههایی برای طراحی، پیادهسازی و تست و مستندسازی نرمافزار»[6]
- «برنامهای سیستماتیک و منظم با قابلیت سنجش توسعه و عملکرد و نگهداری از نرمافزار»[7]
- "یکی از رشتههای مهندسی است که در رابطه با تمام جنبههای تولید نرمافزار است "[8]
- و «ایجاد و استفاده از اصول درست مهندسی برای بهدست آوردن نرمافزاری که از لحاظ اقتصادی، قابل اعتماد و بهصرفه است و در ماشینهای واقعی به صورت کارایی عمل میکند.»[9]
- مهندسی نرمافزار (به انگلیسی: Software engineering) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرمافزاری با کیفیت که قابل اطمینان و با صرفه بوده و بر روی ماشینهای واقعی بهطور کارآمدی عمل کند. مهندسی نرمافزار یک روش سیستماتیک، منظم و دقیق برای ساخت و ارائه محصولی نرمافزاری با کیفیت است. مهندسی نرمافزار اغلب شامل فرایند خطی تحلیل، طراحی، پیادهسازی و آزمون است؛ که با بهکارگیری روشهای فنی و علمی از علوم مهندسی موجب تولید نرمافزاری با کیفیت مطلوب در طول یک فرایند انتخابی مناسب پروژه میشود. کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههایی از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرمافزار اداری، بازیهای رایانهای و اینترنت. فناوریها و خدمات مهندسی نرمافزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: پایگاه دادهها، زبانها، کتابخانهها، الگوها، فرایندها و ابزار.
در مهندسی نرم افزار، معمولا سه محیط توسعه، تست و محصول تعریف میشود. محیط توسعه، محیطی است که در آن اپلیکیشنها و سرویسهای نرمافزاری، تولید شده و توسعه مییابند. در محیط تست، برنامه نویسان و متخصصین حوزه تضمین کیفیت، کارایی، عملکرد و قابلیت اطمینان محصول را قبل از ورود محصول به بازار میسنجند. در محیط محصول نیز، اپلیکیشنها و سرویسهای نرمافزاری برای استفاده در اختیار کاربران قرار میگیرند.[10]
مهمترین شاخص در مهندسی نرمافزار تولید (طراحی و پیادهسازی) نرمافزار با کیفیت متناسب با «نیازهای مشتری» است.