تبليغاتX
پویا بلاگ
 Interface Invariance Principle
اگر در سیستمی Interface ی را تعریف کردید و آن را توسط کلاسهایی پیاده سازی کردید دیگر هیچگاه حق تغییر این Interface را ندارید.
اگر نیاز است قابلیت جدیدی به این  Interface بیفزایید آنرا به عنوان یک Interface جدید با نام همان Interface قبلی بعلاوه شماره ورژن تان ایجاد کنید.عدم رعایت این اصل به عدم سازگاری نسخ مختلف Component ها و مخدوش شدن بین  آنها  منجر می شود. و از این بدتر منجر به پیچیده و دچار اشکال شدن پروسه نگهداری  و رفع اشکال نسخ قدیمی تر می شود.
|+| نوشته شده توسط پویا در یکشنبه بیست و نهم اردیبهشت 1387 و ساعت 15:18  
 مجموعه عوامل تاثیر گذار بر معماری

در مطلب قبل چندي از پارامتر هاي موثر بر معماري را مطرح كردم كه اينجا در ادامه به توضيح كوتاهي در باره آنها مي پردازم:

مجموعه عوامل تاثیر گذار بر معماری:

معماری متاثر از StakeHolder  های سیستم است:

افراد و  سازمانهای متعددی علاقه مند و ذینفع در توسعه یک سیستم نرم افزاری خاص هستند.مشتریان، کاربران نهایی، توسعه دهندگان،مدیران پروژه ،تیم نگهداری و حتی تیم بازاریابی  و فروش سیستم از مجموعه ذینفعان سیستم هستند.ذینفعان مختلف هریک نگران موارد مختلف و متفاوتی برای براورده شدن توسط نرم افزار هستند.کار کردن با سخت افزاری خاص،هزینه توسعه پایین،زمان کوتاه برای بازاریابی،ارائه مجموعه امکانات و عملکردهای خاص و قابلیت نگهداری راحت و...از جمله خواسته های ذینفعان متفاوت است.

تصویر:تاثیر خواسته های ذیفعان بر معمار و معماری

معماري2-1

داشتن یک سیستم خوب و قابل قبول شامل خصوصیاتی همچون
 
performance, reliability, availability, platform compatibility, memory utilization, network usage, security, modifiability, usability  و امکان ارتباط با سایر نرم افزارها و سیستمها است این خصوصیات روی همرفته نیاز های معماری یک سیستم را مشخص می کند، هریک از این خصوصیات بر دیدگاه زیر مجموعه ای از ذینفعان تاثیر گذار است که موجب اظهار نظر آنان در باره معماری بر اساس خواسته های مورد نظرشان خواهد شد.

اهداف و خواسته های متفاوت ذینفعان گاها با هم در  تناقض هستند.این خصوصیات باید در مستندی مانند مستند نیازمندیها لیست شده و در باره هریک بحث و بررسی صورت گیرد،اما واقعیت آن است که مستند نیازمندیهایی که این شرایط رادارا باشد به سختی یافت می شود ،و وظیفه معمار آن است که بتواند این خواسته ها و ایجاد حد مطلوب ویژگیهای کیفی از میان تناقض ها ی موجود بین آن شاخص ها را مدیریت کند.

معماری متاثر از سازمان توسعه دهنده (DEVELOPING ORGANIZATION) است :

علاوه بر اهداف سازمانی که تو سط مستند نیازمندیهای سیستم بیان میشوند معماری متاثر از ساختار و ماهیت سازمان توسعه دهنده سیستم است.برای مثال اگر سازمان تیمی از برنامه نویسان Client-Server را دارد که بیکار هستند ،یک معماری Client-Server معماری مورد تایید مدیریت سازمان خواهد بود در غیر این صورت همین معماری ممکن است رد شود.مهارت کارکنان سازمان ،بودجه و زمان توسعه از مجموعه عوامل تاثیر گذار در معماری هستند.

تاثیرات ناشی از سازمان توسعه دهنده بر روی معماری سه نوع است.

کسب و کار فوری و کوتاه مدت(Immediate Business)

ممکن است سازمان قصد سرمایه گذاری فوری برروی برخی از اجزا از پیش تهیه شده را داشته باشد  برای مثال یک معماری موجود و اجزا تهیه شده بر اساس آن.

کسب و کار دراز مدت(Long-Term Business)

یک سازمان ممکن است قصد سرمایه گزاری بلند مدت در ساختن یک فرا ساختار برای دستیابی به اهداف استراتژیک بلند مدت خود را داشته باشد و به سیستم های در حال توسعه به عنوان یکی از اجزا توسعه یافته بر اساس این فرا ساختار بنگرد.

ساختار سازمانی(Organizational Structure)

برای مثال گاهی ممکن است لازم باشد بر اساس تجربیات سازمان و سازمانهای دیگر بخشی از زیر سیستمها برای توسعه به سایر سازمانها داده شوند این موضوع بر چگونگی

شکستن سیستم به زیر سیستمها و نحوه ارتباط آنها تاثیر گذار است.

 

معماری متاثر از محیط های فنی (Technical Environment)  است

محیطهای فنی و تکنیکهای نرم افزاری  جاری در زمان طراحی معماری بر طراحی آن متاثر هستند برای مثال امروزه یکی از محیطهای فنی برای ایجاد سیستمها محیط های تحت وب هستند.

 

 جمع بندی عوامل تاثیر گذاری

عوامل تاثیر گذار برروی معماری خواستگاههای متفاوتی دارند بعضی از آنها مفهومی و ضمنی هستند ولی برخی از آنها در تضاد هستند.

معمار نیازمند آن است که ماهیت و اولویت محدودیتهای پروژه را هر چه زود تر مشخص کند برای این کار معمار باید با ذینفعان در تعامل بوده و در باره خواسته های آنان با ایشان مذاکره کند تا محدودیت هارا بشناسد و ذینفعان را از تناقضها آگاه سازد.

معمار نیازمند تواناییهای بجز توانایی های فنی نیز هست برای مثال توجیه ذینفعان برای انتخاب بین خواسته های متناقض و توجیه آنان به منظور عدم انتظار برای برآورده شدن تمام خواسته هایشان نیازمند مذاکره و مباحثه با آنان است،لذا برای یک معمار مهارت دیپلماسی،مذاکره و فن و مهارت ارتباط   با دیگران واجب است.

 

تصویر عوامل تاثیر گذار بر معماری

معماري 2-2

پ ن :

بر اساس قانون دوم نيوتن واقعيت آن است كه همان طور كه معماري از عوامل ياد شده متاثر است خود معماری نيز بر اين عوامل تاثير گذار است اين چرخه تاثير عوامل محيطي بر معماری و تاثير متقابل معماری بر آنها را Business Architecture Cycle  يا به اختصار ABC   مي نامند

|+| نوشته شده توسط پویا در یکشنبه بیست و دوم اردیبهشت 1387 و ساعت 0:3  
 آرامش،زندگي

چند وقتي بود  كه بسيار بد مي خوابيدم،آشفته و پريشان و ميانه شب ونزديك به سحر آشفته از خواب مي پريدم تا اينكه دو برنامه از پيش برنامه ريزي نشده  برايم  پيش آمدند كه بخش عظيمي از اين آشفتگي هاي شبانه و اضطرابهاي روزانه را كاهش دادند،اولي به لطف همسرم بود و دومي به لطف برنامه ه اي مشترك با همسرم  و تني چند از دوستانمان.اولي را كه همسر گرانقدر  مسبب آن بود خربد كارتون بابا لنگ دراز(جودي ابوت) بود،كه طي حركتي انقلابي بنده و ايشان طي سه شب از سر شب تا پاسي از نيمه شب تمامي 40 قسمت اين كارتون را از ابتدا تا به انتها ديديم،بدون تحريف و مميزي و اصلاح،فضاي لطيف و انساني داستان ،نبود خشونت و آن حس نوستال‍‍ژيك و بازژشت به دوران كودكي و نوجواني  چنان آرامشي را برايم حاصل كرد كه شايد بتوانم به جرات بگويم هيچ كتاب و فيلم و نوشته و نمايشي طي 2-3  سال اخير اين كار را نكرده بود ،دومين برنامه هم برنامه باغ لاله گچسر بود كه زمين رنگارنگش هر آنچه آرامش بود را در لاله ها و  شگوفه هايش جمع كرده بود.عكسهاي زير از همين باغ لاله هستند كه همان روز جمعه گرفتيم-من و خانم همسر.

 

لاله 1

 

لاله 2

 

لاله 4

 

لاله5

 

لاله 6

پ ن:

هرچند هنوز بخش زيادي از كتابهاي فني را كه برنامه مطالعه شان را داشتم نخوانده ام و از برنامه ام عقبم ولي اين 4 روز را به كل از آنها فارغ بودم و حس ميكنم بزرگترين لطفي را كه ميشد به خودم كردم.

واقعا گاهي زندگي به همان معناي سابقش دوست داشتني تر و گاها براي توانايي در ادامه روش نوينش ناگزير است

|+| نوشته شده توسط پویا در سه شنبه هفدهم اردیبهشت 1387 و ساعت 17:47  
 معماری نرم افزار

معماری نرم افزار

همیشه درگیر مفهوم معماری بودم هرچه می خواندم نهایتا به تکنولوژی و پلت فرمهای توسعه و راه حل های تکنیکی بر می گشت ،این روزها درگیر خواندن کتابی هستم با عنوان
Software Architecture in Practice - Second Edition-By Len Bass, Paul Clements, Rick Kazman
که فارغ از تکنولوژی به بحث در باره فلسفه معماری نرم افزار پرداخته است و تازه دلیل بسیاری از چالشهایی را که تا امروز با آنها درگیر بوده ام را می فهمم ،از این پست تا چند پست دیگر گاها گزیده هایی از این کتاب را اینجا مطرح خواهم کرد ، شاید کمکی باشد برای حل همان چالشهایی که من با آنها درگیر بودم از تعریف معماری گرفته تا عوامل موثر بر آن،خواندن این کتاب را به همه دوستان پیشنهاد می کنم .

تعریف

معماری در واقع ساختار سیستم های نرم افزاری بزرگ است.دید معماری یک سسیستم یک دید انتزاعی بدور از جزئیات پیاده سازی و آلگوریتمها، ساختار دادهها و دیدی از روابط بین اجزا سیستم به صورت Black Box   است.

معماری اولین گام برای طراحی یک سیستم نرم افزاری با خصوصیات مطلوب از پیش تعریف شده است.می توان گفت:

معماری نرم افزاری یک برنامه ساختار یا ساختارهای سیستم است که اجزائ نرم افزار همراه با خصوصیات خارجی و قابل مشاهده و روابط بین این اجزا را در بر می گیرد.

معماری از کجا می آید؟

معماری حاصل مجموعه ای از تصمیمات کسب و کار(Business)  و تصمیمات فنی (Technical) است. در عمل عوامل تاثیر گذار زیادی هنگام کار طراحی یک معماری وجود دارند، این عوامل متاثر از محیطی هستند که معماری باید درآن و برای آن پیاده شود.برای مثال مجموعه تصمیمات طراحی یک معمار برای یک نرم فزار بلادرنگ(Real-Time) که Deadline  های آن بسیار سخت گیرانه هستند متفاوت از مجموعه تصمیمات معماری برای همان سیستم خواهد بود زمانی که آن سخت گیری برای Deadline  های آن وجود ندارد یا اینکه معماری ایجادشده در حال حاضر برای سیستمی با مجموعه نیازمندی های خاص،سخت افزارهای خاص،و تیم پشتیبانی مشخص و منابع نیروی انسانی مشخص متفاوت از معماری طراحی شده برای همین سیستم در 5 سال پیش خواهد بود.

از مهم ترین پارامترهای تاثیر گذار بر معماری می توان به عوامل زیر اشاره کرد:

معماری متاثر از Stakeholder  های سیستم است

معماری متاثر از سازمان توسعه دهنده (DEVELOPING ORGANIZATION) است

معماری متاثر از محیط های فنی (Technical Environment) است

پر واضح است که خود معمار و تجربیات او یا حتی آخرین کتابی که در باره معماری خوانده است به شدت برروی معماری سیستم تاثیر گذار است.گاها پروژهها محلی برای به چاالش کشیدن آموخته های جدید معمار و کسب تجربه است (در این جور مواقع باید خدا به داد پروژه و صاحب آن برسد که نقش آن موجود آزمایشگاهی بیچاره را بازی میکنند)

 

|+| نوشته شده توسط پویا در یکشنبه پانزدهم اردیبهشت 1387 و ساعت 11:33  
 شروع
  سلام

بعد از دیر زمانی چانه زنی با خودم تنبلی را کنار گذاشتم و برای به اشتراک گذاشتن برخی روزمره های بحث و اندیشه برانگیز و آموخته ها و چالشهای نرم افزاری ام   با دوستانم -چه آنها که هم اکنون می شناسمشان و چه آنان که به واسطه این وبلاگ خواهم شناخت شان-این وبلاگ را ایجاد کردم .امیدوارم که بتوانم هرروز با یاریتان بیشتر از دیروز چیزی را بیاموزم.

|+| نوشته شده توسط پویا در دوشنبه نهم اردیبهشت 1387 و ساعت 10:19