در طراحی سخت‌افزار و نرم‌افزار از چه روشهایی استفاده می شود؟
17162#0
طراحی نرم‌افزار فرایند حل مسئله و برنامه‌ریزی در راستای ساختن یک نرم‌افزار است. طراحی نرم‌افزار فرایندی است که توسط آن یک عامل، مشخصه ای از نرم‌افزار را طراحی می‌کند که هدف آن، به انجام رساندن اهداف از پیش تعیین شده با استفاده از مجموعه ای از اجزای اولیه و با توجه به محدودیت‌ها است. طراحی نرم‌افزار می‌تواند به عنوان "تمام فعالیت‌های مربوط به مفهوم سازی، طراحی، اجرا، راه اندازی و در نهایت اصلاح سیستم‌های پیچیده" یا "فعالیت‌های مشخص مورد نیاز و قبل از برنامه‌نویسی و … [در] یک پروسه مهندسی نرم‌افزار. طراحی نرم‌افزار معمولاً شامل حل مسئله و برنامه‌ریزی یک راه حل نرم‌افزاری است که شامل طراحی جزئی اجزا و طراحی الگوریتم و طراحی معماری سطح بالا می‌باشد."
طراحی نرم‌افزار
4781744#6
روش‌های مدرن طراحی نرم‌افزار معمولاً از ترکیبی از روش‌های بالا به پایین و پایین به بالا می‌باشند. این همواره ضروری است که یک شناخت کامل نسبت به سیستم برای طراحی آن داشته باشیم، که این اساس و پایه روش بالا به پایین است. بیشتر پروژه‌های نرم‌افزاری کد نویسی را در چند مرحله در حین پیشرفت پروژه (و نه به طور پیوسته در حین پیشرفت پروژه) بر اساس طراحی خود دارند و در چند مرحله سعی می‌کنند که کدنویسی را پیش ببرند که این کد زنی در حین انجام پروژه ایده و پایه برنامه‌نویسی پایین به بالا است. این روش به مرور کدها تکمیل و در صورت نیاز نیز اصلاح می‌شوند؛ بنابراین بیشتر پروژه‌های نرم‌افزاری ترکیبی از این دو روش می‌باشند.
طراحی بالا به پایین و پایین به بالا
149803#8
تکنیک‌های طراحی نرم‌افزار را به سختی می‌توان در گسترهٔ وسیع‌تری از مسائل به کار برد. الگوهای طراحی راه‌حل‌هایی کلی را در قالبی بیان می‌کنند که وابسته به مسئلهٔ مخصوصی نیست.
الگوی طراحی نرم‌افزار
17162#2
طراحی نرم‌افزار هم یک فرایند و هم یک مدل است. فرایند طراحی یک دنباله ای از مراحل است که طراح را قادر می‌سازد که تمام جنبه‌های ساخت نرم‌افزار را توصیف کند. مهارت خلاقیت، تجربیات گذشته، حس اینکه چه چیزی نرم‌افزار «خوب» را می‌سازد و تعهد کلی به کیفیت، نمونه‌هایی از عوامل موفقیت قطعی برای یک طراحی مناسب است. با این وجود مهم است که توجه داشته باشید که فرایند طراحی همیشه یک روش ساده نیست؛ مدل طراحی را می‌توان با طراحی معماری خانه مقایسه کرد. با نشان دادن کلییت چیزی که باید ساخته شود آغاز می‌شود (به عنوان مثال، ارائه سه بعدی خانه)؛ و به آرامی، این برای ساخت هر جزئی (به عنوان مثال، نصب لوله‌کشی) اراِیه شده. است به‌طور مشابه، مدل طراحی که برای نرم‌افزار ایجاد شده‌است، دیدگاه‌های مختلفی از نرم‌افزارهای کامپیوتری را فراهم می‌کند. اصول طراحی اولیه، مهندس نرم‌افزار را قادر می‌سازد تا در فرایند طراحی حرکت کند. دیویس مجموعه ای از اصول طراحی نرم‌افزار را پیشنهاد می‌کند که در لیست زیر ارائه شده و گسترش یافته‌است:
طراحی نرم‌افزار
149803#6
برای دست‌یافتن به انعطاف‌پذیری در نرم‌افزار، الگوهای طراحی اغلب اعمال را به صورت غیرمستقیم انجام می‌دهند. این کار در شرایطی ممکن است طراحی حاصل را پیچیده کند و باعث افت کارایی برنامه شود.
الگوی طراحی نرم‌افزار
149803#7
طبق تعریف، برای استفاده از الگوها در هر برنامه‌ای که از آن‌ها استفاده می‌کند، باید از نو برنامه‌نویسی کرد. از آن‌جایی که بعضی از نویسندگان این نکته را مخالف با en:Code reuse آن‌گونه که توسط مهندسی نرم‌افزار بر پایه پیکرپار فراهم می‌شود، می‌بینند، پژوهش‌گران تلاش کرده‌اند تا الگوها را به پیکرپارها تبدیل کنند. میر و آرنوت توانستند دو سوم الگوهایی را که رویشان کار می‌کردند، به صورت کامل یا جزئی به پیکرپار تبدیل کنند.
الگوی طراحی نرم‌افزار
17162#1
طراحی نرم‌افزار فرایند پیش‌بینی و تعریف راه حل‌های نرم‌افزاری به یک یا تعدادی از مشکلات است. یکی از اجزای اصلی طراحی نرم‌افزار، نرم‌افزار مورد نیاز تجزیه و تحلیل software requirements analysis]]SRA]] است. SRA بخشی از فرایند توسعه نرم‌افزار است که مشخصات مورد استفاده در مهندسی نرم‌افزار را فهرست می‌کند. اگر نرم‌افزار به‌طور «کامل اتوماتیک» (به معنی بدون کاربر یا رابط کاربری) باشد، طراحی نرم‌افزاری ممکن است به اندازه یک فلوچارت یا متن توصیفی دنباله ای از رویدادهای برنامه‌ریزی شده ساده باشد. همچنین روش‌های نیمه استاندارد مانند زبان مدل‌سازی یکسان و مفاهیم مدل‌سازی اساسی وجود دارد. در هر صورت، بعضی مستندات این طرح معمولاً محصول طراحی است. علاوه بر این، طراحی نرم‌افزار ممکن است یک پلت فرم_مستقل(platform-independent)یا پلت فرم_مشخص(platform-specific) باشد که بسته به دسترسی به تکنولوژی مورد استفاده برای طراحی دارد. تفاوت اصلی بین تجزیه و تحلیل نرم‌افزار و طراحی نرم‌افزار این است که خروجی یک تجزیه و تحلیل نرم‌افزاری از مشکلات کوچکتر برای حل مسئله تشکیل شده‌است. علاوه بر این، تجزیه و تحلیل نباید با تفوت زیادی در میان اعضای تیم یا گروه‌های مختلف، طراحی شود. در مقابل، طراحی بر قابلیت‌ها متمرکز است و بنابراین طرح‌های متعددی برای یک مشکل مشابه می‌تواند وجود داشته باشد. بسته به محیط، طراحی اغلب متفاوت است، چه از طریق چارچوب (frameworks)های قابل اعتماد چه با الگوهای طراحی(design patterns) مناسب پیاده‌سازی شده باشد. نمونه‌های طراحی شامل سیستم‌های عملیاتی، صفحات وب، دستگاه‌های تلفن همراه یا حتی پارادایم ابری جدید است.
طراحی نرم‌افزار
17162#3
مفاهیم طراحی ارائه دهنده طراح نرم‌افزار بر اساسی است که از روش‌های پیچیده‌تر می‌توان استفاده کرد. مجموعه‌ای از مفاهیم طراحی بنیادی تکامل یافته شرح زیر هستند: گریدی بوچ در مدل شیء خود، انتزاع، کپسوله سازی، مدولارسازی و سلسله مراتب را به عنوان اصول طراحی نرم‌افزار معرفی می‌کند. مخفف PHAME (اصول سلسله مراتب، انتزاع، مدولارسازی و کپسولاسیون) گاهی برای اشاره به این چهار اصل اساسی استفاده می شود.
طراحی نرم‌افزار
801015#2
یکی دیگر از زیرشاخه‌های تخصصی این رشته، یعنی طراحی زیرساخت نیز وابستگی بالایی به برآورد میزان بار، فشار، زه‌کشی و جریان آب دارد. برخی از شرکت‌های تولیدکننده نرم‌افزار، در تلاش هستند تا برنامه‌های طراحی ویژه‌ای را برای رشته‌های گوناگون طراحی زیرساخت به صورت یکپارچه فراهم کنند. اگرچه معمولاً استفاده از نرم‌افزارهایی مثل مایکروسافت اکسل با قیمتی به مراتب پایین‌تر نیز مفید است. هنگام طراحی مرحله ساخت‌وساز، روش‌های مختلف مدیریت پروژه برای تخمین عواملی همچون قیمت، جدول زمان‌بندی و منابع مفید هستند. بسته‌های نرم‌افزاری گوناگون، بر مبنای معادلات و نظریات مختلفی که پایه و اساس این محاسبات هستند، ساخته شده‌اند. یک طراح جاده ممکن است برای مثال موقعیت کنونی لوله‌های زیر زمین را اصلاح کند. نرم‌افزار سیویل دیزاینر یک نمونه از بسته طراحی است که از جمع‌آوری داده‌های یک پارچه، ترسیم، مدل‌سازی سطحی و سیستم طراحی برای زیرساخت مهندسی عمران تشکیل شده‌است.
نرم‌افزار مهندسی عمران
3937510#7
انتخاب روش ساخت نرم‌افزار یکی از وجهه‌های کلیدی برنامه‌ریزی ساخت نرم‌افزار می‌باشد. انتخاب روش ساخت نرم‌افزار تعیین‌کننده وسعت پیش نیازهای ساخت، ترتیب آن‌ها و درجه ای از تکمیل آن پیش نیازها قبل از شروع عملیات ساخت است. برنامه‌ریزی ساخت نرم‌افزار همچنین تعیین‌کننده ترتیب ساخت و اجتماع اجزا، روند مدیریت کیفیت برنامه، تخصیص عملیات به مهندس واجد صلاحیت و غیره بر اساس نوع مدل انتخابی است.
ساخت نرم‌افزار
4665846#4
روش‌های مختلفی را باید هنگام استفاده از تست نرم‌افزار برای استفاده از نرم‌افزار به‌طور کلی استفاده کنید.
تست‌افزار
1771157#2
همه رشته‌های مهندسی برای طراحی از نرم‌افزارهای مناسب خود استفاده می‌کنند. نرم‌افزارهای مورد استفاده در طراحی معماری و طراحی صنعتی اغلب نرم‌افزارهای گرافیکی هستند. از نرم‌افزارهای سه‌بعدی که بیشتر در طراحی معماری و طراحی صنعتی استفاده می‌شوند می‌توان به "اتوکد"،" سالیدورکس"، "اینونتور"، "سالید اج" و "مکانیکال دسکتاپ" اشاره کرد. علاوه‌بر این موارد، نرم‌افزارهای گرافیکی دو بعدی مانند "فتوشاپ"، "کورل‌دراو" و "فری‌هند" نیز بسیار پر کاربرد هستند. "کتیا"، "یونیگرافیکس" و "پرو/اینجینیر" هم از بهترین نرم‌افزارهای گرافیکی مورد استفاده‌هستند که با امکان محاسبات پیچیده مهندسی مانند محاسبات تنش‌های محوری و هزاران توانمندی حرفه‌ای دیگر به طراحان کمک کرده‌اند.
طراحی به کمک رایانه
1769710#15
در انتخاب ابزارها آنقدر وقت نگذارید که کار اصلی و تیم را فراموش کنید. به عنوان مثال می‌توانید در شروع به جای بانک اطلاعاتی از فایل استفاده کنید، به جای ابزار کنترل کد گران‌قیمت از برنامه رایگان کدباز استفاده کنید. باید به هیچ ابزاری عادت نکنید و صرفاً به آن‌ها به عنوان امکانی جهت تسهیل فرایندها نگاه کنید.
توسعه نرم‌افزاری چابک
5155087#62
روش‌هایی که برای پیاده‌سازی سخت‌افزار طراحی شده‌اند معمولاً اعداد صحیح را با هزاران یا میلیون‌ها رقم اعشار نشان نمی‌دهند، به عنوان مثال در کاهش پیمانه‌ای در رمزنگاری رخ می‌دهند.
الگوریتم تقسیم
287677#1
قوی‌ترین ابزار برنامه‌نویسان برای جلوگیری از پیچیدگی‌های بیش از حد در پروژه‌ها استفاده از روش برنامه‌نویسی ماژولار (Modular) است. در این روش بخش‌های مختلف پروژه به صورت ماژول‌های مجزا قابل کامپایل هستند؛ ولی از طرفی هم عملیات کامپایل تک‌تک ماژول‌ها و چسباندن نهایی آن‌ها به یکدیگر، فرایندی زمان‌بر و پراشتباه و درد سر ساز است است.
ساخت (نرم‌افزار)
4847709#30
برای ساخت نقشه‌های نرم‌افزاری، روش‌های چیدمان متفاوت برای تهیه نقشه فضایی اساسی از مؤلفه‌ها به کار می‌روند:
نقشه نرم‌افزاری