مهندسی نرم افزار ، فصل اول راجب ماهیت نرم افزار ، حوزه های کاربرد نرم افزار ،تعریف عمیق نرم افزار و … می باشدکه همین موضوعات نیز شامل زیر مجموعه هایی هست که به تدریج به بررسی ان ها می پردازیم . 👌

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

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

۱ـ نرم افزار های سیستمی : مجموعه ای از برنامه هاست که برای سرویس دهی به برنامه های دیگر نوشته شده است و این نرم افزار ها ساختار اطلاعاتی پیچیده اما قطعی (ترتیب و زمان بندی ورودی ها ،پردازش و خروجی ها قابل پیش بینی باشد ) دارند .
۲- نرم افزار های کاربردی : نرم افزار هایی هستند که یک نیاز کسب و کار خاص را برطرف می سازند و باعث میشود تا تصمیم گیری های مدیریتی یا فنی آسان تر شود.

۳- نرم افزار های علمی : این نرم افزارها بیشتر برای پردازش داده و تحلیل آن استفاده میشود .
۴- نرم افزارهای تعبیه شده : این نرم افزار های داخل محصول یا سیستم جای دارند و برای پیاده سازی و کنترل ویژگی ها و کارکرد ها برای کاربر نهایی و خود سیستم به کار می روند .
۵- نرم افزار های خط تولید : برای ایجاد کردن قابلیت خاص جهت استفاده بسیاری از مشتریان مختلف طراحی میشوند .

6- نرم افزار های کاربردی تحت وب / تلفن همراه : این نرم افزارها شامل طیف گسترده ای از نرم افزار های کاربردی هستن و شامل برنامه های مبتنی بر مرورگر (مثل وب سایت ها) ، رایانش ابری ، رایانش سرویس گرا و نرم افزاری که در تلفن همراه قرار دارند
7-نرم افزارهای هوش مصنوعی : برای حل مسائل پیچیده که با روش ساده قابل اندازه گیری نیستند ، از روش مکاشفه ای استفاده میکنند و در رباتیک ، سیستم های تصمیم گیری ، باز شناسی الگو ( صدا و تصویر )یادگیری ماشین و … کاربرد دارند.

تعریف مهندسی نرم افزار از دیدگاه IEEE : مهندسی نرم افزار کاربرد یک رویکرد سیستماتیک ، نظام مند ، منضبط ،کمیت پذیر در توسعه ، بهره برداری و نگهداری نرم افزار است . یعنی سیستمی که دارای نظم ،انطباق پذیر و چابک است .

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

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

مهندسی نرم افزار : فصل اول
مهندسی نرم افزار : فصل اول

 فرایند نرم افزار : 

فرایند مجموعه ای از فعالیت ها ، اقدامات و وظایف است .

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

یک اقدام شامل مجموعه ای از وظایف میشود که یک محصول کاری عمده را تولید میکند .

یک وظیفه به هدفی کوچک اما کاملا معین توجه دارد که نتیجه ای ملموس ایجاد میکند .

در زمینه مهندسی نرم افزار ، فرایند راهنمای دقیقی برای چگونگی ساخت نرم افزار های کامپیوتری و یک رویکرد انطباق پذیر است که افراد انجام دهنده کار به کمک آن میتوانند مجموعه ی مناسبی از اقدامات و وظایف کاری را انتخاب کنند .

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

چهارچوب فرایند :

یک چهارچوب کلی فرایند شامل 5 فعالیت می شود :

1- ارتباطات 

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

 

2- برنامه ریزی 

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

 

3 مدل سازی 

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

 

4- ساخت 

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

 

5- استقرار 

نرم افزار به عنوان یک موجودیت کامل یا در حال تکامل به مشتری تحویل داده میشود تا آن را ارزیابی کند .

 

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

 

فعالیت های چتری 

فعالیت های چارچوبی فرایند مهندسی نرم افزار توسط تعدادی از فعالیتهای چتری کامل می شوند. به طور کلی فعالیت های چتری در سراسر یک پروژه نرم افزاری به کار گرفته میشوند و به تیم نرم افزار کمک می کنند تا پیشرفت کیفیت تغییر و ریسک را کنترل و مدیریت کنند فعالیتهای چتری متداول عبارت اند از: کنترل و پیگیری پروژه های نرم افزاری به تیم نرم افزاری اجازه می دهد پیشرفت را در مقایسه با طرح ها پروژه ارزیابی کند و اقدامات لازم را برای حفظ زمان بندی به عمل آورد.