تبیان، دستیار زندگی
نرم افزار تبدیل به عنصر کلیدی در تکامل محصولات و سیستم های مبتنی بر رایانه شده است. در 60 سال گذشته، نرم افزار از یک ابزار تحلیل اطلاعات و حل مسئله به صنعتی مستقل تکامل یافته است. عملکرد گذشته در توسعه ی نرم افزارهای کاربردی...
عکس نویسنده
عکس نویسنده
بازدید :
زمان تقریبی مطالعه :

مهندس نرم افزار کیست؟


نرم افزار تبدیل به عنصر کلیدی در تکامل محصولات و سیستم های مبتنی بر رایانه شده است. در 60 سال گذشته، نرم افزار از یک ابزار تحلیل اطلاعات و حل مسئله به صنعتی مستقل تکامل یافته است. عملکرد گذشته در توسعه ی نرم افزارهای کاربردی، یک سری مشکلات ایجاد کرده است که هنوز هم آثار آن قابل دیدن است.

نرم افزار به عاملی محدود کننده در ادامه تکامل سیستم های رایانه ای تبدیل شده است. هر نرم افزار شامل مجموعه ای از برنامه ها، داده ها و مستندات است. هر یک از این اجزا در بر دارنده پیکربندی خاص خود هستند که به عنوان بخشی از فرآیند مهندسی نرم افزار به وجود می آیند. هدف مهندسی نرم افزار فراهم آوردن چارچوبی برای توسعه نرم افزارهایی است که دارای کیفیت مطلوب و بالایی باشند.

مهندس نرم افزار کیست؟

مهندس کیست؟

مهندس کسی است که یر اساس دانش متکی بر علم خود به تحلیل مسئله می پردازد و سپس راه حلی برای انجام و پیاده سازی ارائه می کند، تولید محصول را مدیریت، درستی و صحت تولید را بررسی و سپس محصول تولید شده را در اختیار کاربران نهایی می گذارد.

تعریف مهندسی نرم افزار

از دیدگاه Pressman: به مجموعه ای از فن آوری ها، روش ها و ابزارهای مبتنی بر اصول مهندسی که در توسعه ی نرم افزار استفاده می شود، مهندسی نرم افزار گفته می شود.

از دیدگاه Sommerville: مهندسی نرم افزار در دهه 1960 در کنفرانسی با نام بحران نرم افزار مطرح می گردد.

مهندسی نرم افزار در ارتباط با توسعه ی سیستم های نرم افزاری به شکل فعالیت گروهی است و از قواعد مهندسی استفاده می کند و شامل جنبه های فنی و غیرفنی است.

از دیدگاه Bauer: مهندسی نرم افزار عبارت از توسعه و استقرار نرم افزار با استفاده از اصول دقیق مهندسی برای دستیابی به نرم افزاری با صرفه اقتصادی است که دو شرط قابل اعتماد و کارا را دارد.

مهندسی نرم افزار هم ارز با برنامه نویسی نیست، بلکه برنامه نویسی فقط جزیی از مهندسی نرم افزار است

مشکلات کنونی نرم افزار

** عدم تطابق نرم افزار با نیتزهای واقعی مشتری و بازار

** عدم امکان رقابت و استفاده کارای نرم افزار از سخت افزار با توجه به پیشرفت سریع سخت افزاری

** عمومی شدن کاربرد رایانه در جامعه و عدم امکان تغییر و تعویض نرم افزار در مدت زمان کوتاه

** فشار عمومی و زیاد برای تولید نرم افزاری قابل اعتماد و دارای کیفیت مناسب

** قدرت محدود در پشتیبانی و نگهداری نرم افزارهای موجود

مهندس نرم افزار کیست؟

ویژگی ها و کاربردهای نرم افزار

نرم افزار یک محصول منطقی است و یک محصول فیزیکی نیست.

نرم افزارها بیشتر بر اساس نیاز مشتری ها ساخته می شوند.

نرم افزار دور انداختنی نیست.

محتوای و قطعیت اطلاعاتی در تعیین ماهیت کاربردی یک نرم افزار مطرح هستند. منظور از محتوا معنی و شکل اطلاعات ورودی و خروجی و قطعیت اطلاعاتی به معنای قابلیت پیش بینی ترتیب و زمان بندی اطلاعات است

با این وجود تعیین گروه های کلی بامعنی برای کاربردهای نرم افزاری تا حدی دشوار است. با پیچیده تر شدن نرم افزار، مرزهای صریح و روشن از بین می روند.

به هر حال می توان زکینه های زیر را به عنوان گروه های کاربردی مشخص کرد:

** نرم افزارهای سیستمی

** نرم افزارهای زمان حقیقی

** نرم افزارهای تجاری

** نرم افزارهای مهندسی و علمی

** نرم افزارهای تکار و تعبیه شده

** نرم افزارهای مبتنی بر رایانه های شخصی

** نرم افزارهای مبتنی بر وب

** نرم افزارهای هوش مصنوعی و شبکه های عصبی و... .

در حال حاضر برنامه نویسی گذشته جای خود را به تیمی از کارشناسان و مهندسین نرم افزار داده است که هر یک در بخشی از فن آوری لازم برای تولید یک برنامه کاربردی پیچیده فعالیت می کنند. با این وجود هنگام توسعه سیستم های رایانه مدرن پرسش های زیر مطرح است:

چرا توسعه نرم افزار طولانی است؟

عامل مهم در توسعه نرم افزارها، عدم امکان اندازه گیری مستقیم و عدم استفاده از مولفه های آماده و آزمایش شده در پیاده سازی است. راهکار استفاده از روش توسعه میتنی بر مولفه CBD تا حدی می تواند در رفع این مشکل کمک کند.

چرا هزینه توسعه نرم افزار بالاست؟

به علت تغییرات محیطی، فنی و طولانی شدن زمان توسعه نرم افزار، هزینه ها افزایش می یابد.

چگونه می توان خطاهای نرم افزار را پیش از تحویل شناسایی کرد؟

در مراحل تحلیل و طراحی نرم افزار، بازبینی های مستمر انجام و کد تولید شده به حد کفایت مورد آزمایش قرار گیرد.

چرا در اندازه گیری پیشرفت پروژه های نرم افزاری مشکل وجود دارد؟

چون معیارهای دقیق و خاصی برای سنجش نرم افزار وجود ندارد و این معیارها به پارامترهای بسیاری از تحلیل، طراحی و پیاده سازی وابسته اند.

فاطمه مجدآبادی

بخش دانش و زندگی تبیان


برگرفته از: مهندسی نرم افزار ناظمی

مجموعه دانش و فن کامپیوتری