1 / 110

مهندسی نرم افزار

مهندسی نرم افزار. تهیه و گردآوری: فهیمه باعثی. دانشجویان محترم لطفا در هنگام تحویل تمرین ها به نکات زیر توجه نمائید:. تمرینات و تحقیقات محوله در هر جلسه فقط و فقط در جلسه بعد همان درس تحویل گرفته می شود. تمرینات می بایست خوانا و مرتب در برگه ای که نشان از ادب و نظم شما دارد نوشته شود.

Download Presentation

مهندسی نرم افزار

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. مهندسی نرم افزار تهیه و گردآوری: فهیمه باعثی

  2. دانشجویان محترم لطفا در هنگام تحویل تمرین ها به نکات زیر توجه نمائید: • تمرینات و تحقیقات محوله در هر جلسه فقط و فقط در جلسه بعد همان درس تحویل گرفته می شود. • تمرینات می بایست خوانا و مرتب در برگهای که نشان از ادب و نظم شما دارد نوشته شود. • تمرینات تحویل داده شده حتما با سوال مربوطه همراه باشد. • در بالای برگه تحقیق انجام شده توسط شما، حتما عنوان تحقیق ذکر شود. • نام و نام خانوادگی و تاریخ تحویل تحقیق/تمرین حتما در بالای برگه ذکر شود. در صورت عدم رعایت موارد فوق نمره ای به تحقیقیا تمرین تحویل داده شده تعلق نگرفته و اعتراضیوارد نمی باشد.

  3. مقدمه • یک بنای ساختمانی چیست؟ • یک بنای ساختمان محصولی از یک یا چند بنا است که شامل مصالح ساختمانی چون سیمان، گچ و.. است. • نرم افزار کامپیوتری چیست؟ • نرم افزار محصول فرآیند مهندسی نرم افزار است که توسط مهندسان نرم افزار طراحی و ایجاد می شود. • مجموعه برنامه هایی که کنترل و هماهنگی فعالیت های سخت افزار و هدایت پردازش داده ها را برعهده دارد، نرم افزار نامیده می شود.

  4. مقدمه • نرم افزار عبارتست از: • دستورات (برنامه های کامپیوتری) که در صورت اجرا شدن باعث انجام وظایف خواسته شده و کارایی مورد نظر می شوند. • ساختمان داده هایی که امکان پردازش کافی اطلاعات را مهیا می سازند. • مستنداتی که توصیف کننده عملکرد و چگونگی استفاده از برنامه ها می باشند. (یعنی دو مورد فوق را تشریح می کنند.) • نرم افزار کامپیوتری را چه کسانی استفاده می کنند؟ • هر فردی ممکن است به صورت مستقیم یا غیرمستقیم از آن استفاده کند. • علت اهمیت نرم افزار؟ • تاثیر گسترده بر تمام جنبه های زندگی • مراحل ایجاد نرم افزار چگونه است؟ • با بکارگیری فرآیندی خاص و طی کردن یک روند مشخص

  5. نقش های دوگانه نرم افزار • نقش اول: نرم افزار یک محصول است. • دارای پتانسیل محاسباتی است. • تولید، مدیریت، تغییر، نمایش و انتقال اطلاعات را انجام میدهد. • نقش دوم: نرم افزار وسیله ای برای تحویل محصول است. • از functionality سیستم پشتیبانی می کند یا به طور مستقیم آن را فراهم می کند. • سایر برنامه ها را کنترل می کند (مثل سیستم عامل ها) • بر روی ارتباطات تاثیر می گذارد (مثل نرم افزارهای شبکه ) • کمک به ساخت سایر برنامه ها می کند (مثل ابزارهای نرم افزاری)

  6. یک نرم افزار وقتی موفق است که: • نیازهای کاربران را برطرف کند. • بدون مشکل کار کند. • اصلاح و تغییر بر روی آن ساده باشد. • استفاده از آن آسان باشد.

  7. خصوصیت نرم افزار • نرم افزار یک عنصر منطقی است و نه یک جزء فیزیکی. • بهترین راه شناخت مشخصات نرم افزار، مقایسه آن با یک جزء دیگر از محصولات ساخت انسان است (مثلا مقایسه با سخت افزار) • بنابراین نرم افزار دارای مشخصاتی است که تا حد قابل ملاحظه ای با مشخصات سخت افزاری متفاوت است. تفاوتهای عملیاتی: • نرم افزار توسعه داده می شود (develop) در صورتیکه سخت افزار ساخته می شود (create). نرم افزار توسعه می یابد یا طراحی می شود؛ اما به مفهوم کلاسیک ساخته نمی شود. • نرم افزار فرسوده نمی شود، اما کیفیت خود را از دست می دهد به عبارتی دیگر نرم افزار دور ریختنی نیست. • گرچه صنعت به سمت مونتاژ اجزاء حرکت می کند، اما نرم افزار همچنان سفارشی ساخته می شود. • روش ها و ابزارهای آزمایش نرم افزار از روش ها و ابزارهای سخت افزار متفاوت است. • نرم افزار پیچیده است به این دلیل که بیشتر سفارشی ساخته می شود.

  8. تاریخچه نرم افزار • بحران نرم افزار اولین بار بصورت رسمی در کنفرانس در سال 1968 میلادی مطرح گردید. عوامل اصلی این بحران عباتند از : • هزینه بالای ایجاد نرم افزار • تاخیر در تولید و تحویل نرم افزار • نگهداری پرهزینه نرم افزار • پیشرفت سریع سخت افزار • کیفیت پائین نرم افزار • افزایش پیچیدگی محصولات

  9. تاریخچه نرم افزار • انواع روش های برنامه نویسی رایج • برنامه نویسی منفرد • برنامه نویسی تیمی • مشکلات برنامه نویسی منفرد • طولانی شدن زمان پروژه، افزایش هزینه ها، مشکل خظایابی، مشکل در ارزیابی میزان پیشرفت

  10. نمودار تکامل نرم افزار 1950 1960 1990 1970 1980 2000 نکته: توسعه فوق در اثر بهره وری سخت افزار، اندازه کوچکتر و هزینه پائین تر سیستم های کامپیوتری پیچیده تر بوجود آمده اند. جامعه ما از یک جامعه صنعتی به یک جامعه اطلاعاتی تبدیل شده است.

  11. دوره اول • دهه 50 و اوایل دهه 60 • سخت افزار به سرعت رشد می کرد • پردازش به صورت دسته ای بود و توزیع شدگی به مفهوم امروزه وجود نداشت (فقط در سیستم رزرو خطوط هوایی و یا سیستم دفاعی آمریکا) • اغلب سخت افزار عهده دار اجرای یک برنامه تنها بود که آن برنامه نیز به نوبه خود برای اجرای یک کاربرد خاص نوشته شده بود. • سخت افزار در سال های اولیه به صورت همه منظوره درآمد اما نرم افزار همچنان تک منظوره باقی ماند • بیشتر نرم افزارها توسط یک نفر و یا یک سازمان ایجاد و استفاده می شد پس، یک نفر آن را می نوشت، اجرا می کرد، و در صورت بروز خطا آن را برطرف می کرد، مدیریت هم به آن یک نفر تکیه می کرد تا در صورت بروز خطا آن را برطرف سازد. • پس طراحی یک فرآیند ضمنی و انجام شده در مغز یک نفر بود و هیچ مستنداتی نیز وجود نداشت.

  12. دوره دوم • اواسط دهه 60 تا اواخر دهه 70 • سیستم های چند برنامه ای و چند کاربردی بوجود آمدند. • تکنیک های محاوره ای، نوع جدیدی از کاربرها و سطح جدیدی از پیچیدگی را در نرم افزار و سخت افزار بووجود آوردند. • سیستم های بلادرنگ در این دوره معرفی شدند. • در این دوره نرم افزارهای از قبل تولید شده مطرح شدند. • در این دوره برنامه های بسیاری نوشته شدند که نیاز بود اعمال زیر روی آن ها انجام شود: • در صورت بروز خطا تصحیح شوند. • در اثر تغییر خواسته کاربران اصلاح شوند. • با سخت افزارهای جدید منطبق گردند. • نکته: به مجموعه فعالیت های فوق نگهداری نرم افزار (Software Maintenance) گفته می شود. در این دوره بود که بحران نرم افزاری بوجود آمد.

  13. دوره سوم • اواسط دهه 70 تا اواخر دهه80 • سیستم های توزیع شده بوجود امدند و این امر پیچیدگی سیستم های کامپیوتری مبتنی بر آنها را بالا برد. • ریزپردازنده ها و کامپیوترهای شخصی اختراع شده و مورد استفاده انبوه قرار گرفتند. • ریزپردازنده ها در بسیاری از محصولات هوشمند به کاربرده شدند. (مانند اتومبیل، ربات، ...) • شرکت های نرم افزاری بسیاری رشد کردند زیرا کامپیوترهای شخصی در همه جا خریداری می شدند و نیازمند نرم افزار بودند. • نمودار رشد فروش کامپیوتر شخصی کم کم به صورت یکنواخت تبدیل شد اما نمودار رشد نرم افزار همچنان به صورت صعودی باقی ماند.

  14. دوره چهارم • در این دوره سیستم های خبره و نرم افزارهای هوش مصنوعی از آزمایشگاه ها به سوی کاربردهای واقعی حرکت کردند و معماری های موازی مطرح شدند.

  15. نمودار زوال پذیری (نرخ شکست) در سخت افزار

  16. نمودار زوال پذیری (نرخ شکست) در سخت افزار • شکل موجود در اسلاید قبل، شکست سخت افزار نسبت به زمان را نشان می دهد. این رابطه، اغلب منحنی وانی شکل نامیده می شود و نشان می دهد که سخت افزار در ابتدا میزان شکست بالایی دارد ( این شکست ها اغلب مربوط به اشکالات ساخت و طراحی هستند)، در یک بازه زمانی، اشکالات برطرف شده و میزان شکست در یک میزان ثابت می ماند. با گذشت زمان، قطعات سخت افزاری تحت تاثیر گرد و غبار، نوسان، استفاده نادرست، تغییرات زیاد درجه حرارت، و بسیاری عوامل دیگر کیفیت خود را از دست می دهند. به بیان ساده، سخت افزار به سمت از رده خارج شدن پیش می رود.

  17. نمودار زوال پذیری (نرخ شکست) در نرم افزار

  18. نمودار زوال پذیری (نرخ شکست) در نرم افزار • نرم افزار به تدریج دچار فرسودگی نمی گردد، بلکه فاسد می شود. • در طول دوران زندگی، نرم افزار نیازمند تغییرات (نگهداری) است. تغییرات انجام می شود، و اشکالات جدیدی ممکن است بوجود آید، که باعث می شود به میزان شکست ثابت خود بازگردد، تغییر دیگری درخواست می شود، و باعث می شود منحنی مجدد پرش داشته باشد. این مسئبه باعث می شود سطح میزان شکست به آرامی افزایش یابد، و کیفیت نرم افزار به علت تغییرات تنزل می یابد.

  19. کاربردهای نرم افزار محتوای اطلاعاتی و هدف برنامه ماهیت و کابرد نرم افزار را مشخص می کند. • نرم افزار سیستمی برای سرویس دهی به سایر برنامه ها نوشته می شود. • نرم افزار کابردی نیازهای خاص مثل نیازهای تجاری را رفع می کند. • نرم افزارهای مهندسی/ علمی مثل نرم افزارهای CAD • نرم افزارهای جاسازی شده مثل محصولات هوشمند • نرم افزارهای خط تولید • نرم افزاری وب • نرم افزارهای هوش مصنوعی

  20. کاربردهای نرم افزار • نرم افزار چه در یک تلفن سلولی قرار داشته باشد یا درون یک کامپیوتر بزرگ، یک انتقال دهنده اطلاعات محسوب می گردد. یعنی اطلاعاتی را تولید می کند، سازمان می دهد، تحویل می گیرد، نمایش یا انتقال می دهد. • اگر از آن به عنوان وسیله انتقال دهنده محصول استفاده شود، به صورت پایه و اساس کنترل کامپیوتر (سیستم عامل)، تبادل اطلاعات (شبکه ها) و ایجاد و کنترل برنامه های دیگر (ابزارهای نرم افزاری و محیط آن) استفاده خواهد شد. انتقال دهنده نمایش یا انتقال + تحویل + سازماندهی + تولید

  21. طبقه بندی نرم افزار • نرم افزار ها را می توان براساس ماهیت کاربردی آن ها مطابق زیر طبقه بندی کرد: • نرم افزار های سیستمی • نرم افزار های بلادرنگ • نرم افزار های تجاری • نرم افزار های مهندسی و علمی • نرم افزار های جاسازی شده • نرم افزار های کامپیوترهای شخصی • نرم افزار های مبتنی بروب • نرم افزار های هوش مصنوعی

  22. نرم افزارهای سیستمی(system software) • مجموعه ای از برنامه ها هستند که برای سرویس دادن به برنامه های دیگر نوشته شده اند مانند کامپایلرها، ویرایشگرها، برنامه های مدیریت فایل • خصوصیات این نرم افزارها: • فعل و انفعال زیاد با سخت افزار • استفاده بسیار از طرف کاربران متفاوت • عملیات همزمان و موازی که نیازمند به مدیریت است. • اشتراک منابع • مدیریت پیچیده فرآیندها • ساختمان داده های پیچیده • واسطه های خارجی چندگانه

  23. نرم افزارهای بلادرنگ(Realtime software) • نرم افزارهایی هستند که وقایع دنیای واقعی را اندازه گیری، تجزیه و تحلیل و کنترل می کنند. • مولفه های این نرم افزارها عبارتند از : • مولفه جمع آوری داده ها که اطلاعات را از محیط بیرون جمع آوری و قالب بندی می کند. • مولفه کنترل/ خروجی که به محیط خارجی پاسخ می دهد. • مولفه مدیریت که بقیه مولفه ها را طوری زمان بندی می کند تا بتوانند پاسخ بلادرنگ ایجاد کنند (از 1 میلی ثانیه تا 1 دقیقه) • نکته: عبارت بلادرنگ با عبارتهای محاوره ای (Interactive) و اشتراک زمانی (Time sharing) فرق می کند. • نکته: سیستم بلادرنگ باید با محدودیت زمانی مشخص پاسخ دهد در حالی که زمان پاسخ سیستم های دیگر می تواند بدون بوجود آمدن نتایج فاجعه بار تغییر کند.

  24. نرم افزارهای تجاری(Business software)

  25. معیارهای ارزیابی نرم افزار • چهار عامل اصلی در تعیین کیفیت نرم افزار مهم هستند: • قابلیت نگهداری (Maintainability) نرم افزار باید بتواند با تغییرات نیازهای کاربران تکامل و توسعه یابد و نیازهای جدید آنها را رفع نماید. • قابلیت اطمینان (Dependability) نرم افزار باید امین، درست کار و راستگو باشد • کارایی (Efficiency) نرم افزار نباید از منابع سیستم استفاده نادرست کرده و آنها را هدر دهد. • قابلیت پذیرش (Acceptability) نرم افزار باید بوسیله کاربری که آن را سفارش داده است پذیرش و تائید گردد. یعنی نرم افزار باید قابل فهم، مفید و سازگار با سایر سیستم ها باشد.

  26. سه عامل مشکل زا در تولید نرم افزار: • ناهمگونی • حل: استفاده از تکنیک های مختلف توسعه برای ساخت نرم افزاری که بتواند روی سکوها و محیط های اجرایی مختلف اجرا شود. • تحویل • حل: استفاده از تکنیک های مختلف توسعه برای هرچه سریع تر کردن زمان تحویل نرم افزار • اعتماد • حل: استفاده از تکنیک هایی که نشان می دهد نرم افزار ارائه شده می تواند از طرف کاربران آن مورد اعتماد قرار گیرد.

  27. باورهای غلط مشتریان • همه شما به یک دستورالعمل نیاز دارید که به شما بگوید چگونه برنامه نویسی را شروع کنید. • نیازمندی ها تغییر می کنند ول نرم افزار می تواند خودش را با انعطافی که دارد با آن ها وفق دهد.

  28. باورهای غلط توسعه دهندگان نرم افزار • وقتی که برنامه ما اجرا شد کار تمام است. • تا زمانی که برنامه در حال اجرا است من هیچ نظری در مورد چگونگی عملکرد آن ندارم. • تنها چیز قابل تحویل برنامه ای است که کار می کند. • مهندسی نرم افزار باعث ایجاد مستندات غیرضروری و حجیم می شود که نتیجه آن افت سرعت ما است.

  29. باورهای غلط مدیریتی • کتاب استانداردها برای ساخت نرم افزار نیازهای اطلاعاتی توسعه دهندگان را برطرف می کند. • اگر از روال عادی کار عقب افتادیم می توانیم افراد بیشتری را جذب کنیم. • می توانیم تولید نرم افزار را به شرکت دیگری بسپاریم و خودمان استراحت کنیم.

  30. فرآیند (Process) • فرآیند چیست؟ وقتی که محصول یا سیستمی را می سازیم این امر اهمیت دارد که از یکسری مراحل قابل پیش بینی استفاده کنیم. نقشه مسیری که به ما کمک می کند تا نتایجی را در زمان معین و با کیفیت یالا ایجاد کنیم فرآیند نرم افزار نام دارد. • چه کسی این کار را انجام می دهد؟ مهندسین نرم افزار و مدیران آن ها فرآیند را تحت نیاز خود انتخاب کرده و آن را دنبال می کنند. • چرا فرآیند مهم است؟ فرایند به کار ما سامان می بخشد و فعالیت های موجود را کنترل نموده و نتایج ثابتی را برای آن ها پیش بینی می کند. در غیراینصورت، کار ما دچار هرج و مرج و بی نظمی خواهد شد. • مراحل انجام کار چیست؟ فرآیندی که از آن استفاده می کنیم وابسته به نرم افزاری است که آن را می خواهیم ایجاد کنیم، پس انتخاب فرآیند براساس نوع نرم افزار صورت می گیرد. • محصول کار چیست؟ از دیدگاه یک مهندس نرم افزار، برنامه ها، اسناد و داده هایی است که طی مراحل مهندسی در یک فرآیند به دست می آیند.

  31. فرآیند (Process) • فرآیند ساخت نرم افزار

  32. مراحل مهندسی نرم افزار • فعالیت های مرتبط با مهندسی نرم افزار را صرف نظر از اندازه و پیچیدگی پروژه و همچنین زمینه کاربردی آن می توان به سه مرحله یا فاز (Phase) کلی زیر تقسیم نمود. • مرحله تعریف (Definition) • مرحله توسعه (Development) • مرحله نگهداری (Maintenance)

  33. مرحله تعریف • در این مرحله، تمرکز بر تعیین ”What“ می باشد. • تولیدکننده نرم افزار سعی دارد داده های مورد پردازش، وظایف، عملکردها و رفتار سیستمی مورد انتظار، واسط ها، قیود و شرایط طراحی و همچنین معایرهای تشخیص اعتبار سیستم را تعیین نماید. • در این مرحله، سه فعالیت عمده زیر انجام می شود: • تجزیه و تحلیل خواسته ها و نیازمندی ها (مهم) • مهندسی اطلاعات یا سیستم • برنامه ریزی پروژه نرم افزاری

  34. مرحله توسعه • در این مرحله، تمرکز بر تعیین چگونگی”How“ می باشد. • مهندس نرم افزار سعی دارد چگونگی ساختمان داده ها، چگونگی پیاده سازی وظایف، چگونگی واسط ها و نحوه تبدیل طراحی به یک زبان برنامه سازی و همچنین چگونگی آزمون نرم افزار را کاملا مشخص نماید. در این مرحله، سه فعالیت عمده زیر انجام می شود: • طراحی نرم افزار • پیاده سازی نرم افزار و تولید کد • آزمون نرم افزار

  35. مرحله نگهداری • تمرکز این مرحله بر ” تغییر“ است. در طول این مرحله ممکن است با 4 نوع تغییر زیر مواجه شویم: • نگهداری تصحیحی: • نگهداری تطبیقی: • نگهداری تکمیلی: • نگهداری پیشگیری کننده:

  36. مدل های فرایند نرم افزار (Software Process Models)

  37. مدل های فرایند نرم افزار • برای حل مسائل واقعی در یک صنعت یا یک شرکت، یک مهندس نرم افزار یا سیستم مهندسی باید یک استراتژی توسعه یا متدولوژی انتخاب کند، به نحوی که شامل لایه های متدها، فرآیندها و ابزارهای شرح داده شده باشد. • این فرایند گاهی اوقات تحت عنوان مدل های تولید نرم افزار نامیده می شود. • هر مدل فرآیند دارای دیدگاه های گوناگونی است. مثلا؛ • جریان کاری (Work flow): ترتیب فعالیت ها. • جریان داده (Data flow): داده ها چگونه و از چه جاهایی جریان می یابند. • نقش/ عمل (Role/Action): چه کسی چه کاری را انجام می دهد.

  38. 1. مدل ترتیب خطی (The Linear Sequential Model) مهندسی سیستم های اطلاعاتی مشهور به مدل « دوره زندگی کلاسیک توسعه سیستم» ساده ترین و کارآمد ترین روش برای تولید نرم افزارهای نسبتا محدود است که در آن تحلیل نیازمندیها و تعریف صورت مساله به سادگی انجام می شود.

  39. مزایای مدل ترتیب خطی

  40. معایب مدل ترتیب خطی

  41. 2. مدل آبشاری (Waterfall model) • یکی از متداولترین مدلهای کلاسیک در ساخت نرم افزار است. • به آن مدل دوران حیات (Life Cycle) هم می گویند • به دلیل مشکلاتی که در مسائل تحلیل، طراحی و پیاده سازی آن وجو داشت کمتر در پروژه های بزرگ از آن استفاده می شد. • مراحل دوره زندگی توسعه سیستم یکی پس از دیگری اتفاق می افتد. • در این مدل، تولید نرم افزار مراحل مختلفی دارد که هرمرحله دارای ورودی و وظیفه و خروجی خاصی است. • خروجی هر مرحله در این مدل ورودی مرحله بعدی است.

  42. 2. مدل آبشاری (Waterfall model) • چون مدت زمان انجام پروژه معمولا طولانی است در پروژه ها و نرم افزارهای وسیع کمتر از آن استفاده می شود. • با این وجود چون در سال های اخیر معایب و مشکلات موجود در این مدل تقریبا برطرف شده است به عنوان یکی از مدل های اصل و پایه در تولید نرم افزار مطرح شده است.

  43. شرح مراحل مدل آبشاری • مطالعه امکان سنجی و یا کاربر ”چه میخواهد“ • رفتار بیرونی سیستم یا یک سیستم ” چه کاری انجام میدهد“ • برآورده کردن خواسته ها یعنی ” چگونه انجام میدهد“ • پیاده سازی یا کدنویسی یا از مرحله قوه به فعل • تست سیستم • نگهداری و توسعه مزیت مدل: در صورت بروز اشتباه قابلیت بازگشت به مرحله قبل وجود دارد.

  44. مرحله 1 در مدل آبشاری: فهم و تحلیل خواسته ها • مرحله اولیه و قبل از هرکاری در تولید یک نرم افزار این است که مشخص شود نیازهای کاربر چیست. • در مدل آبشاری این کار از طریق ارتباط مستقیم تحلیل گر با کاربر صورت می پذیرد تا اینکه تحلیل گر سیستم خواسته های کاربر را درک کند و آن ها را تجزیه و تحلیل نماید. • این مرحله از کار را مرحله فهم و تحلیل خواسته ها یا مرحله شناخت می گویند. • در این مرحله ابتدا مطالعه امکان سنجی صورت می گیرد و طی ان یک مطالعه و بررسی مقدماتی روی سیستم مورد نظر انجام می پذیرد. ضمن این مطالعه مشخص می شود که اولا آیا نیاز به سیستم مکانیزه هست یا نه! ثانیا با توجه به امکانات و مشکلات فنی و اقتصادی و عملیاتی امکان ایجاد یک سستم مکانیزه جدید که هدف ها و نیازهای کاربر را برآورده سازد هست یانه؟

  45. مرحله 1 در مدل آبشاری: فهم و تحلیل خواسته ها • نتیجه مطالعه امکان سنجی: یک گزارش امکان سنجی است که در آن ضمن مشخص شدن موارد فوق، نتایج بررسی، پیشنهادات کلی و برنامه زمان بندی مراحل مختلف تولید نرم افزار و همچنین تخمن کلی هزینه های ایجاد سیستم جدید آورده می شود. • این گزارش توسط تحلیل گر سیستم تهیه شده و به مدیریت ارائه می شود. • در صورتی که مورد تائید مدیریت واقع شد مراحل بعدی کار می تواند انجام پذیرد.

  46. مرحله 2 در مدل آبشاری: تعریف خواسته ها • هدف این مرحله: تعریف خواسته های سیستم به طور کامل، سازگار و غیرمبهم • در تعریف خواسته ها مشخص می شود که سیستم چه کار باید بکند و به چگونگی انجام کار پرداخته نمی شود یعنی شرح رفتار خارجی سیستم مورد نظر است • وظیفه تحلیل گر در این مرحله: خواسته های سیستم را مدل سازی میکند و خروجی این مرحله در واقع مدل سیستم است. • در این مرحله تحلیلگر نمودار گردش کار سیستم پیشنهادی را رسم میکند که ممکن است با نمودار گردش کار سیستم فعلی خیلی فرق داشته باشد. • برای مدل کردن سیستم روش خیلی مفید و موثر استفاده از نمودار جریان داده یا DFD (Data Flow Diagram) است.

  47. مرحله 2 در مدل آبشاری: تعریف خواسته ها • در این مرحله غیراز نمودارهای فوق موارد مختلف دیگری مانند تغییرات لازم در فرم های ورودی، تغییرات لازم در خروجی ها، پیشنهاد پرونده های اطلاعاتی و محتویات آن ها، صورت منابع انسانی و غیرانسانی موجود مورد نیاز سیستم پیشنهادی و غیره نیز آورده می شود.

  48. مرحله 3 در مدل آبشاری: طراحی • طراحی یعنی بکارگیری تکنیک ها و اصول مختلف به منظور تعریف یک طرح به صورت قابل درک. • عملیات طراحی خواسته ها را به یک نمایش از نرم افزار تبدیل می کند که می تواند قبل از اینکه برنامه نویسی شروع شود از نظر کیفی ارزیابی گردد. • در این مرحله هدف اصلی این است که مشخص شود نرم افزار چگونه کار می کند. • طراحی 2 مرحله دارد: • مرحله 1: طراحی کلی • مرحله 2: طراحی تفضیلی

  49. مرحله اول طراحی : طراحی کلی در این مرحله اسکلت سیستم طراحی می شود که این کار می تواند براساس یکی انواع طراحی زیر صورت می پذیرد. الف- طراحی بالا به پائین (Top Down design) در این نوع طراحی سیستم شکسته می شود به اجزا یا زیرسیستم هایی و هرکدام از زیرسیستم ها به نوبه خود می تواند به زیرسیستم های کوچکتر شکسته می شود و این کار تاحد لازم ادامه می یابد. این نوع طراحی در بیشتر سیستم ها به کار میرود. ب- طراحی پائین به بالا (Bottom up design) در این نوع طراحی ابتدا کوچکترین اجزاء سستم مشخص می شود و از ترکیب تعدادی از آنها یک جزء بزرگتر سیستم به دست می آید و کار ادامه می یابد تا در نهایت راس طرح که همان سیستم موردنظر است به دست آید.

More Related