توسعه نرم افزار های رایانه
توسعه نرمافزار برگردان نیاز کاربران یا مشتریان درقالب یک محصول نرمافزاری است. توسعه نرمافزار از مرحله طرح یک راه حل مفهومی برای مسئله خواسته شده (امکانسنجی) آغاز شده، پس از دریافت خواستهها و تحلیل سیستم طراحی صورت گرفته و در نهایت این طراحی با کمک ابزارهای پیادهسازی تبدیل به یک سیستم واقعی میشود. هدف این فرایند آن است که از یک سو برآورده ساختن نیازهای کاربران و از سوی دیگر کیفیت مناسب عملکرد سیستم تضمین گردد و بنابراین بایستی حاوی مکانیسمهایی برای اعتبارسنجی یعنی خروجی مطابق با خواستهها (Validation) و وارسیپذیری یعنی صحت عملکرد خروجی (Verification) باشد. فرایند توسعه ضمن دادن آزادی به تحلیلگر باید تضمین کند که زمانبندی اجرای پروژه رعایت میشود. فرایند توسعه نرمافزار: فرایند توسعه نرم افزار به مجموعه ای از فعالیت های مهندسی نرم افزار اطلاق می شود که با هدف مدیریت چرخه عمر یک محصول نرم افزاری، طراحی و برنامه ریزی می گردد. فرایندهای تولید نرم افزار با این هدف بوجود آمده اند که این مجموعه فعالیت ها را در یک چارچوب مشخص سازمان دهی، استاندارد و مستند کرده و به این ترتیب سرعت و کیفیت تولید نرم افزار را بهبود بخشند. اگر چه چرخه عمر یک محصول نرم افزاری شامل مراحل متعددی نظیر تعریف، استخراج نیازمندی ها، تحلیل، طراحی، پیاده سازی، آزمون، نگهداری و. . . می باشد لیکن در یک نگاه کلی می توان آن در سه بخش عمده برنامه ریزی ( امکان سنجی، تعریف، تبیین نیازمندی ها )، اجرا ( طراحی، پیاده سازی، آزمون، مستند سازی ) و نگهداری تقسیم بندی نمود. فرایندهای تولید نرم افزار می بایست برای هرکدام از این بخش ها و جزئیات آنها روش، قواعد و اصول معینی را ارائه نمایند. توسعه نرمافزار ارتباط تنگاتنگی با مهندسی نرمافزار دارد و از دید بسیاری این دو مفاهیمی تقریباً یکسان هستند. در سالهای اخیر با رشد نیاز به تولید نرمافزارهای تجاری توسعه نرمافزار به بحثی مهم تبدیل شدهاست و روشهای گوناگونی در قالبهای مختلف برای تولید نرمافزارها بر مبنای نیازهای کاربران، مشخصات کلی سیستم، شرایط مدیریتی و اقتصادی، زمانبندی و سطح کیفی به وجود آمدهاند. اغلب توسعه نرمافزار Software Development با برنامه نویسی Programming یکسان فرض شدهاند در حالیکه توسعه نرمافزار بر خلاف برنامهنویسی با تولید تجاری نرمافزار، استفاده بهینه از بخشهای در دسترس تولید شده و همچنین روشهای مدیریت، افزایش سرعت و افزایش کیفیت پروژههای نرمافزاری سر و کار دارد.