Cource Intro

25
ﻧﺮماﻓﺰار ﺗﻮﺳﻌﻪی ﻓﺮآﯾﻨﺪ آﻣﻮزﺷﯽ دورهی ﻣﺤﺼﻮل ﺗﺎ اﯾﺪه از

Transcript of Cource Intro

Page 1: Cource Intro

دوره‌ی آموزشی فرآیند توسعه‌ی نرم‌افزاراز ایده تا محصول

Page 2: Cource Intro

داستان چیه؟

توی این دوره قراره بفهمیم نرم‌افزار چیه و چه جوری شکل می‌گیره …

Page 3: Cource Intro

که چی بشه؟

رو • نرم‌افزاری پروژه‌ی یک می‌خوایم و داریم ایده‌ای وقتی شروع کنیم، بدونیم دقیقاً باید چی کار کنیم؟

وقتی توی یک پروژه‌ی نرم‌افزاری هستیم، بدونیم دقیقاً داریم •چی کار می‌کنیم؟

اگه دوست داریم بریم توی کار نرم‌افزار، بدونیم بهتره از کجا •شروع کنیم؟

Page 4: Cource Intro

آخرش چی می‌شه؟

از عضوی عنوان به بتونیم قراره

یک نرم‌افزاری»، «تیم یک

«نرم‌افزار با کیفیت» توسعه بدیم.

Page 5: Cource Intro

خب چه جوری؟

توی • رو مهارت‌ها سری یک که اینه اول قدم ما، نظر از خودمون توسعه بدیم. مهارت‌هایی مثل این که:

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

Page 6: Cource Intro

و بعد …

با مجموعه‌ای از آدم‌ها که این مهارت‌ها رو دارند، می‌تونیم فرآیند توسعه‌ی متناسب با نیازهای تیم خودمون رو طراحی کنیم.

Page 7: Cource Intro

به درد کی می‌خوره حاال؟

و • نرم‌افزار با نوعی به که کس هر توسعه‌ی اون سروکار داره

نرم‌افزار، • مهندسین خاص طور به و نرم‌افزاری پروژه‌های مدیران

کارآفرین‌های حوزه‌ی نرم‌افزار

Page 8: Cource Intro

پیش‌نیاز داره آیا؟

به • تسلط یا قوی آشنایی ما ترجیح یک زبان برنامه‌نویسی و فریم‌ورک وب) حتت (ترجیحاً نرم‌افزاری

هست.

• (Java EE) جاوا سازمانی نسخه‌ی وب حتت فریم‌ورک‌های یا روبی‌آن‌ریلز یا پایتون پی‌اچ‌پی،

توصیه می‌شه.

Page 9: Cource Intro

”دوره‌ی آموزشی فرآیند توسعه‌ی نرم‌افزار، قراره مهارت‌های الزم

برای کامل کردن دانسته‌های فنی ما رو نشون بده و کمک کنه تا

توسعه‌دهنده‌ی مناسب‌تری در یک تیم نرم‌افزاری باشیم.“

Page 10: Cource Intro

چی قراره یاد بگیریم؟

می‌تونیم دوره‌مون رو به ۴ فصل (در مجموع ۱۲ جلسه) تقسیم کنیم:

فصل اول: داستان نرم‌افزار (۳ جلسه) •

فصل دوم: شناخت نیازها (۲ جلسه) •

فصل سوم: معماری، حتلیل و طراحی (۴ جلسه) •

فصل چهارم: فرآیند توسعه‌ی نرم‌افزار (۳ جلسه)•

Page 11: Cource Intro

داستان نرم‌افزار، جلسه‌ی اول

چه • قراره و اومده کجا از نرم‌افزار مشکلی رو حل کنه؟

بقیه‌ی • از رو نرم‌افزار چیزهایی چه ساخته‌های بشر متمایز می‌کنه؟

به • کجا و چی یعنی نرم‌افزار مهندسی درد می‌خوره؟

فرآیند و مراحل توسعه‌ی نرم‌افزار چیه؟•

Page 12: Cource Intro

داستان نرم‌افزار، جلسه‌ی دوم

فرآیند • غریب و عجیب مدل‌های این توسعه‌ی نرم‌افزار یعنی چی؟

فرآیندهای آبشاری، مارپیچی (فنری)، ✴منونه‌سازی تکاملی و راپ

فرآیندهای چابک ✴

مدل خودمون رو چه طور انتخاب کنیم؟•

Page 13: Cource Intro

داستان نرم‌افزار، جلسه‌ی سوم

و • زبان قدر این چرا اصالً داریم؟ برنامه‌نویسی فریم‌ورک

کدوم‌اش بهتره؟

جوری • چه چیه؟ توسعه محیط باشه خوبه؟

چی • نسخه کنترل سیستم‌های هسنت و چی کار می‌کنن؟

Page 14: Cource Intro

شناخت نیازها، جلسه‌ی اول

نیاز چیه؟ اصالً برای چی باید نیاز رو تشخیص بدیم؟ •

فرق نیاز با نیازمندی چیه؟ •

و • غیرعملکردی و عملکردی نیازمندی‌های نیازمندی‌های سیستم و کاربر چی هسنت؟

Page 15: Cource Intro

شناخت نیازها، جلسه‌ی دوم

چی • دقیقاً بفهمیم و بشناسیم‌شون طور چه کنیم؟ کشف رو نیازها طور چه هسنت؟ چه طور اولویت‌بندی‌شون کنیم؟

Page 16: Cource Intro

معماری، حتلیل و طراحی، جلسه‌ی اول

شئ‌گرایی: من شئ ام، پس هستم! •

دیاگرام‌های ساختاری یو‌ام‌ال: •

مورد کاربرد، کالس و … ✴

دیاگرام‌های رفتاری یوام‌ال: •

توالی و انتقال حالت✴

Page 17: Cource Intro

معماری، حتلیل و طراحی، جلسه‌ی دوم

این‌جا • ساختمونه! مال که معماری چی کار می‌کنه؟

معماری چه طور کامل می‌شه؟ •

یعنی • توصیفی و جتویزی معماری چی و کجا به کار می‌آد؟

مؤلفه‌های معماری چیه؟•

Page 18: Cource Intro

معماری، حتلیل و طراحی، جلسه‌ی سوم

و • جتزیه جوری چه رو نیازمندی‌ها حتلیل کنیم؟

رو • اون‌ها ویژگی‌های و کالس‌ها چه طور از دل نیازمندی‌ها بکشیم

بیرون؟

تشخیص • طور چه رو عملکردها بدیم؟

Page 19: Cource Intro

معماری، حتلیل و طراحی، جلسه‌ی چهارم

الگوهای طراحی چی هسنت و چه طور می‌تونن به ما کمک کنن؟ •

از کجا گیر بیاریم این الگوها رو و چه جوری انتخاب‌شون کنیم؟•

Page 20: Cource Intro

فرآیند توسعه‌ی نرم‌افزار، جلسه‌ی اول

فرآیند توسعه‌ی یکپارچه چیه و چه طور می‌تونه کمک‌مون کنه؟ •

فازها و مرحله‌ها به چه معنا اند و چه جوری می‌شه به کارشون گرفت؟•

Page 21: Cource Intro

فرآیند توسعه‌ی نرم‌افزار، جلسه‌ی دوم

تغییر: تنها چیزی که تغییر منی‌کنه! •

کجا • از نرم‌افزار چابک توسعه‌ی پیداش شد؟

از • رو باری چه چابک روش‌های روی دوش‌مون بر می‌دارن؟

Page 22: Cource Intro

جلسه‌ی آخر

حاال با این همه اطالعات چی کار کنیم؟ •

رو • تیم‌مون و خودمون مهارت‌ها این با می‌شه واقعاً آیا مدیریت کنیم؟

به چه چیزهای دیگه‌ای نیاز داریم؟•

Page 23: Cource Intro

مرجع خاصی هم داریم؟

• CS6300 مرجع اصلی دوره‌مون، کالستوسط که هست جورجیاتک دانشگاه تدریس اُرزو» «الکس پروفسور کمی با ما دوره‌ی البته می‌شه.

تغییرات ارائه می‌شه.

به • جورجیاتک دانشگاه دوره‌ی کل روی رایگان و آن‌الین صورت وب‌سایت Udacity در دسترس هست.

Page 24: Cource Intro

مدرس دوره کیه؟

امیرحسین اقدسی طراح و تحلیل‌گر نرم‌افزار

سوابق اجرایی: شرکت تام ایران‌خودرو، شرکت ایران فاوا گسترش، فروشگاه‌های زنجیره‌ای یاس، دانشگاه علوم پزشکی تهران، بیمه‌ی آسیا، شرکت

آسیان الیت، گروه نرم‌افزاری اتوپیا

سوابق مشاوره: پروژه‌ی نرم‌افزار بانک‌داری متمرکز (CORE Banking) بانک مسکن، پروژه‌ی نرم‌افزار جامع صنعت پخش شرکت فناپ (بانک پاسارگاد)

Page 25: Cource Intro

”نرم‌افزار با کیفیت، کوه یخی است که شاید فقط برنامه‌نویسی آن

یا فن‌آوری‌های به‌کارگرفته‌شده در آن دیده شود،

اما به یاد داشته باشیم که کیفیت همیشه نتیجه‌ی یک فرآیند

توسعه‌ی مناسب و کار تیمی مؤثر است.“