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

birhosting-article-software development
توسط

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

birhosting-article-software development

فعالیت ها

شناسایی نیاز

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

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

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

اگرچه تلاش زیادی در مرحله نیازمندی‌ها انجام می‌شود تا اطمینان حاصل شود که الزامات کامل و سازگار هستند، (که به ندرت چنین می‌شود) مرحله طراحی نرم‌افزار را به عنوان تاثیرگذارترین مرحله برای به حداقل رساندن اثرات الزامات جدید یا در حال تغییر باقی می‌گذاریم. نوسانات نیازمندی‌ها چالش برانگیز است زیرا آنها بر تلاش‌های توسعه در آینده یا در حال حاضر تأثیر می‌گذارند.

birhosting-article-software development

نیروی کار

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

بررسی و مشاهده مدل

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

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

birhosting-article-software development

فرآیند کسب و کار و مدل سازی داده ها

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

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

birhosting-article-software development

پست های توصیه شده