1 / 41

درس مهندسی نرم افزار فصل سوم مهندسی نيازمنديها O.veisinezhad@yahoo

بسمه تعالي. درس مهندسی نرم افزار فصل سوم مهندسی نيازمنديها O.veisinezhad@yahoo.com. فهرست مطالب. تعريف نيازمندي رابطه ماشين و محيط نيازمنديها و خصوصيات محيط توصيف نيازمنديها تعريف مهندسي تعريف مهندسي نيازمنديها تعريف سيستم. فهرست مطالب (ادامه). تعريف دامنه مسئله تعريف دامنه راهکار

peta
Download Presentation

درس مهندسی نرم افزار فصل سوم مهندسی نيازمنديها O.veisinezhad@yahoo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. بسمه تعالي درس مهندسی نرم افزار فصل سوم مهندسی نيازمنديها O.veisinezhad@yahoo.com

  2. فهرست مطالب • تعريف نيازمندي • رابطه ماشين و محيط • نيازمنديها و خصوصيات محيط • توصيف نيازمنديها • تعريف مهندسي • تعريف مهندسي نيازمنديها • تعريف سيستم

  3. فهرست مطالب (ادامه) تعريف دامنه مسئله تعريف دامنه راهکار دسته بندي ذينفعان سيستم جمع بندي مراجع

  4. تعريف نيازمندي • يك ويژگي كه بايد توسط يك سيستم توسعه يافته، براي حل يك مساله خاص ارائه شود[SWEBOK]. • يك نيازمندي بعنوان ”يك شرط يا قابليت“ تعريف مي شود كه يك سيستم بايد مطابق آن كار كند. ‌‍[RUP] • يك عبارت درباره سيستم پيشنهادي كه توافق كليه ذينفعان بايد بر سر آن اخذ شود و در جهت رفع مشكل كاربر به اندازه كافي باشد. [Lethbridge].

  5. تعريف نيازمندي • استاندارد IEEE 610.12-1990نيازمندي را به صورت زير تعريف ميکند: • يک شرط يا قابليت مورد نياز توسط کاربر براي حل يک مسئله يا دستيابي به يک هدف. • يک شرط يا قابليت که بايد در سيستم يا مولفه هاي آن وجود داشته باشد تا يک قرارداد، استاندارد، توصيف، يا ساير مستندات رسمي برآورده گردد. • يک نمايش مستندشده از يک شرط يا قابليت از موارد 1 و 2.

  6. تعريف نيازمندي ( ادامه) • تعريف مورد استفاده اين گزارش براي نيازمندي به شرح زير است: • نيازهاي مورد توافق ذينفعان يك بنگاه تجاري (محيط) جهت رفع مشكلات فعلي(بهبود وضعيت جاري) يا در راستاي رسيدن به وضعيت مطلوب آتيبا توجه به اهداف، سياستها، فرصتها و محدوديتهاي بنگاه تجاري، که بايد با ساخت يك سيستم جديد يا بهبود سيستم فعلي برآورده شوند.

  7. تعريف سيستم • يک سيستم مجموعه اي از مولفه ها است که با يکديگر به شيوه اي سازماندهي شده همکاري ميکنند تا يک سري نتايج مطلوب ( ارضاي نيازمنديها) را بدست آورند. • يك سيستم مجموعه بهم مرتبطي از رويه هاي تجاريمورد استفاده درون يك واحد تجاري است كه در جهت برآورد اهدافي مشترك با هم در تعاملند. )يک سيستم در يک محيط وجود دارد. يک محدوده و مرز سيستم را از محيط مجزا ميکند.(

  8. تعريف سيستم( ادامه) • يک سيستم داراي نه خصوصيت زير است: • مؤلفه ها • تعاملات • مرز (Boundary):براي جدا کردن سيستم از محيط پيرامونش. • هدف • محيط:يك سيستم درون يك محيط قرار دارد. • واسطها • ورودي • خروجي • محدوديتها

  9. تعريف سيستم( ادامه)

  10. تعريف سيستم( ادامه) • تفکر سيستمي: • تجزيه (Decomposition): فرآيند شکستن سيستم به مولفه هاي کوچکتر است. اين امر به تحليلگر سيستم امکانات زير را ميدهد: • شکستن سيستم به زيرسيستمهاي کوچک، و قابل مديريت • تمرکز بر يک زمينه در يک زمان • تمرکز بر مولفه هاي مربوط به يک گروه از کاربران • ساختن مولفه هاي مختلف در زمان هاي مستقل

  11. تعريف سيستم( ادامه) • مزاياي تفکر سيستمي • شناخت يک سيستم منجر به ايجاد ديدگاه انتزاعي در مورد آن ميشود. • با انتزاع امکان انديشيدن در مورد خصوصيات پايه اي يک سيستم خاص فراهم ميشود. • انتزاع به تحليلگر امکان کسب بينش در مورد يک سيستم خاص را ميدهد.

  12. تعريف سيستم( ادامه) • مفاهيم مهم سيستم • پيمانه اي بودن (Modularity) • فرايند تقسيم سيستم به پيمانههاي نسبتاً هم اندازه. اين پيمانهها باعث تسهيل طراحي سيستم ميشود. • پيوستگي (Coupling) • وجود وابستگي بين زيرسيستمها باعث ايجاد ارتباط و پيوستگي بين آنها ميشود. • ميزان وابستگي پيمانه ها به يكديگر متفاوت است. • چسبندگي (Cohesion) • ميزان اتميك بودن يك پيمانه • ميزاني که يک زيرسيستم يک عمل منفرد را انجام ميدهد. • حالت مناسب شرايطي است که در آن coupling کاهش يافته و Cohesion افزايش مي­يابد.

  13. تعريف سيستم نرم افزاري • مجموعه فعاليتهايي که درماشينهاي محاسباتي منجر به يک کد اجرايي ميگردد. سيستم نرم افزاري شامل فعاليتهايي در خارج از ماشين و بعد از ماشين است وشامل : • تهيه داده ها • تهيه مستندات (کدمجازي – مدلسازي-... ) • تهيه کد اجرايي

  14. انواع سيستمهاي نرم افزاري • سيستم هاي نرم افزاري از ابعاد مختلف قابل تقسيمبندي است: • ( از نظر نوع ورودي، از نظر معماري، از نظر نحوه پردازش، ....) • نرم افزارهاي سيستمي • نرم افزارهاي کاربردي • نرم افزارهاي علمي مهندسي • نرم افزارهاي نهفته • نرم افزارهاي خط توليد • نرم افزارهاي وب • نرم افزارهاي هوش مصنوعي

  15. انواع سيستمهاي نرم افزاري (رده بندي جديد) • نرم افزارهاي فراگير ( شبکه هاي بيسيم ) • نرم افزارهاي Netsourcing ( وب به عنوان موتور محاسباتي ) • نرم افزارهاي متن باز ( کد نرم افزار به طور باز در اختيار استفاده کنندگان قرار دارد. ) • همچنين نرم افزارهاي : • داده کاوي • محاسبات توري • ماشين هاي شناختي • نرم افزارهايي براي نانوتکنولوژي

  16. تعريف مهندسي • مهندسي به معناي دسيپلين و حرفه اعمال دانش علمي و استفاده از قوانين طبيعي و منابع فيزيکي به منظور طراحي و پياده سازي مواد، ساختارها، ماشينها، وسايل، و سيستمها است که يک هدف مطلوب را محقق ميکند و معيارهاي خاص را رعايت ميکند. • استفاده از اصول علمي براي اهداف کاربردي نظير طراحي، ساخت، اجراي ساختارها، ماشينها، فرآيندها، و سيستمهاي توجيه پذير از نظر اقتصادي و با کارآيي مناسب. • مهندسي از هندسه و اندازه گيري بدست ميآيد. • مهندسي عبارت است از علم اندازه گيري محصول.

  17. مهندسي نيازمنديها • نيازمنديها براي يک سيستم به طور طبيعي مشخص نميشود بلکه بايد مهندسي شوند و بازبيني و مرور مداوم داشته باشند. • دشوارترين بخش ساختن يک سيستم نرم افزاري اين است که به طور دقيق تعريف کنيم که چه چيزي بايد ساخته شود. بنابراين مهمترين عملکردي که توليد کننده نرم افزار براي کلاينت انجام ميدهد استخراج و پالايش تکرارشونده نيازمنديهاي محصول است.

  18. تعريف مهندسي نيازمندي • براي مهندسي نيازمنديها تعاريف مختلفي ارائه شده است. که در ادامه به برخي از اين موارد اشاره شده است: • يك رويكرد سيستماتيك و داراي قواعد تعريف شده براي استخراج، سازماندهي، مستندسازي، تحليل، اعتبارسنجي و مديريت تغييرات نيازمنديهاي سيستم. • تعريفSumerville: مکانيزمهاي مناسب براي درک آنچه مشتري ميخواهد، تحليل نيازها، مذاکره براي يک راهکار منطقي، اعتبارسنجي خصوصيات و مديريت تغييرات در نيازمنديها. • تعريف RUP: يک رويکرد سيستماتيک براي استخراج، سازماندهي، و مستندسازي نيازمنديهاي سيستم و برقراري، حفظ و ثبت توافقات بين مشتري و تيم پروژه بر روي نيازمنديهاي در حال تغيير سيستم.

  19. تعريف مهندسي نيازمندي (ادامه) • فرآيند تعيين نيازمنديها، تحليل آنها براي کسب نيازمنديهاي بيشتر، مستندسازي آنها در قالب توصيف نيازمندي، و اعتبارسنجي آن توصيف براي کسب اطمينان از مطابقت آن با نيازمنديهاي کاربر تحت عنوان مهندسي نيازمنديهاي شناخته ميشود. (Saiedian and Dale 2000)

  20. چند نکته • راهکار تحقق مهندسي نيازمندي كمّي نمودن نيازمنديهاي کارکردي و غير كاركردي و استخراج كليه نيازمنديهاي لازم جهت ساخت سيستم با كيفيت در راستاي حل مشكلات بنگاه تجاري است. • يك اصل كليدي:مخارج صرف شده براي مهندسي نيازمنديها سرمايه گذاري محسوب ميشود، نه هزينه.

  21. جايگاه نيازمندي در چرخه حيات سيستمهاي نرم افزاري • تعريف چرخه حيات و تفاوت آن با مدل فرآيند، لايه هاي مهندسي نرم افزار، بعدجايگاه نيازمندي هاي در هر کدام از اين موارد مشخص شود. • مهندسي نيازمنديها (تحليل) يكي از وظايف مهندسي نرم افزار است كه شكاف موجود بين مهندسي نيازمنديها در سطح سيستم و طراحي نرم افزار را پوشش مي دهد.

  22. مهندسي سيستم و مهندسي نرم افزار • مهندسي سيستم در مورد سيستم بحث ميکند که نرم افزار بخشي از آن است. • در مهندسي نرم افزار صرفا در مورد يک سيستم نرم افزاري صحبت ميشود.

  23. مهندسي نيازمنديها به عنوان يک فعاليت در مهندسي نرم افزار • مهندسي نيازمنديها بايد بعنوان يك واحد مستقل در كنار ساير واحدهاي بنگاه تجاري، پيوسته در حال انجام وظايف خود باشد. در نمودار زير ارتباط مهندسي نيازمنديها در ساختار سازمان پروژه نرم افزاري نمايش داده شده است.

  24. تعريف دامنه مسئله و دامنه راهکار • در مراحل اوليه فرآيند، تعريف نيازمنديها براي محصول مورد ساخت اهميت زيادي دارد. از منظر مديريت و مهندسي بايد تفاوت و تمايزي بين "دامنه مسئله" و "دامنه راهکار" در نظر گرفته شود. • در صورت عدم تفکيک بين اين دو دامنه موارد زير اتفاق مي افتد: • استيلاي مذاکره در مورد سيستم بوسيله توسعه دهندگان و فراهم کنندگان، چون تنها توصيفات سيستم در قالب راهکارها بيان شده اند. • ناتواني در يافتن راهکارهاي بهينه بدليل فقدان آزادي در طراحي.

  25. تعريف دامنه مسئله (Problem Domain) • دامنه مسئله (نيازمنديهاي ذينفعان) • دامنه مسئله دامنه اي است که سيستم قرار است در آن استفاده شود. بنابراين، توجه به نيازمنديها از نقطه نظر عملکردي اهميت دارد. يک سيستم يا هر محصول ديگر استفاده کننده را قادر به انجام کاري ميکند. اين جنبه قابليت ساز در هسته مهندسي نيازمنديها در دامنه مسئله قرار ميگيرد. • آن مراحل توسعه مرتبط با سطوح بالاي توصيف سيستم، بيان نيازمنديها، و مدلسازي نيازمنديها ذينفعان در دامنه مسئله مورد بررسي قرار ميگيرند. • گزارههاي اوليه نبايد مطلبي بيش از موارد لازم براي تعريف مسئله را شامل شود و همچنين هيچگونه ارجاعي به راهکارهاي خاص نداشته باشد. • به اين ترتيب امکان انديشدن در مورد بهترين راهکار بدون داشتن ذهنيت يا ايده قبلي فراهم ميشود.

  26. دامنه راهکار (Solution Domain) • دامنه راهکار(نيازمندي هاي سيستم) • لايه هاي بعدي مرتبط با نيازمنديهاي سيستم در دامنه راهکار مورد بررسي قرار ميگيرد. • دامنه راهکار دامنه اي است که مهندسان در آن از خلاقيت خود براي حل مسائل استفاده مي کنند. • خصوصيات اوليه اي که دامنه راهکار را از دامنه مسئله متمايز ميکند اين است که مهندسي نيازمنديها در دامنه راهکار با يک مجموعه داده شده از نيازمنديها شروع ميشود. در دامنه مسئله مهندسي نيازمنديها با مجموعه اي از نظرات مبهم و ليستي از آرزوها شروع ميشود.

  27. دامنه مسئله و دامنه راهکار (ادامه)

  28. دسته بندي ذينفعان سيستم انواع ذينفعان سيستم به چند دسته زير قابل تفکيک هستند: • صاحب سيستم (Sponsor) • كاربران سيستم (User) • کاربران نهايي سيستم (End User) • توسعه دهندگان سيستم (Developer Team) • فروشندگان اجزاي سيستم (Vendors) • وسايل يا سيستم هاي موجود در محيط يا در ارتباط با سيستم در خارج از محيط (Internal & External) • ...

  29. دسته بندي ذينفعان سيستم (ادامه) • مديران رده بالا:مسائل كسب و كار را مشخص مي‌كنند. اين مسائل معمولاً بر روي پروژه تاثيرگذار است. • مديران(فني) پروژه:وظيفه طرح ريزي، انگيزش، سازماندهي و كنترل افراد فني را بر عهده دارند. • افراد فني:وظيفه ارائه تخصص‌هاي مورد نظر براي مهندسي محصول را بر عهده دارند. • مشتريان:نياز‌هاي محصول را تعيين مي‌كنند. • كاربران نهايي:از محصول توليد شده استفاده مي‌كنند.

  30. نيازمنديها فقط در محيط هستند. • هرچند ما عادت داريم به ورودي و خروجي ماشين فکر کنيم درک اين نکته مهم است که اين وروديها و خروجيها پديدههايي در محيط هستند. • اگر اين موارد جزئي از محيط نبودند در اين صورت نميتوانستند ماشين و محيط را به هم پيوند دهند يا رفتار محيط را تحت تاثير قرار دهند. • همه گزاره ها در زمينه مهندسي نيازمنديها گزاره هايي در مورد محيط هستند.

  31. مسیر مهندسی نیازمندیها

  32. نرم‌افزار کد + مستندات مربوطه + پارامترهای اندازه

  33. مهندسی نیازمندی مدیریت نیاز ذی‌نفعان • ذی‌نفعان: • Sponsor • End user • User • Developer • and …..

  34. کد آنالیز نیازمندی طراحی

  35. Indicator • استانداردهای نرم‌افزار • SMM • IEEE • Sigma Six • ACM • Ticket • و .... • استانداردهای Defector • استانداردهایی که مختص همان محیطی مورد نظر است. • مثال: می خواهیم کاربر در 3 ساعت کار با سیستم را فرا گیرد.

  36. جمع بندي • در اين فصل مفاهيم پايه اي زير در حوزه مهندسي نيازمنديها مورد بررسي و تعريف قرار گرفت: • تعريف نيازمندي • رابطه ماشين و محيط و جايگاه نيازمندي در اين مدل • توصيف نيازمندي • تعريف مهندسي و مهندسي نيازمنديها • تعريف سيستم و بررسي انواع سيستمهاي نرم افزاري • تعريف دامنه مسئله و دامنه راهکار • دسته بندي ذينفعان

  37. مراجع و منابع پيشنهادي براي مطالعه بيشتر [1]. M.Jackson, “The meaning of requirements,” Annals of Software Engineering Special Issue on Software Requirements Engineering. [2].P. Zave and M. Jackson, Four Dark Corners of. Requirements Engineering, ACM Transactions Software. Eng. and Methodology,6(1). 1997. [3]. Axel van Lamsweerde, “Requirements Engineering in the Year 00: A Research perspective”, Invited paper for ICSE’2000 to appear in Proc. 22nd International Conference on Software Engineering, Limerick, June 2000, ACM Press

  38. مراجع و منابع پيشنهادي براي مطالعه بيشتر [4]. Requirement Engineering, Elizabeth hall, Springer, second edition, 2005

More Related