260 likes | 527 Views
به نام خدا . کلاس عملی درس مهندسی نرم افزار. جلسه ی دوم. برنامه ی امروز . سند تحلیل. یک مثال . مدل سازی و مستند سازی. جلسه ی گذشته. جلسه ی گذشته . چرا Process Model ؟ Process Model چیست؟ انواع Process Model ها؟ کدام یک بهتر است؟ . برنامه ی امروز . سند تحلیل. یک مثال.
E N D
به نام خدا کلاس عملی درس مهندسی نرم افزار جلسه ی دوم
برنامه ی امروز سند تحلیل یک مثال مدل سازی و مستند سازی جلسه ی گذشته
جلسه ی گذشته چرا Process Model؟ Process Model چیست؟ انواع Process Model ها؟ کدام یک بهتر است؟
برنامه ی امروز سند تحلیل یک مثال مدل سازی و مستند سازی جلسه ی گذشته
پروژه ی تحقیق در عملیات من ! صورت مسأله: شرکتی چند محصول خانگی تولید میکند و تقاضا برای هر محصول در فصول سال آینده معلوم است. شرکت یک برنامه زمانبندی تولید نیاز دارد تا تقاضای ضروری را تامین کند. مدیریت تصمیم گرفته است که میزان موجودی انبار هر محصول حداقل 150 واحد در انتهای هر فصل باشد. در یک فصل تنها 18000 ساعت زمان تولید در اختیار داریم. هرمحصول تعداد ساعت مشخصی برای تولید نیاز دارد. به دلیل تعمیرات ممکن است یک محصول در یک دوره تولید نشود. با فرض اینکه هر کالایی که در انبار باقی میماند در پایان هر فصل، 5 دلار هزینه بر میدارد، شرکت میخواهد زمانبندی تولید سالانهاش را برنامهریزی کند، بهطریقی که تقاضاهای فصلی تامین و کل هزینه انبارداری مینیمم شود.
پروژه ی تحقیق در عملیات من ! Textual Analysis صورت مسأله: شرکتی چند محصول خانگی تولید میکند و تقاضا برای هر محصول در فصول سال آینده معلوم است. شرکت یک برنامه زمانبندی تولید نیاز دارد تا تقاضای ضروری را تامین کند. مدیریت تصمیم گرفته است که میزان موجودی انبار هر محصول حداقل 150 واحد در انتهای هر فصل باشد. در یک فصل تنها 18000 ساعت زمان تولید در اختیار داریم. هرمحصول تعداد ساعت مشخصی برای تولید نیاز دارد. به دلیل تعمیرات ممکن است یک محصول در یک دوره تولید نشود. با فرض اینکه هر کالایی که در انبار باقی میماند در پایان هر فصل، 5 دلار هزینه بر میدارد، شرکت میخواهد زمانبندی تولید سالانهاش را برنامهریزی کند، بهطریقی که تقاضاهای فصلی تامین و کل هزینه انبارداری مینیمم شود.
Class Diagram ProblemData Period Product Demand: int Minimum: int Production: int Inventory: int IsProduced: bool ID: int Name: string Cost: int Capacity: int ID: int Name: string Time: int
یک مشکل این برنامه خودش نمی تواند مسأله ی ریاضی مطرح شده در صورت پروژه را حل کند. برای حل مسأله ی ریاضی از نرم افزاری به اسم GAMS استفاده می شود. برنامه باید ورودی را از کاربر بگیرد، به GAMS بدهد تا مسأله را حل کند و خروجی را از GAMS گرفته و به کاربر نشان دهد. تبادل ورودی و خروجی از طریق فایل های متنی با پسوند .gdx انجام می شود.
معماری • معماری چیست؟ • معماری یعنی ساختار دادن به طراحی. معماری مهم ترین بخش های برنامه و نحوه ی تعامل آن ها را با یکدیگر مشخص می کند. • آیا این پروژه به معماری نیاز دارد؟ چقدر؟ چرا؟
معماری لایه ای (من) WizardPage/UserControls Product/ProblemData/Period GAMSCaller/GAMSParams GAMSReader/GAMSWriter GDX Files GAMS
اگر این پروژه بزرگتر بود؟ • تصمیم گیری در مورد feature ها • Feature چیست؟ • Textual Analysis • نوشتن use case scenario ها • رسم use case diagram • معماری گسترده تر • شاید چند مرحله رسم نمودار های دیگر مثل sequence، activity یا state • تصمیم گیری در مورد نحوه divide and conquer • طراحی و پیاده سازی بر اساس تصمیم مرحله ی قبل
برنامه ی امروز سند تحلیل یک مثال مدل سازی و مستند سازی جلسه ی گذشته
مدل سازی – موافقان اگر قرار بود بتوان کد را فهمید به آن کد نمی گفتند. یک class diagram ارزش هزار خط کد را دارد. یک use case diagram ارزش چندین ملاقات با مشتری را دارد. مهندس نرم افزار بهتر سیستم را به صورت big picture می فهمد. مشتریان مدل ها را بهتر درک می کنند. اگر کسی بعد از شروع پروژه به تیم ملحق شد سریعتر با تیم هماهنگ می شود.
مدل سازی – مخالفان UML یک اسباب بازی آکادمیک است. UML مرده است. تنها به درد مقاله نوشتن می خورد. انسان ها به راحتی بدون UML در حال زندگی است. کاربر های عادی نمی توانند آن را بفهمند. چندین هزار سال است که انسان ها بدون هیچ مشکلی از زبان عادی استفاده می کنند. مدل سازی مثل این است که به جای انجام دادن کار در مورد انجام دادن آن حرف بزنیم.
مدل سازی – یه کم متعادل تر UML شبیه این است که جلوی پای خود را هنگام راه رفتن نگاه کنیم. آیا در روز روشن در یک پیاده روی هموار این کار را می کنید؟ در شب داخل یک جنگل تاریک چطور؟ هیچ کسی پنجاه صفحه مدل سازی و مستند سازی را نمی خواند ولی یک توضیح 10 صفحه ای می تواند مفید باشد. همه ی مدل ها اشتباه هستند ولی بعضی از آن ها به درد می خورند. مدل سازی خوب است تا زمانی که به روز رسانی مدل ها تبدیل به فعالیت اصلی پروژه تبدیل نشود. تعریف مسأله و راه حل آن به زبان عادی و کمک گرفتن از مدل ها در برخی موارد راه حل مناسبی است.
کدام artifact ها مهمتر هستند؟ • اصول طراحی مهم تر هستند: • OCP • DRY • SRP • LSP • Use Case Diagram • Use Case Scenario • Sequence Diagram • Activity Diagram • Class Diagram • Architectural View • State Machine Diagram • Data Dictionary
اصول طراحی • 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.
برنامه ی امروز سند تحلیل یک مثال مدل سازی و مستند سازی جلسه ی گذشته
سند تحلیل • هدف از سند تحلیل: • ایجاد مدرکی برای ثبت کردن درک تیم از پروژه و تصمیم های تیم • ایجاد مدرکی برای افراد خارج از محیط پروژه تا بتوانند به راحتی با پروژه آشنا شوند • ایجاد راهنمایی برای روند پیش بردن کار
سند تحلیل • اصول طراحی مهم تر هستند • تحلیل و طراحی فرآیند هایی افزایشی هستند • تحلیل و طراحی به صورت تیمی انجام می شوند • موارد مورد نیاز برای سند تحلیل • هدف پروژه و صورت مسأله و مشکلات احتمالی • راه حل پیشنهادی • Class diagram • Use case diagrams and scenarios • Architectural view • Data dictionary • هر گونه توضیح، نمودار یا محصول دیگری که به نظر شما برای درک بهتر مطلب برای تیم و افراد خارج از تیم لازم است.
برنامه ی امروز سند تحلیل یک مثال مدل سازی و مستند سازی جلسه ی گذشته
و در پایان فاز دوم پروژه: ایجاد سند تحلیل پروژه و ارسال آن تا نیمه شب قبل از جلسه ی آینده یعنی 1391/01/18 برای گروه A و 1391/01/25 برای گروه B به صورت فایل word یا pdf به این ایمیل: se2012ta@gmail.com لطفاً نام فایل را به صورت زیر قرار دهید: نام تیم – فاز 2 پروژه ی نرم افزار برای ارسال تمرین ها فایل ها را به صورت زیر نام گذاری کنید: نام خانوادگی – نام – شماره دانشجویی – تمرین شماره ی X
تا جلسه ی آینده ... Opportunity is missed by most people because it's dressed in overalls and looks like work. Thomas Edison