انجمن متا: طراحی سایت و سئو - دانلود قالب و تم - کریپتو
پزشکی، بهداشت، درمان، خانواده، مقاله (عمومی) => مقاله, Article => مقالات کامپیوتر, Computer Articles => نويسنده: Zohreh Gholami در بعد از ظهر 18:20:47 - 09/27/11
طراحی پروژههای نرمافزاری با Microsoft Solutions Framework
مدل پروسه یا Process Model راهنمایی برای فعالیتهای پروژه است که چرخه زندگی نرمافزار را نشان میدهد. دو مدل پروسهاي که سالها است در تولید نرمافزار استفاده میشوند عبارتند از: مدلهای آبشاری یا Waterfall و مدل حلزونی یا Spiral...
مدل پروسه یا Process Modelراهنمایی برای فعالیتهای پروژه است که چرخه زندگی نرمافزار را نشان میدهد. دو مدل پروسهاي که سالها است در تولید نرمافزار استفاده میشوند عبارتند از: مدلهای آبشاری یا Waterfall و مدل حلزونی یا Spiral. مدل آبشاری مدلی برای تولید نرمافزارهایی است که نیازهای کاربران در آن بهصورت مشخص تعيين شده است و هر فعالیت در پروژه باید به اتمام برسد تا فعالیت دیگر شروع شود. اما در مدل حلزونی این چنین نیست. در این مدل که برای پروژههای کوچک نرمافزاری کاربرد دارد، گروه نرمافزاری نیازهای کاربران را به صورت دقیق نمیدانند مشتری نرمافزار در تمامی مراحل ساخت نرمافزار در کنار گروه برنامهنویس قرار دارد و نیازهای سیستم را مشخص میکند. دراین مقاله روش جدید مایکروسافت برای تولید پروژههای صنعتی نرمافزار بهصورت کلی بررسی شده و فازهای مدل پروسس آن به صورت اختصار توضیح داده خواهد شد.
آشنايي با MSF
فریـــمورک راه حـــل مایکـــروسافت یـــا MSF (سرنام Microsoft Solutions Framework) در واقع فعالیتها و روند اجرای فعالیتهای تولید نرمافزارهای صنعتی و بزرگ را توضیح میدهد و میتوان از آن برای تولید نرمافزارهای کوچک تا صنعتی استفاده کرد. این مدل پروسه به صورت فاز به فاز است و در هر فاز یک Milestone یا نقطه عطف وجود دارد. این مدل تلفیقی از بهترین تکنیکهای روشهای آبشاری و حلزونی است که انعطاف زیادی دارد، به نحوی که میتوان از آن برای تولید نرمافزارهای صنعتی یا حتی سایتهای وب نیز استفاده کرد. شکل 1 این مدل را نشان میدهد که از پنج فاز تشکیل شده است و پایان هر فاز نقطه عطفی است که نشانگر تولید محصولی از آن فاز است.
9.jpg
شكل 1
شکل 2 فازها و نتایج هر فاز را نشان میدهد.
این فازها عبارتند از:
- فاز پیشبینی (Envisioning)
- فاز برنامه ریزی (Planning)
- فاز تولید نرمافزار (Development)
- فاز پایدارسازی (Stabilizing)
- فاز آماده سازی برای انتشار (Deploying)
10.jpg
شكل2
گروه پروژه
در هر پروژه بزرگ نرمافزاری مقدار زیادی فعالیت انجام میشود که هر کدام توسط یکی از اعضای گروه پروژه انجام میشود. در MSF شش نقش یا Role برای اجرای پروژه در نظر گرفته میشود که هر کدام از نقشها به صورت کامل مشخص شده و تعریف کار معینی دارد.
این نقشها عبارتند از:
مدیر تولید نرمافزار: مدیریت ارتباطات با مشتری و جمع آوری نیازهای مشتری به عهده این نقش است. در حقیقت تمامی ارتباطات بازرگانی، فنی و نشان دادن خروجیها به عهده این نقش است.
مدیر برنامهنویسی: مدیر پروسه تولید نرمافزار و مسئول ارائه خروجی مورد نیاز مشتری (با توجه به محدودیتهای پروژه) است.
گروه نرمافزاری: موظف به اجرای فنی پروژه با توجه به نیازهای مطرح شده مدیر برنامهنویسی است.
گروه تست نرمافزار: موظف به تست نرمافزار براي بررسی صحت عملکرد و میزان کیفیت است.
گروه ارزیابی کارايی نرمافزار: موظف به تحليل کارايي نرمافزار با توجه به نیازهای مطرحشده مشتریان است.
مدیر آماده سازی و انتشار: موظف است که مرحله آمادهسازی و انتشار نرمافزار را در پلتفرمی که مشتری مناسب میداند، انجام دهد.
البته افراد دیگری نیز در پروژه دخیل هستند، مانند اسپانسر پروژه، مشتری، کاربر نهایی سیستم و سازمانهای وابسته به سیستم که باید در نظر گرفته شوند. در پروژههای کوچک نرمافزاری یک شخص میتواند چندین نقش را قبول کند، اما در پروژههای بزرگ و صنعتی اشخاص به ندرت میتوانند چندین نقش در یک پروژه داشته باشند. شکل 3 نقشهای بالا را با در نظر گرفتن امکان انجام فعالیتهای یک نقش توسط نقش دیگر نشان میدهد. همانگونه که در این شکل نیز مشخص شده است، مثلاً مدیر تولید نرمافزار امکان انجام تست را روی نرمافزار دارد، اما اصلاً پیشنهاد نمیشود برنامهنویسی انجام دهد.
اصول انضباطی در MSF
در هر پروسهای رعایت نظم در مدیریت منابع، نقشها و پروسسها حرف اول را میزند. از این جهت MSF سه اصل مهم دارد که باید رعایت شوند:
اصل اول: مدیریت ریسک: MSF شش رویه منطقی برای مدیریت ریسکهای فعلی پروژه، برنامهریزی و اجرای راهبردهاي مدیریتی ریسک و مستندسازی دانش به شرح زیر در پروژه تعریف کرده است:
1- شناسايی ریسک
2- آنالیز ریسکهایی که شناسایی شدهاند.
3- برنامهریزی ریسکهایی که برای راهبردها، نقشهها و اقدامهایی که در رابطه با آن ریسکها باید انجام شود، آنالیز شدهاند.
4- ردیابی ریسکها برای مانیتور کردن موقعیت هر ریسک و مستندسازی
5- کنترل ریسک و انجام عملیات رفع ریسک
6- یادگیری از ریسک و مستند سازی آموختهها
اصل دوم: مدیریت آمادگی گروه پروژه: MSF پروسه مدیریت آمادگی دارد که به گروه پروژه کمک میکند تا KSAهایی (سرنام Knowledge Skills and Abilities) را که در تولید و مدیریت پروژه به آن نیاز است، Develop کرد. این رویه چهار مرحله، تعیین، بررسی، تغییر و ارزیابی دارد که در شکل 4 نشان داده شدهاست. در قسمت تعیین یا Define گروه پروژه سناریو و کارايیهای هر عضو از گروه را مشخص میکنند و با توجه به زمان پروژه و محدودیتهای آن قابلیتهای نقشها را تعیین میکنند. در این مرحله که به مرحله Assess یا بررسی معروف است، نقشها و افرادی که مدیر پروژه در مرحله تعیین مشخص کرده، بررسی میشوند و اگر شخصی به دوره آموزشی نیاز داشته باشد در این مرحله مشخص میشود. در مرحله بعدی که Change یا تغییر نامیده میشود نقشهای پروژه آموزشهای لازم را میبینند و در مرحله Evaluate یا ارزیابی موفقیت این آموزش برای انجام نقشهایی که به آنها داده شدهاست، انجام میشود.
اصل سوم: مدیریت پروژه: در این اصل اصول مدیریت پروژه که در زیر به آن اشاره میشود، باید در پروژه نرمافزاری مبتنی بر پروسه MSF اجرا شود:
- مدیریت کیفیت و مستندسازی از تمامی مراحل پروژه
- تهیه برنامه زمانبندی برای تغییرات
- مدیریت منابع پروژه
- آمادهسازی بودجه و مدیریت هزینهها
- تعیین و مدیریت حدود پروژه
- مدیریت و کنترل تغییرات پروژه
اگر چه در MSF مدیرپروژه به صورت مشخص نقشی در گروه پروژه ندارد، اما مدیر برنامه نویسی میتواند این نقش را عهده دار شود.
فاز Envisioning
شاید بتوان این فاز (که اولین فاز مدل MSF است) را فازی تعریف کرد که در آن شرح، اهداف و محدودیتهای پروژه به صورت کلی مشخص میشوند. در این فاز افراد گروه پروژه انتخاب شده و مدیریت پروژه برنامه کاری برنامهنویسان را با توجه به نیازهای مشتریان مشخص میکند. پس از اتمام این فاز، همانگونه که در شکل 2 مشخص شدهاست، دید کلی و محدوده پروژه در یک نقطه عطف پس از این مرحله به دست آمده و مشتری و گروه پروژه یک محدوده و دید کلی را تصویب کرده و جهت پروژه را تعیین میکنند.
این مرحله از فعالیتهای زیر تشکیل میشود:
تشکیل گروه پروژه: این گروه از طرف مدیریت عالی پروژه تشکیل میشود.
تعیین ساختار پروژه: تعیین ساختار مدیریتی برای گروه پروژه و استانداردهای مدیریت پروژه.
تعیین اهداف پروژه: آنالیز مشکل بنگاه یا به اصطلاح Business Problem و موقعیتها برای حل مشکل و پیدا کردن راه حل.
بررسی موقعیت فعلی: ارزیابی سیستمهای موجود و تعیین راهکارهای رسیدن به اهداف پروژه.
تولید بیانیه دیدگاه کلی پروژه: این مورد حاوی بایدها و نبایدها در پروژه نرمافزاری است. (تعیین مشتریان، کاربران سیستم و تعیین نیازهای مشتری)
تولید اصول ساخت نرمافزار: که حاوی اصولی است که گروه نرمافزاری برای تولید نرمافزار به آن نیاز دارد.
بررسی ریسکهای پروژه و تولید نقشه ریسکهای پروژه
تولید و ارائه مستندات فاز پیشبینی: این مورد را باید مدیر گروه نرمافزاری و صاحب سیستم تأييدکرده باشد.
پس از اجرای فعالیتهای بالا در این فاز خروجیهای زیر به دست خواهد آمد:
- دیدگاه و محدوده پروژه
- جزوه اهداف کلی پروژه و معرفی مشکلات فعلی
- مروری بر سیستم فعلی
- نیازهای کلی کاربران
- معرفی کاربران سیستم
- راهبرد طراحی پروژه
- ساختار پروژه
- توضیح نقشهای گروه و فهرست اعضای گروه
- ساختار پروژه و استانداردهایی که اعضای گروه نرمافزاری باید به آن عمل کنند.
- ارزیابی ریسک
- ارزیابی مقدماتی ریسکهای پروژه
- فهرست ریسکهای مقدماتی پروژه
- راهکارهایی برای رفع کردن ریسکهای پروژه
11.jpg
شكل 3
فاز Planning
در این فاز گروه پروژه تصمیم میگیرد که چه چیزی تولید کند و چگونه آن را به وجود آورد. این فاز بیشتر به فاز آنالیز و طراحی نرمافزار معروف است که شامل سه رده طراحی است: طراحی معنایی، منطقی و فیزیکی که به ترتیب درطراحی معنایی، مشکل از دید مشتری دیده میشود، در طراحی منطقي، مشکل از دید گروه پروژه بررسی شده و در طراحی فیزیکی مشکل از دید برنامهنویسان دیدهشده و در اين مرحله فناوریها، سرویسها و...طراحی میشوند.
فعالیتهای این فاز عبارتند از:
- ارائه طرح جامع از پروژه و معماری سیستم
- تولید جزوه نیازمندیهای کاربردی مشتری که باید حتماً در پایان پروژه تمامی نیازها توسط نرمافزار برطرف شده باشند.
- تولید نقشههای طراحی و برنامه زمانبندی برای اجرای پروژه
- تولید محیطهای برنامه نویسی و تست و دیگر محیطهای مورد نیاز برای اجرای پروژه
پس از اجرای فعالیتهای بالا در این فاز خروجیهای زیر به دست خواهد آمد:
تعیین فناوری که در پروژه استفاده میشود.
تعیین نیازهای کامل مشتری
تکمیل نقشه مرجع پروژه و برنامه زمانبندی پروژه
12.jpg
فاز Development
در این فاز برنامهنویسان به کدنویسی مشغول شده و سیستم را تولید میکنند. فعالیتهای عمده این فاز به شرح زیر است:
- شروع کد نویسی و چرخه تولید نرمافزار
- تولید Prototype سیستم
- تولید اجزای سیستم
- ساختن سیستم به صورت کامل
پس از اجرای فعالیتهای بالا در این فاز خروجیهای زیر به دست خواهد آمد:
- سورس کدها و فایلهای اجرايی
- اسکریپتها و فایلهای تنظیمی
- نیازهای تکمیلشده و اصلاحشده کاربران
- المانهاي پشتیبان کارايی
- تستهای سیستم
فاز Stabilizing
در این فاز که فاز پایدارسازی است، گروه نرمافزاری زیر سیستمها را با یکدیگر متصل کرده و تستهای نهایی را روی کدهای سیستم انجام میدهد. در این فاز فعالیتهای زیر انجام میشود:
- تستهای کامل روی اجزای سیستم، پایگاه داده، زیر ساختار، امنیت سیستم
- تست دسترسی پذیری و کارايی سیستم
- تست آزمایشی سیستم توسط کاربر
پس از اجرای فعالیتهای بالا در این فاز خروجیهای زیر به دست خواهد آمد:
- آخرین نسخه برنامه
- مستندات برنامه
- نتایج تستها و ابزارهای تست
- سورس کدها و فایلهای اجرایی بدون اشکال
فاز Deploying
در این مرحله از پروژه گروه برنامه را برای انتشار در محیط حقیقی کاربر آماده میکند. در این فاز سیستم به صورت کامل و قابل انتشار آماده شده و مستندات تکمیلی مروری بر اجرای پروژه توسط اعضای گروه نرمافزاری و مشتری انجام میشود. خروجی این فاز نیز شامل نسخه قابل انتشار نرمافزار، مستندات کامل سیستم، برنامه آموزشی و جزوات آموزشی برای یادگیری کاربران است. حتی میتوان در این مرحله از مشتریان و کاربران سیستم نظر خواهی کرد و برگههای نظر خواهی را در مستندات پروژه قرار داد.