انجام پايان نامه مهندسي نرم افزار
مهندسي نرم افزار (به انگليسي: Software engineering) پيشهاي است كه به ياري علوم رايانه و ديگر فناوريها و روشها به آفريدن و نگهداري نرمافزار رايانهاي ميپردازد.
مسائل اصلي مهندسي نرم افزار توليد نرمافزار بر اساس موارد زير است:
الزامهاي تعيينشده
در زمانِ تعيينشده
در محدوده? بودجه پيشبينيشده
مهندسي نرم افزار طراحي، برنامهنويسي، توسعه، مستندسازي و نگهداري نرمافزار با بكارگرفتن روشهاي فني و عملي از علوم رايانه، مديريت پروژه، مهندسي، محدوده كاربرد، طراحي واسط، مديريت تجهيزات ديجيتال و ساير زمينهها است.
كاربردهاي مهندسي نرم افزارداراي ارزشهاي اجتماعي و اقتصادي هستند، زيرا بهرهوري مردم را بالا برده، چند و چون زندگي آنان را بهتر ميكنند. مردم با بهرهگيري از نرمافزار، توانايي انجام كارهايي را دارند كه قبل از آن برايشان شدني نبود. نمونههايي از اين دست نرمافزارها عبارتاند از: سامانههاي توكار، نرمافزار اداري، بازيهاي رايانهاي و اينترنت.
فناوريها و خدمات مهندسي نرم افزاربه كاربران براي بهبود بهرهوري و كيفيت ياري ميرساند. نمونههايي از زمينههاي بهبود: پايگاه دادهها، زبانها، كتابخانهها، الگوها، فرآيندها و ابزار.
پيشينه مهندسي نرمافزار
اصطلاح مهندسي نرم افزار پس از سال 1968 ميلادي شناخته شد. اين اصطلاح طي نشست «مهندسي نرمافزار ناتو 1968» (كه در گارميش-پارتنكيرشن، آلمان برگزار شد) توسط رياست نشست فريدريش ال باوئر معرفي شد و از آن پس بهطور گسترده مورد استفاده قرار گرفت.
اصطلاح مهندسي نرم افزار عموماً به معاني مختلفي بهكار ميرود:
بهعنوان يك اصطلاح غير رسمي امروزي براي محدوده وسيع فعاليتهايي كه پيش از اين برنامهنويسي و تحليل سامانهها ناميده ميشد.
بهعنوان يك اصطلاح جامع براي تمامي جنبههاي عملي برنامهنويسي رايانه، در مقابل تئوري برنامهنويسي رايانه، كه علوم رايانه ناميده ميشود.
بهعنوان اصطلاح مجسمكننده طرفداري از يك رويكرد خاص نسبت به برنامهنويسي رايانه كه اصرار ميكند، مهندسي نرم افزار، بهجاي آنكه هنر يا مهارت باشد، بايد بهعنوان يك رشته عملي مهندسي تلقي شود و از جمعكردن و تدوين روشهاي عملي توصيهشده به شكل متدولوژيهاي مهندسي نرم افزار طرفداري ميكند.
مهندسي نرم افزار عبارتست از:
كاربرد يك رويكرد سامانهشناسي، انتظاميافته، قابل سنجش نسبت به توسعه، عملكرد و نگهداري نرمافزار، كه كاربرد مهندسي در نرمافزار است.
مطالعه روشهاي موجود در استاندارد IEEE
محدوده مهندسي نرم افزار و تمركز آن
مهندسي نرم افزار به مفهوم توسعه و بازبيني يك سامانه نرمافزاري مربوط ميباشد. اين رشته علمي با شناسايي، تعريف، فهميدن و بازبيني خصوصيات مورد نياز نرمافزار حاصل سر و كار دارد. اين خصوصيات نرمافزاري ممكن است شامل پاسخگويي به نيازها، اطمينانپذيري، قابليت نگهداري، در دسترس بودن، آزمونپذيري، استفاده آسان، قابليت حمل و ساير خصوصيات باشد.
مهندسي نرم افزار ضمن اشاره به خصوصيات فوق، مشخصات معين طراحي و فني را آماده ميكند كه اگر بهدرستي پيادهسازي شود، نرمافزاري را توليد خواهد كرد كه ميتواند بررسي شود كه آيا اين نيازمنديها را تأمين ميكند يا خير.
مهندسي نرمافزار همچنين با خصوصيات پروسه توسعه نرمافزاري در ارتباط است. در اين رابطه، با خصوصياتي مانند هزينه توسعه نرمافزار، طول مدت توسعه نرمافزار و ريسكهاي توسعه نرمافزار درگير است.
نياز به مهندسي نرم افزار
در مبحث انجام پايان نامه ارشد نرمافزار عموماً از محصولات و موقعيتهايي شناخته ميشود كه قابليت اطمينان زيادي از آن انتظار ميرود، حتي در شرايط طاقت فرسا، مانند نظارت و كنترل نيروگاههاي انرژي هستهاي، يا هدايت يك هواپيماي مسافربري در هوا، چنين برنامههايي شامل هزاران خط كد هستند، كه از نظر پيچيدگي با پيچيدهترين ماشينهاي نوين قابل مقايسه هستند. بهعنوان مثال، يك هواپيماي مسافربري چند ميليون قطعه فيزيكي دارد (و يك شاتل فضايي حدود ده ميليون بخش دارد)، در حالي كه نرمافزارِ هدايت چنين هواپيمايي ميتواند تا 4 ميليون خط كد داشته باشد.
با توجه به گسترش روزافزون دنياي رايانه امروزه بيش از هر زمان ديگري نياز به متخصصان رايانه احساس مي شود. متاسفانه اين رشته در ايران بازار كار خوبي ندارد طبق آمارها 63?27 درصد از فارغالتحصيلان در سال 90 مشغول به كار در ساير مشاغل هستند. اما براي مهندسان سخت افزار هم امكان كار در شركتهاي توليدكننده قطعات و دستگاهها و مراكز صنعتي – توليدي بسيار فراهم است و از نظر سطح درآمدي هم با توجه به دانش و پشتكار شخصي در حد متوسط قرار دارند. به طور كلي اين رشته در ايران با استقبال چنداني رو به رو نيست؛ اين نيز حاكي از نبود برخي از زيرساختها در ايران هست.
تكنولوژيها و روشهاي عملي
مهندسان نرمافزار طرفدار تكنولوژيها و روشهاي عملي بسيار متفاوت و مختلفي هستند، كه با هم ناسازگار هستند. اين بحث در سالهاي دهه 60 ميلادي شروع شد و ممكن است براي هميشه ادامه پيدا كند. مهندسان نرمافزار از تكنولوژيها و روشهاي عملي بسيار متنوعي استفاده ميكنند. كساني كه كار عملي ميكنند از تكنولوژيهاي متنوعي استفاده ميكنند: كامپايلرها، منابع كد، پردازشگرهاي متن. كساني كه كار عملي ميكنند از روشهاي عملي بسيار متنوعي استفاده ميكنند تا تلاشهايشان را اجرا و هماهنگ كنند: برنامهنويسي در دستههاي دونفري، بازبيني كد، و جلسات روزانه. هدف هر مهندس نرمافزار بايستي رسيدن به ايدههاي جديد خارج از الگوهاي طراحي شده قبلي باشد، كه بايد شفاف بوده و بهخوبي مستند شده باشد.
با وجود رشد فزاينده اقتصادي و قابليت توليد فزايندهاي كه توسط نرمافزار ايجاد شده، هنوز هم بحث و جدلهاي ماندگار درباره كيفيت نرمافزار ادامه دارند.
ماهيت مهندسي نرمافزار
ديويد پارناس گفتهاست كه مهندسي نرمافزار يك شكل از مهندسي است. استيو مككانل گفتهاست كه هنوز اينطور نيست، ولي مهندسي نرمافزار بايد يك شكل از مهندسي شود. دونالد كنوت گفتهاست كه برنامهنويسي يك هنر است.
ديوان فعاليتهاي آماري آمريكا مهندسان نرمافزار را به عنوان زيرگروهي از «متخصصان رايانه»، با فرصتهاي شغلياي مانند «دانشمند رايانه»، «برنامه نويس» و «مدير شبكه» دسته بندي كردهاست. BLS تمام مهندسان ديگر اين شاخه علمي، كه شامل مهندسان سختافزار رايانه نيز هست، را بهعنوان «مهندسان» دسته بندي ميكند.
برچسب: ،