طراحی نرم‌افزار
طراحی نرم‌افزار فرایند حل مسئله و برنامه‌ریزی در راستای ساختن یک نرم‌افزار است. طراحی نرم‌افزار فرایندی است که توسط آن یک عامل، مشخصه ای از نرم‌افزار را طراحی می‌کند که هدف آن، به انجام رساندن اهداف از پیش تعیین شده با استفاده از مجموعه ای از اجزای اولیه و با توجه به محدودیت‌ها است. طراحی نرم‌افزار می‌تواند به عنوان "تمام فعالیت‌های مربوط به مفهوم سازی، طراحی، اجرا، راه اندازی و در نهایت اصلاح سیستم‌های پیچیده" یا "فعالیت‌های مشخص مورد نیاز و قبل از برنامه‌نویسی و … [در] یک پروسه مهندسی نرم‌افزار. طراحی نرم‌افزار معمولاً شامل حل مسئله و برنامه‌ریزی یک راه حل نرم‌افزاری است که شامل طراحی جزئی اجزا و طراحی الگوریتم و طراحی معماری سطح بالا می‌باشد."
فرانک گری
نکته بسیار جالب در روند طراحی‌گری در استفاده از رایانه در این روند است. بر خلاف سایر معماران که از نرم‌افزارهای معمول دوبعدی و سه بعدی مانند CAD و ۳DsMAX برای کارهای خود استفاده می‌کنندگری از نرم‌افزار کاتیا که یک نرم‌افزار مربوط به طراحی جامدات است استفاده کرد. این نرم‌افزار بیشتر برای طراحی خودرو و هواپیما و محاسبات پیچیده بدنه‌های مختلف کاربرد دارد و هماهنگی بسیار عالی با سایر نرم‌افزارها دارد. کاتیا سطوح را تحلیل و بر اساس محدودیت سازه‌ای، کارکردی و اقتصادی پروژه آن را تصحیح می‌کرد. داده‌های عددی که به این ترتیب بدست می‌آمدند بار دیگر بر روی یک مدل پیاده می‌شدند تا حجمها کنترل شوند و در صورت لزوم تغییر کنند. این رفت و برگشت بین مدل‌های مطالعاتی و داده‌های دیجیتال بنیاد شکلی پروژه را به وجود می‌آورند. سپس از داده‌های کامپیوتر برای تهیه پلانهای ساخت موزه استفاده شد.