مقدمه: زبان مدلسازی یکپارچه (Unified Modeling Language) یا «یو ام ال»، یک زبان مدلسازی همه منظوره استاندارد در زمینه مهندسی نرمافزار است که توسط گروه مدیریت شی (Object Management Group) ایجاد شد. با استفاده از یو امال میتوان تقریباً هر گونه برنامه کاربردی که ممکن است بر روی هر ترکیبی از سختافزار، سیستم عامل، زبان برنامه نویسی و شبکه اجرا شود را مدلسازی نمود. طراحی بر پایه مفاهیم شی گرایی یو امال سبب میشود که ذاتاً با محیطها و زبانهای برنامه نویسی شی گرا (مانند سی پلاس پلاس، جاوا و سی شارپ) سازگاری کامل داشته باشد، اگرچه میتوان از آن برای مدلسازی برنامههای غیر شی گرا مانند برنامههایی که با زبانهای بیسیک، کوبول و فرترن نوشته میشوند نیز استفاده نمود. توضیحاتی راجع به دوره آموزشی UML هدف این دوره صرفا آموزش نمودارهای UML نیست بلکه هدف، آموزش چگونگی توسعه یک نرم افزار با استفاده از نمودارهای UML می باشد بنابراین در این دوره آموزشی ضمن تدریس مباحث پایه ای UML یک پروژه عملی تعریف خواهد شد و دانشجویان در طول دوره این پروژه را با راهنمایی های مدرس انجام داده و درک عمیق و کاربردی نسبت به UML و فرآیند توسعه نرم افزار خواهند داشت. در طول دوره یکی از فرآیند توسعه نرم افزار مبتنی بر RUP که برای پروژه های کوچک و متوسط مناسب باشد به تفصیل آموزش داده خواهد شد. مخاطبین این دوره: این دوره برای متخصصان فرآیند، مدیران خدمات مشتریان، تحلیل گران کسب و کار، مدیران پروژه ها، مدیران و متخصصان IT، مهندسین صنایع، تحلیل گران و طراحان نرم افزار مناسب می باشد. اهداف دوره: آموزش تفصیلی UML و دیاگرام های تکمیلی مورد نیاز مدلسازی آشنایی با متد XP و انجام یک پروژه عملی با این متد آموزش تفصیلی متد ICONIX و انجام یک پروژه عملی با آن آموزش نرم افزار Enterprise Architect (EA) سرفصل های دوره: مقدمه ای بر چیستی نرم افزار و انواع فرآیندهای توسعه نرم افزار شیوه توسعه نرم افزار در کشور در تیم ها و پروژه های کوچک معایب و مشکلات روش موجود و بررسی منشا این مشکلات تعریف تکرار (Iteration) و تبیین مفاهیم مربوط به آن تعریف فرآیندهای توسعه تکراری و بررسی تفاوت های آن با فرآیندهای توسعه سنتی بررسی اجمالی انواع فرآیندهای توسعه نرم افزار بررسی فرآیند توسعه RUP (شامل فازهای مختلف، دیسیپلین ها و کاربردهای این روش توسعه) معرفی UML تعریف system,view,model و روابط بین آنها معرفی UML معرفی اجمالی دیاگرامهای UML و View ها پنجگانه سیستم های نرم افزاری تبیین ارتباط بین نمودارهای UML ترسیم مسیر توسعه از تحلیل نیازمندی ها تا کد نویسی و تست برای پروژه های کوچک و متوسط تئوری فرآیند ICONIX نیازمندیها تجزیه و تحلیل و طراحی اولیه طراحی دقیق پیاده سازی تست تعریف نیازمندیها ترسیم Domain Model (مقدمه Class Diagram) چیستی Domain Model تقدم Domain Model بر Use Case Diagram هنگام شروع یک پروژه چگونگی ترسیم Domain Model ترسیم Domain Model برای پروژه تعریف شده در کلاس با استفاده از نرم افزار Enterprise Architect (EA) Use Case Diagram نیازمندیهای کارکردی و غیر کارکردی نرم افزار تعریف Use Case سناریوی Use Case روابط بین Use Case ها ارتباط بین Domain Model و Use Case Diagram شیوه ترسیم Use Case Diagram ارتباط بین سناریوی Use Case و روابط بین Use Case ها در Use Case Diagram و شیوه بروز رسانی دیاگرام حین نوشتن سناریو سازماندهی Use Case ها در Packages ترسیم Use Case Diagram برای پروژه کلاسی توسط دانشجویان در کلاس با استفاده از نرم افزار Enterprise Architect (EA) تجزیه و تحلیل، طراحی مفهومی Activity Diagram معرفی Activity Diagram معرفی المانهای Activity Diagram شیوه ترسیم Activity Diagram کاربرد و دلیل نیاز به Activity Diagram (چه مواقعی نیاز است این دیاگرام ترسیم شود.) ارتباط بین Activity Diagram با طراحی پایگاه داده و طراحی امنیت نرم افزار ترسیم Activity Diagram و بروزرسانی سناریوی Use Case برای پروژه کلاسی توسط دانشجویان در کلاس با استفاده از نرم افزار Enterprise Architect (EA) Robustness Analysis معرفی Collaboration Diagram معرفی Robustness Diagram و بیان تفاوت آن با Collaboration Diagram قوانین ترسیم این دیاگرام ها در چه زمانهای نیاز به تحلیل همکاری بین آبجکت ها می باشد ارتباط بین سناریوی Use Case ، Domain Model و Robustness Diagram شیوه ترسیم Robustness Diagram و Collaboration Diagram شیوه بروز رسانی سناریو و Domain Model و اضافه کردن Attribute های کلاس ها در حین ترسیم Robustness Diagram ترسیم Robustness Diagram و بروزرسانی سناریو و Domain Model برای پروژه کلاسی توسط دانشجویان در کلاس با استفاده از نرم افزار Enterprise Architect (EA) طراحی و کد نویسی Sequence Diagrams Sequence Diagram و طراحی دقیق المانهای Sequence Diagram Problem space , Solution space شیوه ترسیم Sequence Diagram در Problem space شیوه ترسیم Sequence Diagrams در Solution space (ترسیم دیاگرام متناسب با Framework و زبان برنامه نویسی هدف پروژه) شیوه تبدیل Sequence Diagram به کد ارتباط بین سناریوی Use Case ، Domain Model ، Robustness Diagram و Sequence Diagram شیوه بروز رسانی سناریو و Domain Model و اضافه کردن Method های کلاس ها در حین ترسیم Sequence Diagram ترسیم Sequence Diagram و بروزرسانی سناریو و Domain Model برای پروژه کلاسی توسط دانشجویان در کلاس با استفاده از نرم افزار Enterprise Architect (EA) Class Diagram مفاهیم کلاس و آبجکت Attributes, methods, visibility روابط بین کلاس ها Abstract class Interface Date type Association Classes روشهای مختلف کشف کلاس ها و شیوه ترسیم Class Diagram در Problem space تبدیل Class Diagram ترسیم شده در Problem space به Solution space تشریح جزئیات CRC بروز رسانی Domain Model و تکمیل Class Diagram با استفاده از تکنیک CRC برای پروژه کلاسی توسط دانشجویان در کلاس با استفاده از نرم افزار Enterprise Architect (EA) سایر نمودارهای UML در چه زمانهایی نیاز به ترسیم بقیه دیاگرامهای UML می باشد؟ State Diagram Components Diagram Deployment Diagram نکاتی برای مدلسازی، برنامه نویسی و تست بهتر شیوه توسعه نرم افزارهای ERP و مکانیزه کردن فرآیندهای جاری یک سازمان ارائه کدامیک از دیاگرام های UML به برنامه نویس ضروری است؟ شیوه تعامل با مشتری در طول پروژه چگونه باید باشد؟ در یک پروژه نرم افزاری با چه ریسک هایی مواجه هستیم و این ریسک ها چگونه باید مدیریت شوند؟ کامپوننت های تولید شده در طول پروژه از چه جنبه هایی باید تست بخورند؟ یکپارچگی کامپوننت ها در طول پروژه چگونه باید کنترل شود؟ فرآیندهای توسعه Agile مانیفست Agile اصول و ارزش های Agile انواع متد های Agile تشریح فرآیند XP تهیه Backlog معرفی User Story شیوه شناسایی User Story و معیارهای پذیرش آن تهیه Iteration plan تعریف Velocity و چگونگی محاسبه آن برد Agile تخمین User Story با در نظر گرفتن Velocity بصورت کارگاهی در کلاس تخمین زمان کل پروژه برگزاری یک کارگاه کلاسی و انجام تحلیل و مدلسازی صفر تا 100 یک پروژه استارتاپی با متد XP