هر موقع که صحبتی از معماری نرم افزار میشود، غالبا افراد به مدل هایی فکر میکنند که تمثیل ساختارهای تشکیل دهنده معماری هستند. افراد کمی نیز فکر میکنند که معماری نرم افزار، فرآیندهای فکری هستند که این ساختارها را پدید آورده اند و به عنوان فرآیند طراحی شناخته میشود. طراحی فعالیتی پیچیده برای انجام و موضوع پیچیده برای نوشتن در مورد آن است چرا که با در نظر گرفتن جنبههای زیاد سیستم، تصمیمات بیشماری را درگیر خود میکند. بیان کردن این جنبهها معمولا سخت است به خصوص وقتی که آنها از تجربهها و دانشی سرچشمه میگیرند که به سختی در میدان نبرد پروژههای توسعه نرم افزاری قبلی به دست آمده باشند.
با این حال فعالیت طراحی، اساس معماری نرم افزار است و همین طور احتیاج به توضیح دادن دارد. اگرچه تجربه را به سختی میتوان از طریق کتاب انتقال داد ولی چیزی که میشود به اشتراک گذاشت متدی است تا به شما کمک کند تا فرآیند طراحی را به صورت سیستماتیک انجام دهید.
این کتاب درباره فرآیند طراحی و به خصوص دربارهی یک روش طراحی به نام (Attribute-Driven Design (ADD است. ما باور داریم که این روش ابزاری قدرتمند است که به شما کمک میکند تا یک طراحی اصولی، منظم و قابل تکرار انجام دهید. در این کتاب ADD و چند مثال از استفاده ADD در دنیای آورده شده است تا نشان دهیم که چگونه طراحی معماری انجام دهیم.