Upload
amirhossein-aghdassi
View
105
Download
0
Embed Size (px)
Citation preview
دورهی آموزشی فرآیند توسعهی نرمافزاراز ایده تا محصول
داستان چیه؟
توی این دوره قراره بفهمیم نرمافزار چیه و چه جوری شکل میگیره …
که چی بشه؟
رو • نرمافزاری پروژهی یک میخوایم و داریم ایدهای وقتی شروع کنیم، بدونیم دقیقاً باید چی کار کنیم؟
وقتی توی یک پروژهی نرمافزاری هستیم، بدونیم دقیقاً داریم •چی کار میکنیم؟
اگه دوست داریم بریم توی کار نرمافزار، بدونیم بهتره از کجا •شروع کنیم؟
آخرش چی میشه؟
از عضوی عنوان به بتونیم قراره
یک نرمافزاری»، «تیم یک
«نرمافزار با کیفیت» توسعه بدیم.
خب چه جوری؟
توی • رو مهارتها سری یک که اینه اول قدم ما، نظر از خودمون توسعه بدیم. مهارتهایی مثل این که:
نیازها رو به درستی تشخیص بدیم. •بفهمیم معماری نرمافزار چیه و به چه دردی میخوره؟ •بتونیم تک تک ویژگیهای نرمافزار رو طراحی کنیم. •بتونیم از نرمافزارمون به خوبی نگهداری کنیم.•
و بعد …
با مجموعهای از آدمها که این مهارتها رو دارند، میتونیم فرآیند توسعهی متناسب با نیازهای تیم خودمون رو طراحی کنیم.
به درد کی میخوره حاال؟
و • نرمافزار با نوعی به که کس هر توسعهی اون سروکار داره
نرمافزار، • مهندسین خاص طور به و نرمافزاری پروژههای مدیران
کارآفرینهای حوزهی نرمافزار
پیشنیاز داره آیا؟
به • تسلط یا قوی آشنایی ما ترجیح یک زبان برنامهنویسی و فریمورک وب) حتت (ترجیحاً نرمافزاری
هست.
• (Java EE) جاوا سازمانی نسخهی وب حتت فریمورکهای یا روبیآنریلز یا پایتون پیاچپی،
توصیه میشه.
”دورهی آموزشی فرآیند توسعهی نرمافزار، قراره مهارتهای الزم
برای کامل کردن دانستههای فنی ما رو نشون بده و کمک کنه تا
توسعهدهندهی مناسبتری در یک تیم نرمافزاری باشیم.“
چی قراره یاد بگیریم؟
میتونیم دورهمون رو به ۴ فصل (در مجموع ۱۲ جلسه) تقسیم کنیم:
فصل اول: داستان نرمافزار (۳ جلسه) •
فصل دوم: شناخت نیازها (۲ جلسه) •
فصل سوم: معماری، حتلیل و طراحی (۴ جلسه) •
فصل چهارم: فرآیند توسعهی نرمافزار (۳ جلسه)•
داستان نرمافزار، جلسهی اول
چه • قراره و اومده کجا از نرمافزار مشکلی رو حل کنه؟
بقیهی • از رو نرمافزار چیزهایی چه ساختههای بشر متمایز میکنه؟
به • کجا و چی یعنی نرمافزار مهندسی درد میخوره؟
فرآیند و مراحل توسعهی نرمافزار چیه؟•
داستان نرمافزار، جلسهی دوم
فرآیند • غریب و عجیب مدلهای این توسعهی نرمافزار یعنی چی؟
فرآیندهای آبشاری، مارپیچی (فنری)، ✴منونهسازی تکاملی و راپ
فرآیندهای چابک ✴
مدل خودمون رو چه طور انتخاب کنیم؟•
داستان نرمافزار، جلسهی سوم
و • زبان قدر این چرا اصالً داریم؟ برنامهنویسی فریمورک
کدوماش بهتره؟
جوری • چه چیه؟ توسعه محیط باشه خوبه؟
چی • نسخه کنترل سیستمهای هسنت و چی کار میکنن؟
شناخت نیازها، جلسهی اول
نیاز چیه؟ اصالً برای چی باید نیاز رو تشخیص بدیم؟ •
فرق نیاز با نیازمندی چیه؟ •
و • غیرعملکردی و عملکردی نیازمندیهای نیازمندیهای سیستم و کاربر چی هسنت؟
شناخت نیازها، جلسهی دوم
چی • دقیقاً بفهمیم و بشناسیمشون طور چه کنیم؟ کشف رو نیازها طور چه هسنت؟ چه طور اولویتبندیشون کنیم؟
معماری، حتلیل و طراحی، جلسهی اول
شئگرایی: من شئ ام، پس هستم! •
دیاگرامهای ساختاری یوامال: •
مورد کاربرد، کالس و … ✴
دیاگرامهای رفتاری یوامال: •
توالی و انتقال حالت✴
معماری، حتلیل و طراحی، جلسهی دوم
اینجا • ساختمونه! مال که معماری چی کار میکنه؟
معماری چه طور کامل میشه؟ •
یعنی • توصیفی و جتویزی معماری چی و کجا به کار میآد؟
مؤلفههای معماری چیه؟•
معماری، حتلیل و طراحی، جلسهی سوم
و • جتزیه جوری چه رو نیازمندیها حتلیل کنیم؟
رو • اونها ویژگیهای و کالسها چه طور از دل نیازمندیها بکشیم
بیرون؟
تشخیص • طور چه رو عملکردها بدیم؟
معماری، حتلیل و طراحی، جلسهی چهارم
الگوهای طراحی چی هسنت و چه طور میتونن به ما کمک کنن؟ •
از کجا گیر بیاریم این الگوها رو و چه جوری انتخابشون کنیم؟•
فرآیند توسعهی نرمافزار، جلسهی اول
فرآیند توسعهی یکپارچه چیه و چه طور میتونه کمکمون کنه؟ •
فازها و مرحلهها به چه معنا اند و چه جوری میشه به کارشون گرفت؟•
فرآیند توسعهی نرمافزار، جلسهی دوم
تغییر: تنها چیزی که تغییر منیکنه! •
کجا • از نرمافزار چابک توسعهی پیداش شد؟
از • رو باری چه چابک روشهای روی دوشمون بر میدارن؟
جلسهی آخر
حاال با این همه اطالعات چی کار کنیم؟ •
رو • تیممون و خودمون مهارتها این با میشه واقعاً آیا مدیریت کنیم؟
به چه چیزهای دیگهای نیاز داریم؟•
مرجع خاصی هم داریم؟
• CS6300 مرجع اصلی دورهمون، کالستوسط که هست جورجیاتک دانشگاه تدریس اُرزو» «الکس پروفسور کمی با ما دورهی البته میشه.
تغییرات ارائه میشه.
به • جورجیاتک دانشگاه دورهی کل روی رایگان و آنالین صورت وبسایت Udacity در دسترس هست.
مدرس دوره کیه؟
امیرحسین اقدسی طراح و تحلیلگر نرمافزار
سوابق اجرایی: شرکت تام ایرانخودرو، شرکت ایران فاوا گسترش، فروشگاههای زنجیرهای یاس، دانشگاه علوم پزشکی تهران، بیمهی آسیا، شرکت
آسیان الیت، گروه نرمافزاری اتوپیا
سوابق مشاوره: پروژهی نرمافزار بانکداری متمرکز (CORE Banking) بانک مسکن، پروژهی نرمافزار جامع صنعت پخش شرکت فناپ (بانک پاسارگاد)
”نرمافزار با کیفیت، کوه یخی است که شاید فقط برنامهنویسی آن
یا فنآوریهای بهکارگرفتهشده در آن دیده شود،
اما به یاد داشته باشیم که کیفیت همیشه نتیجهی یک فرآیند
توسعهی مناسب و کار تیمی مؤثر است.“