logo

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

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

ایمیل: info@baharansys.ir

همراه: 0411 004 0936

تلفن: 91014701- 051


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

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

مقالات دیگر


logo

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

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

ایمیل: info@baharansys.ir

همراه: 0411 004 0936

تلفن: 91014701- 051


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

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

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

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

تاریخچه

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

کامپیوتر

انواع

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

  •  سیستم
  •  کاربردی

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

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

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

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

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

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

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

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

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

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

ارتباطات

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

برنامه ریزی

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

مدل سازی

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

ساخت 

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

مطالب مرتبط  برنامه نویسی پایتون در هک و امنیت

استقرار

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

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

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

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

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

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

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

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

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

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

مطالب مرتبط  سئو یا بهینه ساز موتور جستجو

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

مدل چابک(Agile Mode)

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

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

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

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

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

در پایان

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

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

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

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

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

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

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

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

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

  • آرمان
    پاسخ
    Posted at ۱:۴۷ ب٫ظ, بهمن ۱۳, ۱۴۰۱

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

ارسال یک نظر

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