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

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

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



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

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

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

نوع محتوا


وبلاگ‌ها

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

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

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

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • ابزار‌های ساخت و ساز
    • ابزار CMake
    • ابزار QMake
    • ابزار Qbs
    • ابزار Make و Autotools
  • طراحی و توسعه وب
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
  • بانک‌های اطلاعاتی
  • برنامه نویسی تحت محصولات اپل
  • برنامه نویسی تحت محصولات مایکروسافت
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
  • درخواست انجام پروژه (ویژه)
  • سوالات و مباحث عامیانه
  • سطل آشغال

Product Groups

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

دسته ها

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

دسته ها

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

دسته ها

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

جستجو در ...

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


تاریخ ایجاد

  • شروع

    پایان


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

  • شروع

    پایان


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

تاریخ عضویت

  • شروع

    پایان


گروه


درباره من


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


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


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


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


شهر


آدرس پستی

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

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

    معرفی مناسب‌ترین فونت‌ها و اصول استفاده در طراحی UI

    به نظر شما قلم یا هما فونت در طراحی رابط کاربری چقدر اهمیت دارد؟ ممکن است با خود بگویید طراحی و حل مشکلات نرم‌افزاری و در نهایت اجرای درست کد‌های نوشته شده اولویت بسیار بیشتری دارد و از این نظر برای مشتری کافی است! من تأکید می‌کنم این تفکر کاملاً اشتباه و بر خلاف قوانین UX خواهد بود. چرا که اولین واکنشی که کاربر شما با محصول خواهد داشت بازخورد‌های مربوط به ظاهر، مکان‌ها، چیدمان، قلم و در کل رابط کاربری آن خواهد بود. اگر شما به این فکر کنید که تنها با یک ظاهر عادی و کد‌های بک‌اندی بسیار عالی یک محصول را به بالا‌ترین درجهٔ فروش خود برسانید، سخت در اشتباه هستید. تمامی محصولاتی که کاربران آن‌ها وفادار هستند و ترجیح می‌دهند آن‌ها را برای دیگران هم پیشنهاد بدهند، از قوانین UX و UI به درستی تبعیت کرده‌اند. حتی در محیط‌های توسعه که کاملاً تخصصی هستند، یک رابط کاربری در‌دسترس، قابل درک و راحت بسیار پرطرفدار‌تر از یک محیط سخت و خُشک خواهد بود. قبل از هر چیز این نکته را یادآوری می‌کنم، فونت (قلم) در ظاهر برنامه یک اصل اساسی است و می‌تواند به اندازهٔ بسیار چشم‌گیری در زیبا بودن و برعکس بی‌ریخت بودن ظاهر برنامهٔ شما موثر باشد. اینکه شما با یک قلم پیشفرض مانند Tahoma یا Arial محصول خود را نهایی کنید نشان‌دهندهٔ آن است که هیچ اطلاعی در مورد طراحی رابط کاربری ندارید و صرفاً با معلومات فنی و کد‌نویسی خود سعی در توسعهٔ محصول و انتشار آن داشته‌اید! از نظر من این یکی از ناشیانه‌ترین رفتار‌هایی است که باعث می‌شود محصولات و یا همان نمونه‌کار‌های شما بیشتر از آنچه که باید دیده نشوند. بنابراین، پیشنهاد می‌کنم قبل از انتشار محصول نهایی حتماً به ظاهر آن توجه کنید که در این مقاله صرفاً به یکی از گزینه‌های بسیار مهم در طراحی رابط کاربری اشاره می‌کنم. فونت‌هایی که پیشنهاد می‌کنم به دو دستهٔ تجاری و آزاد خواهند بود که بر اساس شرایط توسعهٔ خودتون می‌توانید از آن‌ها استفاده کنید. فونت‌های آزاد (طراحی و توسعه توسط دوستمون صابر راستی‌کردار) وزیر صمیم شبنم تنها گندم پرستو ساحل ناهید جهت مقایسهٔ این فونت‌ها به این لینک مراجعه کنید. فونت‌های تجاری (طراحی و توسعه توسط دوستمون مسلم ابراهیمی) ایران یکان ایران سنس دانا فرهنگ انجمن دماوند پیدا کتیبه مانلی و ... جهت بررسی و مقایسه‌ به این لینک مراجعه کنید. درضمن، در رابطه با فونت‌های لاتین تمامی این فونت‌ها شامل نوع لاتین مثل Roboto می‌باشند که در زمان استفاده خودتون باید انتخاب کنید اعداد و نشانه‌گذاری‌ها به سبک لاتین باشند یا فارسی و عربی. در انتخاب فونت نسبت به هدف پروژه دقت کنید، برای مثال در اپلیکیشن‌های کسب‌و‌کار نباید از فونتی مثل تحریر، تاهوما، مانلی یا چنین سبک‌ها استفاده کنید. این کار بسیار اشتباهیه! وزن‌ها تنوع وزن‌ها به طراح این امکان را می‌دهد تا نزدیکترین ضخامت به ایدآل خود را انتخاب کند. در نظر داشته باشید انتخاب وزن‌های مناسب در جای مناسب خود بسیار مهم است. برای مثال، انتخاب یک وزن سبک برای عنوان مناسب نیست! همچنین انتخاب یک وزن Bold, Ex Bold, Black و ضخیم‌تر هم برای توضیحات و متن‌های طولانی مناسب نمی‌باشد. انتخاب صحیح برای عنوان نوع Bold یا Black و انتخاب صحیح برای متن‌های طولانی، توضیحات و غیره نوع Light و یا Regular است. بنابراین، در انتخاب نوع قلم با وزن مناسب باید دقت کرد تا بخش‌های پر اهمیت با بخش‌های کم اهمیت بر اساس اولویت در خوانده شدن متمایز شوند. هایرآرکی (سلسله مراتب) در تایپوگرافی چیست؟ هایرآرکی (Hierarchy) در تایپوگرافی یعنی اینکه نوشته‌ها را طوری کنار هم قرار دهیم که مهم‌ترین جمله اول خونده شود و به ترتیب، نوشته‌های کم اهمیت‌تر به ترتیب اهمیت خوانده شوند. این یک قانون است که وقتی همه چیز را مهم کنیم در واقع هیچ چیز مهم نیست! وقتی به همهٔ دانشجویان کلاس نمرهٔ ۲۰ بدهید یعنی هیچ‌کدام از آن‌ها بهترین نیستند. در طراحی اگر چند گزینه را بر روی صفحه قرار دهید لازم است جذاب‌ترین قسمت را برجسته‌تر از بقیه نشان بدهید. با این کار ما یک دروازهٔ زیبا برای ورود ساخته‌ایم. کاربر با دیدن این جملهٔ جذاب که شما طوری آن را طراحی کرده‌اید که زودتر از بقیه دیده و وارد ماجرا شود. اما اگر فکر کرده‌اید کار تمام است اشتباه کرده‌اید. باز هم به همین ترتیب باید ادامه بدهید. یعنی با ترفند‌های تایپوگرافیک کاری کنید که دومین جمله مورد نظرتان واقعاً در اولویت دوم دیده شود. از طرفی ممکن است ترتیب ارائه اطلاعات مهم باشد، عنوان اصلی، زیر عنوان، تیتر‌ها، متن اصلی و توضیحات پاورقی و … این مثال تصویری به خوبی موضوع سلسه مراتب در تایپوگرافی را نشان می‌دهد: در تایپوگرافی چندتا سلسله مرتبه داشته باشیم؟ عنوان اصلی (تیتر) عنوان فرعی (زیر تیتر) متن (بدنه مطلب) اطلاعات جزئی (توضیح عکس، ارجاع به منابع) چطور طراحی متن از نوع سلسله مراتبی ایجاد کنیم؟ شاید این راه‌ حل در ذهن شماست که هرچه مهم‌تر و مقدم‌تر است را بزرگتر می‌نویسیم. اما باید بگوییم که اینطور نیست. برای برجسته کردن یک متن از دیگری باید تضاد ایجاد کنیم و تضاد فقط با تغییر اندازه ایجاد نمی‌شود. مواردی از قبیل: تغییر نوع فونت، وزن فونت، رنگ فونت، ایتالیک یا ایرانیک بودن، کشیدگی حروف و فضا همه مواردی هستند که به کمک آنها می‌توان تضاد ایجاد کرد. همینطور که در مثال بالا می‌بینید اولین جمله کوچکتر و نازک از جمله دوم است اما در مرتبه اول قرار دارد. در اینجا نوع رنگ و فضا باعث برجستگی جمله اول است. در طراحی وب عمومی‌ترین روش برای انجام طراحی سلسله‌مراتبی در تایپوگرافی استفاده از برچسب های هدینگ در HTML است. از H1 تا H6 مهمترین عنوان‌ها تا کم اهمیت‌ترین نوشته‌ها را طبقه بندی کنید. قواعد سلسله‌مراتبی به جز تایپوگرافی در هر نوع طراحی دیگر نیز وجود دارد و می‌توان با رعایت آن قدرت تاثیر‌گذاری بخش‌های مختلف را کنترل و نظم دهی کرد. اگر آیتم‌های طراحی شما خیلی زیاد هست درست نیست که تعداد تقسیم بندی و سلسله مراتب را زیاد کنید. این کار باعث آشفتگی خواهد شد. در برخی از محصولات که مذهبی هستند فونت‌ها می‌توانند اختصاصی باشند مثل فونت کتیبه، رهروان. اینکه فونت‌های آزاد نیازی به هزینه ندارند و برعکس فونت‌های تجاری اغلب در اوج راه‌اندازی کسب‌و‌کار‌ها نیاز به مجوز‌های گران قیمتی هستند شکی نیست! پیشنهاد من این است ابتدا از نسخه‌های رایگان مثل فونت صمیم استفاده کنید این خیلی بهتر از فونت پیشفرضی مثل Tahoma یا Arial خواهد بود، در طراحی نرم‌افزار این مسائل بسیار مهم هستند. چه موقع باید از فونت‌های تجاری استفاده کرد؟ پیشنهاد من این است زمانی که کسب‌و‌کار شما با جدیت وارد بازار کار شد می‌توانید از مجموعهٔ فونت‌ایران درخواست فونت‌های تجاری کنید، معمولاً به آدرس هر وب‌سایت و برای هر پروژه یک مجوز ارائه می‌کند. بعد از راه‌اندازی کسب‌و‌کارتان، فونت را در قالب مجوز‌های غیر‌تجاری و یا کسب‌و‌کار‌های کوچک سفارش بدهید تا بتوانید با هزینه‌های بسیار پایین‌تر و تا زمانی که پروژهٔ شما درآمد میلیونی نداشته باشد از آن مجوز‌ها استفاده کنید.
  2. الهه انصاری

    اصول طراحی: تضاد

    تا کنون در مجموعه‌ی مقالات اصول طراحی، در مورد تعادل و رنگ صحبت کردیم. در این بخش این روند را با موضوع تضاد (Contrast) ادامه می‌دهیم. تضاد هنگامی رخ می‌دهد که دو عنصر در یک صفحه متفاوت باشند. به عنوان مثال، تضاد می‌تواند خودش را در رنگ‌های متنوع بین متن و رنگ پس زمینه نشان دهد. یا یک عنوان بزرگ و درشت در کنار یک فونت sans-serif برای متن بدنه باشد. یا میتواند تفاوت بین یک گرافیک بزرگ و یک گرافیک کوچک باشد و یا ترکیب یک بافت خشن با بافت ظریف که یک تضاد قابل توجهی ایجاد می‌کند. چشمان ما علاقه‌مند به دیدن تضاد هستند. نکته‌ی حائز اهمیتی که در رابطه با تضاد وجود دارد این است که تضاد باید کاملا چشم‌گیر و غیر جزئی باشد. ۱. تضاد از نظر چشمان ما جذاب است. یکی از دلایل استفاده‌ی ما از تضاد، چه در چاپ و چه در وب، جلب کردن توجه مخاطب است. سایت Carsonified از تضاد جهت اثرگذاری استفاده می‌کند. این سایت از متن و عکس‌های درشت و بالعکس و ترکیب رنگ‌های متضاد بهره برده است. همانطور که در زیر می‌بینیم جلد مجله‌ی Proximity، از عکس چندین قایق شناور کوچک در درون دریای آبی تیره استفاده کرده است که تضاد زیبایی را به تصویر کشیده است. ۲. تضاد به سازماندهی اطلاعات کمک می‌کند. استفاده از تضاد نه تنها سبب جذابیت هر چه بیشتر طراحی می‌شود بلکه به هدف و سازماندهی اسناد وضوح بهتری می‌بخشد. در مجله‌ی منتشرشده در زیر، Studio8 از قوانین تضاد، تعادل (Balance) و مجاورت (Proximity) برای ایجاد صفحاتی غیر معمول و چشم‌گیر استفاده کرده است. عناوین درشت مشکی تضاد جالبی با متن ظریف روشن ایجاد کرده‌اند. در ادامه‌ی مجله، Studio8 صفحات را به دو قسمت تقسیم کرده است که از لحاظ ظاهری کاملا متضاد هم هستند. هر صفحه اطلاعاتی را در مورد محصول‌های جداگانه‌ای می‌دهد که به هم مرتبط هستند. مفهوم این ارتباط توسط علامت '&' ادا شده است. ۳. تضاد سبب ایجاد تمرکز می‌شود. آگهی‌ها و تبلیغات مشهور iPod از مفهوم تضاد به صورت کاملا حرفه‌ای برای متمرکز ساختن توجه بینندگان به پخش‌کننده‌ی موسیقی استفاده کرده است. در این تبلیغات یک شخصیت تیره رنگ بر روی زمینه‌ی رنگی قرار گرفته است. iPod و هدفون‌ به رنگ سفید هستند که در مقابل شخصیت تیره رنگ و زمینه‌ی رنگی خود را به خوبی نشان می‌دهند. طراحی برای این بطری سفارشی بر پایه‌ی تضاد بین متن سفید و رنگ قرمز تیره‌ی نوشیدنی است که به عنوان یک کادوی کریسمس، منحصر به فرد است. مواردی که هنگام افزودن تضاد به طرح‌های خود باید به آن‌ها فکر کنید: ۱. چگونه تضاد را ایجاد میکنید؟ از طریق بافت، تایپوگرافی، رنگ یا شکل؟ ۲. اگر می‌خواهید از طریق تایپوگرافی تضاد ایجاد کنید، کدامیک از فونت‌ها را استفاده می‌کنید؟ آیا آن‌ها بسیار متفاوت هستند یا فقط کمی با هم تفاوت دارند؟ گزینههای فونت خود را با دقت بررسی کنید اما به خاطر داشته باشید که متن قابل خواندن باشد. ۳. آیا تضاد به کار رفته، ایده‌ی طراحی شما را تقویت می‌کند؟ پی‌نوشت: مقالات و دوره‌های سایت Sitepoint پیشنهاد می‌شوند. با ایجاد حساب کاربری امکانات جذابی در اختیارتان قرار خواهد گرفت.
  3. با سلام، معمولاً یکی از سوأل‌هایی که در ذهن افراد بلند‌پرواز رجوع می‌کند این است که من می‌خواهم سیستم‌عامل بنویسم! ? از لحاظ تجربیِ من و نظرات اساتید و افراد حرفه‌ای، تولید و توسعهٔ سیستم‌عامل یکی از پیچیده‌ترین و مشکل‌ترین کار‌های برنامه‌نویسی در این حوزه است. تولید و توسعهٔ چنین محصولی زمان و دانش بسیار بالایی در زمینه‌های مختلف علوم کامپیوتر را می‌طلبد که من در این پست به برخی از آن‌ها اشاره می‌کنم. اختراع چرخ از اول ممکن است در بعضی از موارد اختراع یک محصول از اول کار منطقی باشد، اما در بسیاری از آن‌ها هم ساخت و توسعهٔ آن از اول از جنبهٔ اقتصادی و حتی علمی قابل توجیح نمی‌باشد؛ ساخت و تولید سیستم‌عامل می‌تواند به عنوان یکی از عواملِ پیشرفت کشوری در حوزهٔ فناوری و اهمیت آن به عنوان یک محصول بومی بسیار موثر باشد، اما همه چیز در اینجا خلاصه نمی‌شود بنابراین تولید و توسعهٔ چنین محصولاتی باید با مهارت و انگیزه‌های بسیار حساب‌ کتاب شده‌ای پیاده سازی شود. بلند پروازی و حماقت تنها نکته‌ای که موجب شد من این پست را ایجاد کنم، اشاره به اهمیت بلند پروازی در حرفه‌ای شدن و کسب مهارت‌های فوق پیشرفته است! این که شما بلند پرواز هستید بسیار خوب است. اما باید این را در نظر داشته باشید بعضی از بلند پروازی‌هایی که بدون تحقیقات فنی ایجاد می‌شوند حماقتی بیش نیستند. برای مثال باید در نظر داشته باشید تولید و توسعهٔ سیستم‌عامل هیچ شباهتی به یک نرم‌افزار ساده‌ای با عمل‌ِ CRUD نیست و نویسندهٔ سیستم‌عامل حتی یک برنامه‌نویس متوسط به بالا محسوب نمی‌شود! چرا که توسعه‌‌دهندهٔ سیستم‌عامل باید به عنوان واقعی یک مهندس کاملِ کامپیوتر به تمام ویژگی‌های آن باشد (برنامه‌نویس کاملاً حرفه‌ای با کوله‌باری از تجربه‌های خفن و دانش خوب در رابطه با الگوریتم‌ها و قالب‌های طراحی و غیره...). اگر شما یک برنامه‌نویس تازه‌کار هستید و در ابتدای کار به سراغ چنین بلند‌پروازی آمده‌اید پیشنهاد می‌شود در حد آشنایی با این موارد که در ادامه آمده است قانع باشید و تا زمانی که به این سطح از دانش و تجربه نرسیده‌اید حتی به فکر نوشتن چنین محصولی نباشید (این کار برای بررسی و آزمایش جهت ارتقاء مهارت‌های خود توصیه می‌شود) اما اگر خارج از آن باشد حماقتی بیش نخواهد بود ? من افراد بسیار زیادی را می‌شناسم که با هدف تولید سیستم‌عامل بومی قدم برداشته‌اند اما در نهایت وارد یک دامنهٔ وسیعی از پیچیدگی افتاده‌اند که آن‌ها را منصرف کرده است. بخش‌های اصلی سیستم‌عامل هسته (کرنِل) کرنل به عنوان قلب سیستم‌عامل محسب می‌شود، اولین برنامه‌ای است که در آغاز به کار کامپیوتر اجرا می‌شود، و مدیریت منابع کامپیوتر و همچنین مدیریت درخواست‌ها از طرف برنامه‌های سیستمی و کاربردی را به عهده می‌گیرد. برنامه‌های سیستمی برنامه‌های سیستمی در بالاترین بخش کرنِل اجرا می‌شود. این نوع برنامه‌ها به عنوان انجام کار‌های مهم و مفید نیستند، بلکه برنامه‌هایی هستند که لازم است برای اتصال هسته به برنامه‌های کاربر و دستگاه‌های جانبی استفاده شوند. درایور‌های دستگاه‌ها، فایل‌سیستم‌ها، برنامه‌های شبکه، و نرم‌افزار‌های سیستمی مانند مباحث مدیریت دیسک که همهٔ آن‌ها مثال‌هایی از برنامه‌های سیستمی هستند. برنامه‌های کاربردی این نوع برنامه‌ها بخشی از برنامه‌های سیستم‌عامل نیستند. برنامه‌هایی همچون مرورگری اینترنت، مدیا پلیر و برنامه‌هایی از این قبیل به عنوان برنامه‌های عامیانه‌ای هستند که بعد‌ها می‌تواند در کنار سیستم‌عامل آن‌ها را قرار داد. چه چیز‌هایی را باید بدانیم؟ علوم پایه و اولیه کامپیوتر تئوری برنامه‌نویسی کامپیوتر و روش‌های بهتر زبان‌های برنامه‌نوسی سطح‌پایین و سطح‌بالا توسعهٔ سیستم‌عامل مانند توسعهٔ نرم‌افزار یا وب یا اپلیکیشن نیست، این نوع محصول چیزی نیست که شما بتوانید به این راحتی به آن بپردازید و یاد بگیرید. قبل از اینکه وارد این مبحث شوید نیاز است شما یک پایهٔ پایدار و منطقی از یک علوم رایانه را ایجاد کنید. خلاصه‌ای از حداقل مواردی که قبل از ورود به این حوزه لازم است بررسی سیستم‌عامل‌های موجود به خصوص، منابع سکو‌های یونیکس و لینوکس را بررسی و مورد مطالعه قرار دهید. در نظر داشته باشید که سیستم‌عامل خود به عنوان یک محصول بسیار مهم و کامل مانند یک درخت محسوب می‌شود که ریشهٔ آن مهمترین بخش آن است (هسته یا کرنل). آشنایی با علوم کامپیوتر پایه آشنایی کامل با کامپایلر آشنایی کامل و حرفه‌ای با زبان‌های C و ++C آشنایی با لینوکس و یونیکس آشنایی با قالب‌های اجرایی، قالب‌هایی مانند elf و exe آشنایی با پلتفرم به خصوص مطالعات عمیق در رابطه با معماری و ساختار پردازندهٔ مورد نظر محیط توسعهٔ مناسب (جهت برنامه‌نویسی) که به دو گزینهٔ ویندوز و لینوکس است که بیشتر محیط لینوکس و ابزار‌های GNU و کامپایلر GCC و Clang می‌باشد که در مقابل در ویندوز از کمپایلر MSVC می‌توان استفاده کرد. در اختیار داشتن ابزار‌های آزمایش مانند شبیه‌ساز‌هایی همچون VirtualBox و VMWare نیاز است. داشتن اطلاعات کافی در حوزهٔ سخت‌افزار و شبکه (درک و فهم در رابطه با سخت‌افزار‌ها و نحوهٔ عملکرد آن‌ها) یکی از موارد بسیار مهمی است که قبل از توسعهٔ سیستم‌عامل باید به آن‌ها توجه کرد. و موارد دیگر که در توسعهٔ سیستم‌عامل بسیار مهم هستند. با توجه به اینکه شما برای توسعهٔ چنین محصولی بر روی پلتفرم x86 و زبان C تصمیم گرفته باشید می‌توانید مراحل زیر را در نظر بگیرید: انتخاب بارگذار کنندهٔ بوت سیستم‌عامل (بوت‌لودِر) که در اینجا گزینهٔ پیشنهادی Grub است. پیاده سازی نقطهٔ ورودی کد C به زبان اسمبلی یا همان (Entry Point) تولید و توسعهٔ یک لاگر (جهت دیباگینگ) ساده مانند printf مقداردهی اولیه (Initialization) پردازنده (ساخت جدول GDT، برنامه‌ریزی PIC و PIT و ...) پیاده سازی یک چهارچوب کامل از مدیریت حافظه‌ پیاده سازی یک چهارچوب کامل از مدیریت حافظه‌‌ی مجازی پیاده سازی زمان‌بندی پردازنده پیاده سازی موارد مورد نیازی که در مهندسی نرم‌افزار آمده است مانند spinlock پیاده سازی فایل‌سیستم‌ها پیاده سازی رابط‌های برنامه‌نویسی API پیاده سازی رابط‌هایی مانند Shell در نهایت برنامه‌نویسی جانبی جهت توسعه و تکامل سیستم‌عامل توضیحاتی که به آن‌ها اشاره شد تنها بخشی از هزاران موردی است که باید در طراحی سیستم‌عامل در نظر داشت که مسلماً افراد حرفه‌ای در این حوزه خود به خوبی می‌دانند چه مباحثی برای توجه به آن‌ها نیاز است. برخی از منابع جهت طراحی و توسعهٔ سیستم‌عامل OSDev.org Index page https://www.irantux.org/html/ https://www.kernel.org/ http://www.minix3.org/ بلند پروازی کنید، اما حماقت نکنید ?
  4. بهنام صباغی

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

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

    اصول طراحی: تعادل

    «بخش دوم» در پست ۷ گام برای تبدیل شدن به یک طراح موفق UI/UX به طور خلاصه به اصول طراحی رابطه‌ی کاربری اشاره کردیم. در این بخش قصد داریم در مورد اصل تعادل (Balance) صحبت کنیم. هر طرح با یک صفحه‌ی خالی یا فضای خالی آغاز میشود. هنگامی که یک عنصر اضافه میکنیم، قرار دادن آن میتواند تعیین کند که طراحی تا چه حد موفق خواهد بود. طراحی موثر ارتباطات و علاقه‌ی بیننده را بنا میکند؛ خواه این طراحی به صورت چاپ شده و یا به صورت صفحات وب باشد. در یک طرح وب معمولی، طراح باید لوگو، متن، عکس یا تصویر را جایگزین کند. با یک تلاش آگاهانه برای ایجاد ارتباط بین این عناصر می‌توان یک طراحی چشم نواز به وجود آورد. تعادل در طراحی بسیار شبیه به تعادل در زندگی است. نمونه ای که اغلب از تعادل در دنیای واقعی یاد می‌شود، الاکنگ است. وقتی فقط یک نفر روی آن نشسته است، تجربه‌ی بسیار سرگرم کننده‌ای نیست. تعادل زمانی حاصل میشود که دو نفر از افراد با وزن مشابه در هر طرف قرار گیرند. نمونه‌ای دیگر از تعادل را هنگامی می‌توان به دست آورد که یکی از افراد سنگین در یک طرف و دو نفر سبکتر در طرف دیگر نشسته اند. اگر یک فرد سنگینتر به مرکز الاکلنگ نزدیکتر شود تعادل میتواند حاصل شود، در حالی که یک فرد سبکتر در انتهای طرف دیگر نشسته است. ما به عنوان انسان از لحاظ جسمی یک دست و پای در هر طرف ستون فقرات و سر داریم و قادر به ایستادن و حرکت با وجود اندازه و وزنهای مختلف هستیم. در طراحی سعی میکنیم به توازنی میان عناصر دست یابیم، زیرا در چشم نواز است. اما تعادل همیشه از طریق تقارن بدست نمیآید. نگاهی به جعبههای زیر کنید. خط سفید در جعبه‌ی 1 و 2 به طور متقارن متعادل است در حالی که در جعبه‌ی 3 و 4 خط به طور نامتقارن متعادل است. تقارن تعادلِ متقارن تعادلِ تصویر آینه است. اگر یک خط را از طریق مرکز صفحه بکشید، عناصر در یک طرف خط در سمت دیگر نیز به صورت آینه دیده میشوند. ما میتوانیم آن را با قرار دادن عناصر به طور نسبتا مساوی در طراحی دست یابیم. تقارن در طبیعت یک مثال معمول که در وب اتفاق میافتد، جایی است که بلوک های متن در سطر یا ستون به صورت آینه نگاشته می‌شوند. همچنین میتواند با استفاده از رنگ و تایپوگرافی به دست آید. برای مثال در وب سایت Mobile Web Book تصویر تلفن همراه این صفحه به دو بخش تقسیم می‌شود که با بلوکهای متن در هر طرف به صورت متعادل در مقابل هم قرار گرفته اند. در پوستر فیلم «The Day I Became A Woman»، بلوک متن سفید بزرگ در گوشه‌ی سمت راست بالا در گوشه‌ی پایین سمت چپ هم از لحاظ رنگ و هم از نظر شکل متقارن هستند. سایت پر طرفدار Florida Flourish تقریبا میتواند به نصف مرکز برسد که یک حس بسیار قوی از تعادلِ متقارن دارد. پوستر Havco که در زیر آورده شده است، قسمت چپ و راست پوستر با استفاده از اشکال مشابه و قطعات بدن متعادل است . متن قرمز در بالا و پایین عنوان در رنگ و اندازه‌ی متعادل قرار دارد. عدم تقارن طرح بندیهای متعادلِ نامتقارن دارای عناصری هستند که در یک خط مرکزی به صورت آینه‌ای جدا نمی‌شوند. این طرح بندی‌ها میتوانند طراحی را دشوارتر کنند، اما سبب جذابیت برای بیننده می‌شوند. میتوانیم با ایجاد چندین آیتم کوچک در یک طرف و یک آیتم بزرگ در طرف دیگر یک طرح متضاد نامتقارن ایجاد کنیم. اگر یک آیتم تیره در یک طرف دارید، میتوانید چندین آیتم روشن رنگی را در طرف دیگر قرار دهید. یک طراحی متعادلِ نامتقارن میتواند تنش ایجاد کند و بیننده را جذب کند. وب سایت MattWeb یک گرافیک بزرگ دارد که سمت چپ صفحه‌ی اصلی را پر کرده است. حس توازن نامتقارن در اینجا با استفاده از رنگهای تطبیق و یک فونت بدون سرصفحه مطابق با مارپیچ‌ها به دست می‌آید. سایت Dann Whitaker دارای چندین عنصر است که به صورت متقارن نیستند، اما از نظر رنگ، بافت و محتوا یکدیگر را متعادل میکنند. عدم تعادل (Off-Balance) خوب، پس اگر تمام کارهای طراحی شما در تعادل باشند، خسته کننده میشود. اگر قوانین را میدانید، میتوانید آن‌ها را قطع کنید، و عدم تعادل میتواند جنبش و حرکت را به بیننده منتقل کند. البته این مسئله میتواند بیننده را به کمی ناراحت و آشفته کند. طراحی غیر متعادل میتواند مخاطب را به فکر کردن وادار کند. فقط اجازه ندهید که به طور تصادفی این اتفاق بیفتد. در مقاله‌ی آینده نگاهی به اصل مجاورت (Proximity) میکنیم. در عین حال توصیه می‌شود که در وب سایت‌های مختلف تعادل قوی، تقارن و عدم تقارن را بررسی کنید.
  6. الهه انصاری

    ۷ گام برای تبدیل شدن به یک طراح موفق UI/UX

    «بخش اول» در این مطلب از تجربیات طراح موفق خانم Nicole Saidy استفاده خواهیم‌ کرد. ایشان بخاطر سوالات زیادی که از جانب برنامه‌نویسان متعدد، مدیران بازاریابی و افراد مختلف دیگری مطرح شده بود این مقاله را براساس تجربیات شخصی خود تنظیم کردند. ادامهٔ مطلب را از زبان خودشان می‌شنویم. «چگونه شروع کنم؟» این سوال من را به زمانی می‌برد که برای اولین بار کار خود را آغاز کردم. 7 سال پیش، من در اولین روز اولین کار طراحی‌ام بودم. در مقابل یک فایل فتوشاپ خالی در iMac نشسته ام (در آن زمان یک کاربر ویندوز بودم) و سعی می‌کنم آنچه که مدیرم توضیح داد درک کنم. هیچ نظری ندارم که چگونه شروع کنم. خالی! قبل از رسیدن به این شغل، تازه از دانشگاه با مدرک چندرسانه‌ای فارغ التحصیل شده بودم. پس چرا چیزی در مورد طراحی نفهمیدم؟ خب، در دانشگاهها به ما طراحی عملی یاد نمی‌دهند. اکثر دورههای دانشگاه فقط ما را بصورت تئوری آموزش می‌دهند و گاهی اوقات به ما یاد می‌دهند که چگونه از ابزارهای طراحی مانند Adobe Suite استفاده کنیم. اما این کافی نیست - حتی نزدیک هم نیست. تمرین، یادگیری و خودآموزی تنها چیزی است که می‌تواند شما را به یک طراح بهتر تبدیل کند. 7 سال بعد از خودآموزی، من اکنون یک معلم طراحی و سخنران کنفرانس بین المللی هستم. اولین چیزی که باید بدانید این است: لازم نیست که با این استعداد متولد شوید. ما موجودات خارق العاده‌ای مانند تک‌ شاخ‌ها نیستیم. ما فقط قصد داشتیم طراح باشیم و هنرمندانه به دنیا آمدیم. طراحی، در مورد حل مشکلات است. این یک روند دائمی یافتن مشکلات و ایجاد راه حل برای آنهاست. حوزه‌های مختلفی برای طراحی وجود دارد: رابط کاربری، تجربهٔ کاربری، طراحان محصول، طراحان گرافیکی، طراحان تعاملی، معمار ساختار اطلاعات و غیره. برای شروع تحقیق کنید که کدام حوزه شما را بیشتر جذب می‌کند. برای حال، روی رایج‌‌ترین حوزه تمرکز می‌کنیم: ترکیبی از رابط و تجربه: طراح رابط کاربری و تجربهٔ کاربری. 1. خودتان را با اصول رابط کاربری آشنا کنید. قبل از شروع تمرین طراحی، اولین چیزی که نیاز دارید یادگیری برخی اصول طراحی است. در این مرحله، شما به دنیای طراحی قدم خواهید گذاشت و شروع به تفکر «خلاقانه» می‌کنید و جنبه‌های روانشناسی طراحی را خواهید آموخت: چرا این طرح می‌تواند خوب بنظر بیاید و یا شکست بخورد؟ برخی از اصول پایه‌ای که باید بدانید: 1. رنگ (Color) واژگان رنگ‌ها، اصول و روانشناسی رنگ را شامل می‌شود. ۲. تعادل (Balance) اصل تعادل به تقارن و عدم تقارن در مبحث طراحی می‌پردازد. 3. تضاد (Contrast) هدف از بکارگیری تضاد سازماندهی اطلاعات، ایجاد سلسله مراتب و ایجاد تمرکز است. ۴. تایپوگرافی (Typography) انتخاب فونت مناسب و ایجاد متن قابل خواندن در وب با رعایت این اصل ممکن خواهد بود. ۵. ثبات و انطباق (Consistency) مهمترین اصل، جهت ایجاد طرح های بصری و قابل استفاده از ثبات شروع میشود. ۲. فرآیند خلاقانهٔ تجربهٔ کاربری را فرا بگیرید. مورد بعدی درک فرآیند خلاقانه است. طراحی UI/UX فرآیندی متشکل از فازهای خاصی است که هر فرد خلاق از آن عبور می‌کند. این فرآیند شامل ۴ فاز مختلف کشف (Discover)، تعریف (Define)، توسعه (Develop) و تحویل (Delivery) است. فرآیند خلاقانه فاز کشف فاز کشف همان فاز شروع پروژه است که طراحان به جستجو، الهام گرفتن و جمع‌آوری ایده‌ها می‌پردازند. فاز تعریف در این مرحله، طراحان ایدهٔ حاصل از فاز کشف را تعریف و مشخص می‌کنند. در‌واقع خلاصه‌ای واضح از کاری که قرار است انجام بگیرد مشخص می‌شود. فاز توسعه فاز توسعه مرحله‌ای است که راه‌ حل‌ها یا مفاهیم ایجاد شده، نمونه‌سازی، تست و تکرار می‌شوند. این فرآیند آزمایش و خطا به طراحان کمک می‌کند تا ایده‌های خود را بهبود داده و اصلاح کنند. فاز تحویل فاز آخر فاز تحویل است که در آن پروژهٔ پایانی، تولید و راه اندازی می‌شود. ۳. چشمان خود را برای طراحی تقویت کنید. دانستن اصول طراحی عالی است، اما گاهی اوقات کافی نیست. شما همچنین باید چشمان خود را آموزش دهید تا طراحی خوب و طراحی بد را ببینید و نقاط قوت و ضعف آن‌ها را مشخص کنید. موثرترین روش جهت آموزش چشم برای طراحی از طریق الهام است. قبل از باز کردن یک بوم خالی و تماشای آن برای نیم ساعت ، بدانید که تنها راه خلاق بودن از طریق تحقیق است. گاهی اوقات ذهن نمی‌تواند ایده‌های خودش را بسازد. ابتدا باید به طرح‌های دیگر نگاه کنید تا طرح خودتان را ایجاد کنید؛ مخصوصا زمانی که فعلا مبتدی هستید. در وب‌سایت‌های نمونه‌کار‌ها قدم بزنید:) بنابراین به آنچه که طراحان دیگر در سایت Dribbble انجام می‌دهند نگاه کنید و هر زمان که طرح‌های زیبا یا چیزی مربوط به پروژهٔ خود را می‌بینید، آن را در یادداشت‌های خود ذخیره کرده و اشاره کنید که چه چیزی از آن طرح را پسندیده‌اید. همچنین می‌توانید با گرفتن اسکرین‌شات ذخیره‌سازی را دقیق‌تر انجام دهید. به این ترتیب، شما مجموعه‌ای از طرح‌های الهام بخش دارید که می‌توانید برای شروع کار از آن‌ها بهره ببرید. چند مورد از سایت‌های مفید جهت الهام گرفتن در زیر آورده‌شده‌اند: onepagelove.com awwwards.com dribbble.com pttrns.com uimovement.com ۴. مطالعهٔ مقالات طراحی را در برنامهٔ روزانهٔ خود بگنجانید. برای اینکه خودمان را با طراحی آشنا کنیم، بهترین راه این است که هر روز چند مقاله در این رابطه مطالعه کنیم. خواندن اخبار و وبلاگ‌های طراحی را عادت روزمره کنید. میلیون‌ها مقاله‌ بصورت آنلاین در دسترس ما هستند تا روند‌های جدید دنیا، مورد‌های کاربری (Use Cases) و آموزش‌های مختلف را فرا بگیریم. تمام کاری که باید انجام دهیم، پیدا کردن آنهاست. هیچ چیز بهتر از یادگیری از تجربه‌های دیگران نیست. خواندن مقالات را عادت روزمره کنید بنابراین روز خود را با یک فنجان قهوه و چند مقالهٔ الهام‌ بخش در مجلات آنلاین Medium یا Smashing شروع کنید. یادگیری چیزهای جدید در صبح، ذهنتان را گسترش داده و در طول روز فرصت خلاقیت را برایتان فراهم میکند. بنابراین، هر چند وقت یکبار در طول روز، چندین بار به خود استراحت بدهید تا بتوانید بیشتر مطالعه کنید. استراحت کردن برای خلاقیت خیلی مهم است، به ویژه هنگامی که ذهن شما گیر کرده و احساس می‌کنید که بازدهی مطلوب را ندارید. از جمله کارهای قابل انجام دیگر می‌توانید وب‌سایتی را که به عنوان صفحهٔ اصلی مرورگر خود دوست دارید، نشانه‌گذاری کنید و یا از یک خبرنامهٔ طراحی اشتراک بگیرید. برخی از وبلاگ‌ها و سایت‌های خبری محبوب در زمینهٔ طراحی عبارتند از: blog.marvelapp.com medium.com/design smashingmagazine.com webdesignernews.com sitepoint.com/design-ux 5. پروژه‌های غیرواقعی طراحی کنید. کار نیکو کردن از پر کردن است و همه می‌دانیم که نمی‌توانیم بدون تجربه، مشتری یا شغلی را بدست آوریم. اما بدون یک کار یا پروژه هم نمی‌توانیم تمرین کنیم و تجربه کسب کنیم، درست است؟ بنابراین می‌توانیم این چرخه را با تمرین کردن و ایجاد پروژه‌های غیر واقعی برای سرگرمی بشکنیم! Dribbble پر از این نمونه کارها است. طراحی فیسبوک توسط Kevin McCarthy زمانی را صرف طراحی مجدد وب‌ سایت یا اپلیکیشنی که قبلا استفاده کرده‌اید کنید. این کار را برای هر چیزی که فکر می‌کنید می‌تواند بهتر شود، انجام دهید. همچنین می‌توانید ایدهٔ برنامهٔ خود را طراحی کنید. درواقع با طراحی نمونه‌ کارها تمرین کرده و تجربه کسب می‌کنید. ۶. کار با آخرین ابزار طراحی وب را بیاموزید. هزاران ابزار طراحی وجود دارد، اما شما نیاز ندارید که کار با همهٔ آنها را یاد بگیرید. بهترین آن‌ها را بیابید، ابزارهای مورد علاقهٔ خود را انتخاب کنید و با بکار گیری جدیدترین ویژگی‌ها و روندها به‌ روز باشید. جدیدترین ابزارهایی که در فرآیند طراحی خود استفاده می‌کنم در زیر آورده‌ شده‌اند: Sketch برای طراحی رابط کاربری Figma برای طراحی رابط مشترک Balsamiq برای رسم وایرفریم‌های با جزيیات کم و ابتدایی (low fidelity wireframing) Adobe XD برای طراحی رابط کاربری و نمونه‌سازی Marvel App برای ساخت مدل‌های تعاملی Invision App برای نمونه‌سازی و همکاری 7. از مربی (mentor) کمک بگیرید. یکی دیگر از روش‌های عالی برای یادگیری طراحی، یافتن یک مربی طراحی یا دوست طراح است که مایل به کمک است. آنها به شما کمک میکنند که روند یادگیری خود را سرعت بخشید. طراح کار شما را بررسی و نظرات خود را هر زمان که ممکن باشد می‌دهد. این کار مثل یک میانبر عمل می‌کند. آنها همچنین راهنمایی‌ها و ترفندهایی به شما می‌دهند که از تجربیات خود آموخته اند. بنابراین پیش بروید و به یک طراح ایمیل بفرستید، سوالات و نگرانی‌های خود را با وی مطرح کنید. هنگامی که شما آمادهٔ صحبت در مورد طراحی با دیگران هستید، می‌توانید کسی را در مورد طراحی راهنمایی کنید و یا آموزش دهید. همچنین یاد خواهید گرفت که آن را دیدگاه‌های مختلف ببینید و بازخورد و پاسخ سوالاتی را دریافت کنید که ممکن است هرگز در مورد آن‌ها فکر نکرده باشید. هنگامی‌که در مورد طراحی با افراد دیگری صحبت می‌کنید، ذهن شما همواره در‌حالت "طوفان فکری" قرار می‌گیرد و بیشتر از قبل به طراحی علاقه‌مند خواهید شد. منتظر بخش‌های بعدی با جزییات بیشتر در مورد اصول رابط کاربری باشید.
  7. بهنام صباغی

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

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

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

    طرح‌های راهبردی مهندسی نرم‌افزار : نمونه اولیه ( 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
  9. بهنام صباغی

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

    تحلیلگرهای مهندسی نرم‌افزار : تحلیل‌گر سطح 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 را مقایسه می‌کند . قسمت بعدی :
  10. GornerLabo

    درود یکی از قابلیت ها در طراحی متریال توسط qml همین موضوع Material.elevation هست که یک سایه (بستگی به مقدار وارد شده ) به Pane میده و باعث ایجاد عمق میشه. با توجه به مستندات کیوت ، این قابلیت رو نتونستم برای یک Pane اعمال کنم! منظورم یه چیزی در حد سایه این مثال است. لینک ممنون میشم دوستان راهنمایی کنند.
×
×
  • جدید...