
یکی از چالشها در مهندسی نرمافزار و البته در هر بحثی رسم اشکال است؛ نمودار یا دیاگرام و چارت و فلوچارت یا نمودار گردش کار و... رسم اینها نیاز به محیط گرافیکی دارد و انتقال آنها نیز به سادگی متن نیست. یک ابتکار جالب که مدتی است دارد جایگزین رسم دیاگرام میشود، «دیاگرام در قالب کد» است. در این حالت کاربر فقط کافیست تعدادی دستور یا تابع را یاد بگیرد تا بتواند هر نموداری که خواست رسم کند. از آنجا که فعلاً هیچ سازمان بینالمللی این مفهوم را استاندارد نکرده است، سایتهای مختلف، روشهای خاص خود را برای این کار معرفی کردهاند؛ برخی از آنها عبارتند از: PlantUML و Mermain و ZenUML و... از بین موارد بالا به نظر میرسد Mermaid روان&z...
ادامه مطلب
پیش از این در مطالبی از سایت درباره آیاتی از قرآن که میتوان آنها را با دیدگاه رشته کامپیوتر تفسیر کرد، صحبت کردهام: تشریح مبحث شیئ گرایی در برنامه نویسی با استفاده از قرآن! شراکت با دیگران در شغل، بلی یا خیر؟ (دیدگاه قرآن در مورد شراکت چیست؟) نگاه به طبیعت ؛ یکی از راههای یافتن موضوع پایان نامه ارشد و رساله دکترا مقاومت کاربران ؛ یکی از ریسکها در فرایند تولید نرمافزار (+ دیدگاه قرآنی در این زمینه) دیدگاه قرآن در مورد پشتیبانی از محصولات چیست؟ (نکاتی در مورد پشتیبانی پروژههای نرمافزاری) آیا یک روز تخت ملکه سبا در یک چشم به هم زدن منتقل خواهد شد؟ در مورد مقاومت کاربران و شراکت در تولید و پشتیبانی نرمافزار در دوره «طراحی پورتال با PHP» که اخیراً برگزار شد صحبت کردهام که ویدئوی آن بخش...
ادامه مطلب
در سال ۱۳۹۵ در مطلب «ایده برای محیطهای آموزشی: بوردها و پوسترهای آموزشی» دو تا از بوردهایی که برای یکی از دانشگاهها ایجاد کرده بودم را به نمایش گذاشتم: بورد آموزش سخت افزار بورد آموزش کابلهای شبکه حالا برای مجتمع فنی تهران (نمایندگی ساوه) هم یک تابلو آموزش سختافزار برای دیوار یکی از سایتها ایجاد کردم که زیبا شد: برای مشاهده تصویر بزرگتر روی آن کلیک کنید: و یک شبیهساز پیکسل هم ساختیم و در کلاس قرار دادیم که دانشپذیرها رنگ دلخواه خود را با آن تولید کنند: ده سال پیش، در مطلب «یک راه ساده برای نمایش Pixel و رنگهای RGB روی مانیتور به دانشجویان بدون میکروسکوپ» هم استفاده از میکروسکوپ ب...
ادامه مطلب
یکی از چالشها در تدریس درس «سخت افزار» در رشته کامپیوتر این است که نمیتوان یک کیس را در اختیار دانشجویان قرار داد که باز کنند و ببندند و تمرین کنند! (یادم هست یک کیس را با کلی زحمت تهیه کردم و بردم در اختیار دانشجوها قرار دادم، همان روز اول زدند پایههای فن CPU را شکستند!)بنابرای'>براین شبیهسازهایی که اجازه میدهند یک کامپیوتر را در اصطلاح اسمبل (سرِ هم) کنید برای این کار خیلی مفید هستند.من خودم در کلاسها از TestOut A+ Core Hardware استفاده میکردم که یک شبیهساز جالب بود اما حقیقت این است که آن شبیهساز خیلی قدیمی شده و دیگر هم آپدیت نکردند.حالا اگر دنبال یک شبیهسازی ساخت کامپیوتر میگردید که بهروز و گرافیکی و شبیه بازی باشد، PC Building Simulator همان چیزی است که دنبالش هستید:یک ویدئو از محیط جا...
ادامه مطلب
چند روز پیش یکی از همشهریهای بسیار فعال برای , صحبت در مورد طراحی یک نرمافزار ثبت شجرهنامه آمده بود. او روی لپتاپش نرمافزاری نشان داد و اینکه شجرهنامه خودشان که سید بودند را تا امامان و حتی بالاتر...
ادامه مطلب
انصافاً باید VLC را یکی از موفقترین نرمافزارهای متنباز (Open-Source) و رایگان در دنیا دانست. همیشه و زودتر از بقیه حرفهای تازهای برای گفتن داشته. داشتم دنبال روشهای Video Streaming (پخش زنده ویدئو در شبکه) میگشتم که متوجه شدم VLC این قابلیت جالب را در بطن خود دارد و البته قابلیتهای جالب دیگر...
ادامه مطلب
اگر یادتان باشد، در سال ۹۲ یک مسابقه داشتیم با عنوان «وُتیره»: مسابقه وُتیره در آن مسابقهی جالب که نتایج جالبی هم داشت، خواسته بودیم نرمافزاری طراحی کنید که مشخص کند جمع چه سورههایی از قرآن ۱۰۰ آیه میشود تا بتوان آن سورهها را در نماز وُتیره خواند. (وُتیره طرح ابتکاری ما برای حفظ قرآن بود: وُتیر...
ادامه مطلب
برای کودکان هیچ چیز به اندازه بازی با میکروفون سرگرمکننده نیست! آنها عاشق این هستند که صدای خودشان را ضبط و برای خودشان پخش کنید! چقدر خوب خواهد بود که از این علاقه آنها، به بهترین شکل برای پرورش استعداد آنها و همینطور ثبت یک خاطره ماندگار برای آیندهاش استفاده کنیم. اگر یادتان باشد، در ابتدا سال ۹۴ در مطلب «داستانسرایی، از مؤثرترین سرگرمیها برای پرورش خلاقیت کودک (معرفی اپلیکیشن Imagistory)» گفته بودم که: یکی از چیزهایی که بیشتر از ۲۰ سال است که آنها را نگه داشتهام، کتاب رنگآمیزیهایی است که در حدود ۸ سالگی، ع...
ادامه مطلب
در درس معماری نرمافزار، که مرجع آن کتاب Software Architecture in Practice است، صفات کیفی (Quality Attributes) یک نرمافزار بحث میشود و سپس برای اعمال هر کدام از آنها در نرمافزار، یک سری تاکتیک (Tatics) و برای هر تاکتیک یک سری تکنیک یا مکانیزم ارائه میشود. هر چند صفات کیفی زیادی میتوان برای نرمافزار تصور کرد، اما مهمترین صفات کیفی یک نرمافزار را میتوان این موارد دانست: Availability Modifiability Performance Security Testability Usability Integrity Efficiency Reliability Reusability Maintainability Expandability Interoperability Survivability Correctness Verifiability Flexibility Porta...
ادامه مطلب
اگر همراه ما بوده باشید، ترم گذشته فایل ویدئویی یکی از ارائههایم در کلاسهای دکترا را منتشر کردم: «برنامه نویسی جنبه گرا» (AOP) و «برنامه نویسی نظارت گرا» (MOP) چیست؟ (سمینار مهندس نیرومند در این زمینه) پایاننامه ارشد من هم که برای علاقهمندان به پژوهش و مطالعات تحقیقاتی اخیراً منتشر شد: پایاننامه ارشد مهندس نیرومند + مقاله: ارائه راهکاری عملی جهت کاهش خستگی ذهنی ناشی از شنیدن گفتار ماشینی و اما، یکی از ارائههای من در این ترم در درس «معماری نرمافزار» بود که در این ارائه یک مقاله با عنوان: Architecture-based Software Reliability Modelingمدلسازی قابلیت اعتماد نرمافزار بر مبنای معماری نرمافزار که توسط...
ادامه مطلب
در درس معماری نرمافزار، که مرجع آن کتاب Software Architecture in Practice است، صفات کیفی (Quality Attributes) یک نرمافزار بحث میشود و سپس برای اعمال هر کدام از آنها در نرمافزار، یک سری تاکتیک (Tatics) و برای هر تاکتیک یک سری تکنیک یا مکانیزم ارائه میشود. هر چند صفات کیفی زیادی میتوان برای نرمافزار تصور کرد، اما مهمترین صفات کیفی یک نرمافزار را میتوان این موارد دانست: Efficiency Reliability Usability Maintainability Expandability Interoperability Reusability Integrity Survivability Correctness Verifiability Flexibility Portability که البته در این کتاب فقط چند خصیصه کیفی بررسی میشود که آن خصیصهها و تاتیکها و ...
ادامه مطلب
دانشجویانی که با بنده درس مهندسی نرمافزار داشته باشند، یکی از کارهایی که باید در طول دوره انجام دهند، انتخاب یک «محیط عملیاتی» و تحلیل آن محیط است. یعنی طی کردن روالی که ما در اصطلاح به آن روال Fact-Finding (کشف حقایق) میگوییم. این روال، روالی است که هر تولیدکننده نرمافزاری باید در تولید هر نرمافزاری طی کند؛ همانطور که ما خودمان در آفتابگردان برای تولید هر نرمافزاری این روال را طی کردهایم و خواهیم کرد. با توجه به اینکه دانشجویان ممکن است ابهاماتی در تهیه گزارش نهایی داشته باشند، توضیحاتی در این زمینه میدهم: اگر شما این درس را دارید، به عنوان پروژهی این درس، باید روال زیر را طی کنید: ۱- بررسی قلمروهای مشابه (Similar Domains) این یک ا...
ادامه مطلب
یک سری موضوع اینجا مطرح میکنم که برای دانشجویان کارشناسی، ارشد و دکترای نرمافزار به عنوان یک موضوع برای ارائه در دروسی مانند «مهندسی نرمافزار»، «مهندسی نرمافزار پیشرفته»، «آزمون نرمافزار» و «معماری نرمافزار» و دروس مشابه مفید خواهد بود. موضوع برای تحقیق و ارائه در درس مهندسی نرمافزار و معماری نرمافزار: ۱- نرمافزار اتکاپذیر چیست؟ ۲- مبحث مدیریت پروژههای نرمافزاری میتوان یک پروژهی نمونه را با MS Project یا دیگر ابزارهای مدیریت پروژه پیادهسازی کرد. ۳- مبحث پشتیبانی نرمافزارها ۴- ارائه یکی از مدلها و متودولوژیهای Agile / Lean / DevOps / Scrum / XP ...
ادامه مطلب
یکی از مشتریان در پیغام خصوصی برای بنده نوشتهاند: هر چند مشتریانی که از ما راضی (و بسیار راضی) هستند، آنقدر هست که ما تا این لحظه به پشتوانه حمایتهای گرم آنها (که در این مطلب به برخی از تمجیدهای آنها اشاره کردهایم) به کارهایمان با انرژی تمام ادامه دادهایم، اما به هر حال، ما هم مانند هر فروشندهی دیگری، ممکن است تعدادی مشتری داشته باشیم که از برخی رفتارهای ما به خصوص در بحث پشتیبانی، گلایه داشته باشند. بد نیست در این زمینه توضیحاتی بدهم که به درد تولیدکنندگان نرمافزار هم میخورد. (چون میدانم که بسیاری از دوستانی که مطالب را دنبال میکنند خودشان تولیدکننده نرمافزار هستند) چند نکته در مورد پشتیبانی نرمافزارها: ۱- ...
ادامه مطلب
کسانی که درس «مهندسی نرمافزار» را پاس کردهاند (که جزوه ما در دانشگاه، اینجا هست و پیشنهاد میکنم حتی اگر دانشجوی رشته کامپیوتر نیستید، ۵۰ صفحه اول را به خاطر نکات بسیار ارزشمندی که دارد مرور کنید) میدانند که قرایند تولید نرمافزار، ریسکهای بسیاری دارد که برخی از آنها در ذیل آمده و لیست طولانیای از آنها را میتوانید اینجا ببینید: - سيستم، نيازهای کاربر را فراهم نسازد.- هزینهی به کار گرفته شده بيش از پيشبينی باشد.- زمانِ به کار گرفته شده بيش از پيشبينی باشد.- تناقض در نيازهای کاربر وجود داشته باشد.- استفاده از فناوریهای جدید- مقاومت کاربران همانطور که میبینید یکی از ریسکهای جالب، &laq...
ادامه مطلب
آفیس ۲۰۱۶ در حالی منتشر شد که یکی از پیشبینیهای من در مورد تغییر منوهای نرمافزار به حالت ابتکاری نرمافزار SublimeText درست از آب در آمد و شما امکان یافتن گزینههای منوها با جستجوی Camel-Case Searching را در تمام مجموعهی آفیس دارید! کسانی که با SublimeText کار کردهاند (که اینجا در مورد آن صحبت کردهایم و یک دوره ویدئویی هم از آن ارائه کردهایم) گذشته از ابتکارات بسیار زیادی که این نرمافزار داشته و هر کدام میتواند یک الگو برای تولیدکنندگان نرمافزار باشد، احتمالاً بزرگترین ابتکار این نرمافزار را در خط فرمان آن میدانند. دنبال هر گزینهای که میگردید، فقط کافیست کلیدهای ctrl+shift+p را بزنید و ...
ادامه مطلب
آفیس ۲۰۱۶ در حالی منتشر شد که یکی از پیشبینیهای من در مورد تغییر منوهای نرمافزار به حالت ابتکاری نرمافزار SublimeText درست از آب در آمد و شما امکان یافتن گزینههای منوها با جستجوی Camel-Case Searching را در تمام مجموعهی آفیس دارید! کسانی که با SublimeText کار کردهاند (که اینجا در مورد آن صحبت کردهایم و یک دوره ویدئویی هم از آن ارائه کردهایم) گذشته از ابتکارات بسیار زیادی که این نرمافزار داشته و هر کدام میتواند یک الگو برای تولیدکنندگان نرمافزار باشد، احتمالاً بزرگترین ابتکار این نرمافزار را در خط فرمان آن میدانند. دنبال هر گزینهای که میگردید، فقط کافیست کلیدهای ctrl+shift+p را بزنید و ...
ادامه مطلب
آفیس ۲۰۱۶ در حالی منتشر شد که یکی از پیشبینیهای من در مورد تغییر منوهای نرمافزار به حالت ابتکاری نرمافزار SublimeText درست از آب در آمد و شما امکان یافتن گزینههای منوها با جستجوی Camel-Case Searching را در تمام مجموعهی آفیس دارید! کسانی که با SublimeText کار کردهاند (که اینجا در مورد آن صحبت کردهایم و یک دوره ویدئویی هم از آن ارائه کردهایم) گذشته از ابتکارات بسیار زیادی که این نرمافزار داشته و هر کدام میتواند یک الگو برای تولیدکنندگان نرمافزار باشد، احتمالاً بزرگترین ابتکار این نرمافزار را در خط فرمان آن میدانند. دنبال هر گزینهای که میگردید، فقط کافیست کلیدهای ctrl+shift+p را بزنید و ...
ادامه مطلب
آفیس ۲۰۱۶ در حالی منتشر شد که یکی از پیشبینیهای من در مورد تغییر منوهای نرمافزار به حالت ابتکاری نرمافزار SublimeText درست از آب در آمد و شما امکان یافتن گزینههای منوها با جستجوی Camel-Case Searching را در تمام مجموعهی آفیس دارید! کسانی که با SublimeText کار کردهاند (که اینجا در مورد آن صحبت کردهایم و یک دوره ویدئویی هم از آن ارائه کردهایم) گذشته از ابتکارات بسیار زیادی که این نرمافزار داشته و هر کدام میتواند یک الگو برای تولیدکنندگان نرمافزار باشد، احتمالاً بزرگترین ابتکار این نرمافزار را در خط فرمان آن میدانند. دنبال هر گزینهای که میگردید، فقط کافیست کلیدهای ctrl+shift+p را بزنید و ...
ادامه مطلب
آفیس ۲۰۱۶ در حالی منتشر شد که یکی از پیشبینیهای من در مورد تغییر منوهای نرمافزار به حالت ابتکاری نرمافزار SublimeText درست از آب در آمد و شما امکان یافتن گزینههای منوها با جستجوی Camel-Case Searching را در تمام مجموعهی آفیس دارید! کسانی که با SublimeText کار کردهاند (که اینجا در مورد آن صحبت کردهایم و یک دوره ویدئویی هم از آن ارائه کردهایم) گذشته از ابتکارات بسیار زیادی که این نرمافزار داشته و هر کدام میتواند یک الگو برای تولیدکنندگان نرمافزار باشد، احتمالاً بزرگترین ابتکار این نرمافزار را در خط فرمان آن میدانند. دنبال هر گزینهای که میگردید، فقط کافیست کلیدهای ctrl+shift+p را بزنید و ...
ادامه مطلب