طراحي پروژه هاي نرم افزاري با Microsoft Solutions Framework
نويسنده: امين صفائي
مدل پروسه يا Process Model راهنمايي براي فعاليت هاي پروژه است که چرخه زندگي نرم افزار را نشان مي دهد. دو مدل پروسه اي که سال ها است در توليد نرم افزار استفاده مي شوند عبارتند از: مدل هاي آبشاري يا Waterfall و مدل حلزوني يا Spiral. مدل آبشاري مدلي براي توليد نرم افزارهايي است که نيازهاي کاربران در آن به صورت مشخص تعيين شده است و هر فعاليت در پروژه بايد به اتمام برسد تا فعاليت ديگر شروع شود. اما در مدل حلزوني اين چنين نيست. در اين مدل که براي پروژه هاي کوچک نرم افزاري کاربرد دارد، گروه نرم افزاري نيازهاي کاربران را به صورت دقيق نمي دانند مشتري نرم افزار در تمامي مراحل ساخت نرم افزار در کنار گروه برنامه نويس قرار دارد و نيازهاي سيستم را مشخص مي کند.
در اين مقاله روش جديد مايکروسافت براي توليد پروژه هاي صنعتي نرم افزار به صورت کلي بررسي شده و فازهاي مدل پروسس آن به صورت اختصار توضيح داده خواهد شد.
شکل 2 فازها و نتايج هر فاز را نشان مي دهد.
اين فازها عبارتند از:
- فاز پيش بيني (Envisioning)
- فاز برنامه ريزي (Planning)
- فاز توليد نرم افزار (Development)
- فاز پايدارسازي (Stabilizing)
- فاز آماده سازي براي انتشار (Deploying)
مدير توليد نرم افزار: مديريت ارتباطات با مشتري و جمع آوري نيازهاي مشتري به عهده اين نقش است. در حقيقت تمامي ارتباطات بازرگاني، فني و نشان دادن خروجي ها به عهده اين نقش است.
مدير برنامه نويسي: مدير پروسه توليد نرم افزار و مسئول ارائه خروجي مورد نياز مشتري (با توجه به محدوديت هاي پروژه) است.
گروه نرم افزاري: موظف به اجراي فني پروژه با توجه به نيازهاي مطرح شده مدير برنامه نويسي است.
گروه تست نرم افزار: موظف به تست نرم افزار براي بررسي صحت عملکرد و ميزان کيفيت است.
گروه ارزيابي کارايي نرم افزار: موظف به تحليل کارايي نرم افزار با توجه به نيازهاي مطرح شده مشتريان است.
مدير آماده سازي و انتشار: موظف است که مرحله آماده سازي و انتشار نرم افزار را در پلتفرمي که مشتري مناسب مي داند، انجام دهد.
البته افراد ديگري نيز در پروژه دخيل هستند، مانند اسپانسر پروژه، مشتري، کاربر نهايي سيستم و سازمان هاي وابسته به سيستم که بايد در نظر گرفته شوند. در پروژه هاي کوچک نرم افزاري يک شخص مي تواند چندين نقش را قبول کند، اما در پروژه هاي بزرگ و صنعتي اشخاص به ندرت مي توانند چندين نقش در يک پروژه داشته باشند. شکل 3 نقش هاي بالا را با در نظر گرفتن امکان انجام فعاليت هاي يک نقش توسط نقش ديگر نشان مي دهد. همان گونه که دراين شکل نيز مشخص شده است، مثلاً مدير توليد نرم افزار امکان انجام تست را روي نرم افزار دارد، اما اصلاً پيشنهاد نمي شود برنامه نويسي انجام دهد.
اصل اول: مديريت ريسک: MSF شش رويه منطقي براي مديريت ريسک هاي فعلي پروژه، برنامه ريزي و اجراي راهبردهاي مديريتي ريسک و مستندسازي دانش به شرح زير در پروژه تعريف کرده است:
1- شناسايي ريسک
2-آناليز ريسک هايي که شناسايي شده اند.
3- برنامه ريزي ريسک هايي که براي راهبردها، نقشه ها و اقدام هايي که در رابطه با آن ريسک ها بايد انجام شود، آناليز شده اند.
4- رديابي ريسک ها براي مانيتور کردن موقعيت هر ريسک و مستند سازي
5- کنترل ريسک و انجام عمليات رفع ريسک
6- يادگيري از ريسک و مستند سازي آموخته ها
اصل دوم: مديريت آمادگي گروه پروژه: MSF پروسه مديريت آمادگي دارد که به گروه پروژه کمک مي کند تا KSAهايي (سرنام Knowledge Skills and Abilities) را که در توليد و مديريت پروژه به آن نياز است، Develop کرد. اين رويه چهار مرحله، تعيين، بررسي، تغيير و ارزيابي دارد که در شکل 4 نشان داده شده است. در قسمت تعيين يا Define گروه پروژه سناريو و کارايي هاي هر عضو از گروه را مشخص مي کنند و با توجه به زمان پروژه و محدوديت هاي آن قابليت هاي نقش ها را تعيين مي کنند. در اين مرحله که به مرحله Assess يا بررسي معروف است، نقش ها و افرادي که مدير پروژه در مرحله تعيين مشخص کرده، بررسي مي شوند و اگر شخصي به دوره آموزشي نياز داشته باشد در اين مرحله مشخص مي شود. در مرحله بعدي که Change يا تغيير ناميده مي شود نقش هاي پروژه آموزش هاي لازم را مي بينند و در مرحله Evaluate يا ارزيابي موفقيت اين آموزش براي انجام نقش هايي که به آن ها داده شده است، انجام مي شود.
اصل سوم: مديريت پروژه: در اين اصل اصول مديريت پروژه که در زير به آن اشاره مي شود، بايد در پروژه نرم افزاري مبتني بر پروسه MSF اجرا شود:
- مديريت کيفيت و مستندسازي از تمامي مراحل پروژه
- تهيه برنامه زمان بندي براي تغييرات
- مديريت منابع پروژه
- آماده سازي بودجه و مديريت هزينه ها
- تعيين و مديريت حدود پروژه
- مديريت و کنترل تغييرات پروژه
اگرچه در MSF مدير پروژه به صورت مشخص نقشي در گروه پروژه ندارد، اما مدير برنامه نويسي مي تواند اين نقش را عهده دار شود.
تشکيل گروه پروژه: اين گروه از طرف مديريت عالي پروژه تشکيل مي شود.
تعيين ساختار پروژه: تعيين ساختار مديريتي براي گروه پروژه و استانداردهاي مديريت پروژه.
تعيين اهداف پروژه: آناليز مشکل بنگاه يا به اصطلاح Business Problem و موقعيت ها براي حل مشکل و پيدا کردن راه حل.
بررسي موقعيت فعلي: ارزيابي سيستم هاي موجود و تعيين راهکارهاي رسيدن به اهداف پروژه.
توليد بيانيه ديدگاه کلي پروژه: اين مورد حاوي بايدها و نبايدها در پروژه نرم افزاري است.
تعيين مشتريان، کاربران سيستم و تعيين نيازهاي مشتري
توليد اصول ساخت نرم افزار: که حاوي اصولي است که گروه نرم افزاري براي توليد نرم افزار به آن نياز دارد.
بررسي ريسک هاي پروژه و توليد نقشه ريسک هاي پروژه
توليد و ارائه مستندات فاز پيش بيني: اين مورد را بايد مدير گروه نرم افزاري و صاحب سيستم تاييد کرده باشد.
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
- ديدگاه و محدوده پروژه
- جزوه اهداف کلي پروژه و معرفي مشکلات فعلي
- مروري بر سيستم فعلي
- نيازهاي کلي کاربران
- معرفي کاربران سيستم
- راهبرد طراحي پروژه
- ساختار پروژه
- توضيح نقش هاي گروه و فهرست اعضاي گروه
- ساختار پروژه و استانداردهايي که اعضاي گروه نرم افزاري بايد به آن عمل کنند.
- ارزيابي ريسک
- ارزيابي مقدماتي ريسک هاي پروژه
- فهرست ريسک هاي مقدماتي پروژه
- راهکارهايي براي رفع کردن ريسک هاي پروژه
فعاليت هاي اين فاز عبارتند از:
- ارائه طرح جامع از پروژه و معماري سيستم
- توليد جزوه نيازمندي هاي کاربردي مشتري که بايد حتماً در پايان پروژه تمامي نيازها توسط نرم افزار برطرف شده باشند.
- توليد نقشه هاي طراحي و برنامه زمان بندي براي اجراي پروژه
- توليد محيط هاي برنامه نويسي و تست و ديگر محيط هاي مورد نياز براي اجراي پروژه
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
تعيين فناوري که در پروژه استفاده مي شود
تعيين نيازهاي کامل مشتري
تکميل نقشه مرجع پروژه و برنامه زمان بندي پروژه
- شروع کدنويسي و چرخه توليد نرم افزار
- توليد Prototype سيستم
- توليد اجزاي سيستم
- ساختن سيستم به صورت کامل
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
- سورس کدها و فايل هاي اجرايي
- اسکريپت ها و فايل هاي تنظيمي
- نيازهاي تکميل شده و اصلاح شده کاربران
- المان هاي پشتيبان کارايي
- تست هاي سيستم
- تست هاي کامل روي اجزاي سيستم، پايگاه داده، زيرساختار، امنيت سيستم
- تست دسترسي پذيري و کارايي سيستم
- تست آزمايشي سيستم توسط کاربر
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
-آخرين نسخه برنامه
- مستندات برنامه
- نتايج تست ها و ابزارهاي تست
- سورس کدها و فايل هاي اجرايي بدون اشکال
منبع:نشريه شبکه، ش 102
در اين مقاله روش جديد مايکروسافت براي توليد پروژه هاي صنعتي نرم افزار به صورت کلي بررسي شده و فازهاي مدل پروسس آن به صورت اختصار توضيح داده خواهد شد.
آشنايي با MSF
شکل 2 فازها و نتايج هر فاز را نشان مي دهد.
اين فازها عبارتند از:
- فاز پيش بيني (Envisioning)
- فاز برنامه ريزي (Planning)
- فاز توليد نرم افزار (Development)
- فاز پايدارسازي (Stabilizing)
- فاز آماده سازي براي انتشار (Deploying)
گروه پروژه
مدير توليد نرم افزار: مديريت ارتباطات با مشتري و جمع آوري نيازهاي مشتري به عهده اين نقش است. در حقيقت تمامي ارتباطات بازرگاني، فني و نشان دادن خروجي ها به عهده اين نقش است.
مدير برنامه نويسي: مدير پروسه توليد نرم افزار و مسئول ارائه خروجي مورد نياز مشتري (با توجه به محدوديت هاي پروژه) است.
گروه نرم افزاري: موظف به اجراي فني پروژه با توجه به نيازهاي مطرح شده مدير برنامه نويسي است.
گروه تست نرم افزار: موظف به تست نرم افزار براي بررسي صحت عملکرد و ميزان کيفيت است.
گروه ارزيابي کارايي نرم افزار: موظف به تحليل کارايي نرم افزار با توجه به نيازهاي مطرح شده مشتريان است.
مدير آماده سازي و انتشار: موظف است که مرحله آماده سازي و انتشار نرم افزار را در پلتفرمي که مشتري مناسب مي داند، انجام دهد.
البته افراد ديگري نيز در پروژه دخيل هستند، مانند اسپانسر پروژه، مشتري، کاربر نهايي سيستم و سازمان هاي وابسته به سيستم که بايد در نظر گرفته شوند. در پروژه هاي کوچک نرم افزاري يک شخص مي تواند چندين نقش را قبول کند، اما در پروژه هاي بزرگ و صنعتي اشخاص به ندرت مي توانند چندين نقش در يک پروژه داشته باشند. شکل 3 نقش هاي بالا را با در نظر گرفتن امکان انجام فعاليت هاي يک نقش توسط نقش ديگر نشان مي دهد. همان گونه که دراين شکل نيز مشخص شده است، مثلاً مدير توليد نرم افزار امکان انجام تست را روي نرم افزار دارد، اما اصلاً پيشنهاد نمي شود برنامه نويسي انجام دهد.
اصول انضباطي در MSF
اصل اول: مديريت ريسک: MSF شش رويه منطقي براي مديريت ريسک هاي فعلي پروژه، برنامه ريزي و اجراي راهبردهاي مديريتي ريسک و مستندسازي دانش به شرح زير در پروژه تعريف کرده است:
1- شناسايي ريسک
2-آناليز ريسک هايي که شناسايي شده اند.
3- برنامه ريزي ريسک هايي که براي راهبردها، نقشه ها و اقدام هايي که در رابطه با آن ريسک ها بايد انجام شود، آناليز شده اند.
4- رديابي ريسک ها براي مانيتور کردن موقعيت هر ريسک و مستند سازي
5- کنترل ريسک و انجام عمليات رفع ريسک
6- يادگيري از ريسک و مستند سازي آموخته ها
اصل دوم: مديريت آمادگي گروه پروژه: MSF پروسه مديريت آمادگي دارد که به گروه پروژه کمک مي کند تا KSAهايي (سرنام Knowledge Skills and Abilities) را که در توليد و مديريت پروژه به آن نياز است، Develop کرد. اين رويه چهار مرحله، تعيين، بررسي، تغيير و ارزيابي دارد که در شکل 4 نشان داده شده است. در قسمت تعيين يا Define گروه پروژه سناريو و کارايي هاي هر عضو از گروه را مشخص مي کنند و با توجه به زمان پروژه و محدوديت هاي آن قابليت هاي نقش ها را تعيين مي کنند. در اين مرحله که به مرحله Assess يا بررسي معروف است، نقش ها و افرادي که مدير پروژه در مرحله تعيين مشخص کرده، بررسي مي شوند و اگر شخصي به دوره آموزشي نياز داشته باشد در اين مرحله مشخص مي شود. در مرحله بعدي که Change يا تغيير ناميده مي شود نقش هاي پروژه آموزش هاي لازم را مي بينند و در مرحله Evaluate يا ارزيابي موفقيت اين آموزش براي انجام نقش هايي که به آن ها داده شده است، انجام مي شود.
اصل سوم: مديريت پروژه: در اين اصل اصول مديريت پروژه که در زير به آن اشاره مي شود، بايد در پروژه نرم افزاري مبتني بر پروسه MSF اجرا شود:
- مديريت کيفيت و مستندسازي از تمامي مراحل پروژه
- تهيه برنامه زمان بندي براي تغييرات
- مديريت منابع پروژه
- آماده سازي بودجه و مديريت هزينه ها
- تعيين و مديريت حدود پروژه
- مديريت و کنترل تغييرات پروژه
اگرچه در MSF مدير پروژه به صورت مشخص نقشي در گروه پروژه ندارد، اما مدير برنامه نويسي مي تواند اين نقش را عهده دار شود.
فاز Envisioning
تشکيل گروه پروژه: اين گروه از طرف مديريت عالي پروژه تشکيل مي شود.
تعيين ساختار پروژه: تعيين ساختار مديريتي براي گروه پروژه و استانداردهاي مديريت پروژه.
تعيين اهداف پروژه: آناليز مشکل بنگاه يا به اصطلاح Business Problem و موقعيت ها براي حل مشکل و پيدا کردن راه حل.
بررسي موقعيت فعلي: ارزيابي سيستم هاي موجود و تعيين راهکارهاي رسيدن به اهداف پروژه.
توليد بيانيه ديدگاه کلي پروژه: اين مورد حاوي بايدها و نبايدها در پروژه نرم افزاري است.
تعيين مشتريان، کاربران سيستم و تعيين نيازهاي مشتري
توليد اصول ساخت نرم افزار: که حاوي اصولي است که گروه نرم افزاري براي توليد نرم افزار به آن نياز دارد.
بررسي ريسک هاي پروژه و توليد نقشه ريسک هاي پروژه
توليد و ارائه مستندات فاز پيش بيني: اين مورد را بايد مدير گروه نرم افزاري و صاحب سيستم تاييد کرده باشد.
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
- ديدگاه و محدوده پروژه
- جزوه اهداف کلي پروژه و معرفي مشکلات فعلي
- مروري بر سيستم فعلي
- نيازهاي کلي کاربران
- معرفي کاربران سيستم
- راهبرد طراحي پروژه
- ساختار پروژه
- توضيح نقش هاي گروه و فهرست اعضاي گروه
- ساختار پروژه و استانداردهايي که اعضاي گروه نرم افزاري بايد به آن عمل کنند.
- ارزيابي ريسک
- ارزيابي مقدماتي ريسک هاي پروژه
- فهرست ريسک هاي مقدماتي پروژه
- راهکارهايي براي رفع کردن ريسک هاي پروژه
فاز Planning
فعاليت هاي اين فاز عبارتند از:
- ارائه طرح جامع از پروژه و معماري سيستم
- توليد جزوه نيازمندي هاي کاربردي مشتري که بايد حتماً در پايان پروژه تمامي نيازها توسط نرم افزار برطرف شده باشند.
- توليد نقشه هاي طراحي و برنامه زمان بندي براي اجراي پروژه
- توليد محيط هاي برنامه نويسي و تست و ديگر محيط هاي مورد نياز براي اجراي پروژه
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
تعيين فناوري که در پروژه استفاده مي شود
تعيين نيازهاي کامل مشتري
تکميل نقشه مرجع پروژه و برنامه زمان بندي پروژه
فاز Development
- شروع کدنويسي و چرخه توليد نرم افزار
- توليد Prototype سيستم
- توليد اجزاي سيستم
- ساختن سيستم به صورت کامل
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
- سورس کدها و فايل هاي اجرايي
- اسکريپت ها و فايل هاي تنظيمي
- نيازهاي تکميل شده و اصلاح شده کاربران
- المان هاي پشتيبان کارايي
- تست هاي سيستم
فاز Stabilizing
- تست هاي کامل روي اجزاي سيستم، پايگاه داده، زيرساختار، امنيت سيستم
- تست دسترسي پذيري و کارايي سيستم
- تست آزمايشي سيستم توسط کاربر
پس از اجراي فعاليت هاي بالا در اين فاز خروجي هاي زير به دست خواهد آمد:
-آخرين نسخه برنامه
- مستندات برنامه
- نتايج تست ها و ابزارهاي تست
- سورس کدها و فايل هاي اجرايي بدون اشکال
فاز Deploying
منبع:نشريه شبکه، ش 102
/ج