
یکی از چالشها در مهندسی نرمافزار و البته در هر بحثی رسم اشکال است؛ نمودار یا دیاگرام و چارت و فلوچارت یا نمودار گردش کار و... رسم اینها نیاز به محیط گرافیکی دارد و انتقال آنها نیز به سادگی متن نیست. یک ابتکار جالب که مدتی است دارد جایگزین رسم دیاگرام میشود، «دیاگرام در قالب کد» است. در این حالت کاربر فقط کافیست تعدادی دستور یا تابع را یاد بگیرد تا بتواند هر نموداری که خواست رسم کند. از آنجا که فعلاً هیچ سازمان بینالمللی این مفهوم را استاندارد نکرده است، سایتهای مختلف، روشهای خاص خود را برای این کار معرفی کردهاند؛ برخی از آنها عبارتند از: PlantUML و Mermain و ZenUML و... از بین موارد بالا به نظر میرسد Mermaid روان&z...
ادامه مطلب
بخش Cypersecurity در سایت W3Schools حاوی مطالب جالبی است که میتواند به عنوان منبعی برای تدریس استفاده شود: https://www.w3schools.com/cybersecurity/index.php البته که غنای آن به جزوه امنیت خود ما که به تازگی منتشرش کردهام نمیرسد: دانلود جزوه امنیت اما یکی از مباحث جالب آن مبحث Social Engineering است. اکثر سوء استفادههای امنیتی (و حتی غیرامنیتی) مبتنی بر اصول مهندسی اجتماعی است. اصولی مانند آنچه در ادامه آمده: اکثر افراد در مواجهه با دیگران (به ویژه غریبهها) با ادب رفتار میکنند. حرفهایها میخواهند که خود را آگاه و هوشمند جلوه دهند. اگر کسی از شما تعریف کند، معمولاً تمایل دارید که بیشتر صحبت کنید و چیزهای مخفی و سرّی را بیشتر لو ب...
ادامه مطلب
دانشجویانی که با بنده درس مهندسی نرمافزار داشته باشند، یکی از کارهایی که باید در طول دوره انجام دهند، انتخاب یک «محیط عملیاتی» و تحلیل آن محیط است. یعنی طی کردن روالی که ما در اصطلاح به آن روال Fact-Finding (کشف حقایق) میگوییم. این روال، روالی است که هر تولیدکننده نرمافزاری باید در تولید هر نرمافزاری طی کند؛ همانطور که ما خودمان در آفتابگردان برای تولید هر نرمافزاری این روال را طی کردهایم و خواهیم کرد. با توجه به اینکه دانشجویان ممکن است ابهاماتی در تهیه گزارش نهایی داشته باشند، توضیحاتی در این زمینه میدهم: اگر شما این درس را دارید، به عنوان پروژهی این درس، باید روال زیر را طی کنید: ۱- بررسی قلمروهای مشابه (Similar Domains) این یک ا...
ادامه مطلب
یک سری موضوع اینجا مطرح میکنم که برای دانشجویان کارشناسی، ارشد و دکترای نرمافزار به عنوان یک موضوع برای ارائه در دروسی مانند «مهندسی نرمافزار»، «مهندسی نرمافزار پیشرفته»، «آزمون نرمافزار» و «معماری نرمافزار» و دروس مشابه مفید خواهد بود. موضوع برای تحقیق و ارائه در درس مهندسی نرمافزار و معماری نرمافزار: ۱- نرمافزار اتکاپذیر چیست؟ ۲- مبحث مدیریت پروژههای نرمافزاری میتوان یک پروژهی نمونه را با MS Project یا دیگر ابزارهای مدیریت پروژه پیادهسازی کرد. ۳- مبحث پشتیبانی نرمافزارها ۴- ارائه یکی از مدلها و متودولوژیهای Agile / Lean / DevOps / Scrum / XP ...
ادامه مطلب