logo

دفتر مرکزی: مشهد - شریعتی 40 ساختمان اداری / تجاری آرتا طبقه دوم واحد 205

دفتر فروش: مشهد - نبش پاستور 18 پلاک 144

ایمیل: info@baharansys.ir

همراه: 0411 004 0936

تلفن: 91014701- 051


بخش کامل مقاله

روند توسعه نرم افزار|5 تکنیک توسعه نرم افزار

توسعه نرم افزار

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

نرم افزار چیست؟

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

تاریخچه نرم افزار

نرم افزار ها با استفاده از زبان های برنامه نویسی نوشته و توسعه داده می شوند. در سال 1984 دانشمندی بریتانیایی به نام تام کیلبرن اولین قطعه کد نرم افزاری را برای انجام محاسبات ریاضی به وسیله یکی از اولین کامپیوتر های ساخته شده به نام Small-Scale Experimental Machine) SSEM) یا ماشین آزمایش مقیاس کوچک منچستر، که بر اساس دستورالعمل های کد ماشین برنامه ریزی شده بود را اجرا کرد. در این پروژه تقریبا 52 دقیقه طول کشید تا نرم افزار بزرگترین مقسوم الیه 2 را به توان 18 محاسبه کرده و نشان دهد.

کامپیوتر

انواع نرم افزار

نرم افزار ها را می توان بر اساس موارد مختلفی تقسیم بندی کرد ولی به صورت کلی نرم افزار ها به دو دسته تقسیم می شوند:

  • نرم افزار سیستم
  • نرم افزار کاربردی

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

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

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

  • سیستم عامل(oprating system): مهم ترین نرم افزار سیستمی، سیستم عامل است. سیستم عامل ها از جمله پرکاربرد ترین نرم افزار های سیستمی هستند و بدون آنها تقریبا همه کامپیوتر ها بدون کارایی خواهند بود.انواع سیستم عامل ها مانند ویندوز، مک، لینوکس، کروم، اندروید و…امروزه در بخش های مختلف زندگی مشاهده می شود.
  • مترجم ها(language translator): کامپیوتر ها از زبان باینری(0 , 1) استفاده می کنند. مترجم ها دستورات و درخواست های کاربر را از زبان انسان به زبان کامپیوتر ترجمه می کند.
  • ابزار های عمومی: این نرم افزار، ابزار هایی خاص برای مدیریت رایانه و منابع آن را در اختیار کاربران قرار می دهد.
  • درایو ها: نرم افزاری است میان سخت افزار و سیستم عامل ارتباط برقرار می کند. در واقع تمام اجزائ کامپیوتر برای فعالیت و شناخته شدن به درایو نیاز دارند.
  • سرور: نرم افزاری است که میتواند بر اساس خواسته مشتری نیاز او برطرف کند. سرور ها می توانند خدمات متفاوتی را تحت عنوان سروریس ارائه دهند، مانند اشتراک گذاری داده ها و یا منابع بین چندین مشتری و …

توسعه نرم افزار

نرم افزار های کاربردی:

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

  • نرم افزار های چند رسانه ای
  • نرم افزار های گرافیکی
  • نرم افزار های پایگاه داده
  • نرم افزار های آموزشی
  • مرورگر های وب
  • و…

توسعه نرم افزار

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

مراحل تولید یک نرم افزار به صورت کلی به شکل زیر است:

ارتباطات

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

برنامه ریزی

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

مدل سازی

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

ساخت 

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

استقرار

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

تکنیک های توسعه نرم افزار

مدل آبشاری(Waterfall Model)

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

توسعه آبشاری نرم افزار

مدل حلزونی(Spiral Model)

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

توسعه حلزونی نرم افزار

مدل افزایشی-تکاملی(Incremental Model)

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

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

مدل چابک(Agile Mode)

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

توسعه نرم افزار چابک

مدل V شکل(V-Shaped)

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

توسعه نرم افزار روند v

در پایان

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

آدرس دفتر مرکزی: مشهد – شریعتی 40، ساختمان اداری تجاری آرتا، طبقه دوم، واحد 205

آدرس دفتر فروش: مشهد – نبش پاستور 18، پلاک 144

شماره تلفن همراه:  0411 004 0936

شماره تلفن ثابت:  91014701-051

4 Comments
  • ساره
    پاسخ
    Posted at ۱:۴۸ ب٫ظ, دی ۲۵, ۱۴۰۱

    ممنون از توضیحات خوبتون

  • حسام
    پاسخ
    Posted at ۱:۵۱ ب٫ظ, دی ۲۵, ۱۴۰۱

    اگر بخواین یک مدل رو پیشنهاد بدین کدوم مدل رو توصیه می کنید؟

ارسال یک نظر

دیدگاه
اسم
Email
وبسایت