توسعه مدل رانده یک رویکرد مهندسی نرم افزار است که از مدل برای ایجاد یک محصول استفاده می کند. توسعه مدل رانده گاهی اوقات به جای مهندسی مدل رانده استفاده می شود و ممکن است به ابزارها و منابع خاص یا رویکرد مدل رانده اشاره داشته باشد. وضعیت فعلی توسعه نرم افزار به شدت آسیب دیده است زیرا راهنمایی در مورد چگونگی توسعه معماری محصول نرم افزاری وجود ندارد. هر تلاشی برای تولید یک محصول نرم افزاری بر اساس تکنیک ها یا روش های طراحی برنامه نویسی شکست خورده است. حتی آن تلاش‌هایی که موفقیت‌آمیز تلقی می‌شد منجر به محصولات نرم‌افزاری شده‌اند که از ساختار معماری ضعیفی رنج می‌برند. این منجر به تلاش پرهزینه برای حفظ نرم افزار می شود و طول عمر چرخه عمر محصول نرم افزاری را کاهش می دهد. مهندسی نرم افزار هسته فنی را فراهم می کند که نرم افزار را قادر می سازد به خوبی برنامه ریزی و اجرا شود. برنامه نویسانی که در زمینه مهندسی نرم افزار آموزش ندیده اند، با نیازهای ذینفعان، حفظ یک برنامه عملیاتی و مفهوم درک شده مشتری از منابع پروژه مبارزه می کنند. اگر یک پروژه توسعه نرم‌افزار فقط بر اساس اهداف تحویل انجام شود، احتمال کمی برای اطمینان از تحویل محصول نرم‌افزار وجود دارد. بنابراین، چرا به سادگی نیاز اجتناب ناپذیر به ارایه تدریجی محصولات ناقص را که امیدواریم مشتریان و مدیریت را آرام کند، نپذیریم. این تفکر که مشتریان با جریان بی پایانی از تحویل تدریجی ارزش دریافت می کنند، ممکن است آرامش بخش باشد. با این حال، مشتریانی که با نیاز مداوم به آموزش مجدد در مورد پیکربندی محصول دایما در حال تغییر مواجه می‌شوند، در نهایت امید خود را برای دریافت محصول کامل و پایدار از دست خواهند داد. در حالی که بهبود محصول مطلوب است، تغییرات مکرر و ریشه‌ای فقط باعث می‌شود که معماری محصول ناپایدار باشد و نسبت به فروپاشی، بی‌نظمی و آشفتگی نهایی محتمل تر شود. نیاز به معماری محصول نرم‌افزاری برای ایجاد نسخه اولیه محصول نرم‌افزاری که می‌تواند در طول زمان با پیشرفت‌ها و ویژگی‌های جدید تکامل یابد، بسیار مهم است. مهندسی نرم افزار مجبور است سردرگمی ذینفعان را حل کند، فضای مشکل را درک کند و یک راه حل طراحی ساختاری ایجاد کند که پایه و اساس محصول پایدار و بادوام را فراهم کند. همانطور که تاریخ نشان می دهد، هر تلاش توسعه نرم افزاری که تلاش می کند محصولی را بدون چارچوب معماری توسعه دهد، درصد شانس موفقیت دارد. مدل توسعه نرم افزار مبتنی بر معماری شرح داده شده در این دست نوشته در شکل نشان داده شده است. در مرکز نمودار، شیوه‌های مهندسی نرم‌افزار قرار دارند که برای توسعه موفق محصول نرم‌افزاری اهمیت دارند. در بالای این مدل، چارچوب مدیریت پروژه قرار دارد که برای پرداختن به اهداف پروژه، بودجه، برنامه‌ها و برنامه‌ها تعمیم داده شده است. شش دایره باقی مانده نشان دهنده مراحل معمولی توسعه نرم افزار، از جمله تعریف نیازمندی ها، تعریف معماری، پیاده سازی نرم افزار، و تست پذیرش است. مراحل طراحی مقدماتی و تفصیلی برای ایجاد معماری محصول نرم افزاری بر اساس شیوه های مهندسی نرم افزار تعریف شده است. بسته داده های فنی نرم افزار مشخصات و اطلاعات طراحی پشتیبان مورد نیاز برای پیاده سازی محصول را ارایه می دهد. این مدل رویکردی جامع برای توسعه نرم‌افزار ارایه می‌دهد که بر اساس استفاده از مهندسی نرم‌افزار به عنوان هسته‌ای برای برنامه‌ریزی و اجرای تلاش توسعه نرم‌افزار است. این شامل نمایندگانی از رشته‌های نرم‌افزاری مختلف است تا اطمینان حاصل شود که الزامات محصول نرم‌افزاری کامل و سازگار هستند، برنامه‌های فنی را می‌توان با بودجه‌های منابع تعیین‌شده انجام داد، و معماری محصول نرم‌افزاری چارچوبی ساختاری قابل اعتماد برای پیشرفت و تکامل نرم‌افزار در سراسر جهان فراهم می‌کند. شکست متدولوژی های نرم افزار قبلی به دلیل عدم درک چگونگی طراحی و تقویت معماری محصول نرم افزاری است. در حالی که استانداردهای توسعه نرم افزار و شیوه های مدیریت به خوبی ابداع شده اند، روش های نرم افزار از نقاط قوت زبان های برنامه نویسی برای تسهیل تکنیک های طراحی برنامه نویسی مناسب استفاده کرده اند. آنچه کم بوده است دانش و مهارت های لازم برای ایجاد معماری محصول نرم افزاری است. این مدل، محور مهندسی نرم افزار را کنار گذاشته و مراحل تعریف را بر ایجاد معماری محصول نرم افزاری متمرکز کرده است. بدون این پایه مهندسی نرم‌افزار، رویکرد چابک به سادگی تمام معضل مهم طراحی را کنار می زند و از نیازمندی‌ها مستقیما وارد پیاده‌سازی نرم‌افزار می‌شود. مدل توسعه نرم‌افزار مبتنی بر چابک نتیجه سال‌ها ناامیدی از جانب متخصصان نرم‌افزار است که نمی‌توانستند بفهمند چرا توسعه نرم‌افزار تا این حد دشوار و مستعد شکست است. بنابراین، طرفداران رویکرد چابک، انجمنی از متخصصان نرم افزار ایجاد کرده اند که به این باور رسیده اند که تحویل تدریجی یک محصول در حال تکامل، ارزشی را به مشتری ارایه می دهد. برای فروش این روش، آنها خود را از مشکل سازترین عناصر مرتبط با توسعه نرم افزار جدا کردند: . استخراج مجموعه کاملی از الزامات قبل از شروع کدنویسی. . تمرکز بر تحویل تدریجی در مقابل یک طرح جامع پروژه. . نادیده گرفتن نیاز به طراحی و مستندسازی محصول نرم افزاری. زمان کمتری برای کارهای سربار غیر ضروری تلف می شود و زمان بیشتری صرف تعمیر محصول می شود تا کار کند. برعکس، این عناصر مشکل ساز مرتبط با توسعه نرم افزار اتفاقا از شایستگی های مهندسی نرم افزار هستند. مهندسی نرم‌افزار مبنایی را برای ادغام نیازها و انتظارات ذینفعان در مجموعه‌ای کامل و سازگار از نیازهای نرم‌افزاری فراهم می‌کند. تغییرات در خط پایه نیازمندی‌های نرم‌افزاری ایجاد شده در برابر معماری نرم‌افزار، طرح‌های پروژه و تخصیص منابع مورد بررسی قرار می‌گیرد تا اطمینان حاصل شود که تغییر پیشنهادی می‌تواند مطابقت داشته باشد. در صورت وجود منابع کافی برای اطمینان از موفقیت پروژه، تغییرات لازم را می توان در برنامه ها و برنامه های فنی گنجاند. در غیر این صورت، تغییرات باید برای تجدید نظر در آینده برنامه ریزی شود. ایجاد یک معماری نرم افزار اجازه می دهد تا تلاش پیاده سازی نرم افزار به درستی محدوده، برنامه ریزی و به طور موثر انجام شود. هر واحد ساختاری شناسایی شده توسط معماری فیزیکی به اندازه کافی مشخص شده است تا امکان طراحی، کدنویسی و آزمایش در سطح برنامه نویسی را فراهم کند. استراتژی یکپارچه‌سازی نرم‌افزار در طول تعریف دقیق معماری ایجاد می‌شود تا اجازه دهد تا یکپارچه‌سازی و آزمایش نرم‌افزار طبق یک برنامه کاری تعیین‌شده پیش برود. ساختار تفکیک کار نرم افزار بسته های کاری و منابع تخصیص یافته به هر فعالیت پیاده سازی نرم افزار را مشخص می کند. نتیجه باید پیاده سازی و آزمایش سیستماتیک نرم افزار بدون عارضه و آزمایش یک محصول نرم افزاری کامل باشد. منابع: sciencedirect . com cppcon . org استاد: دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن Dr . Maryam Hajiesmaeili PhD of computer science from Kingston university of London