180 likes | 326 Views
تيم هاي نرم افزاري. فصل 21 درس مهندسي نرمافزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان. ت ي م ها ي نرم افزار ي. ساختار مناسب برا ي ي ک ت ي م بستگ ي به نوع سازمان، نوع پروژه، تعداد افراد، توانا يي ها ي اعضا ي ت ي م ها و نوع و سخت ي کار دارد.
E N D
تيمهاي نرم افزاري فصل 21 درس مهندسي نرمافزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان Artificial Intelligent Systems Laboratory
تيم هاي نرم افزاري • ساختار مناسب براييک تيم بستگي به نوع سازمان، نوع پروژه، تعداد افراد، توانايي هاي اعضاي تيم ها و نوع و سختي کار دارد. • تيم هاي دموکراتيک ِ غير متمرکز (DD) • بهترين روش براي حل مسائل دشوار • آسيب پذير • ليدر ندارد • وظايف زمان اجراي كوتاه دارد • تصميم گيري به وسيله افراد اجرا ميشود. • ارتباط افقي بين اعضاي تيم وجود دارد. Artificial Intelligent Systems Laboratory
تيم هاي نرم افزاري • تيم هاي تحت کنترل غير متمرکز (CD) • ليدر دارد. • هماهنگ كننده دارد. • حل مسئله توسط گروه است. • ارتباط افقي است. • ارتباط عمودي بين اعضا نيز وجود دارد. • تيم هاي کنترل شده متمرکز(CC) • ارتباط افقي است. Artificial Intelligent Systems Laboratory
افراد : تيم هاي نرم افزاري • 4 نوع دسته بندي سازمان ها • مدل بسته (close paradigm) : داراي ساختارهاي سنتي (شبيه CC) براي توليد نرم افزارهايي مناسب است که تجربه توليد آنها در گذشته وجود دارد. • مدل تصادفي(random paradigm): تيم بر افراد و نوآوري آنها تکيه دارد. هنگامي که نياز به نوآوري وجود دارد از اين نوع تيم ها استفاده ميشود اما کارايي پاييني دارند. • مدل باز (open paradigm): سعي ميکند خصوصيات نوع بسته و نوع تصادفي را دارا باشد، فعاليت ها با همکاري انجام مي شوند. براي توسعه سيستم هاي پيچيده مناسب هستند. • مدل همگام (synchronous paradigm): بر تقسيم کار بين افراد تيم تاکيد دارد و هر عضو تيم بروي اندازه کوچکي از کار، فعاليت ميکند. Artificial Intelligent Systems Laboratory
افراد : ارتباط ميان اعضاي تيم ها • تکنيک هاي همکاري و ارتباط در پروژه ها : • روشهاي رسمي و غير شخصي :شامل بر مستندات مهندسي نرم افزار، برنامه هاي پروژه و گزارشهاي موجود • رسمي و بين اشخاص: تمرکز بر فعاليت هايQA دارد مانند : جلسات بازبيني و مرور • غير رسمي و بين اشخاص : جلسات گروهي براي بحث و تبادل نظر و حل مسائل • ارتباطات الکترونيکي : مانند پست الکترونيک، بولتن هاي الکترونيک، ويدئو کنفرانس و .. • گردهمايي هاي بين افراد : شامل بر بحث هاي غير رسمي ميان افراد گروه و افراد خارج از پروژه Artificial Intelligent Systems Laboratory
انتخاب تيم • در انتخاب تيمهاي نرم افزاري بايد به مسائل زير توجه شود: • سختي مسئله • اندازه برنامه در قالب Line Of Code يا Function Point • استحكام تيم • درجه استقلال اجزاء مسئله • كيفيت و قابليت اطمينان مورد نياز • استحكام تاريخ تحويل • ارتباطات مورد نياز براي انجام پروژه Artificial Intelligent Systems Laboratory
راهبر تيم • مدل MOI : • انگيزش : توانايي ايجاد انگيزه در افراد فني براي نمايش تواناييها در بهترين فرم • سازمان : توانايي شكل دادن فرايند موجود يا ايجاد فرايند جديد به گونهاي كه مفاهيم اوليه بتواند به محصول نهايي تبديل شود. • ايده ها و نوآوريها : توانايي انگيزش افراد براي خلق و ايجد احساس خلاقيت در افراد با وجود كار در محدودههاي پروژه Artificial Intelligent Systems Laboratory
استراتژيهاي مختلف سيستم هاي نرم افزاري • بسته : يك ساختار سلسله مراتبي ( شبيه تيمهاي CC) • تصادفي: ساختار ضعيف و وابستگي به افراد تيم • باز: ساختاري براي دستيابي به كنترل موجود در روش بسته و خلاقيت موجود در روش تصادفي • همگام : تقسيم بندي مسئله به بخشهاي جدا و اختصاص هر تيم به بخشي از مسئله با ميزان كم ارتباطات بين تيمها Artificial Intelligent Systems Laboratory
مواردي كه در تيم ايجاد مشكل ميكنند • فضاي نامناسب كاري كه در آن اعضاي تيم انرژي خود را هدر داده و تمركز خود را بر كاري كه بايد انجام شود از دست ميدهند. • نيروي زيادي كه در اثر فاكتورهاي انساني، سازماني و يا فناوري از بين ميرود و بين اعضاي تيم سايش ايجاد ميكند. • مدل فرايندي ضعيف و ناصحيح كه از رسيدن به هدف جلوگيري ميكند. • تعريف مبهم از نقش ها كه موجب ايجاد عدم مسئوليت پذيري ميگردد. • مواجه شدن مستمر با شكست كه موجب از دست دادن اطمينان و كاهش اعتماد به نفس ميگردد. Artificial Intelligent Systems Laboratory
تيم هاي Agile • اعضاي تيم بايد به يكديگر اطمينان داشته باشند. • خودسازماندهي تيم در حين پيشرفت پروژه براي بيشينه سازي استفاده از استعدادهاي افراد • تيم خود سازمانده : • ساختار انطباق پذير • استفاده از اجزاء ساختارهاي باز، تصادفي و همگام • خودمختاري قابل توجه Artificial Intelligent Systems Laboratory
تيمهاي Agile • تيمهاي داراي خودمختاري قابل توجهي براي انجام تصميمات مديريتي و فني ميباشند. • طرح ريزي به كمترين مقدار خود رسيده و تنها شامل نيازمنديهاي سازماني و استانداردهاي سازمان ميگردد. • ميتوان جلسات روزانه (10 تا 20 دقيقهاي) برگزار نمود و اعمال هر روز را هماهنگ نمود. Artificial Intelligent Systems Laboratory
افراد : ارتباط ميان اعضاي تيم ها • تکنيک هاي همکاري و ارتباط در پروژه ها : • روشهاي رسمي و غير شخصي :شامل بر مستندات مهندسي نرم افزار، برنامه هاي پروژه و گزارشهاي موجود • رسمي و بين اشخاص: تمرکز بر فعاليت هايQA دارد مانند : جلسات بازبيني و مرور • غير رسمي و بين اشخاص : جلسات گروهي براي بحث و تبادل نظر و حل مسائل • ارتباطات الکترونيکي : مانند پست الکترونيک، بولتن هاي الکترونيک، ويدئو کنفرانس و .. • گردهمايي هاي بين افراد : شامل بر بحث هاي غير رسمي ميان افراد گروه و افراد خارج از پروژه Artificial Intelligent Systems Laboratory
بررسي تکنيک هاي همکاري و ارتباط درجه ارتباط Artificial Intelligent Systems Laboratory
تعريف مسئله • مشخص كردن حوزه مسئله : براي محدود كردن مسئله • حوزه شامل : • موضوع (Context) • اهداف (Information Objectives) • عملكرد (Functional Performance) • تجزيه مسئله : ايجاد تقسيم بندي كاركردي Artificial Intelligent Systems Laboratory
فرآيند • تعريف، توسعه و پشتيباني در توسعه تمامي سيستم هاي نرم افزار مشترک هستند. مسئله انتخاب يک مدل فرآيند مناسب با پروژه مربوطه است. • مدير پروژه بايد در رابطه با مدل فرآيند توسعه پروژه تصميم گيري نمايد. Artificial Intelligent Systems Laboratory
پروژه • براي مديريت موفق پروژه هاي نرم افزاري بايد متوجه شويم که چه مسائلي به درستي پيش رفته و کدام يک نا مطلوب پيش رفته اند. • تعدادي از نشانه هاي ظهور مخاطره در پروژه هاي نرم افزاري : • اعضاي تيم توسعه نيازهاي مشتري را درک نکنند. • محدوده محصول به درستي تعريف نشده باشد. • تغييرات به درستي کنترل نشوند و ... Artificial Intelligent Systems Laboratory
اصول W5HH • 7 سوال که “بوهم” براييافتن اهداف و خصوصيات پروژه طرح نموده است : • Why is the system being developed ? چرا سيستم بايد توليد شود؟ • What will be done , by when? چه کاري و تا چه زماني بايد انجام شود؟ • Who is responsible for a function ? چه کسي مسئول يک وظيفه است؟ • Where are they organizationally located ? آنها ( اعضاي تيم توسعه) در چه محلي مستقر و ساماندهي شده اند ؟ Artificial Intelligent Systems Laboratory
اصول W5HH • How will the job be done technically and managerially ? کارها از نظر فني و مديريتي چگونه انجام خواهند شد؟ • How much of each resource is needed ? چه مقدار از هر منبعي مورد نياز مي باشد ؟ Artificial Intelligent Systems Laboratory