کامپیوتر و IT و اینترنتعلوم مهندسیمهندسی صنایع و مواد

آشنایی مختصر با مهندسی نرم افزار 1

صفحه 1:
مهندسی نرم افزار ‎٩‏ اا

صفحه 2:
* مهندسی نرم افزار اثر: بان سامرویل . مترجم: عین الّه جعفر نژاد قمی * مهندسی نرم افزار اثر: راجر اس. پرسمن مترجم: دکتر محمد مهدی سالخورده حقیقی sacs Kee eens ‏اثر: ایگور هوریس کیوویچ مترجم: عین الّه جعفر نژاد قمی‎

صفحه 3:
ee 1 1 Noe Sper | ‏مهندسى نرمافزار‎

صفحه 4:

صفحه 5:
سرآغا * مهندسی نرمافزار طراحی برنامهنوبسی. توسعه. مستندسازی و نگهداری نرم افزار با بکارگرفتن روشهای فنی و عملی از علوم کامپیوتر. مدیربت پرویه. مهندسی, محدوده کاربرد. طراحی رلبط. مدبریت تجهیزات دیجیتال و سایر زمینه‌ها است. * اصطلاح مهندسی نرمافزار بعد از سال ۸ ۱۹۶ شناخته شد. طی کنفرانس مهندسی نرمافزار نلتو ۱۹۶۸ (که در گارمیش آلمان برگزار شد) توسط ریاست کنفرانس ۲۰۱۰63۱16۲ معرفی شد. و از آلن پس به طور گسترده مورد استفاده قرار گرفت.

صفحه 6:
تعریف نرمافزاره چرخه حیات سیستم * مفاهیم تحلیل و طراحی سیستمها * سیستمهای اطلاعاتی ساختيافته * امکان سنجی نمودارهای جریان داده * توصیف دادهها * توصیف فرآیندها ۴ معرفی ابزار: )هبو ‎Co pro‏ پروژه. برنامهریزی و زمانبندی

صفحه 7:
۳ فرم افزار عبارت است از: * دستورات (برنامههای کامپیوتری) که در صورت اجرا شدن باعث انجام ‎foc‏ و کارهای خواسته شده میشوند. * ساختمان دادههایی که باعث میشوند برنامهها به طور مناسبی اطلاعات را دستکاری کننده و * مستنداتی که توصیف کننده عملکرد و چگونگی استفاده از برنامهها میباشند.

صفحه 8:
نمودار نرخ شكست نرمافزار

صفحه 9:
*نرمافزار سیستمی *نرمافزار بیدرنگ (۸۳ ‎(Red‏ *نر هفرع روبرنامههایی است که برای دادن سرویس به برنامههای دیگر نوشته شدهاند. ‎eaten piles‏ وقابي دنیای واقعی را در هنگام وقوع بر عهده دارند که اجزای آن عبار تند از ۳ خارجی ۲- مولفه تحلیل ۳- مولفه کنترل ورودی اخروجی *نرمافزار جاسازع- افو يشل +!حنوا ه48 بين ‎١‏ ميلى ثانيه تا ‎١‏ ثانيه) ۰ _بردازش اطلاعات تجاری با دسترسی به یک یا چند بانک اطلاعاتی بزرگ *نرمافزار کامپیوتر شخوبی‌الکوربتمهای کار با اعداد مانند 6۸0 در عافاله فقظ خواندتى قرار میگیرد و برای کنترل محصودت۱ سسههای ی و ری ا ادج موه (محصولات هوشمند /اتومبیل /تلفن همراه) کار محدود و مشخصی را انجام میدهد *نرمافزار هووازش کلمه صفحات گسترده. گرافیک کامپیوتری. چندرسانهای. بازی پرمدرار 2 : 3 1 ۳ صفحات وب شامل دستورات اجرایی و دادهها که توسط مرورگرها بازیابی میشوند از الگوریتمهای غیر عددی برای حل مسائل پیچیده استفاده مینمایند. (سیستم خبره - ت الكو)

صفحه 10:
*تغییر اهداف سازمان تغییر وظایف سازمان

صفحه 11:
*باید با محیطهای محاسباتی و فنآوریهای جدید مطابقت داشته باشند *نیازمندبهای جدید سازمان را برآورده کنند *بلید توسعه داده شوندتا قادربه همکاری‌با سیستمها و بانکهای اطلاعاتی جدید باشند *باید در معماری نرمافزار تجدیید نظر شود تا در محیط شبکه قابلیت سرویسدهی را داشته باشد

صفحه 12:
ریک دوره زمانی از هنگام نیاز به سیستم تا پایان بهرهبرداری از آن * چرخه زیست سیستم شامل - تعریف (برنامهربزی استراتژیک. تحلیل و طراحی مفهومی) - توسعه (طراحی تفصیلی, ساخت. استقرار) ei ‏نگهداری و بهبود میباشد.‎ - ۲ ‏نیاز به سیستم‎ اجرا توسعه تعریف نیاز به سیستم

صفحه 13:
هدف: تولید برنامه با کیفیت خوب عوامل موثر در خوب بودن نرمافزار : عوامل خارجی: توسط کاربر نرمافزار تشخیص داده میشود (اهداف) عوامل داخلی: برای متخصصین کامپیوتر قابل درک است (ابزار رسیدن ‎ay‏ اهداف) عوامل خارجی : * صحت برنامه ‎(COonreciaess)‏ ‏استحکام (عوعص0۳9؟)) : جوابكويى در شرايط غيرعادى * قابليت توسعه (مطلاطلكحج») * قابلیت مصرف 2170 ‎(Reusubiliy)‏ ‏* سازگاری (/۳۳۳۳/۳8()) : رعایت استاندارد * قابلیت حمل (۳۳۲:7)): اجرا در سیستمعامل و سختافزارهای گوناگون * کارآیی (مبص(۳): سرعت بالا و حافظه پایین عوامل داخلی : واحدبندی

صفحه 14:
پیچیدگی و قدرت سختافزار باعث شده که نوشتن نرمافزاری که بتواند از این تسيل سختافراری استفاده کامل کند مخکل گردد. توان ما برای ایجاد برنامههای جدید ‎ay‏ اندازه تقاضا نیست * توان نگهداری برنامههای موجود به خاطر طراحی ضعیف مورد تهدید قرار ميكيرد. * برنامههای تولید شده مشکلاتی دارند. - هزینه تولید نرم افزار دائماً افزايش مييابد. — هزینهها مطابق هزینه پیشبینی شده نيستند. - عملیات مطابق برنامه زمانبندی انجام نمیگیرند - نرمافزار تولید شده همه کارهای مورد نظر را انجام نمیدهد - نرمافزار دارای خطاست

صفحه 15:
برای بر طرف کردن بحران نرمافزار سه عامل کلیدی برای کنترل فرایند تولید نرمافزار و ایجاد یک پایه و اساس برای ساختن یک نرمافزار با کیفیت بالا عبارتند از * روشهای مهندسی نرمافزار وطل) ابزار مهندسی نرمافزار (5ا0) رویههای مهندسی نرمافزار: ابزار و روشها را به هم پیوند میزننده ترکیب به کاربردن روشها/ کنترل کیفیت| پیشرفت پروژه مهندسی نرمافزار شامل قدمهایی است که از این روشها ابزار و رویهها تشکیل شده است. مهندسی نرمافزار یک نظام

صفحه 16:
ee By ad oe te) متدلوژی : به مجموعیای از قواعد و رویپا که به چرخه زیست سیستم ساختار میدهد متدلوژی میگویند. فرایند مندسی نرمافزار. مجموعیای از قدمبای قابل پیشبینی برای توسعه نرمافزار را مشخص میکند.

صفحه 17:
متدولوژی يك متدولوئی مجموعهایی از روشها و توصیهها (061:065آلا62) میباشد که به همراه اسرد مشخ واطى دراحل مختلف از وسعه دس ید كار كرف ۲۳-۰ متودولوه در واقع یک چارچوب است که ترتیب گامبهگام راهکارهایی را که به توسعه ‎peer‏ نيان كمك کنتف مشحس میتماید: یک متدلویی دارای ابزار تعریف شده و مدل مفهومی میباشد و از یک گرامر استفاده میکند. هر متدولوژی برای انجام کارها از تعدادی ابزار و تکنیک استفاده مینماید. برای مثال مدل شیگرا و یا مدل ساختیافته در توسعه نرمافزار در متدولوکی توسعه ترمافزار هستند.

صفحه 18:
مدل فرآیند فرآیند مهندسی نرمافزار مجموعهای از قدمهای قابل پیشبینی برای توسعه نرمافزار را شخص ميكند. مدل فرآيند نرمافزار قدمهاء و استراتژی توسعه نرمافزا فرآیند و روش میباشد, از مدلهای معروف میتوان به مدلهای ی افزایشی؛

صفحه 19:
eI er To متدولوژی, روش طی کردن قدمهایی است که مدل فرآیند تعریف میکند. 1 تکنولوژی مهندسی نرمافزار یک تکنولویی لایهای است و متدولوئی بر روی لایه فرآیند قرار دارد. را ‎ae‏ << کی > وت ‎Methods‏ _ > أن ‎Process eal )‏ د 3 ‎AQualityFocus 00-7 ۹‏ اج«

صفحه 20:
تکنیکها روشهایی هستند که اعضای تیم با دنبال کردن آنها اطمینان خواهند داشت كار از ابتدا تا انتها به طور کامل و جامع انجام خواهد شد. ابزارها برنامههای کامپیوتری هستند که استفاده از تکنیکهای خاصی را آسان مینمایند. مانند ابزار 95 افت؟) که در تکنیکهای تحلیل و طراحی بسیار مفید است و یا 8 كه مربوط به تكنيكهاى تست نرمافزار ميشود و يا صدها برنامه کاربردی دیگر. غیر از ابزارهلیی که به ما در استفاده از تکنیکها یاری میبخشند. ابزارهلیی وجود دارند که اهداف دیگری مانند سرعت بخشیدن به تول ل را دنبال میکنند. مانند تولي کننده کد(س<) ط() . ابزار مهندسی معکوس و ...

صفحه 21:
‘Communication project initiation Planning estimating scheduling tracking requirement gatheridl Modeling analysis 6 Deployment delivery support feedback ee Nee ae Zoe Ont a asd

صفحه 22:
‎TY‏ مهندسی سیستم ‏۲ ۱ نجاییکه نرمافزار هميشه قسمتی از یک سیستم بزرگتر است. کار از مشخص كردن ‎glee‏ کل سیستم آغاز میشود و سپس زیرمجموعهای از لین نیازمندیها را به نرمافزار ‏نسبت میدهیم. ‏به خاطر اینکه نرمافزار مجبوربه داشتن ارتباطبا مولفههای دیگر سیستم از قبیل سختافزار, مردم و گاه پایگاه دادههاست. داشتن این دیدگاه از سیستم. یک امر اساسی ا ‎ ‎ ‎ ‎ ‎

صفحه 23:
۱- مدل آبشاری سس کسووندسی سیستم ‎oy‏ ) تجزیه و تحلیل ]7 طراحی پیاده سازی و مت نگهدا اری جمعآوری نیازمندیهای مشخصاً مربوط‌به نرمافزار برای فهمیدن چگونگی برنامههلیی که بايد ساخته شوند. مهندس نرمافزار (تحلیلگر) بایستی - دامته اطلاعات - عملیات مورد نظر (ورودیها- خروجیها و پردازشها) - واسطبها را بداند. نیا یهای سیستم و نرمافزار مستندسازی شده و با مشتری بازنگری ميشود.

صفحه 24:
4 مهددسی سیستم 1 تجزيه و تحليل طراحى نرمافزار .يك فرايند جند مرحلهاى است كه روى سه مشخصه متفاوت از برنامه تاكيد دارد: - ساختمان دادهها - معمارى نرمافزار - جزئیات رویهها 1 در فرایند طراحی نیازمندیها تبسیل‌به نمایشی از نرمافزار میشوند تا قبل ازبه کد در آوردن. قابل ارزیابی باشند. طراحی نیز بایستی مانند بیها مستندسازی گردد.

صفحه 25:
1 مهندسی سیستم 0 تجزیه و تحلیل پیاده سازی طراحی بایستی‌به صورتی که برای ماشین قلبل فهم باشد در بیاید. اگر طراحی در حد جزئیات باشد. پیادهسازی میتواند بسیار سریع و به صورت مکانیزه انجام شود.

صفحه 26:
‎a si‏ استثنای نرمافزارهای نرمافزار بدون شک پس از تحویل به مشتری دچار تغییر میشود (به ‎3S‏ ‏بر ار 4 ‏یا بالا بردن کارایی 1 ات يا بالا بر 1 - درخواست مشترى جهت توسعه در عمليا ‏3 0 داجرا نكهدارى نرمافزار تمام مراحل قبل را روى يك برنامه موجود اجرا ‎ ‎

صفحه 27:
۱- جریان ترتیبی به ندرت وجود دارد. هميشه برگشت به عقب هست. ۲- بیان صربح همه نیازمندیها در ابتدا مشکل است. ۳- برنامهها دیر حاضر ميشود. مشتری بايد صبر داشته باشد

صفحه 28:
يي ل لب يك مدل توليد نرمافزار خطى ترتيبى است كه روى جرخه كوتاه توليد تاكيد زيادى دارد. نيازها بايستى كاملاً شناخته شده و حوزه كار محدود باشد. * از تكنيكهاى نسل جهارم و مؤلفههاى آماده استفاده ميكردد * براى يروزههايى كه قابل تقسيم هستند به كار ميآيد ‎Sie‏ نیاز به نیروی انسانی کافی * تعهد تولید کننده و مشتری برای کامل کردن سیستم در زمان کوتاه لازم است

صفحه 29:
و ۱ ‏ود‎ as ad ats One aad

صفحه 30:
7-توليد سريع فرمافزار» (00)) موارد نامناسب برای استفاده از ‎ROBO‏ *مواردی که تیار به کارانی بالاهیباشد. * مواردی که امکان واحدبندی مناسب سیستم نباشد. * مواردی که ریسک تکنیکی بالا باشد (هنگام استفاده از یک تکنولوژی ‎GU arse‏

صفحه 31:
۳- نمونیسا نمونهسازی فرایندی است که تولید کننده را قادر به ایجاد یک مدل از نرمافزار مورد نظر میکند. این مدل میتواند به صورت ) یک نمونه روی کاغذ ‎power probype‏ ۲) یک نمونه کاری ‎worktay prowyppe‏ ۴) یک برنامه موجود جص راطاصمح بولطجد نمونه باید دور انداخته شود

صفحه 32:

صفحه 33:
1 جم آوری نیازها طراحى ۳۳ شرع

صفحه 34:
software functionality and features

صفحه 35:
در این مدل مراحل تولید ترثیبی ‎Oe es ef aid‏ هر رشته ترتیبی عملیات. یک افزایش قابل تحویل را تولید میکند. تخویل نسخه لول تست ال« 1 + ~% 3 + & تحویل نسخه نوم تست لو كد لو رای چ] تحلیل تخویل نسخه سوم | تست م كد لهاطراحي له تحلیل

صفحه 36:
6- مدلهاى تكاملى: مدل حلزونى توسعه سيستم به صورت افزا planning estimation scheduling risk analysis communication modeling analysis design deployment construction delivery code test feedback ee Nee ae Zoe Ont a asd

صفحه 37:
۶- مدلهای تکاملی: مدل تولید همزمان توسعه به صورت یک فرایند سیستماتیک و مرحلهبندی و برچسبگذاری هر بخش در هر مرحله. تقسیم سیستم به بخشهای مختلف و تقسیم نیروها در بین پروژههای مختلف برای اجرای این بخشها به صورت همزمان

صفحه 38:
۷- مدل تولید با استفاده از مولفهها ۸- مدل روشهای رسمی (فرمال): بکارگیری مدلها و مفاهیم و سیستم در توسعه سیستم ‎-٩‏ تکنسکهای نسل چهارم: بکارگیری ابزارهای گرافیکی و ابزارهای مهندسی نرمافزار )06 3) olan! b OuiPied Process -)+

صفحه 39:
اصول محوری مهندسی نرمافزار - ایجاد ارزش برای مشتری و کاربر - سادهسازی - چشمانداز نگهداری محصول و پروژه انحه که شما تولید میکنید دیگران مصرفت أله كر - آیندهنگر بودن 5 طراحی پیشاپیش برای استفاده مجدد - انديشه

صفحه 40:
هاى مهندسى نرمافزار فرایندهی عمومی مهندسی نرم إقزار ‎eae‏ - طرحریزی - مدلسازی - جاریسازی (استقرار و اجراء سیستم)

صفحه 41:
كارهاى ارتباطى - اصول كوشكرهن- آمادگی قبزاز ليجاد ايتباط- . ي[إيتباط - بهتریرایتباط ایتباط رودررو لست- یاددلشتبرداریو تبتتصمیمات- تشريكمساعىبا مشترى- تمرکز دلشتر- ترسیم شک نمانیکه موضوعانتش فا فنیسته 0 برلیبرد طرفین_هترین‌کار مذلکره لسته

صفحه 42:
لطمیناناز ایتباط فعلل لیجاد سیستمهاوقویو بومی‌شده - لستفاده از ساختر تیمیمناسب مجموعه وظایفک وتاه شده - بهترینم کانیزم ارتباطی‌را تعریفک نید - لعدلفف رعیو ک لیا تعریفف موده و محدوده را مشخصک نید - جزئیاتب یشترید ریاف ماید - دلنستریس ناریوهایت عریفشده توسط ذینفعان ولیلستفادم - لستخولج و لقتباس‌جنبهها و ک ارکردهایلصلی- بازنگرین نایج همرله با ذینفعان-

صفحه 43:
هاى ریزی - اصول درک محدوده پروژه * درگیرکردن مشتری (و سایر ذینفعان) * مشخص کنید که طرحریزی قابل تکرار است * برآورد بر اساس دانستهها * در نظر گرفتن ریسکها ۶ واقعگرائی- واقعگرا بودن * تنظیم امور با توجه به طرح * تعریف کنید که چگونه کیفیت قابل تحصیل خواهد بود * تعریف کنید که چگونه تغیبرات قابل تطبیق دادن آسنتا ردیابی آنچه که طراحی شده است

صفحه 44:
eS ee tet SS oe aC) ‎Crkew)‏ يرسشهاى بوهم را مطرح كنيد - جرا سيستم بايد توسعه يابد؟ - جه جيزى قرار است انجام شود؟ - جه زمانى اين كار انجام خواهد شد؟ - جه كسى مسئول است؟ - کجا آنها استقرار یافتهاند (بصورت سازمانی)؟ - چگونه کار از نظر فنی و مدیریتی انجام خواهد شد؟ - چه مقدار از هر منبعی مورد نیاز است؟ ‎

صفحه 45:
رهای طرحریزی مجموعه وظایف اختصاری - محدوده پروژه را دوباره ارزیابی کنید (ارزیابی دوباره محدوده پروژه) - ارزیابی ریسکها - ارزشگذاری عملیات | جنبه‌ها ‎oleae‏ یک طر سس - تعداد افزایشات نرمافزاری - زمانبندی کلی - زمان تحویل برای افزایشات - ایجاد طرحی ساده برای اولین افزایش - ردیایی پیشرفت (کنترل کیفیت)

صفحه 46:
مامدلها را ایجاد مکنیم تا درک بهتری ار رد را ۳۳۱۳۰۳۵ ساخته شود ایجاد نمائیم - مدلهای تحلیلی نیازهای مشتری را به وسیله نمایش نرمافزار در سه حوزه مختلف ارائه می‌دهند. این سه حوزه عبارتند از: حوزه اطلاعات. حوزه عملیاتی و حوزه رفتاری - مدلهای طراحی ارلئه دهنده ویژگیها و خصوصیتهای نرمافزار بوده که این حصود یات به طراحان کمک میکننه تا به کونها زد بداها ۱۳۰۰۰۰۱ زئیات آن عبارتند از:

صفحه 47:
هاى مدلسازى تحليلى اصول مدلسازى تحليلى - قلمرو اطلاعات را ارائه ميكند - عملكرد نرمافزار را ارائه ميكند - رفتار نرمافزار را ارائه ميكند - تفكيك اين ارائهها مولفههاى مدل تحليلى - مدل داده - مدل جريان - مدل نوع - مدل رفتار

صفحه 48:
هاى مدلسازى طراحى اصول - در مدل تحلیلی» ‎bb‏ بايد قابل رديابى باشد. - معمارى همواره بايد مد نظر باشد. - تمرکز بر طراحی دادهها باشد. - برنامههای واسطه باید طراحی شده باشند (هر دو کاربر و داخلی). - اجزاء بايد نشان دهنده استقلال عملکرد باشد. - اجزاء باید به گونهای ضعیف جفت شوند.

صفحه 49:
كارهاى مدلسازى طراحى طراحى ارائه شده بايد به راحتى درك شود - مدل طراحى شده بايد به كونهاى قابل تكرار توسعه يابد - مؤلفههاى مدل طراحى - طراحی داده - طراحی معماری - طراحی اجزا - طراحی واسط

صفحه 50:
كارهاى ساختا اصول آمادهسازى: قبل از اينكه حتى يك خط كدنويسى انجام شود بايد از موارد زير مطمئن شد: -درک مسئلهای که شما سعی درحل آن دارید (رجوع شود به ارتباط و مدلسازى) -درک مفاهیم و اصول پایهای -گزینش زبان برنامهنویسی مناسب. که نیازهای نرمافزار و محیط آنرا که قرار است اجا شد ودر آن كار كند برآورذه سازت انتحاب محیط برنامهنویسی كه ابزار ارلئة شده بوط كن موب ساد در ‎BS‏ ‏گردد ایجاد مجموعهای از تستهای واحد که اجزاء کامل شده کدگذاری را برای اولین اجراء تست خواهند کرد

صفحه 51:
promo ‏ام‎ اصول کدگذاری: با شروع به کدنویسی باید از موارد زیر اطمینان حاصل کرد: ° اب ساختارهای داده که میجواهد نیازهای طراحی را پرآورده سا * درک معماری نرمافزار و ایجاد واسطمانی که با آن سازگار است * حفط شرایط ملك تا جایی که ممکن است * ایجاد حلقههای تو در تو به گنهای که قابلیت تست آسانی داشته باشند * انتخاب نامهای متغیر معنیداره و پیروی از دیگر استانداردهای کدگذاری محلی (es) نوشتن کدهایی که خودشان قابلیت مستند شدن داشته باشند * ایجاد یک طرح دیداری (به عنوان مثال: ایجاد فضای خالی در شروع متن و ایجاد حطوط خالی که به درک مطلب کمک میکند)

صفحه 52:
های موبوط به ساخت سیستم اصول معتبرسازی: پس از تکمیل اولین مرحله کدگذاری, باید اطمینان حاصل نمائید: * در زمان مقتضی جلسهای برای بررسی کد برگزار نمایند * اجرای تستهای واحد و تصحیح خطاهایی که پوشش داده نشدهاند * دوباره عمل كردن به كد

صفحه 53:
رهاى موبوط به ساخت سيستم :اصول تست 7 پزم دیا , شم تستها باید طرح ویزی‌شده باشند- wig tiles ant oye uly gif fuel درصد خطاها در ۲۰ درصد از کدها یافتمیشوند600- تستهااز کم‌به زیاد بساید لنجام شود تستفولگیر ممکرنیست

صفحه 54:
مربوط به جارد اصول ‎١‏ را ترس رای ل ماف ‎sll als) ٩‏ تس و تحویل شوا * یک روش پشتیبانی از محصول باید ایجاد شود موضوعات آموزشی میبایست تهیه و در اختیار کاربر قرار گیرد ابتدا باید اشکالات نرم افزار مرتفع شده. سپس متحول شود

صفحه 55:
56 لیات نرمافزار و لازم براى عمليات. واسطههاى نرمافزار با مولفههاى دي يستم و محدودیتهای طراحی که نرمافزار بایستی رعایت کند را مشخص میکند. تجزبه و تحلمل نبازها برای طراح نرم افزار نمایش اطلاعات و عملیات را مشخص میکند که منجر به طراحی دادههاء معماری و رویهها میشود و بیلی مشتری و تولمدکننده نحوه ارزیابی کیفیت نرمافزار را بهد از ساخت مشخص میکند.

صفحه 56:
‎pad‏ رم رهز ‎ ‏۱_ توانایی فهمیدن مفاهیم مجرد. سازماندهی مجدد آنها در گروههای منطقی ایجاد راهحلهایی برای هر گروه منطقی ۲ توانایی جذب حقایق صحیح و مناسب از منابع گیج کننده و متناقض. ‏۳_ توانایی فهم محیطهای کاربر/ مشتری. ۴_ توانایی بکارگیری مولفههای سختافزاریانرمافزاری برای محیطهای کاربر/ مشتری. ‏۵_ توانایی برقراری ارتباط خوب به صورت شفاهی و کتبی. ‎

صفحه 57:
دامنه اطلاعات بایستی شناختسه شده و نمایسش داده شود. (جریان اطلاعات. محتوای اطلاعات و ساختار اطلاعات) ۱. مدلهایی که نشانگر اطلاعات. عملیات و رفتار سیستم هستند. ۲. مسأله بایستی تقسیمبندی شود تا جزئیات مشخص گردد. (کاهش پیچیدگی) ۳. نمایش منطقی و فیزیکی سیستم بایستی ایجاد گردد.

صفحه 58:

مهندسی نرم افزار 1 ‏Software Engineering1 پایانترم 10 :نمره میانترم 6 :نمره (شنبه 18اردیبهشت )1395 پروژه 4 :نمره معرفی منابع: • مهندسی نرم افزار اثر :یان سامرویل مترجم :عین اهلل جعفر نژاد قمی • مهندسی نرم افزار اثر :راجر اس .پرسمنمترجم :دکتر محمد مهدی سالخورده حقیقی • تحلیل و طراحی سیستمها اثر :ایگور هوریس کیوویچ مترجم :عین اهلل جعفر نژاد قمی 2 ‏Email: smr.ebrahimipour@gmail.com Email: smr.ebrahimipour@gmail.com 3 Email: smr.ebrahimipour@gmail.com 4 سرآغاز • مهندس7ی نرمافزار طراح7ی ،برنامهنویس7ی ،توس7عه ،مس7تندسازی و نگهداری نرم افزار ب7ا بکارگرفت7ن روشهای فن7ی و عمل7ی از علوم کامپیوت7ر ،مدیری7ت پروژ7ه ،مهندس7ی ،محدوده کاربرد ،طراح7ی راب7ط ،مدیری7ت تجهیزات دیجیتال و سایر زمینه‌ها است. • اص7طالح مهندس7ی نرمافزار بع7د از س7ال ۱۹۶ ۸شناخت7ه ش7د ،ط7ی کنفران7س مهندس7ی نرمافزار نات7و ( ۱۹۶۸ک7ه در گارمی7ش آلمان برگزار ش7د) توس7ط ریاس7ت کنفران7س F.L. Bauerمعرف7ی ش7د ،و از آ7ن پ7س ب7ه طور گس7ترده مورد استفاده قرار گرفت. 5 ‏Email: smr.ebrahimipour@gmail.com سرفصل مطالب • • • • • • • • • • 6 تعريف سيستم تعریف نرمافزار ،چرخه حیات سیستم مفاهیم تحلیل و طراحی سیستمها سیستمهای اطالعاتی ساختیافته امكان سنجي نمودارهاي جريان داده توصيف دادهها توصيف فرآيندها معرفی ابزارPower Designer : مدیریت پروژه ،برنامهریزی و زمانبندی ‏Email: smr.ebrahimipour@gmail.com تعریف نرمافزار نرم افزار عبارت است از: • دستورات (برنامههای کامپیوتری) که در صورت اجرا شدن باعث انجام عمل و كارهاي خواسته شده ميشوند، • س اختمان دادههای ی ک ه باع ث ميشون د برنامهه ا به طور مناسبي اطالعات را دستكاري کنند ،و • مستنداتی که توصيف كننده عملكرد و چگونگی استفاده از برنامهها میباشند. 7 ‏Email: smr.ebrahimipour@gmail.com نمودار نرخ شکست نرمافزار increased failure rate due to side effects Failure rate change actual curve idealized curve Time Email: smr.ebrahimipour@gmail.com 8 ,ندی نرمافزارها : طبقهب •نرمافزار سیستمی •نرمافزار بیدرنگ ()Real time •نرمافزار تجاریبرنامههايي است كه براي دادن سرويس به برنامههاي ديگر نوشته شدهاند. مجموعهاي از نمايش تحليل و كنترل وقايع دنياي واقعي را در هنگام وقوع بر عهده دارند كه اجزاي آن عبارتند •نرمافزار مهندسی و علمی از -1مولفه جمعآوري دادهها از محيط خارجي -2مولفه تحليل -3مولفه كنترل ورودي/خروجي (پاسخ بين 1ميلي ثانيه تا 1ثانيه) شده(نمايش دهنده. جاسازي-مولفه 4 )Embedded •نرمافزار پردازش اطالعات تجاري با دسترسي به يك يا چند بانك اطالعاتي بزرگ شخصیالگوريتمهاي كار با اعداد مانند CAD •نرمافزار کامپیوتر داراي در حافظه فقط خواندني قرار ميگيرد و براي كنترل محصوالت و سيستمهاي صنعتي و مشتري •نرمافزار وب استفاده ميشود (محصوالت هوشمند/اتومبیل/تلفن همراه) کار محدود و مشخصي را انجام ميدهد صفحات گسترده ،گرافيك كامپيوتري ،چندرسانهاي ،بازي پردازش كلمه، مصنوعی •نرمافزار هوش صفحات وب شامل دستورات اجرايي و دادهها كه توسط مرورگرها بازيابي ميشوند از الگوريتمهاي غير عددي براي حل مسائل پيچيده استفاده مينمايند. (سیستم خبره – تشخیص الگو) 9 ‏Email: smr.ebrahimipour@gmail.com شرايط نياز به سيستم •تغيير اهداف سازمان •تغيير وظايف سازمان •تغيير تكنولوژي (سختافزار ،نرمافزار ،ارتباطات) •تغييرات محيطي 10 ‏Email: smr.ebrahimipour@gmail.com نرمافزارهای موجود چرا باید تغییر کنند؟ •باید با محیطهای محاسباتی و فنآوریهای جدید مطابقت داشته باشند •نیازمندیهای جدید سازمان را برآورده کنند •بای7د توس7عه داده شون7د ت7ا قادرب7ه همکاریب7ا س7یستمها و بانکهای اطالعاتی جدید باشند •بای7د در معماری نرمافزار تجدی7د نظ7ر شود ت7ا در محی7ط شبک7ه قابلیت سرویسدهی را داشته باشد 11 ‏Email: smr.ebrahimipour@gmail.com چرخه زيست سيستم يك دوره زماني از هنگام نياز به سيستم تا پايان بهرهبرداري از آن • چرخه زيست سيستم شامل – – – – تعريف (برنامهريزي استراتژيك ،تحليل و طراحي مفهومي) توسعه (طراحي تفصيلي ،ساخت ،استقرار) اجرا نگهداري و بهبود ميباشد. نياز به سيستم جديد 12 اجرا توسعه تعريف نياز به سيستم ‏Email: smr.ebrahimipour@gmail.com ضوابط ارزیابی نرمافزار : هدف :تولید برنامه با کیفیت خوب عوامل موثر در خوب بودن نرمافزار : عوامل خارجی :توسط کاربر نرمافزار تشخیص داده میشود (اهداف) عوامل داخلی :برای متخصصین کامپیوتر قابل درک است (ابزار رسیدن به اهداف) عوامل خارجی : • صحت برنامه ()Correctness • استحکام ( : )Robustnessجوابگویی در شرایط غیرعادی • قابلیت توسعه ()Extendibility • قابلیت مصرف مجدد ()Reusability • سازگاری ( : )Compatibilityرعایت استاندارد • قابلیت حمل ( :)Portabilityاجرا در سیستمعامل و سختافزارهای گوناگون • کارآیی ( :)Efficiencyسرعت باال و حافظه پایین عوامل داخلی :واحدبندی 13 ‏Email: smr.ebrahimipour@gmail.com :بحران نرمافزاری • • • • 14 پیچیدگی و قدرت سختافزار باعث شده که نوشتن نرمافزاری که بتواند از این پتانسیل سختافزاری استفاده کامل کند مشکل گردد. توان ما برای ایجاد برنامههای جدید به اندازه تقاضا نیست توان نگهداری برنامههای موجود به خاطر طراحی ضعیف مورد تهدید قرار میگیرد. برنامههای تولید شده مشکالتی دارند . – هزینه تولید نرم افزار دائماً افزایش مییابد. – هزینهها مطابق هزینه پیشبینی شده نیستند. – عملیات مطابق برنامه زمانبندی انجام نمیگیرند – نرمافزار تولید شده همه کارهای مورد نظر را انجام نمیدهد – نرمافزار دارای خطاست ‏Email: smr.ebrahimipour@gmail.com مدلهای گوناگون در فرآیند تولید نرمافزار : برای بر طرف کردن بحران نرمافزار سه عامل کلیدی برای کنترل فرایند تولید نرمافزار و ایجاد یک پایه و اساس برای ساختن یک نرمافزار با کیفیت باال عبارتند از • روشهای مهندسی نرمافزار ()methods • ابزار مهندسی نرمافزار ()tools • رویههای مهندسی نرمافزار :ابزار و روشها را به هم پیوند میزنند ،ترکیب به کاربردن روشها /کنترل کیفیت /پیشرفت پروژه مهندسی نرمافزار شامل قدمهایی است که از این روشها ابزار و رویهها تشکیل شده است. مهندسی نرمافزار یک نظام مهندسی است که با تمام جنبههای نرمافزاری محصول از مراحل اولیه تعیین مشخصات تا نگهداری سیستم سر و کار دارد. 15 ‏Email: smr.ebrahimipour@gmail.com ,د تولید نرمافزار مدلهای موجود در فرآین متدلوژی : ب(ه مجموعهای از قواع(د و رویهه(ا ک(ه ب(ه چرخ(ه زیس(ت س(یستم ساختار میدهد متدلوژی میگویند. فراین(د مهندس(ی نرمافزار ،مجموعهای از قدمهای قاب(ل پیشبینی برای توسعه نرمافزار را مشخص میکند. متدولوژی یک متدولوژی مجموعهایی از روشها و توصیهها ( )Guidelinesمیباشد كه به همراه راهبرد مشخص و طي مراحل مختلف از توسعه سيستم به كار گرفته ميشود. متودولوژه در واقع يك چارچوب است كه ترتيب گامبهگام راهكارهايي را كه به توسعه محصول نهايي كمك ميكنند ،مشخص مينمايد. يك متدلوژي داراي ابزار تعريف شده و مدل مفهومي ميباشد و از يك گرامر مشخص استفاده ميكند. هر متدولوژي براي انجام كارها از تعدادي ابزار و تكنيك استفاده مينمايد. براي مثال مدل شيگرا و يا مدل س اختيافته در توس عه نرمافزار دو متدولوژ ي توسعه نرمافزار هستند. 17 ‏Email: smr.ebrahimipour@gmail.com مدل فرآیند فرآين د مهندس ي نرمافزار مجموعهاي از قدمهاي قاب ل پيشبيني براي توسعه نرمافزار را مشخص ميكند. مدل فرآيند نرمافزار قدمها ،و استراتژي توسعه نرمافزار ،فرآيند و روش ميباشد. از مدلهاي معروف ميتوان به مدلهاي آبشاري، افزايشي، و چرخشي اشاره كرد. 18 ‏Email: smr.ebrahimipour@gmail.com تفاوتهای متدولوژی و مدل فرآیند متدولوژي ،روش طي كردن قدمهايي است كه مدل فرآيند تعريف ميكند. تكنولوژي مهندسي نرمافزار يك تكنولوژي اليهاي است و متدولوژي بر روي اليه فرآيند قرار دارد. 19 ‏Email: smr.ebrahimipour@gmail.com تکنیکها و ابزارها تکنیکها روشهايي هستند كه اعضاي تيم با دنبال كردن آنها اطمينان خواهند داشت كار از ابتدا تا انتها به طور كامل و جامع انجام خواهد شد. ابزارها برنامههاي كامپيوتري هستند كه استفاده از تكنيكهاي خاصي را آسان مينمايند. مانند ابزار Rational Roseكه در تكنيكهاي تحليل و طراحي بسيار مفيد است و يا NUnitكه مربوط به تكنيكهاي تست نرمافزار میشود و یا صدها برنامه كاربردي ديگر. غير از ابزارهايي كه به ما در استفاده از تكنيكها ياري ميبخشند ،ابزارهايي وجود دارند كه اهداف ديگري مانن د س رعت بخشيدن ب ه توليد محص ول را دنبال ميكنند .مانن د توليد كننده كد( ، )Code Generatorابزار مهندسي معكوس و ... 20 ‏Email: smr.ebrahimipour@gmail.com مدل آبشاری-1 Communication project initiation requirement gathering Planning estimating scheduling tracking Email: smr.ebrahimipour@gmail.com Modeling analysis design Construction code test Deployment delivery support f eedback 21 -1مدل آبشاری مهندسی سیستم: از آنجاییک7ه نرمافزار همیش7ه قس7متی از ی7ک س7یستم بزرگت7ر اس7ت ،کار از مشخص کردن نیازمندیهای ک7ل س7یستم آغاز میشود و س7پس 7زیرمجموعهای از ای7ن نیازمندیه7ا را به نرمافزار نسبت میدهیم. ب7ه خاط7ر اینک7ه نرمافزار مجبورب7ه داشت7ن ارتباطب7ا مولفههای دیگ7ر س7یستم از قبی7ل سختافزار، مردم و گاه پایگاه دادههاست ،داشتن این دیدگاه از سیستم ،یک امر اساسی است. 22 ‏Email: smr.ebrahimipour@gmail.com -1مدل آبشاری جمعآوری نیازمندیهای مشخصً 7ا مربوطب7ه نرمافزار برای فهمیدن چگونگ7ی برنامههای7ی ک7ه باید ساخته شوند .مهندس نرمافزار (تحلیلگر) بایستی دامنه اطالعات عملیات مورد نظر (ورودیها -خروجیها و پردازشها) واسطهارا بداند .نیازمندیهای سیستم و نرمافزار مستندسازی شده و با مشتری بازنگری میشود. 23 ‏Email: smr.ebrahimipour@gmail.com -1مدل آبشاری طراح7ی نرمافزار ی7ک فراین7د چن7د مرحلهای اس7ت ک7ه روی س7ه مشخص7ه متفاوت از برنام7ه تاکید دارد: ساختمان دادهها معماری نرمافزار جزئیات رویههادر فراین7د طراح7ی نیازمندیه7ا تبدی7ل ب7ه نمایش7ی از نرمافزار میشون7د ت7ا قب7ل از ب7ه کد درآوردن، قابل ارزیابی باشند .طراحی نیز بایستی مانند نیازمندیها مستندسازی گردد. 24 ‏Email: smr.ebrahimipour@gmail.com -1مدل آبشاری طراح7ی بایس7تی ب7ه ص7ورتی ک7ه برای ماشی7ن قاب7ل فه7م باش7د در بیاید .اگ7ر طراح7ی در حد جزئیات باشد ،پیادهسازی میتواند بسیار سریع و به صورت مکانیزه انجام شود. 25 ‏Email: smr.ebrahimipour@gmail.com -1مدل آبشاری نرمافزار بدون شک پس 7از تحویل به مشتری دچار تغییر میشود (به استثنای نرمافزارهای توکار) .تغییرات به علت خطاها تطبیق نرمافزار با تغییرات محیط بیرونی درخواست مشتری جهت توسعه در عملیات یا باال بردن کارایینگهداری نرمافزار تمام مراحل قبل را روی یک برنامه موجود اجرا میکند. 26 ‏Email: smr.ebrahimipour@gmail.com ایرادات مدل آبشاری -1جریان ترتیبی به ندرت وجود دارد .همیشه برگشت به عقب هست. -2بیان صریح همه نیازمندیها در ابتدا مشکل است. -3برنامهها دیر حاضر میشود .مشتری باید صبر داشته باشد. 27 ‏Email: smr.ebrahimipour@gmail.com -2تولید سریع نرمافزار RAD ، ‏Rapid Application Development یک مدل تولید نرمافزار خطی ترتیبی است که روی چرخه کوتاه تولید تاکید زیادی دارد. نیازها بایستی کام ً ال شناخته شده و حوزه کار محدود باشد. • از تکنیکهای نسل چهارم و مؤلفههای آماده استفاده میگردد • برای پروژههایی که قابل تقسیم هستند به کار میآید مشکالت : • نیاز به نیروی انسانی کافی • تعهد تولید کننده و مشتری برای کامل کردن سیستم در زمان کوتاه الزم است 28 ‏Email: smr.ebrahimipour@gmail.com RAD ، تولید سریع نرمافزار-2 Team # n Mo d e lin g business modeling data modeling process modeling C o n st ru ct io n component reus e automatic code generation tes ting Team # 2 Communication Modeling business modeling dat a modeling process modeling Planning Construction Team # 1 component reuse automat ic code generation t est ing Modeling Deployment int egrat ion delivery feedback business modeling dat a modeling process modeling Construction component reuse aut omat ic code generat ion t esting 60 - 90 days Email: smr.ebrahimipour@gmail.com 29 -2تولید سریع نرمافزار RAD ، موارد نامناسب برای استفاده از :RAD • مواردی که نیاز به کارایی باال میباشد. • مواردی که امکان واحدبندی مناسب سیستم نباشد. • مواردی که ریسک تکنیکی باال باشد (هنگام استفاده از یک تکنولوژی جدید یا )... 30 ‏Email: smr.ebrahimipour@gmail.com -3نمونهسازی Prototyping نمونهسازی فرایندی است که تولید کننده را قادر به ایجاد یک مدل از نرمافزار مورد نظر میکند .این مدل میتواند به صورت )1یک نمونه روی کاغذ )2یک نمونه کاری )3یک برنامه موجود ‏paper prototype ‏working prototype ‏existing prototype نمونه باید دور انداخته شود 31 ‏Email: smr.ebrahimipour@gmail.com Prototyping نمونهسازی-3 Quick plan Communication Modeling Quick design Deployment Delivery & Feedback Email: smr.ebrahimipour@gmail.com Construction of prototype 32 -3نمونهسازی Prototyping طراحی سریع جمع آوری نیازها ساخت نمونه ارزیابی و پاالیش نیازها تولید مهندسی 33 ‏Email: smr.ebrahimipour@gmail.com مدل افزایشی: مدلهای تكاملي-4 increment #n Communic at i on Planning M ode li ng analys is des ign Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k delivery of nth increment increment # 2 Communic at ion Planning M odel i ng analys is des ign C o n s t ru c t i o n code De p l o y m e n t t es t d e l i v e ry fee dbac k increment # 1 delivery of 2nd increment Communic at ion Planning Modeling analys is des ign C o n s t ru c t i o n c ode De p l o y m e n t t es t d e l i v e ry fe e dba c k delivery of 1st increment project calendar time Email: smr.ebrahimipour@gmail.com 34 -4مدل افزایشی در این مدل مراحل تولید ترتیبی با فلسفه گردشی نمونهسازی ترکیب شده است هر رشته ترتیبی عملیات ،یک افزایش قابل تحویل را تولید میکند. 35 ‏Email: smr.ebrahimipour@gmail.com مدل حلزوني: مدلهای تكاملي-5 توسعه سیستم به صورت افزایشی و بازگشتی planning estimation scheduling risk analysis communication modeling analysis design start deployment delivery feedback Email: smr.ebrahimipour@gmail.com construction code test 36 -6مدلهای تكاملي :مدل تولید همزمان ‏none توسعه به صورت یک فرایند سیستماتیک و مرحلهبندی و برچسبگذاری هر بخش در هر ‏Modeling activity ‏represents the state ‏of a software engineering ‏activity or task ‏Under ‏development مرحله ،تقسیم سیستم به بخشهای مختلف و ‏Awaiting تقسیم نیروها در بین پروژههای مختلف برای اجرای این بخشها به صورت همزمان ‏changes ‏Under review ‏Under ‏revision ‏Baselined ‏Done 37 ‏Email: smr.ebrahimipour@gmail.com مدلهای دیگر -7مدل تولید با استفاده از مولفهها -8مدل روشهای رسمی (فرمال) :بکارگیری مدلها و مفاهیم و سیستم در توسعه سیستم -9تکنیکهای نسل چهارم :بکارگیری ابزارهای گرافیکی و ابزارهای مهندسی نرمافزار :Unified Process -10با استفاده از UML 38 ‏Email: smr.ebrahimipour@gmail.com اصول محوري مهندسي نرمافزار ايجاد ارزش براي مشتري و كاربر سادهسازي چشمانداز نگهداري محصول و پروژه آنچه كه شما توليد ميكنيد ،ديگران مصرف خواهند كرد آيندهنگر بودن طراحي پيشاپيش براي استفاده مجدد انديشه39 ‏Email: smr.ebrahimipour@gmail.com كارهاي مهندسي نرم‌افزار فرايندهاي عمومي مهندسي نرم‌افزار ‌ ارتباط طرحريزي مدلسازي -جاريسازي (استقرار و اجراء سيستم) 40 ‏Email: smr.ebrahimipour@gmail.com كارهاي ارتباطي -اصول گ وشكردن- آمادگيق بلاز ايجاد ارت باط- ت سهيلارت باط - ب هترينارت باط ،ارت باط رودررو است- بت صميمات- يادداشت رداريو ث ت ب ت شريكم ساعيب ا م شتري- ت مركز داشتن- فاف يست- ت رسيم ش كلزمان يكه موضوعاتش ن حركتداشتن- رفين هترينكار م ذاكره است- ب اي رد ط ب ر ب 41 ‏Email: smr.ebrahimipour@gmail.com كارهاي ارتباطي -مرحله آغازين رفين ايد ب ه ص ورتف يزيكيب ا يكديگر ت عام لداشته ب اشند - ب ط اطميناناز ارت باط ف عا ل- ايجاد س يستمهايق ويو ب وم يش ده - استفاده از س اختار ت يميم ناسب- م جموعه وظايفكوتاه ش ده - م شخصكنيد كه ب ا چه كسين ياز استص حبتش ود - ب هترينم كان يزم ارت باطيرا ت عريفكنيد - عريف موده و م حدوده را م شخصكنيد - ن اهدافف رعيو كليرا ت دريافت مايد - ن يات يشتري جزئ ب دان ستنس ناريوهايت عريفش ده ت وسط ذينفعانب راياستفاده - استخراج و اقتباسجنبهها و كاركردهاياصلي- گري تايج همراه ب ا ذينفعان- ب ازن ن 42 ‏Email: smr.ebrahimipour@gmail.com كارهاي طرح‌ ريزي -اصول • • • • • • • • • • 43 درك محدوده پروژه درگيركردن مشتري (و ساير ذينفعان) مشخص كنيد كه طرحريزي قابل تكرار است برآورد بر اساس دانستهها در نظر گرفتن ريسكها واقعگرائي -واقعگرا بودن تنظيم امور با توجه به طرح تعريف كنيد كه چگونه كيفيت قابل تحصيل خواهد بود تعريف كنيد كه چگونه تغييرات قابل تطبيق دادن است رديابي آنچه كه طراحي شده است ‏Email: smr.ebrahimipour@gmail.com كارهاي طرحريزي -مرحله آغازين ( )Bohemپرسشهاي بوهم را مطرح كنيد چرا سيستم بايد توسعه يابد؟ چه چيزي قرار است انجام شود؟ چه زماني اين كار انجام خواهد شد؟ چه كسي مسئول است؟ كجا آنها استقرار يافتهاند (بصورت سازماني)؟ چگونه كار از نظر فني و مديريتي انجام خواهد شد؟ چه مقدار از هر منبعي مورد نياز است؟44 ‏Email: smr.ebrahimipour@gmail.com كارهاي طرحريزي مجموعه‌ وظايف اختصاري محدوده پروژه را دوباره ارزيابي كنيد (ارزيابي دوباره محدوده پروژه) ارزيابي ريسكها ارزشگذاري عمليات /جنبه‌ها ايجاد يك طرح مستحكم تعداد افزايشات نرمافزاري زمانبندي كلي زمان تحويل براي افزايشات ايجاد طرحي ساده براي اولين افزايش رديابي پيشرفت (كنترل كيفيت)45 ‏Email: smr.ebrahimipour@gmail.com كارهاي مدلسازي ما مدلها را ايجاد ميكنيم تا درك بهتري از وضعيت واقعي كه قرار استساخته شود ايجاد نمائيم مدلهاي تحليلي نيازهاي مشتري را به وسيله نمايش نرمافزار در سه حوزهميدهند .اين سه حوزه عبارتند از: مختلف ارائه ‌ حوزه اطالعات ،حوزه عملياتي و حوزه رفتاري مدلهاي طراحي ارائه دهنده ويژگيها و خصوصيتهاي نرمافزار بوده كه اينخصوصيات به طراحان كمك ميكنند تا به گونهاي موثر مدلها را ايجاد نمايد. جزئيات آن عبارتند از: معماري ،واسطه كاربر و جزئيات سطح تجهيزات. 46 ‏Email: smr.ebrahimipour@gmail.com كارهاي مدلسازي تحليلي اصول مدلسازي تحليلي قلمرو اطالعات را ارائه ميكند عملكرد نرمافزار را ارائه ميكند رفتار نرمافزار را ارائه ميكند تفكيك اين ارائههامولفههاي مدل تحليلي مدل داده مدل جريان مدل نوع مدل رفتار47 ‏Email: smr.ebrahimipour@gmail.com كارهاي مدلسازي طراحي اصول در مدل تحليلي ،طراحي بايد قابل رديابي باشد. معماري همواره بايد مد نظر باشد. تمركز بر طراحي دادهها باشد. برنامههاي واسطه بايد طراحي شده باشند (هر دو كاربر و داخلي). اجزاء بايد نشان دهنده استقالل عملكرد باشد. اجزاء بايد به گونهاي ضعيف جفت شوند.48 ‏Email: smr.ebrahimipour@gmail.com كارهاي مدلسازي طراحي طراحي ارائه شده بايد به راحتي درك شود مدل طراحي شده بايد به گونهاي قابل تكرار توسعه يابد مؤلفههاي مدل طراحي طراحي داده طراحي معماري طراحي اجزا طراحي واسط49 ‏Email: smr.ebrahimipour@gmail.com كارهاي ساختاري اص7ول آمادهس7ازي :قبل از اينكه حتي يك خط كدنويسي انجام شود بايد از موارد زير مطمئن شد: درك مسئلهاي كه شما سعي درحل آن داريد (رجوع شود به ارتباط و مدلسازي)درك مفاهيم و اصول پايهايگزينش زبان برنامهنويسي مناسب ،كه نيازهاي نرمافزار و محيط آنرا كه قرار استايجاد شده و در آن كار كند برآورده سازد انتخاب محيط برنامهنويسي كه ابزار ارائه شده توسط آن موجب سادگي در كار گردد شده كدگذاري را براي اولين ايجاد مجموعهاي از تستهاي واحد كه اجزاء كامل ‌ اجراء تست خواهند كرد 50 ‏Email: smr.ebrahimipour@gmail.com كارهاي مربوط به ساخت سيستم اصول كدگذاري :با شروع به كدنويسي بايد از موارد زير اطمينان حاصل كرد: • انتخاب ساختارهاي داده كه ميخواهد نيازهاي طراحي را برآورده سازد • درك معماري نرمافزار و ايجاد واسط‌هائي كه با آن سازگار است • حفظ شرايط منطقي تا جايي كه ممكن است • ايجاد حلقههاي تو در تو به گونهاي كه قابليت تست آساني داشته باشند • انتخاب نامهای متغير معنيدار ،و پيروي از ديگر استانداردهاي كدگذاري محلي (بومي) • نوشتن كدهايي كه خودشان قابليت مستند شدن داشته باشند • ايجاد يك طرح ديداري (به عنوان مثال :ايجاد فضاي خالي در شروع متن و ايجاد خطوط خالي كه به درك مطلب كمك ميكند) 51 ‏Email: smr.ebrahimipour@gmail.com ,بوط به ساخت سيستم كارهاي مر اصول معتبرسازي: پس از تكميل اولين مرحله كدگذاري ،بايد اطمينان حاصل نمائيد: • در زمان مقتضي جلسهاي براي بررسي كد برگزار نمايند • اجراي تس تهاي واح د و تص حيح خطاهايي كه پوشش داده نشدهاند • دوباره عمل كردن به كد 52 ‏Email: smr.ebrahimipour@gmail.com ,بوط به ساخت سيستم كارهاي مر :اصول تست همه ت ستها ب ايد ق اب لردياب ين يازم نديها ب اشند- تستها ب ايد ط رح ريزيش ده ب اشند- اصلپ ارتو ب ايد در مورد ت ستكردنرعايتش وند- درصد خطاها در 20درصد از كدها يافتم يش وند-80 تستها از كم ب ه زياد ب ايد ان جام ش ود- يست مكن - ست راگير م ن ف ت 53 ‏Email: smr.ebrahimipour@gmail.com امور مربوط به جاريسازي سيستم اصول • مديريت انتظارات مشتري براي هر جزء اضافي • يك بسته كامل بايد ايجاد ،تست و تحويل شود • يك روش پشتيباني از محصول بايد ايجاد شود • موضوعات آموزشي ميبايست تهيه و در اختيار كاربر قرار گيرد • ابتدا بايد اشكاالت نرم افزار مرتفع شده ،سپس متحول شود 54 ‏Email: smr.ebrahimipour@gmail.com مبانی تجزیه تحلیل نیازها تجزیه و تحلیل نیازها عملیات نرمافزار و کارآی ی الزم برای عملیات ،واس طههای نرمافزار ب ا مولفههای دیگ ر س یستم و محدودیتهای طراحی که نرمافزار بایستی رعایت کند را مشخص میکند. تجزیه و تحلیل نیازها برای طراح نرم افزار نمایش اطالعات و عملیات را مشخص میکند که منجر به طراحی دادهها ،معماری و رویهه ا میشود و برای مشتری و تولیدکننده نحوه ارزیاب ی کیفی ت نرمافزار را بع د از س اخت مشخ ص میکند. هاي اطالعات مديريتمراحل تهيه طرح جامع سيستم 55 ‏Email: smr.ebrahimipour@gmail.com خصوصیات تحلیلگر (:)Analyst _1توانایی فهمیدن مفاهیم مجرد. سازماندهی مجدد آنها در گروههای منطقی ایجاد راهحلهایی برای هر گروه منطقی _2توانایی جذب حقایق صحیح و مناسب از منابع گیج کننده و متناقض. _3توانایی فهم محیطهای کاربر /مشتری. _4توانایی بکارگیری مولفههای سختافزاری/نرمافزاری برای محیطهای کاربر /مشتری. _5توانایی برقراری ارتباط خوب به صورت شفاهی و کتبی. 56 ‏Email: smr.ebrahimipour@gmail.com اصول تحلیل : دامن77ه اطالعات بایس77تی شناخت77ه شده و نمای77ش داده شود( .جریان اطالعات ،محتوای اطالعات و ساختار اطالعات) .1مدلهایی که نشانگر اطالعات ،عملیات و رفتار سیستم هستند. .2مسأله بایستی تقسیمبندی شود تا جزئیات مشخص گردد( .کاهش پیچیدگی) .3نمایش منطقی و فیزیکی سیستم بایستی ایجاد گردد. 57 ‏Email: smr.ebrahimipour@gmail.com Email: smr.ebrahimipour@gmail.com 58 58

62,000 تومان