بخشی از مقاله

چکیده :

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

کلید واژهها: تولید نرم افزار، تحلیل نرم افزار، توسعه نرم افزار ، IOC، POC، adaptive software development

-1 مقدمه

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

-2 روش های نرم افزاری

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

توسعه و تائید سیستم های تطبیقی توزیع شده چندین چالش فوق العاده را ارائه می دهند . اولا ، فن آوری توسعه ای جاری خیلی خوب برای توسعه و تائید سیستم های توزیع شده ی تطبیقی در ابعاد بزرگ عمل نمی کند این امر به فقدان سازه های انتزاعی سطح بالا برای رفتار ارتباطی پیچیده یا تطبیق های مطلع از موضوع - content-aware - می باشد . در سالهای اخیر مدلهای جلسه ای ، زبانهای کورئیوگرافی - - choreaghraphy تماسهای رفتاری ، زبانهای متنی تخصصی به عنوان چکیده ای برای تماسهای رفتاری ، زباهای متنی تخصصی به عنوان چکیده هایی برای فراهم سازی - فراهم آوری - ویژگی های سطح بالا که رفتار مورد انتظار یک سیستم توزیعی را توصیف می کنند ، را پیشنهاد و توصیه می کنند . این مفهومات معمولا شیوه های استاتیک - ایستایی - را که به تنهایی برای مدل سازی نرم افزار تطبیقی کافی نیستند مورد توجه قرار می دهند - در نظر می گیرند. -

در واقع ، توانایی چک تایپ - - checktype منبع که اجرا - مولفه - بر موجودیت اینترفیس - - interface رفتار کامل آن می باشد ، در حضور تطبیق نمی تواند به حقیقت بپیوندد. به خصوص کوریوگرافی های تقابل محور - با محوریت تقابلی - به طور اخص مرتبط با این موضوع هستند که اجازه می دهند تا به طور خلاصه شرکت کنند ه های پروتوکل توزیعی ، تقابلات میان آنها و ترتیب چیدمان را توصیف کننده از یک - IO - می توان به طور خودکار یک توصیف با جزئیات کامل از رفتار هریک از شرکت کننده ها را که کریوگرافی فرآیند محور - POS - نامیده می شود را تولید کرد که در خیلی از موارد یک کد قابل اجرا فراهم می کند. یکی از نتایج اصلی در این چیدمان آن است pos به طور خودکار گرفته شده از IOC به طور صحیح و درست رفتار مشخص شده توسط IOCبه طور صحیح و درست رفتار مشخص شده توسط IOC داده شده را اجرا می کند و خواص با صحت مرتبط مانند آزادی وقفه - dead lock freedom - را به ارث می برد.

IOC ها و تاثیرشان بر POC ها در مقالات مختلف مورد مطالعه قرار گرفته و به انواع زبانها دسته بندی گردیده اند. یک محدودیت مرتبط که بر تمامی شیوه های بر مبنای IOC تاثیر می گذارد این است که آنها می توانند تنها برای سیستمهایی که سازه ایستا - استاتیک ، ثابت - کاملا از همان ابتدا شناخته شده اند ، می باشد. اگر به طور تخصصی تر و سیستم های تطبیقی را مورد بررسی قراردهیم ، چندین میان افزار و سازه برای تطبیق زمان اجرا - - run time در ادبیات این مقاله پیشنهاد گردیده است. روشهای دیگر به جای این کار ، بر ویژگی ها ، مدلینگ نقش مبنا - role - based modeling - و برنامه نویسی بعد محور - - ospect-oriented تکیه می کنند . در حالیکه این روشها ابزارهای لازم را برای برنامه نویسی سیستمهای تطبیقی فراهم می کنند . در حالیکه این روشها ابزارهایی را برای برنامه نویسی سیستم های تطبیقی فراهم می کنند ، چالش مسئله اطمینان از اینکه آن سیستم ها ، همانطور که انتظار می رود ، بعد از اجرای تعدادی از مراحل تطبیق هنوز به قوت خود باقی است. کسی که نتواند تقدم سازه در سیستم تطبیقی را درک کند .

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

-3 مراحل روش های نرم افزاری

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

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

.2-3 پیش نمونه سازی در پروژه های واقعیمعمولاً، مشتری مجموعه ای از اهداف کلی خود را برای یک نرم افزار تعری ف می کند؛ ولی جزئیات ورودی ها، پردازش ها و خروجی های مورد نیاز را مشخص نمی کند و یغالباً نیازمندی های مشتری متغیر است. از طرف دیگر، تولیدکننده نرم افزار نیز از کا رایی الگوریتم، سازگاری با سیستم عامل یا شکلی که باید تعامل بین ماشین و انسان را اعمال کند، اطمینان ندارد. در ای ن حالت، روش پیش نمونه سازی، بهترین روش است. بنابراین، این روش در مواردی که ابتدای کار از جزئیات خواسته های مشتری و یا جزئیات ریز طراحی اطلاعی نداریم، مناسب است. این روش، با مرحله جمع آوری نیازمندی های مشتری آغاز می شود. تولیدکننده نرم افزار مشتری، در جلسات خود اهداف کلی برای نرم افزار را تعریف می کند، نیازمندی های شناخته شده را مشخص می نماید و مواردی را که نیاز به تعریف بیشتر دارند، معین می کند. سپس، یک طراحی سریع اتفاق می افتد. طرح تولیدشده بر شیوه ارائه موضوعات از نرم افزار که توسط مشتری/ کاربر قابل مشاهده است، مثل روش های ورود اطلاع و فرمت خروجی، تأکید دارد.

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

.4-3 افزایشی این روش، عناصر و المان های روش ترتیبی خطی را با فلسفه تکراری روش پیش نمونه سازی ترکیب می کند. هر ترتیب خطی، یک رشد قابل تحویل از نرم افزار را تولید می کند؛ براینمونه، نرم افزار پردازش کلمه در مرحله اوّل مدیریت فایل پایه، ویرایش و توابع تولید مستندات را تولید می کند. ویرایش پیشرفته تر و قابلیت تولید مستندات در مرحله دوم، چک کردن گرامر و املا در مرحله آخر، و قابلیت لایه صفحات پیشرفته در مرحله چهارم، به عنوان روال های کلیدی به محصول افزوده می گردد.

.5-3 روش توسعه کاربردها یک روش پردازش ترتیبی خطی است که تأکید بر چرخه تولید کوتاه دارد. این روش، یک انطباق از روش ترت یبی خطی است که با شیوه مبتنی بر مؤلفه ، به تولید سریع می رسد. اگر نیازمندی ها خوب شناخته شود و محدوده کار درست فرض شود، پروسه RAD ، تیم توسعه را به ساختن یک سیستم کامل با کارایی بالا و زمان بسیار کم تولید - معادل 60 90 روز کاری - قادر میسازد. در درجه اوّل، این شیوه در سیستم های اطلاعاتی استفاده می شود. از جمله محاسن کلیدی این الگو، تفکیک انواع فازها و رده های مدل سازی در گروه های مستقل است. بنابراین، تیم کاری در هر گروه می تواند به صورت

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید