مشاهده پست های بی پاسخ | مشاهده موضوعهای فعال |
تاریخ امروز پنجشنبه 19 آوریل, 2018 10:26 pm |
همه زمانها به صورت UTC + 3:30 hours تنظیم شده. |
![]() |
صفحه 1 از 4 |
[ 16 پست ] | برو به صفحه 1, 2, 3, 4 بعدی |
مشاهده پرینت | موضوع قبلی | موضوع بعدی |
نویسنده | پیام |
---|---|
![]() عضو: چهارشنبه 23 آوریل, 2008 7:49 am پست ها: 166 ![]() |
اشاره :
در حقيقت ساختن يك نرمافزار فقط نوشتن كدهاي برنامه نيست. رويه ساخت نرمافزارها مراحل متعددي را دربرميگيرد؛ از جمع آوري نيازهاي كاربران گرفته تا طراحي، نوشتن كد و در آخر امتحان نرم افزار. روش توليد نرمافزارهاي كوچك با نرمافزارهاي بزرگ متفاوت است و طبعاً رويه توليد نرمافزارهاي كوچك نيز متفاوت خواهد بود. البته اين رويه نبايد سنگين و حجيم باشد، بايد مستقيماً به تمامي فعاليتهاي لازم براي توليد نرمافزاري با كيفيت بالا نظارت داشته باشد و از تمامي رويههاي آسان و متمركز استفاده كند. با استفاده از تكنيكهايي مفيد، از روشهايي مانند XP،Scrum و RUP ميتوان رويهاي مناسب براي توليد نرمافزارهاي كوچك بهوجود آورد. همچنين ميتوان از روشهايPSP و TSP نيز كه براي توليد نرمافزارهاي كوچك مناسب هستند استفاده نمود و بهوسيله اين روشها كيفيت و قابليتهاي نرمافزارها را بالا برد و در حداقل زمان ممكن نرمافزار را تهيه نمود. اين مقاله با بررسي روشهاي جديد و متداول امروزي در توليد نرمافزار، بهترين و مناسبترين روش توليد نرمافزارهاي كوچك را به شما نشان خواهد داد. گفتني است نوشتار حاضر نتايج تحقيقات من در گروه تحقيقاتي مهندسي نرمافزار دانشگاه ساندرلند انگلستان است و آمار و نتيجهگيريهاي آن براساس مصاحبههاي انجام شده با چندين شركت كوچك و بزرگ توليد نرمافزار آن كشور است. |
سه شنبه 29 آوریل, 2008 7:47 am |
![]() |
![]() |
|
![]() عضو: چهارشنبه 23 آوریل, 2008 7:49 am پست ها: 166 ![]() |
فرايند توليد نرمافزار
پيروي از يك رويه منظم توليد نرمافزار به توليدكنندگان نرمافزار كمك ميكند امور مربوط بهتوليد نرمافزار را منظم و پروژه را در حداقل زمان ممكن و با كارايي بالايي انجام دهند. در حقيقت يك رويه يا Process از مراحل مختلفي تشكيل شده است. اين مراحل فعاليتهاي مربوط به رويه را مشخص مينمايند و تعيين ميكنند كه اين فعاليتها بايد چگونه انجام شوند. پيروي از اين مراحل به اعضاي پروژه دريابند ياري ميرساند كه چه كاري را چه موقع و چگونه انجام دهند همچنين اين كار ميان اعضاي گروه نيز هماهنگي به وجود ميآورد. از آن جايي كه منابع موجود و نيازهاي كاربران هر نرمافزار با ديگري تفاوت دارد، فرايند توليد نرمافزارهاي گوناگون نيز متفاوت است. انجمن IEEE رويه يا فرايند توليد نرمافزار را اين گونه تعريف ميكند: رويه توليد نرمافزار در واقع شامل مراحلي مانند جمعآوري نيازهاي كاربران ، طراحي سيستم با استفاده از تحليل اين نيازها و نوشتن كدهاي نرمافزار با استفاده از طرح نرمافزار است. همچنين بر اينباور است كه از آن جايي كه كيفيت و بهرهوري نيروي كار با كيفيت روند توليد نرمافزار ارتباط مستقيم دارد، طراحي و مديريت رويه توليد نرمافزار از اهميت شاياني برخوردار است. براي طراحي يك رويه توليد نرمافزار مي توان از روشهاي متفاوتي استفاده نمود و از آن جايي كه هر پروژه نرمافزاري با ديگر پروژهها متفاوت است، ميتوان گفت كه رويه توليد آن پروژه نيز با ديگر پروژهها تفاوت دارد. در واقع ميتوان گفت: انتخاب اين روشها رابطه مستقيمي با اندازه گروه در پروژه دارد و نرمافزارهاي بزرگ و كوچك نياز به رويههاي توليد متفاوت دارند. در ادامه اين مقاله روشهاي توليد نرمافزارها، به خصوص نرمافزارهاي نسبتاً كوچك كه از گروههاي توليد نرمافزاري كوچكتري استفاده ميكنند، بررسي ميشوند و مورد ارزيابي قرار ميگيرند. |
سه شنبه 29 آوریل, 2008 7:48 am |
![]() |
![]() |
|
![]() عضو: چهارشنبه 23 آوریل, 2008 7:49 am پست ها: 166 ![]() |
روش SCRUM
در روشهاي قديمي و معمول ساخت نرمافزار، طراحان نرمافزار معمولاً ابتدا فرض ميكنند كه تمامي نيازهاي كاربران سيستم را درك كردهاند. اما هميشه نيازهاي كاربران سيستم در ابتدا مشخص نيست و كاربران ممكن است در همان مراحل ابتدايي، نيازهاي خود را تغيير دهند و اين چيزي است كه برنامهنويسان و طراحان سيستم هميشه از آن شكايت ميكنند و به دنبال راهحلي براي رفع اين موضوع ميگردند. بهعنوان مثال مدل قديمي آبشاري (waterfall) را در نظر بگيريد. اين مدل حاوي مشكلات فراواني است كه به صورت مستقيم به غيرقابل انعطافبودن اين مدل ارتباط دارد. اين مدل مانند يك جاده يك طرفه ميباشد كه وقتي اتومبيل در آن حركت ميكند، نميتواند مسير خود را تغيير دهد و در جهت ديگري حركت كند. در ابتداي كار كاربر سيستم ممكن است نظراتي در مورد سيستم داشته باشد ولي نميتواند ببيند كه سيستم چگونه كار خواهد كرد و در نتيجه ممكن است وقتي كه سيستم آماده شد، از ساختار و كارايي آن راضي نباشد و تقاضاي تغيير در سيستم را بنمايد. در نتيجه اگر بتوانيم كاربر را از ابتدا در جريان ساخت نرمافزار قرار دهيم، ممكن است كه اين مشكل حل شود؛ زيرا ميتواند نظرات خود را در طول مدت ساخت و قبل از اتمام كار اعلام كنند و در نتيجه از نرمافزار تهيه شده راضي باشد. ضمیمه: 1ss.jpg امروزه يكي از روشهاي توليد نرمافزار كه به خصوص براي پروژههاي نرمافزاري كوچك مورد استفاده قرار ميگيرد و توسط بسياري از اساتيد و صاحبنظران مورد تأييد قرار گرفته است، روش SCRUM است. با استفاده از اين روش كه روشي به اصطلاح (iterative تكراري يا چرخشي) ميباشد، ميتوان نرمافزارهاي كوچك را با كيفيت بالا تهيه نمود. در اين روش كه به روش هوشمند يا Agile نيز مشهور است، مديريت قوي توليد نرمافزار وجود دارد كه به برنامهنويسان اجازه ميدهد با استفاده از آن در پروژهها به سرعت نرمافزار موردنظر را تهيه نمايند. اسم Scrum در حقيقت از بازي راگبي گرفته شده است (در بازي راگبي Scrum تيمي متشكل از هشت نفر است كه با همكاري بسيار نزديك با يكديگر بازي ميكنند). ضمیمه: 1s.jpg شکل 1 برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است. آخرین بار توسط computer در سه شنبه 29 آوریل, 2008 8:23 am ویرایش شده است و در کل 2 بار ویرایش شده. |
سه شنبه 29 آوریل, 2008 7:50 am |
![]() |
![]() |
|
![]() عضو: چهارشنبه 23 آوریل, 2008 7:49 am پست ها: 166 ![]() |
در اين روش هر عضو از گروه موظف به درك وظيفه خود در پروژه است و بايد يك هدف مشخص را در تمامي مراحل عملياتي يا فازهاي اجرايي دنبال كند. لازم به ذكر است كه در Scrum هر فاز عملياتي سيستم به Sprint مشهور است.
روش Scrum همانند پروسههاي داراي مرحله برنامهريزي مقدماتي يا Initial Planning است. در اين فاز اعضاي تيم بايد يك نقشه مقدماتي و يك معماري سيستم قابل تغيير به وجود آورند. بعد از اين فاز يك سري از Sprintها به صورت مرتب و جزء جزء نرمافزار مورد نظر را به وجود ميآورند. انجام دادن هر Sprint ممكن است از يك تا چهار هفته به طول بينجامد و مجموع اين Sprintها نرمافزار كاملي را بهوجود ميآورند. فهرست تكاليف در هر Sprint به Backlog مشهور است كه تكاليف تيم عملياتي در هر Sprint را مشخص ميكند. اين Backlog در هر Sprint بروز ميشود و هر تكليف براساس اهميتي كه دارد در فهرست تكاليف تعيين اولويت ميگردد. هر فرد در گروه يك كار يا تكليف خاص از اين فهرست را به عهده ميگيرد و موظف ميشود تا شروع Sprint بعدي آن را به اتمام برساند. وقتي كه يك Sprint شروع شد، ديگر انجام هيچ تغييري در تكاليف امكان ندارد و حتي درخواستكننده نرمافزار نيز حق تغيير يا درخواست نياز ديگري در نرمافزار را نخواهد داشت. البته درخواستكننده ميتواند از قسمتي از نرمافزار كه بايد در هر مرحله توليد شود بكاهد، اما نميتواند تاريخ تحويل آن قسمت را تغييردهد. شايد بتوان گفت كه اين كار باعث ايجاد نظم در گروه ميشود و تاريخ تحويل نرمافزار به تعويق نخواهد افتاد. علاوه بر اين، در طول هر Sprint گروه موظف است روزانه جلساتي جهت بررسي روند پيشرفت و قابليتهاي نرمافزار داشته باشد كه اين نيز به هماهنگي بيشتر گروه كمك خواهد كرد. در اين جلسات كه معمولاً به صورت روزانه است، سه گروه ميتوانند شركت كنند: گروه تهيهكننده نرمافزار، مديريت، و درخواستكنندگان نرمافزار. در طول اين جلسات مسئول جلسه كه اغلب مدير پروژه است، از تمامي اعضاي تيم سه سؤال مي پرسد: 1- مسئوليت شما (تكاليف) از جلسه قبلي تاكنون چه بوده است و آيا توانستهايد اين تكاليف را به اتمام برسانيد؟ 2- در طول اين دوره به چه مشكلاتي برخوردهايد؟ 3- بر طبق فهرست وظايف، مسئوليت شما از حالا تا جلسه بعدي چه خواهد بود؟ مدير Scrum در حقيقت مسئوليت شناسايي تكاليف محوله به اعضا، بررسي روند تكميلي ساخت نرمافزار، بررسي قابليتهاي اعضاي گروه و فعاليت در راستاي كم كردن ريسك در پروژه را داراست. |
سه شنبه 29 آوریل, 2008 7:51 am |
![]() |
![]() |
|
![]() عضو: چهارشنبه 23 آوریل, 2008 7:49 am پست ها: 166 ![]() |
اما چه تفاوتي بين Scrum و ديگر روشهاي توليد نرمافزار وجود دارد؟
در جواب اين سؤال بايد يادآورشد كه در Scrum هر مرحله يا Sprint قسمتي از نرمافزار را آماده مي كند. در اين روش مي توان پيشرفت در توليد نرمافزار را در هر مرحله به خوبي احساس نمود. علاوه بر اين، گروه ميتواند پس از اتمام هر Sprint تصميمگيريكند كه آيا مي خواهد به كار روي پروژه ادامه دهد يا انجام پروژه مذكور غيرممكن است. روش Scrum وقتي ميتواند بيشتر مفيد باشد كه در ابتداي پروژه نيازهاي كاربران به صورت دقيق مشخص نباشد و يك گروه كوچك مسئول پروژه نرم افزاري باشد. نتايج تحقيقاتي كه اواخر سال 2005 روي چندين شركت توليدكننده نرمافزار در كشور انگلستان انجام دادم، نشاندهنده اين بود كه شركتهايي كه از Scrum استفاده كرده بودند با حدود چهارصددرصد افزايش در بهرهوري كار مواجه بودند. البته اين رقم در گروههاي نرمافزاري مختلف متفاوت بود و ميتوان گفت عوامل انساني از جمله مدير پروژه نقش بسيار مهمي در افزايش يا كاهش راندمان پروژه ها دارند. شايد اين سؤال در ذهن شما به وجود آيد كه چرا Scrum ممكن است براي توليد نرمافزارهاي كوچك راه حل خوبي باشد؟ در جواب ميتوان گفت، از آن جايي كه در تيمهاي كوچك، اعضاي گروه بايد از تمامي مسائل پروژه آگاه باشند و در Scrum تمامي مراحل ساخت توسط تمامي اعضاي گروه قابل مشاهده است. لذا اين روش ميتواند روش مناسبي باشد. |
سه شنبه 29 آوریل, 2008 7:52 am |
![]() |
![]() |
|
![]() |
صفحه 1 از 4 |
[ 16 پست ] | برو به صفحه 1, 2, 3, 4 بعدی |
همه زمانها به صورت UTC + 3:30 hours تنظیم شده. |
افراد آنلاین |
کاربر حاضر در این تالار : - و 1 مهمان |
شما نمی توانید در این تالار موضوع جدید باز کنید شما نمی توانید در این تالار به موضوع ها پاسخ دهید شما نمی توانید در این تالار پست های خود را ویرایش کنید شما نمی توانید در این تالار پست های خود را حذف کنید شما نمی توانید در این تالار ضمیمه ارسال کنید |