مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

طراحی چابکانه - Agile Software Desing (قسمت دوم)

با سلام مجدد خدمت دوستان  

در ادامه پست قبلی کل مطلب مربوط به طراحی چابکانه را آپلود کرده ام . 

امیدوارم مورد استفاده دوستان واقع شود . 

 

لینک دانلود 

طراحی چابکانه - Agile Software Development (قسمت اول)

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

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

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

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

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

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

- معمولاً تغییرات در برنامه باعث شکنندگی سیستم نرم‌افزاری می‌شوند.

- معمولاً از آنجا که هر تغییر در برنامه باعث تغییراتی در قسمت‌های مختلف برنامه می‌شود،  تغییرات در سیستم‌های نرم‌افزاری معمولاً دشوار است.  

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

 

منبع : ماهنامه شبکه - خرداد ۱۳۸۶ شماره 76