26
ی درس مل ع لاس ک ار ز ف رم ا ن ی س د ن ه م سه ی دوم ل ج دا ام ج ه ن ب

کلاس عملی درس مهندسی نرم افزار

  • Upload
    morley

  • View
    152

  • Download
    0

Embed Size (px)

DESCRIPTION

به نام خدا . کلاس عملی درس مهندسی نرم افزار. جلسه ی دوم. برنامه ی امروز . سند تحلیل. یک مثال . مدل سازی و مستند سازی. جلسه ی گذشته. جلسه ی گذشته . چرا Process Model ؟ Process Model چیست؟ انواع Process Model ها؟ کدام یک بهتر است؟ . برنامه ی امروز . سند تحلیل. یک مثال. - PowerPoint PPT Presentation

Citation preview

Page 1: کلاس عملی درس  مهندسی نرم افزار

کالس عملی درس مهندسی نرم افزار

جلسه ی دوم

به نام خدا

Page 2: کلاس عملی درس  مهندسی نرم افزار

جلسه ی

گذشته

مدل سازی و مستند سازی

یک مثال

سند تحلیل

برنامه ی امروز

Page 3: کلاس عملی درس  مهندسی نرم افزار

چراProcess Model؟Process Model چیست؟ انواعProcess Model ها؟ کدام یک بهتر است؟

جلسه ی گذشته

Page 4: کلاس عملی درس  مهندسی نرم افزار

جلسه ی

گذشته

مدل سازی و مستند سازی

یک مثال

سند تحلیل

برنامه ی امروز

Page 5: کلاس عملی درس  مهندسی نرم افزار

:صورت مسألهدر ه8ر محصول برای تقاض8ا و می کن8د تولی8د خانگ8ی محص8ول چن8د شرکت8ی فص8ول س8ال آینده معلوم اس8ت. شرک8ت ی8ک برنام8ه زمانبندی تولی8د نیاز دارد تا میزان که اس8ت گرفت8ه تص8میم مدیری8ت کند. تامی8ن را ضروری تقاضای

واحد در انتهای ه8ر فص8ل باشد. در یک 150موجودی انبار هر محصول حداقل تن8ه8ا تعداد 18000فص8ل هرمحصول داریم. اختیار در تولی8د زمان س8اعت

تعم8یرات مم8ک8ن اس8ت یک دلی8ل ب8ه دارد. نیاز تولی8د برای س8اعت مشخ8ص8ی مح8صول در یک دوره تولید نشود.

دالر 5ب8ا فرض اینک8ه ه8ر کاالی8ی ک8ه در انبار باق8ی می مان8د در پایان ه8ر فصل، هزین8ه بر می دارد، شرک8ت می خواه8د زمانبندی تولی8د ساالنه اش را برنامه ریزی انبارداری می نیم8م هزین8ه ک8ل و تامی8ن تقاضاهای فص8لی ک8ه به طریق8ی کن8د،

شود.

پروژه ی تحقیق در عملیات من !

Page 6: کلاس عملی درس  مهندسی نرم افزار

صورت مسأله: چن8د خانگ8ی شرکت8ی و مح8ص8ول می کن8د ه8ر تقاض8اتولی8د برای در مح8صول

س8ال آینده معلوم اس8ت. شرک8ت ی8ک برنام8ه زمانبندی تولی8د نیاز دارد تا فص8ولمیزان که اس8ت گرفت8ه تص8میم مدیری8ت کند. تامی8ن را ضروری تقاضای

واحد در انتهای ه8ر فص8ل باشد. در یک 150هر محصول حداقل موجودی انبار تن8ه8ا س8اعت 18000فص8ل تولی8د هرمح8صول زمان داریم. اختیار در تعداد

تعمیرات ممک8ن اس8ت س8اعت مشخص8ی دلی8ل ب8ه دارد. نیاز تولی8د برای یک .محصول در یک دوره تولی8د نشود

دالر 5در پایان ه8ر فصل، ه8ر کاالی8ی ک8ه در انبار باق8ی می مان8د ب8ا فرض اینک8ه بر می دارد، شرک8ت می خواه8د زمانبندی تولی8د ساالنه اش8 را برنامه ریزی هزین8ه

انبارداری می نیم8م هزین8ه ک8ل و تامی8ن تقاضاهای فص8لی ک8ه به طریق8ی کن8د، شود.

پروژه ی تحقیق در عملیات من !

TEXTUAL ANALYSIS

Page 7: کلاس عملی درس  مهندسی نرم افزار

Class Diagram

ID: intName: stringTime: int

ProductDemand: intMinimum: int Production: intInventory: int IsProduced: bool

ProblemDataID: intName: stringCost: intCapacity: int

Period

Page 8: کلاس عملی درس  مهندسی نرم افزار

رابط کاربری

Page 9: کلاس عملی درس  مهندسی نرم افزار

این برنامه خودش نمی تواند مسأله ی ریاضی مطرح شده در صورت پروژهرا حل کند.

برای حل مسأله ی ریاضی از نرم افزاری به اسمGAMS .استفاده می شود برنامه باید ورودی را از کاربر بگیرد، بهGAMS بدهد تا مسأله را حل کند و

گرفته و به کاربر نشان دهد. GAMSخروجی را از . تبادل ورودی و خروجی از طریق فایل های متنی با پسوندgdx انجام می

شود.

یک مشکل

Page 10: کلاس عملی درس  مهندسی نرم افزار

معماری چیست؟ معماری یعن8ی س8اختار دادن ب8ه طراحی. معماری مه8م ترین

یکدیگر ب8ا را ه8ا آ8ن تعام8ل ی نحوه و برنام8ه های بخ8ش مشخص می کند.

آیا این پروژه به معماری نیاز دارد؟ چقدر؟ چرا؟

معماری

Page 11: کلاس عملی درس  مهندسی نرم افزار

معماری الیه ای )من(

GDX Files

Product/ProblemData/Period

GAMSReader/GAMSWriter

GAMS

GAMSCaller/GAMSParams

WizardPage/UserControls

Page 12: کلاس عملی درس  مهندسی نرم افزار

تصمیم گیری در موردfeatureها Feature چیست؟ Textual Analysis نوشتنuse case scenario ها رسمuse case diagram معماری گسترده تر دیگ8ر مث8ل نمودار های یا sequence، activityشای8د چن8د مرحل8ه رس8م

state تصمیم گیری در مورد نحوهdivide and conquer طراحی و پیاده سازی بر اساس تصمیم مرحله ی قبل

اگر این پروژه بزرگتر بود؟

Page 13: کلاس عملی درس  مهندسی نرم افزار

معماری

گسترده تر

Page 14: کلاس عملی درس  مهندسی نرم افزار

جلسه ی

گذشته

مدل سازی و مستند سازی

یک مثال

سند تحلیل

برنامه ی امروز

Page 15: کلاس عملی درس  مهندسی نرم افزار

.اگر قرار بود بتوان کد را فهمید به آن کد نمی گفتند یکclass diagram .ارزش هزار خط کد را دارد ی8کuse case diagram را مشتری با مالقات چندی8ن ارزش

دارد. مهندس نرم افزار بهت8ر س8یستم را ب8ه ص8ورتbig picture می

فهمد. .مشتریان مدل ها را بهتر درک می کنند اگ8ر کس8ی بع8د از شروع پروژ8ه ب8ه تی8م ملح8ق ش8د س8ریعتر با

تیم هماهنگ می شود.

مدل سازی – موافقان

Page 16: کلاس عملی درس  مهندسی نرم افزار

UML .یک اسباب بازی آکادمیک است UML .مرده است. تنها به درد مقاله نوشتن می خورد انسان ها به راحتی بدونUML.در حال زندگی است .کاربر های عادی نمی توانند آن را بفهمند چندی8ن هزار س8ال اس8ت ک8ه انس8ان ه8ا بدون هی8چ مشکلی

از زبان عادی استفاده می کنند. مدل س8ازی مث8ل ای8ن اس8ت ک8ه به جای انجام دادن کار در

مورد انجام دادن آن حرف بزنیم.

مدل سازی – مخالفان

Page 17: کلاس عملی درس  مهندسی نرم افزار
Page 18: کلاس عملی درس  مهندسی نرم افزار

UML نگاه رفتن راه هنگام را خود پای جلوی ک8ه اس8ت ای8ن شبی8ه کنیم. آی8ا در روز روش8ن در ی8ک پیاده روی هموار ای8ن کار را م8ی کنید؟

در شب داخل یک جنگل تاریک چطور؟ هی8چ کس8ی پنجاه ص8فحه مدل س8ازی و مس8تند س8ازی را نم8ی خواند

صفحه ای می تواند مفید باشد. 10ولی یک توضیح .همه ی مدل ها اشتباه هستند ولی بعضی از آن ها به درد می خورند مدل س8ازی خوب اس8ت ت8ا زمان8ی ک8ه ب8ه روز رس8انی مدل ه8ا تبدی8ل به

فعالیت اصلی پروژه تبدیل نشود. تعری8ف مس8أله و راه ح8ل آ8ن ب8ه زبان عادی و کم8ک گرفت8ن از مدل ها

در برخی موارد راه حل مناسبی است.

مدل سازی – یه کم متعادل تر

Page 19: کلاس عملی درس  مهندسی نرم افزار

ها مهمتر هستند؟ artifactکدام

Use Case DiagramUse Case ScenarioSequence DiagramActivity Diagram Class Diagram Architectural ViewState Machine DiagramData Dictionary

اصول طراحی مهم

تر هستند:

• OCP• DRY

• SRP

• LSP

Page 20: کلاس عملی درس  مهندسی نرم افزار

Open-Closed Principle: Classes should be open for extension but closed for modification.

Don’t Repeat Yourself: Put things that might change just in one place.

Single Responsibility: Every object in the system should have just one responsibility and focus

on doing that. Liskov Substitution Principle:

Subtypes must be substitutable for their base types.

اصول طراحی

Page 21: کلاس عملی درس  مهندسی نرم افزار

جلسه ی

گذشته

مدل سازی و مستند سازی

یک مثال

سند تحلیل

برنامه ی امروز

Page 22: کلاس عملی درس  مهندسی نرم افزار

:هدف از سند تحلیل ایجاد مدرک8ی برای ثب8ت کردن درک تی8م از پروژ8ه و تصمیم

های تیم ایجاد مدرک8ی برای افراد خارج از محی8ط پروژ8ه ت8ا بتوانن8د به

راحتی با پروژه آشنا شوند ایجاد راهنمایی برای روند پیش بردن کار

سند تحلیل

Page 23: کلاس عملی درس  مهندسی نرم افزار

موارد مورد نیاز برای سند تحلیل هدف پروژه و صورت مسأله و مشکالت احتمالیراه حل پیشنهادیClass diagramUse case diagrams and scenariosArchitectural viewData dictionary هر گونه توضیح، نمودار یا محصول دیگری که به نظر شما برای

درک بهتر مطلب برای تیم و افراد خارج از تیم الزم است.

•سند تحلیل

اصول طراحی مهم تر هستند•

تحلیل و طراحی فرآیند هایی

افزایشی هستند•

تحلیل و طراحی به صورت تیمی

انجام می شوند

Page 24: کلاس عملی درس  مهندسی نرم افزار

جلسه ی

گذشته

مدل سازی و مستند سازی

یک مثال

سند تحلیل

برنامه ی امروز

Page 25: کلاس عملی درس  مهندسی نرم افزار

فاز دوم پروژ8ه: ایجاد س8ند تحلی8ل پروژ8ه و ارس8ال آ8ن تایعنی آینده ی جلس8ه از قب8ل 1391/01/18نیم8ه ش8ب

ب8ه صورت B برای گروه 1391/01/25 و Aبرای گروه pdf یا wordفایل

:به این ایمیل[email protected] :لطفاً نام فایل را به صورت زیر قرار دهید

پروژه ی نرم افزار2نام تیم – فاز نام زیر ب8ه ص8ورت را ه8ا فای8ل ه8ا تمری8ن ارس8ال برای

گذاری کنید: نام خانوادگی – نام – شماره دانشجویی – تمرین شماره

و در پایان

Page 26: کلاس عملی درس  مهندسی نرم افزار

تا جلسه ی آینده ...

Opportunity is missed by most people because it's dressed in overalls and looks like work.

Thomas Edison