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


همان طور که در پست قبلی اشاره کردم، بسیاری از افراد دید بسیار محدودی از نرم افزار دارند و معمولا آن را درک نمی کنند. به خاطر مجازی و نا ملموس بودن نرم افزار، باورهای غلطی بین مردم جا افتاده است. خیلی ها صنعت نرم افزار را بسیار ساده می پندارند و اصلا اهمیتی برای آن قائل نیستند. در کشور ما این موضوع کاملا مشهود است. البته نمی توان از مردم عامی و شاغلین کم سواد در این زمینه انتظار زیادی داشت. اما این موضوع در محیط های دانشگاهی ما نیز بسیار رایج است. به طوری که این رشته را بسیار کم ظرفیت و ساده می دانند.

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

دریافت این مطلب به صورت PDF

برای مطالعه مطلب کلیک کنید

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

مهندسی نرم افزار، تقریبا یک نظام جوان است. نظریه «مهندسی نرم افزار» در سال 1968 در کنفرانسی تحت عنوان «بحران نرم افزار» مطرح شد. در آن زمان بحران نرم افزار ناشی از معرفی نسل سوم سخت افزار کامپیوتر بود که قدرت فوق العاده ای داشت. قدرت آنها منجر به این شد که برنامه های کاربردی که تا آن زمان غیرممکن به نظر می رسیدند، امکان پذیر شوند. نرم افزارهای حاصل نسبت به سیستم های نرم افزاری قبلی پیچیده تر و بزرگتر بودند. تجربیات اولیه در ساخت این سیستم ها نشان داد که رهیافت غیررسمی برای توسعه نرم افزار به اندازه کافی خوب نبوده است. انجام پروژه های بزرگ، سال ها طول می کشید. هزینه آنها بیش از هزینه پیش بینی شده بود، قابل اعتماد نبودند، نگهداری آنها دشوار و کارایی آنها اندک بود. توسعه نرم افزار در بحران به سر می برد. هزینه های سخت افزار در حال کاهش و هزینه های نرم افزار به سرعت در حال افزایش بود. تکنیک ها و روش های جدیدی نیاز بود تا پیچیدگی ناشی از سیستم های نرم افزاری بزرگ را کنترل کند.

این تکنیک ها به عنوان بخشی از مهندسی نرم افزار محسوب می شدند، گرچه امروزه استفاده همگانی ندارند. به هر حال، هنوز در ساخت نرم افزارهایی که خواسته های کاربر را برآورده کند، به موقع تحویل داده شوند و با بودجه پیش بینی شده خاتمه یابند، مشکلاتی وجود دارد. بسیاری از پروژه های نرم افزاری هنوز دارای مشکلاتی هستند و این موضوع منجر به این شد که بعضی از مفسران (پرسمن 1997) گوشزد کنند که مهندسی نرم افزار در حالت وخیمی به سر می برد.

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

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

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

مهندسین نرم افزار فقط با فرآیندهای تکنیکی توسعه نرم افزار سر و کار ندارند، بلکه با فعالیت هایی مثل مدیریت پروژه نرم افزاری و توسعه ابزارها، روش ها و تئوری هایی برای پشتیبانی محصول نرم افزاری سر و کار دارند. به طور کلی مهندسین نرم افزار یک روش نظام مند و سازمان یافته را در کارشان پذیرفته و این روش موثری برای تولید نرم افزار با کیفیت است. اما مهندسی به انتخاب مناسب ترین روش در مجموعه ای از پدیده ها سر و کار دارد، و در بعضی از پدیده ها نیاز به رهیافت خلاق و غیر رسمی است.

در این رابطه بخوانید :

مهندسی نرم افزار در ویکی پدیا

جستجوی «مهندسی نرم افزار» در گوگل

مهندس نرم افزار حرفه ای کیست؟ (ماهنامه شبکه)

Advertisements