رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'مهندسی'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • طراحی و توسعه وب
    • برنامه نویسی در PHP
    • برنامه نویسی با Node.JS
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
    • مباحث و منابع آموزشي
    • سوالات و مشکلات
  • بانک‌های اطلاعاتی
    • پایگاه داده MySQL
    • پایگاه داده PostgreSQL
    • پایگاه داده SQLite
    • پایگاه داده MongoDB
    • پایگاه داده SQL Server
    • دیگر پایگاه‌های داده
  • برنامه نویسی تحت محصولات اپل
  • برنامه نویسی تحت محصولات مایکروسافت
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
  • درخواست انجام پروژه (ویژه)
  • سوالات و مباحث عامیانه
  • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • پلتفرم‌های توسعه
  • مجوز‌های نرم‌افزاری
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • زبان‌ها و ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


درباره من


شماره تلفن همراه


شناسه گیت‌هاب


شناسه لینکدین


شناسه پیام رسان


شهر


آدرس پستی

6 نتیجه پیدا شد

  1. کامبیز اسدزاده

    سلام و درود، این پست صرفاً جنبه‌ی مشاوره و به اشتراک گذاری تجربیات را دارد (بنابراین نحویِ بیان آن عامیانه است). من @کامبیز اسدزاده : Kambiz Asadzadeh : علاوه بر برنامه‌نویسی و علاقه‌ی شدیدی که دنیای تکنولوژی و مخصوصاً مهندسی کامپیوتر و به ویژه برنامه‌نویسی در حوزه‌ی استارت‌آپی دارم، سال‌هاست که به عنوان منتور فنیِ استارت‌آپ‌ها در رویداد‌ها، جلسات و دوره‌همی‌های بسیاری شرکت و در محور رُشد فردی‌ فنی فعالیت به استارت‌آپ‌های بسیاری کمک کرده ام. با توجه به منتورینگ انواع مختلف استارت‌آپ‌ها در حوزه‌های IT مشکلات، سوالات و موارد بسیاری رو شناسایی و برای آن‌ها راه‌کار‌هایی رو ارائه داده‌ام که به نوبه‌ی خودم برخی از آن‌ها را در اختیار شما قرار خواهم داد. بهتره قبل از هر چیز تعریفی از منتور (Mentor) و منتورینگ داشته باشیم! بنابراین مقاله‌ی زیر را حتماً مطالعه کنید. حال با توجه به تجربیات مربوط به این حوزه، لازم دونستم بخشی از این راه‌کار‌ها رو در اختیار کسانی قرار بدم که مُدام در ذهن خود دنبال پاسخی برای چگونکی‌های رسیدن به یک مهارت مطلوب فردی هستن. مدتی هست من در گروه‌ها و شبکه‌های اجتماعی بسیاری مشاهده می‌کنم که افراد تازه کار به دنبال این هستند که چگونه و به چه شیوه‌ای می‌تونن برنامه‌نویسی حرفه‌ای و مفید را یاد بگیرند. پاسخ این سوال پیچیده نیست، اما شاید خصوصیاتی را که باید بر روی آن‌ها تمرکز داشته باشید رو به خوبی نمی‌شناسید! من به شما کمک می‌کنم تا در این مسیر مسائلی که واقعاً باید به آن‌ها دقت کنید رو شناخته و اون‌ها رو در نظر بگیرید. خصوصیات یک برنامه‌نویس حرفه‌ای چیست؟ علاقه و استعداد در حوزه‌ی برنامه‌نویسی (داشتن اراده‌ی قوی). سِمِج و کُنجکاو بودن. شکست ناپذیر (خستگی ناپذیر). مخالف هر گونه بهانه و تنبلی - به کار گیری روش‌های صحیح حل مسائل و رسیدن به پاسخ سوالات. رقابت با هیچکس به جز دیروز خودِت! (رقیبت باید خودت باشی نه شخصِ خاصی) از دیگران الگو بگیر اما با کسی به جز خودت رقابت نکن. کم توقع از لحاظ کمک گرفتن از دیگران بر روی مسائل ساده باش (پر توقع از لحاظ رسیدن به پاسخ با تلاش‌های فردی باش). تعصب نداشتن بر یک حوزه یا زبان یا هر ابزاری (زبان‌های برنامه‌نویسی لوازم و ابزار‌های جعبه‌ابزار یک برنامه‌نویس هستند). هدف داشتن (هدف مفید - نه مُخرب). آینده نگر بودن (همیشه احتمالات رو در نظر بگیر و چشم بسته دنبال چیزی نباشید) و حرف هر کسی رو در بیان اول بدون تحقیق (سند) قبول نکن. حرف شنوی و استفاده از تجربیات دیگران بسیار خوب هست (اما باید مطمئن باشید که اون پیشنهاد صحیح هست نه غلط!) حالا ممکن پیشنهاد دهنده استاد دانشگاه باشه یا می‌تونه یکی از ما داخل شبکه‌های اجتماعی باشه! (بهتره دنبال منتور باشید). همیشه یک قدم از چیزی که هستید جولو تر باشید. حرفه‌ای باش! حرفه‌ای‌های برنامه‌نویسی رو با اخلاقِ خوبشون باید شناخت. عدم حسادت و غرور در آموزشِ آموخته‌ها و تجربیات یکی از بهترین نکات حرفه‌ای بودن است. من چطور می‌تونم یک برنامه‌نویس حرفه‌ای بشم؟ پاسخ، با توجه با خصوصیات بالا، یک برنامه‌نویس با تلاش مستمر و متکی به دانش و مستندات صحیح می‌تونه با مرور زمان مهارت خودش رو افزایش و تجربیات و سوابش و رزومش رو قوی کنه. به هیچ عنوان راه صد ساله را یک شبه نمی‌تونه بره! آیا دانشگاه در برنامه‌نویسِ مفید شدن مهم است؟ این سوال بسیار زیاد به گوش می‌خوره، اما حقیقت اینه که دانشگاه به عنوان یک ابزار ساخت و پیشرفت فردی بشما نمیاد! متاسفانه دانشگاه‌ها و دانشجویانی که با هدف التماس به اساتید و دیگر افراد به دنبال پاس کردن دروس دانشگاهی هستن هیچ شانسِ موفقیتی در رسیدن به یک حرفه‌ای شدن رو ندارن! نتیجه‌ی این شیوه از یادگیری و آموزش چیزی به جز فارغ‌التحصیل شدن همراه با یک کاغذ پاره نخواهد بود و هیچ جایی در بازار و دنیای واقعی نخواهد داشت. البته منظور از این صحبت‌ها این نیست که دانشگاه مفید نبوده و تاثیری در موفقیت نداره، اما حقیقت اینه که علم واقعیِ برنامه‌نویسی با توجه به نظام آموزشی و شرایطی که وجود داره به دست نمیاد. چطور می‌توانم به پاسخ سوالاتی که دارم برسم؟ خوشبختانه دنیای مُدرن امروزی زمینه‌ای برای برقراری ارتباط بین یکدیگر را به خوبی فراهم کرده، در صورتی که شما سعی خودتون رو کردین اما نتونستین مشکلی که با اون مواجه شدین رو حل کنید، جای نگرانی نداره! همه‌ی ما یک استاد مشترک داریم (اسمش گوگل Google) هست. شما می‌تونید با جستجو در این موتور جستجوگر به ۱۰۰٪ پاسخ‌های خود برسید. نکته: سعی کنید سوالات خودتون رو به زبان علمی بپرسید (انگلیسی) حتی اگه زبان شما دست‌ و پا شکسته باشه درصد موفقیت و رسیدن به پاسخ بهتر و سریعتر در این حالت بسیار زیاده. بنابراین شما می‌تونید پاسخ سوالات خودتون رو خیلی راحت با چند کلمه‌ی مشخص بپرسید مثل نمونه‌های زیر: Why should I learn C++ in 2019? How to declare an array in C++? How to declare a string in Java? Why do we need pure virtual function in C++? How do I create a class in Visual Studio 2017? How long will it take to learn Python? مطمئن باشید جستجو‌گر گوگل تحت هوش مصنوعی خودش بهترین و نزدیک‌ترین پاسخ‌ها رو نسبت به سوال شما پیشنهاد خواهد داد! این کار باعث می‌شه حتی شمایی که به سوال پُرسی مغرور هستید یا حتی شمایی که به خودتون زحمت نمی‌دین جستجو کنید به راحتی به پاسخ‌هایی برسید که قراره اون رو از کسی بپرسید! یک برنامه‌نویس حرفه‌ای رو چطور می‌شه شناخت؟ یک برنامه‌نویس حرفه‌ای ادعای تو خالی ندره! هر زمان که دیدین یک برنامه‌نویس از دانش خودش ادعا می‌کنه مطمئن باشید اونوطور که باید به تکامل نسبی در این علوم نرسیده! دنیای برنامه‌نویسی نامحدود و بسیار گسترده هست. برنامه‌نویس حرفه‌ای معمولاً دست به آموزش و یاری دیگران نیز داره، معمولاً از تجربیات حرفه‌ای خودشون در اختیار دیگران نیز قرار میدن. البته این بستگی به شرایط هم داره (ممکنه کسی به خاطر مشغله‌ی زندگی روزمره) نتونه اونطور که باید به دیگران کمک کنه (شاید هم اصلاً علاقه‌ای به یاد دادن نداره ) شاید هم اعتماد به نفس کافی نداشته باشه که همه‌ی این‌ها طبیعی است. اما Github و سایت‌های مرجع، مقالات، کتاب‌ها و نمونه‌کار‌ها نیز نمونه مثال خوبی برای پیدا کردن منابع به اشتراک‌گذاری چنین افرادی هست که می‌تونه در شناخت مهارت‌هاش ملاک باشه. صحبت‌های شخصی مثل استیو جابز رو در کنفرانس Stanford سال ۲۰۰۵ پیگیر باشید ببینید تنها رابطش با دانشگاه چی بوده. البته منظورم این نیست که خدایی نکرده دانشگاه رو بیخیال بشید خیر! چون خیلی‌ها خصوصیات بالارو ندارند و بهتره تشریف ببرن دانشگاه و همونجا شاید به کمک کاغذ پاره یه چیزی شدن رضایت به یک حقوق کارمندی هم دلیل بدی نیست...! اما اگه می‌خوای دنیا رو بسازی باید فراتز از چهارچوب محدودی که برات ساختن تفکر کنی! خلاصه‌ی این صحبت‌ها از نظر من = تلاش‌ مکرر در قالب (خودآموزی) هست باید به خودت، فرصت و نعمتی که خالقِت بهت داده اطمینان و اعتقاد داشته باشی). إنَّ لِكُلِّ شَيءٍ زَكاةً ، وزَكاةُ العِلمِ أن يُعَلِّمَهُ أهلَهُ. امام صادق عليه ‏السلام: هرچيزى ‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش. به فرموده رسول خدا (صلی الله علیه و آله): یا عالم باش یا در حال آموختن دانش و وقت خود را در بیهودگی و خوشگذرانی صرف نکن. نظرات دیگر... آنتونی جی. دی آنجلو: اشتیاق‌تان برای یادگیری را توسعه دهید، تا هرگز در راه رشد و تعالی متوقف نشوید. آلبرت اینشتین: تنها چیزی که در یادگیری من تداخل ایجاد می‌کند، تحصیلاتم است. وینستون چرچیل: من شخصا همیشه آماده یادگیری هستم، اگرچه دوست ندارم همیشه تحت تعلیم باشم. افلاطون: دانشی که همراه با اجبار کسب شود در ذهن نمی‌ماند. Education is the most powerful weapon which you can use to change the world. - Nelson Mandela I have no special talent. I am only passionately curious. - Albert Einstein A person who won't read has no advantage over one who can't read. - Mark Twain احتمال به‌روز رسانی و ادامه‌ی این پست وجود دارد...
  2. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت اول )

    مهندسی : عبارت است از تحلیل ، طراحی ، ساخت ، بررسی و مدیریت نهادهای فنی واجتماعی . سوالاتی که یک مهندس باید پاسخ بدهد: چه چیزی باید حل شود ؟ چه ویژگی هایی باید مورد بررسی قرار بگیرد ؟ نهاد چگونه بنا شده است ؟ از چه روشی برای کشف خطا استفاده شود ؟ پشتیبانی به چه صورتی انجام شود ؟ نرم افزار : عبارت است از محصولی شامل برنامه ، مستندات و داده‌ها نیاز های مشتری به سه دسته تقسیم می‌شوند: نیازهایی که اگر پاسخ داده نشوند رضایت‌مندی مشتری به صفر می‌رسد. نیاز هایی که کاربر مطرح می‌کند و سپس انجام می‌شود و باعث بالا رفتن رضایت‌مندی مشتری می‌شود . نیازهایی که اگر پاسخ داده نشوند مشکلی ایجاد نمی‌شود ولی اگر پاسخ داده شود رضایت‌مندی مشتری را به شدت افزایش می‌دهد . یک نرم افزار فرسوده نمی‌شود به این معنی است که در بازه‌های زمانی مشخص نرم‌افزار آپدیت دریافت کرده و مشکلات قبلی را حل و قابلیت‌های جدید اضافه می‌کند . انواع نرم افزارها: سیستمی زمان حقیقی تجاری TPS : Transaction Process System OAS : Office Automation System MIS : Management Information System EIS : Executive Information SystemKWS : Knowledge Work System مهندسی و علمی نرم‌افزار‌های تعبیه شده نرم‌افزارهای کامپیوتر شخصی مبتنی بر وب هوش مصنوعی نرم‌افزارهای ساخت نرم‌افزار اسطوره‌های نرم افزاری : اسطوره‌های مدیریتی با داشتن کتابی آکنده از استعدادها و روال‌های لازم میتوان نرم‌افزار موفقی تولید کرد ( دانش ضمنی ) با داشتن ابزار نرم‌افزار‌ سازی حرفه‌ای و کامپیوتر‌های مدرن میتوان تولید نرم‌افزار را تضمین کرد. ( نیروی متخصص نادیده گرفته شده است) با عقب افتادن از برنامه می‌توان تعداد برنامه‌نویسان را افزایش داده و کار را جلو برد . ( هماهنگ کردن افراد جدید با پروژه سخت است و هزینه و زمان بیشتری می‌برد) استوره های مشتریان : با تغییر نیاز مشتری می‌توان تغییرات لازم را در نرم‌افزار اعمال کرد چون نرم‌افزار انعطاف‌پذیر است (‌هزینه افزایش می‌یابد) اسطوره‌های سازندگان نرم‌افزار هنگاهی که نرم‌افزار نوشته شده دیگر کار تمام است ( مراحل تست و پشتیبانی نادیده گرفته شده است ) تا زمانی که برنامه اجرا نشده است راهی برای ارزیابی کیفیت آن وجود ندارد ( خود برنامه نویس هنگام کد نویسی می‌تواند ارزیابی کند ) تنها چیز قابل تحویل برای یک پروژه نرم افزاری برنامه است ( مستندات و داده‌ها نادیده گرفته شده است ) مهندسی نرم‌افزار از سه گام اصلی تشکیل شده است: تعریف (? what) : چرا ساخت سیستم مهم است؟ سیستم چه تسهیلاتی دارد؟ چه اطلاعاتی مورد نیاز است ؟ چه اطلاعاتی باید پردازش شود ؟ توسعه ( ? How) : ساختار داده‌ها ، ساختار روال‌ها ، ساختار برنامه ، ساختار واسطه‌های کاربری و سیستم چگونه باید باشد ؟ پشتیبانی (! Change) : تصحیح نرم افزار ، بروز رسانی نیاز های جدید ، ساخت گزارشات بیشتر تعریف متدلوژی :در عام یک روش علامت گذاری شده و تعریف شده است. چرا متدلوژی در تحلیل و طراحی سیستم اهمیت دارد ؟ زیرا با داشتن روشی مدون می‌توان مستندسازی نرم‌افزار را با قابلیت بالاتری انجام داد و روند تولید نرم‌افزار از نظر کیفیت تضمین می‌گردد . روندی که یک درخواست در تحلیل و طراحی سیستم طی می‌کند: قسمت بعدی :
  3. کامبیز اسدزاده

    مهندسی ویژگی‌ها

    مهندسی ویژگی‌ها (FE) بخش بزرگی از یادگیری ماشین (ML) و یادگیری عمیق است. مقاله فوق را برای آشنایی بیشتر با اینکه ویژگی مهندسی چگونه به توسعه‌دهنگان در کار با داده کمک می‌کند مطالعه کنید. داده‌ها بدون توجه به اندازه و مقایس کسب‌و‌کار‌های مُدرن، شرکت‌ها و سازمان‌ها به عنوان دارایی از نوع طبقه‌-اولِ آن‌ها تبدیل شده است. هر سیستم هوشمند، صرف نظر از پیچیدگی آن، باید بر اساس داده باشد. در قلب هر سیستم هوشمند، ما یک یا چند الگوریتم بینش داده‌ای را بر اساس مجموعه‌ای از داده‌های یادگیری، مانند یادگیری ماشین، یادگیری عمیق و یا روش‌های آماری استفاده می‌کنیم که این اطلاعات را برای جمع آوری دانش و ارائه بینش هوشمند بیش از یک دوره زمانی نیاز داریم. الگوریتم‌ها خودشان کاملاً مجزا کار می‌کنند و نمی‌توانند خارج از جعبه داده‌های خام که برای آن‌ها مشخص شده است کار کنند. هر سیستم بینش اطلاعاتی هوشمند، اساساً شامل یک خط یا نقطه‌ی سر-به-سر با استفاده از داده‌های خام برای استفاده از تکنیک‌های پردازش داده‌ها جهت گردآوری، پردازش و خواص ویژگی‌های مهندسی از این داده‌ها است. ما معمولاً تکنیک‌هایی مانند مُدل‌های آماری یا مدل‌های یادگیری ماشین را برای مدل سازی بر روی این ویژگی‌ها استفاده می‌کنیم و در صورت لزوم برای استفاده آن‌ها در آینده بر اساس مشکلاتی که می‌توان به آن‌ها اشاره کرد به صورت دستی حل می‌شوند. به طور معمول یک سامانه‌ی یادگیری ماشین مبتنی بر «فرایندهای استاندارد صنعت متقابل برای داده‌کاوی» در زیر نشان داده شده است. به دست آوردن داده‌های خام و ساختن مُدل بر روی این داده‌ها به طور مستقیم می‌تواند به عنوان عملی بی‌مورد تلقی شود، زیر ما نتایج و کارایی مورد نظر را نمی‌گیریم و همچنین الگوریتم‌ها خود به طور خودکار ویژگی معنی دار از داده‌های خامِ ساده را به صورت خودکار نمایش نمی‌دهند. جنبه‌ی تهیه داد‌ها در شکل بالا ذکر شده است، جایی که ما متودولوژی‌های مختلفی را برای استخراج ویژگی‌ها یا ویژگی‌های معنی دار از داده‌های خامِ پس از تجزیه و تحلیل مورد نیاز از پیش رونده و پیش پردازش برخورد می‌کنیم. مهندسی ویژگی یک هنر و همچنین یک عِلم است و به همین دلیل دانشمندانِ داده‌ها اغلب ۷۰٪ از زمان خود را در مرحله‌ آماده سازی داده‌ها قبل از فازِ مُدل سازی صرف می‌کنند. این به ما درکِ (بینشِ) این را می‌دهد که چرا ویژگی مهندسی یک فرایند تبدیل اطلاعات (داده‌ها) به یک ویژگی به عنوان ورودی برای مُدلهای یادگیری ماشین عمل می‌کند. یعنی آن ویژگی با کیفیتِ خوب در بهبود عملکرد کلی و دقت مُدل کمک می‌کند. ویژگی ها نیز به سوالات اصلی و اساسی بسیار وابسته هستند. بنابراین، حتی ممکن است کار یادگیری ماشین در سناریوهای متفاوت مانند طبقه‌بندی رویدادهای IoT به رفتار‌های عادی و غیر طبیعی یا طبقه‌بندی احساسات مشتری، ویژگی‌های استخراج شده در هر سناریو بسیار متفاوت از یکدیگر عمل کند. ویژگی‌ها چه چیز‌هایی هستند؟ یک ویژگی، به طور معمول، یک نمایش خاص در رأس داده‌های خام است که خصوصیات قابل اندازه‌گیری آن به صورت منحصربفرد (خصوصی) است. که معمولاً در یک ستون از یک مجموعه داده نقش بسته اند. با توجه به یک مجموعه‌ای از داده‌های دو بعدی، هر مشاهده توسط یک ردیف و هر ویژگی توسط یک ستون نشان داده می‌شود که یک مقدار خاص برای مشاهده دارد. بنابراین، مانند مثال در شکل بالا، هر سطر به طور خاص یک ویژگی از بُردار را نشان می‌دهد و همه آن‌ها مجموعه‌ای از ویژگی‌ها در همه مشاهدات به شمار می‌آیند، همچنین یک ماتریس ویژگی دو بُعدی است، که به عنوان یک مجموعه‌ای از ویژگی‌ها شناخته می‌شود. این شبیه به قاب داده‌ها یا صفحات گسترده‌ای است که داده های دو بعدی را نشان می‌دهند. به طور معمول، الگوریتم‌های یادگیری ماشین با این ماتریس‌های عددی یا تانسورها کار می‌کنند. از این رو بیشترین تکنیک‌های ویژگی‌های مهندسی تبدیل داده‌های خام به عنوان نماینده‌ای از داده‌هایی که می‌توانند توسط این الگوریتم ها قابل فهم و درک باشند را انجام می‌دهد. ویژگی‌ها می‌توانند از دو نوع اصلی بر اساس مجموعه داده‌ها باشند. ویژگی‌های خام (خالص) ذاتی مستقیماً از مجموعه داده‌ها و بدون دستکاری اطلاعات و یا مهندسی اضافی به دست می‌آیند. ویژگی‌های مشتق شده معمولاً از ویژگی‌های مهندسی به دست می‌آیند، جایی که ویژگی‌های داده‌های موجود را از آن استخراج می‌کنیم. مهندسی ویژگی‌ها داده‌های عددی معمولاً داده‌ها را به شکل ارزش‌های اسکالِر نشان می‌دهند که مشاهدات، ضبط داده‌ها یا اندازه گیری آن‌ها را نشان می‌دهد. منظور ما در اینجا داده‌های عددی به عنوان داده‌های مستمر است نه گُسَسته که به طور معمول به عنوان اطلاعات طبقه بندی شده ارائه می‌شوند. داده‌های عددی می‌توانند به عنوان یک بُردار از مقادیر نشان داده شود که هر مقدار یا موجودیت بُردار می‌تواند خود یک ویژگی خاص را نشان دهد. عدد صحیح (Integer) و شناور (Float) رایج ترین و به طور گسترده‌ای از انواع داده‌های عددی برای داده‌های عددی مُداوم استفاده می‌شوند. حتی داده های عددی می‌توانند به طور مستقیم به مُدل های یاد گیری ماشین انتقال یابند. شما برای هر یک از سِناریوهای مربوطه نیاز به ویژگی‌هایِ مهندسی دارید که مربوط به مشکلات و حوزه‌ی مرتبط با آن‌ها برای ساخت یک مُدل‌ است. از این رو، نیاز به مهندسی ویژگی‌ها هنوز هم در جای خود باقی است.
  4. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت پنجم )

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

    مروی بر مهندسی نرم افزار ( قسمت چهارم )

    طرح‌های راهبردی مهندسی نرم‌افزار : نمونه اولیه ( Proposal ) نقشه مدیریت پروژه ( Project Management Plan ) طرح تضمین کیفیت ( Quality Assurance Plan) یافتن واقعیت‌ها در سیستم نرم‌افزاری مصاحبه کاربران بیشتر به نتایج توجه دارند نه منشا کارها کاربران ناآگاهند نسبت به سیستم‌های کامپیوتری تناقض‌گویی کاربراان ارائه راهکار از طرف کاربر پرسش‌نامه : وقتی افراد زیاد و زمان کم است از پرسش‌نامه استفاده می‌کنیم. مطالعه مشاهده مدل خطی مهندسی نرم‌افزار سوال : چه زمانی از مدل خطی استفاده می‌شود ؟ جواب : نیازمندی‌های سیستم از ابتدا به طور کامل مشخص باشد. نکته : اگر نیازمندی‌ها از اول مشخص نباشد این مدل کارایی ندارد و همچنین این مدل زمان زیادی می‌گیرد. نمونه اولیه ( prototype ) : شنیدن صحبت‌های مشتری طرح اولیه نشان دادن ماکت به مشتری چالش‌های نمونه اولیه ( prototype ) : سادگی بیش از حد نمونه اولیه باعث منصرف شدن کاربر می‌شود. خواسته‌های غیر منطقی و خارج از چارچوب برنامه ایجاد شود. RAD ( Rapid Application Development ) توسعه سریع برنامه : تقسیم برنامه به ماژول‌های مختلف تخصصیص هر ماژول به یک تیم هر یک از مدل خطی استفاده می‌کنند. نکته 1 : نرم‌افزار باید قابلیت تقسیم به ماژول های مختلف را داشته باشد. نکته 2 : هزینه ترکیب کردن ماژول‌ها زیاد است. مدل افزایشی مهندسی نرم‌افزار ( Incremental Model ) هر بخش از نرم افزار توسط یک تیم نوشته می‌شود. ( بخش‌ها از یکدیگر مستقل‌اند) مدل پیچشی مهندسی نرم‌افزار هر بار نرم‌افزار بزرگتر می‌شود تا به نرم‌افزار اصلی برسیم. مشکل : اگر کاربر مشکلی پیدا کند باید به اول برگردیم. مدل برد برد ( Win Win Model ) همان مدل پیچشی و ساختار آن به گونه‌ای است که هر موقع کاربر درخواستی داشته‌باشد به چرخه برگشته و درخواست را عملی می‌کنیم.(یک پیچ به عقب بر می‌گردیم) متدلوژی SSADM ( Structured System Analysis & Design Method ) چرخه حیات متدلوژی SSADM هر بخش به صورت مجزا دیده می‌شود و هیچ ارتباطی باهم ندارند. امکان‌سنجی : این می‌باشد که آیا قابلیت انجام این پروژه توسط شرکت وجود دارد یا خیر ؟ فنی : سخت‌افزار یا نرم‌افزار خاصی نیاز داریم که باید بررسی شود که در اختیار داریم یا خیر ؟ مالی : به صرفه بودن پروژه و نرم‌افزار و بررسی کردن آن زمان : آیا زمان لازم برای انجام پروژه وجود دارد یا خیر ؟ هزینه : زمانی می‌تواند به عنوان هزینه در نظر گرفته شود زمان وجود دارد اما زمانی که برای پروژه در نظر گرفته می‌شود میتوان با توجه به پروژه ‌ای دیگر و زمان کمتر سود بهتری بدست آورد. مراحل امکان‌سنجی : شناخت محدوده پروژه : قسمت‌های مختلف یک پروژه را شناسایی می‌کنیم به عنوان مثال در سیستم انبارداری سیستم خرید ، سیستم فروش ، سیستم نگهداری بررسی و شناخت وضعیت موجود : بررسی وضعیت موجود در شرکتی که قرار است برای آن‌ها برنامه نوشته شود و بررسی میکنیم که آن‌ها چه وضعیتی دارند و یا از چه برنامه‌هایی قبلا کمک می‌گرفتند خروجی این بررسی گزارش تفضیلی شناخت پروژه می‌باشد. بررسی و تحلیل اهداف سیستم جدید : ویژگی‌هایی که قرار است اضافه شود تعیین موجودیت‌های خارج از سیستم تعیین محدودیت‌ها و مخاطرات سیستم : ریسک‌های سیستم و مشکلات آن را پیدا کنیم و ... به تایید کارفرما رساندن محدوده پروژه ارائه راه‌حل‌های سخت افزاری و نرم‌افزاری : پروژه به چه سخت‌افزار و نرم‌افزارهایی نیاز دارد. بررسی اقتصادی پروژه : هزینه تهیه کامپیوتر و سخت‌افزارهای مورد نیاز و بررسی به صرفه بودن هزینه تهیه سیستم‌های کامپیوتری ( سخت افزار ) هزینه منابع انسانی و آموزش افراد و استخدام برنامه‌نویس هزینه پشتیبانی از برنامه گزارش امکان‌سنجی مستنداتی قابل ارائه از امکان‌سنحی متدلوژی و راه و روشی برای شناخت سیستم راه‌حل‌های ارائه شده به کارفرما که پذیرفته شده‌است. بررسی اقتصادی هزینه‌های پروژه و مزایای پروژه برنامه‌ریزی برای پروژه ( زمان‌بندی و افرادو ... ) نتیجه‌گیری و پیشنهادات ضمایم تکمیلی ( مواردی که به پروژه ضمیمه می‌شوند ) 5 گام اساسی متدلوژی SSADM مدل آبشاری متدلوژی SSADM
  6. بهنام صباغی

    مروی بر مهندسی نرم افزار ( قسمت دوم )

    تحلیلگرهای مهندسی نرم‌افزار : تحلیل‌گر سطح 1 تحلیل سیستم 30٪ کدنویسی 70٪ تحلیل‌گر سطح 2 تحلیل سیستم 50٪ کدنویسی 50٪ تحلیل‌گر سطح 3 تحلیل سیستم 70٪ کدنویسی 30٪ تحلیل‌گر ارشد تحلیل سیستم 60٪ کدنویسی 10٪ مدیریت پروژه 30٪ تعریف سیستم : به مجموعه‌ای از عناصر گفته می‌شود که کنار هم قرار گرفنه‌اند ، دارای ورودی‌های مشخص ، پردازش‌های معین و خروجی از پیش تعیین‌شده برای یک هدف خاص هستند . سیستم : سیستم باز : تبادل داده ، ماده و انرژی با محیط اطراف . سیستم بسته : با خارج از خود ارتباط ندارد . هم‌افزایی (synergy ) : ماهیت یک سیستم بالاتر از جمع جبری تک تک عناصر آن سیستم است . طراحی سلسله مراتبی ساختار سیستم : سطح‌های مدیریتی : نکته : ساخت نرم‌افزار یک فرآیند تکراری است . Process ( فرآیند) : انجام دادن یک سری گام ، کار و یا وظیفه در یک زمان مشخص برای رسیدن به یک هدف مشخص وظیفه زمان هدف Functions (وظیفه ) : ثبت نام در دانشگاه : امور مالی امور آموزشی امور اداری تاریخچه علم طراحی و تحلیل سیستم : روش‌های نسل اول : روش‌های این نسل مبتنی بر انواع تکنیک‌های ساخت یافته برای تولید نرم‌افزار هستند . برنامه نویسی ساخت یافته : برنامه نویسی‌ای که کمترین استفاده از دستور goto در ان باشد و تمرکز بر نوشتن کر برنامه در پیمانه‌های کمتر و حدالامکان یک پیمانه است .(Madule) تحلیل ساخت یافته : برنامه به گونه ای نوشته شود که ارتباط بین پیمانه‌ها حداقل باشد ، تعداد پارامترهای رد و بدل شده کمینه باشد و اطلاعات درون پیمانه‌ها منحصر به خود پیمانه بوده و امکان دسترسی از خارج پیمانه میسر نباشد. تحلیل ساخت یافته : شناخت چگونگی گردش داده‌ها درون سیستم بر اساس فرآیندها را تحلیل ساخت‌یافته گوئیم . (Process Oriented متدولوژی SSADM) روش‌های نسل دوم : روش این نسل با تاکید بر شناخت داده‌ها و اطلاعات درون سیستم‌هاست . (Data Oriented معروف ترین متدولوژی CDM) روش‌های نسل سوم :روش های این نسل مبتنی بر روش شی‌گرا در طراحی و تحلیلی داده‌ها و پردازش‌ها با یکدیگر و هم زمان است .(Object Oriented متدولوژی RUP) مهندسی نرم‌افزار به صورت لایه‌ای : مدل فرآیندی نرم‌افزار : آزمایش یک برنامه : آزمایش : آزمایش black box : به داخل برنامه دسترسی نداریم و فقط ورودی و خروجی داریم . آزمایش white box : به داخل کد دسترسی داریم و ساختار کد را بررسی می‌کنیم . خروجی‌ها : خروجی که نرم‌افزار می‌دهد . (actual) خروجی که اتنظار داریم نرم‌افزار بدهد . (expected) آزمایش به روش black box خروجی actual و expected را مقایسه می‌کند . قسمت بعدی :
×
×
  • جدید...