مهندسی نرم‌افزار
بازنویسی نرم‏افزار

To rewrite or not to rewrite, that is the questionPeople seem to have given up completely on the notion of rewriting software. This is a shame since so much software needs rewritten, but it’s understandable since so many software rewrites fail. The decision on whether or not to rewrite is a complex one, and most […]

مهندسی نرم‌افزار
Why great coders get paid far too little

نوشته زیر کمی طولانی است. اما ارزش مطالعه دارد. مطلب زیر به یک معضل بسیار مهم در تیمهای نرم‏افزاری اشاره دارد. جایگاه برنامه‏نویسان خبره. تفاوت برنامه‏نویسان خبره با سایر برنامه‏نویسان. اصل مطلب را با گزیده‏ای از توضیحاتی که خوانندگان بر آن گذاشته بودند در زیر آورده‏ام. حوصله کنید و آن را تا آخر بخوانید و […]

مهندسی نرم‌افزار
Software Architecture – The Next Generation

The study of software architecture involves the understanding of the large-scale structures of software systems. Since the mid 1980s, when the field began, software architecture has largely been concerned with engineering and understanding the interaction of well-defined components over well-defined communication paths via well-defined interfaces. However, a much different world is emerging. Systems are built […]

مهندسی نرم‌افزار
بستنی وانیلی و روش مهندسی

بخش پونتیاك شركت خودروسازی جنرال موتورز شكایتی را از یك مشتری با این مضمون دریافت كرد: «این دومین باری است كه برایتان می‌نویسم و برای این كه بار قبل پاسخی نداده‌اید، گلایه‌ای ندارم؛ چراكه موضوع از نظر من نیز احمقانه است! به هر حال، موضوع این است كه طبق یك رسم قدیمی، خانواده ما عادت […]

مهندسی نرم‌افزار
آيا طراحی فنا شده است؟ (Is Design Dead)

اين موضوع، عنوان مقاله‏ای از مارتين فاولر به سال 2004 است. مشغول بررسی مطلبی بودم که آن را مجدداً خواندم. در اصل اين مقاله همان طور که خود فاولر ذکر کرده، به بررسی نقدی که به روس اکس-پی وارد شده پرداخته است. هر چند که اين بررسی بسيار آموزنده و مفيد است، اما بخش اول […]

مهندسی نرم‌افزار
Performing use-case realizations

ماهنامه Rational Edge مقاله نسبتاً جالبی در مورد نحوه تحقق‏بخشی موارد کاربرد در شماره اخير آورده است. مهمترين بخش آن آورده Best Practice هايی در اين مورد است که عبارتند از: * Design use-case realizations in team sessions. * Communicate design ideas using interaction diagrams. * Apply design and responsibility patterns. * Code responsibility abstractions […]

مهندسی نرم‌افزار
جنبه‏گرايی (Aspect Orientation)

Aspect Oriented شايد يکی از قشنگترين بحثهای نسبتاً جديدی است که در حوزه مهندسی نرم‏افزار ارائه شده است. هر چند نمی‏توان در اينجا خيلی درباره آن صحبت کرد، ولی ذکر مثال ساده‏ای از آن خالی از لطف نيست. اگر خيلی ساده بخواهم آن را توضيح دهم شايد بهتر است بگويم که در دنيای شیءگرايی، اشيا […]