با همکاران و دانشجویان آزمایشگاه تصدیق کیفیت نرم‌افزار - ۱۳۹۱
دوره‌های آموزشی
بوت‌کمپ برنامه‌نویسی حرفه‌ای
Professional Programming Boot Camp (ProProg)

چرا برنامه‌نویسی حرفه‌ای؟

مدیران باتجربه در توسعه نرم‌افزار به خوبی واقفند که یک توسعه‌دهنده موفق علاوه بر تسلط بر دامنه پروژه و آشنایی با فناوری‌ها باید واجد طیفی مهارت‌هایی باشد که در روش‌های نوین توسعه نرم‌افزار نقشی کلیدی دارند. از کدنویسی تمیز گرفته تا بازآرایی، طراحی تکاملی، آزمون خودکار و یک‌پارچه‌سازی مستمر (به عنوان یک فرایند انسانی در برابر مجموعه‌ای از ابزارها) و مواردی بیشتر از اینها. فراگیری این‌گونه مهارت‌ها در محیط‌های دانشگاهی با سیستم آموزشی فعلی تقریباً نشدنی است و عملاً به زمانی منتقل می‌شود که دانش‌آموختگان در شرکت‌ها مشغول به کار می‌شوند. فراگیری حین کار، البته که بسیار مؤثر است،‌ اما توان زیادی از توسعه‌دهندگان باسابقه تیم‌ها صرف می‌کند و از طرف دیگر ریسک‌های ناشی از اشتباهات مهندسین تازه جذب شده را افزایش می‌دهد. برای رفع این مشکل، بوت‌کمپ برنامه‌نویسی حرفه‌ای به عنوان یک دوره عملی که مهندسین جوان را برای اثربخشی مطلوب در تیم‌های توسعه نرم‌افزار آماده می‌کند طراحی شده است.

 
Professional Programming
الگوی یاددهی-یادگیری
بوت‌کمپ برنامه‌نویسی حرفه‌ای کاملاً به صورت عملی و بر مبنای توسعه یک نرم‌افزار نمونه صورت می‌گیرد. فراگیران در قالب تیم‌های سه‌نفره در هشت دور یک هفته‌ای در حین توسعه فیچرهای جدید مهارت‌های مورد تمرکز را فرا می‌گیرند و به صورت عادت در روال برنامه‌نویسی خود جا می‌اندازند. این بوت‌کمپ بر مبنای روش‌های آموزش یادگیرنده محور طراحی شده و یادگیری کاملاً مسئله-محور است. به این ترتیب، حجم کمی از آموزش به صورت کلاس یک‌طرفه است و بیشتر یادگیری از طریق مطالعه هدفمند، بحث، آزمایش و پیاده‌سازی عملی در یک همکاری تیمی صورت می‌پذیرد. حضور مربیان خبره و منتور مجرب در کنار تیم‌ها باعث می‌شود فعالیت‌های فراگیران به صورت هدفمند و هدایت‌شده صورت گیرد.
 
بخشی از جلسه مرور اهداف دوره
برگزاری بوت‌کمپ

در حال حاضر بازار هدف بوت‌کمپ شرکت‌های توسعه نرم‌افزار جاافتاده‌ای هستند که قصد افزایش سطح مهارت‌های نیروهای تازه جذب‌شده خود را دارند. برگزاری بوت‌کمپ به صورت فصلی انجام می‌شود. در صورت نیاز به کسب اطلاعات بیشتر لطفاً از طریق ای‌میل با من تماس بگیرید.

بوت‌کمپ‌های برگزار شده
  • Radin Bourse شرکت رادین بورس
    دوره اول: مرداد و شهریور ۱۴۰۰
    دوره دوم: مرداد و شهریور ۱۴۰۲
  • Dotin شرکت داتین
    دوره اول: آذر و دی ۱۴۰۰
    دوره دوم: بهمن و اسفند ۱۴۰۰
کارگاه توسعه چابک نرم‌افزار
Agile Software Development Workshop

در این کارگاه دو روزه مبانی توسعه چابک نرم‌افزار مورد بحث قرار می‌گیرد. با توجه به این که بعضاً برداشت‌های سطحی از فرایندهای چابک باعث می‌شود به‌کارگیری این روش‌ها در تیم‌ها اثربخشی مطلوب نداشته باشد، در این کارگاه سعی می‌شود در حین مرور پرکتیس‌های توسعه چابک به شکلی عمیق‌تر به ارزش‌ها و اصول چابکی هم پرداخته شود. علاوه بر این، اهمیت پرکتیس‌های فنی و نقش آنها در چابک نگه‌داشتن کد نرم‌افزار که برای موفقیت روش‌های چابک حیاتی است برجسته می‌شود، هر چند پرداختن عمیق به این پرکتیس‌ها در حوزه این کارگاه نیست و در موضوع بوت‌کمپ برنامه‌نویسی حرفه‌ای است. اجرای این کارگاه در گروه‌های مخاطب ۱۰ تا ۳۰ نفره انجام می‌شود و در طی کارگاه فراگیران در قالب تیم‌های حداکثر پنج نفره به تناوب در حل مسائل به فعالیت و تبادل نظر می‌پردازند.

این کارگاه با محتوای بسط داده شده می‌تواند در قالب دوره‌های آموزشی با مدتی طولانی‌تر نیز اجرا گردد.

عناوین مورد بحث در کارگاه
  • پیش‌زمینه و پایه‌های توسعه چابک
    تکامل روش‌های تولید نرم‌افزار، جایگاه برنامه‌ریزی در توسعه نرم‌افزار، ارزش‌ها و اصول چابک
  • مروری بر فرایند اسکرام
    نقش‌ها، رویدادها و فرآورده‌های اسکرام
  • تولید نرم‌افزار ارزشمند
    ترسیم چشم‌انداز، برخورد با نایقینی‌ها، مدیریت محصول داده-محور
  • برنامه‌ریزی چابک
    داستان‌های کاربر، اولویت‌بندی و شکست داستان‌ها، تخمین و زمان‌بندی
  • بازخورد داخلی و خارجی
    جلسات ایستاده، نمایش محصول، جلسات بازاندیشی
  • پرکتیس‌های مهندسی
    طراحی تکاملی، آزمون خودکار، بازآرایی کد، یکپارچه‌سازی مستمر
  • مدیریت چابک
    مدیریت ریسک، عوامل انسانی
  • دگرگونی به روش‌های چابک
    ارزش‌های چابک، فرهنگ سازمان، موانع دگرگونی موفق
Agile Workshop
برگزاری کارگاه توسعه چابک برای شرکت اپسان

 

کارگاه‌های برگزار شده
  • MCI همراه اول
    ۱۴۰۰
  • Arvan ابر آروان
    ۱۳۹۸
  • Appson اپسان (فناپ+)
    ۱۳۹۷
  • Cafe Bazaar کافه بازار
    ۱۳۹۴ و ۱۳۹۶
  • PDN پایانه‌های داده‌ای نوین
    ۱۳۹۴
دوره آموزشی معماری نرم‌افزار
Software Architecture Course

معماری نرم‌افزار مجموعه تصمیم‌های طراحی مهمی است که تغییر آنها هزینه‌ی زیادی بر فرایند توسعه نرم‌افزار تحمیل می‌کند. به خاطر این اهمیت پرداختن نظام‌مند به این فراورده توسعه نرم‌افزار مورد تأکید بسیاری از روش‌های نوین توسعه نرم‌افزار است. دوره آموزشی معماری نرم‌افزار علاوه بر پرداختن به کلیات معماری نرم‌افزار بر برخی سبک‌های معماری تمرکز می‌کند. در مقدمه درس مفاهیمی بنیادین مانند تعریف معماری نرم‌افزار و تصمیم‌های سطح معماری، رهیافت‌ها، سبک‌ها و الگوهای معماری مورد بحث قرار می‌گیرند. نگاه ما به معماری نرم‌افزار به عنوان پاسخ‌دهنده اصلی به نیازمندی‌های کیفیت نرم‌افزار است در نتیجه در مروری کلی بر کیفیت نرم‌افزار، جنبه‌های مختلف آن و توصیف بدون ابهام نیازمندی‌های کیفیت خواهیم داشت. مستندسازی معماری با تأکید بر مستندسازی کارآمد تصمیم‌های معماری جزء مهم دیگری از مباحث را به خود اختصاص می‌دهد.

پس از مرور کلیات معماری، به بررسی دقیق‌تر سبک‌های معماری مهم (که با توجه به مخاطب قابل تعیین هستند) پرداخته می‌شود. این سبک‌ها می‌تواند شامل سبک‌های سنتی‌تر معماری لایه‌ای باشد یا به سمت سبک‌های توزیع‌شده مانند مایکروسرویس‌ها سوق پیدا کند. بررسی انتخاب‌های مختلف طراحی در هر سبک و تأثیر آن بر جنبه‌های مختلف کیفیت جزء مباحث این بخش است.

با توجه به توسعه به‌کارگیری روش‌های چابک، بررسی جایگاه معماری نرم‌افزار در روش‌های چابک بخش دیگری دوره معماری نرم‌افزار است. در این راستا، در سال‌های اخیر مقوله‌ای به نام معماری تکاملی مورد توجه قرار گرفته است که بر تغییرات افزایشی هدایت‌شده در میان ابعاد متعدد کیفیت تأکید دارد. در این دوره سعی می‌شود این رهیافت طی مثال‌های مختلف به طور عمیق مورد بررسی قرار گیرد.

عناوین مورد بحث در کارگاه
  • مفهوم معماری نرم‌افزار
    تکامل روش‌های تولید نرم‌افزار، جایگاه برنامه‌ریزی در توسعه نرم‌افزار، ارزش‌ها و اصول چابک
  • مروری بر فرایند اسکرام
    تعریف معماری، اهمیت معماری، جایگاه معماری در چرخه حیات نرم‌افزار
  • پایه‌های معماری نرم‌افزار
    تصمیم‌های معماری، سبک‌های معماری، دغدغه‌های معماری
  • کیفیت نرم‌افزار
    جنبه‌های کیفیت نرم‌افزار، توصیف بدون ابهام نیازمندی‌های کیفیت
  • دستیابی به کیفیت نرم‌افزار
    تاکتیک‌های معماری، الگوهای معماری، فرایند طراحی معماری
  • مستندسازی معماری
    مستندسازی مبتنی بر نماها، مستندسازی تصمیم‌های معماری
  • معماری تکاملی
    جایگاه معماری در روش‌های چابک، توابع سازواری، ارزیابی خودکار معماری
  • سبک‌های معماری
    معماری‌های متمرکز در برابر توزیع‌شده، معماری‌های رویداد-محور، سبک‌های لایه‌ای، مایکروسرویس، …
 
Software Architecture
 
دوره‌های برگزار شده
  • MCI همراه اول
    دوره ۲۴ ساعته
    ۱۳۹۹
خدمات تخصصی
آزمایشگاه تصدیق کیفیت نرم‌افزار

بر اساس تفاهم‌نامه منعقد شده میان دانشگاه تهران و سازمان فناوری اطلاعات ایران، آزمایشگاه تصدیق کیفیت نرم‌افزار (تکنا) در زمستان سال ۱۳۹۰ همزمان با ارایه اولین خروجی علمی و ارائه گواهی کیفیت به سامانه هوشمند ورود و خروج کالا به کشور افتتاح گردید تاسیس شد. این آزمایشگاه از سوی سازمان فناوری اطلاعات ایران مرجع ارزیابی کیفیت نرم‌افزار و صدور گواهی‌نامه‌های کیفیت نرم‌افزار شناخته می‌شود. دو دسته هدف عمده آزمایشگاه عبارتند از:

  • اهداف پژوهشی شامل بررسی استانداردها، مدل های کیفیت و تجربیات موفق جهانی در ارزیابی کیفیت نرم افزار
  • اهداف عملیاتی شامل ارزیابی کیفیت نرم‌افزارها، پیشنهاد استانداردهای بومی و جامع در زمینه کیفیت نرم‌افزار و تدوین مدل کسب و کار و سازمانی مراکز تصدیق کیفیت نرم‌افزار در کشور
 
APAM
نمونه‌ای از نتایج ارزیابی کارایی و دسترس‌پذیری در یکی از پروژه‌های انجام شده
خدمات تخصصی قابل ارائه
علاوه بر خدمات آموزشی در حوزه‌های مرتبط با کیفیت نرم‌افزار و معماری نرم‌افزار، خدمات تخصصی قابل ارائه در آزمایشگاه را می‌توان در موارد زیر دسته‌بندی نمود:
  • ارزیابی و تحلیل کیفیت در جنبه‌های کارایی، مقیاس‌پذیری و دسترس‌پذیری به همراه صدور گواهی کیفیت
  • ارائه خدمات مشاوره در موارد زیر:
    • ایجاد آزمایشگاه‌های ارزیابی کیفیت
    • تدوین پیوست کیفیت قراردادهای توسعه نرم‌افزار
    • ایجاد یا ارتقاء فرآیندهای توسعه نرم‌افزار با تمرکز روی کیفیت نرم‌افزار در چرخه حیات توسعه
    • انتخاب ابزارهای ارزیابی کیفیت شامل ابزارهای مدیریت آزمون، خودکارسازی آزمون‌های کارکردی و غیرکارکردی، ابزارهای تحلیل ایستا
  • ارائه خدمات زیر در حوزه معماری نرم‌افزار به عنوان مهم‌ترین رکن تأمین کیفیت نرم‌افزار:
    • شناسایی و توصیف دقیق نیازمندی‌های کیفیت به عنوان پیش‌ران‌های معماری
    • ارزیابی معماری نرم‌افزار و مقایسه معماری-محور محصولات نرم‌افزاری
گزیده سوابق
برخی از خدمات در قالب شرکت مکسا ارائه شده که یک اسپین-آف آزمایشگاه تصدیق کیفیت نرم‌افزار بوده و اکنون بخشی از شرکت داتین است
شرکت‌های مرتبط
 
Radin
شرکت رادین بورس

به دنبال موفقیت در طراحی معماری هسته معاملات بورس که طی یک طرح پژوهشی کاربردی در آزمایشگاه معماری نرم‌افزار دانشگاه تهران به انجام رسید، شرکت توسعه فناوری‌های پیشرفته رادین بورس در سال ۱۳۹۶ طی تفاهمی بین دانشگاه تهران و سازمان بورس و اوراق بهادار با چشم‌انداز ایجاد فضایی برای رشد و به بار نشستن ایده‌های نوین در حوزه فناوری‌های مالی بنیان‌گذاشته و در سال ۱۳۹۹ با مشارکت شرکت توسعه و سرمایه‌گذاری دانشگاه تهران و شرکت مدیریت فناوری بورس تهران به ثبت رسید. به عنوان نخستین گام در نقش‌آفرینی شرکت رادین بورس، ماموریت طراحی و توسعه پلتفرم ملی معاملات بورس نقد که قلب بازار سرمایه کشور به حساب می‌آید بر عهده این شرکت گذاشته شد. توسعه فاز اول این سامانه به عنوان هسته معاملات بازار نقد در بورس‌های تهران و فرابورس به پایان رسیده و با اتمام آزمون‌های تخصصی همه‌جانبه آماده استقرار است. طراحی این سامانه طبق پیشرفته‌ترین الگوهای معماری سامانه‌های با ظرفیت بسیار بالا صورت گرفته است و نتایج به‌دست‌آمده در عمل، کارآیی آن را در ردیف سامانه‌های تراز اول دنیا قرار می‌دهد.

ظرفیت‌های همکاری

با توجه به مشارکت دانشگاه در تأسیس این شرکت و چالش‌های فنی سطح بالا در معماری سامانه هسته معاملات، ظرفیت‌های زیر در همکاری با این شرکت وجود دارد:

شرکت اطلاعات مدیریت همکاران سیستم

شرکت اطلاعات مدیریت همکاران سیستم، یکی از زیرمجموعه‌های گروه همکاران سیستم به عنوان بزرگترین شرکت نرم‌افزاری بخش خصوصی کشور است که مسئولیت تولید کلیه نرم‌افزارهای همکاران سیستم را برعهده دارد. این شرکت برای حفظ جایگاه ممتاز همکاران سیستم نیازمند به‌روزآوری مستمر فناوری‌ها، فرایندها و ابزارهای توسعه نرم‌افزار است. در این راستا همکاری من با این شرکت در محورهای زیر در حال انجام است:

  • عضویت در هیئت مدیره شرکت اطلاعات مدیریت همکاران سیستم از سال ۱۳۹۶ تا کنون
  • مشاور مهاجرت فرایند توسعه نرم‌افزار شرکت به الگوی چابک
  • مشاور طراحی معماری جدید راه‌حل‌های نرم‌افزاری شرکت مبتنی بر مایکروسرویس و طراحی دامنه-محور
System Group
اطلاعات مدیریت همکاران سیستم