لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 71
به نام خدا
پیچیدگی در نرم افزار
بدلیل تفاوت ذاتی بین نرم افزار و سخت افزار پیچیدگی خاصی در ابعاد مختلف از جمله تعریف نرم افزار، طراحی و پیادهسازی، تست و نگهداری آن وجود دارد که:
با پیچیدگی سیستمهای طبیعی و محصولات فیزیکی ساخت است بشر متفاوت است.
یک خاصیت ذاتی سیستمهای نرم افزاری بزرگ
بنابراین نمیتوان این پیچیدگی را از بین برد بلکه باید آنرا کنترل نمود.
انواع پیچیدگی:
intelleictually intractivility (تمردپذیری و اجازه پذیرفتن برای آشفتگی):
پیچیدگی بطور ذاتی در ساخت سیستم وجود دارد، پیچیدگی ممکن است از بزرگی سیستم ، یا از واسینگیها، بدعتها و پیادهسازی تکنولوژی و . . . بوجود آید.
Management intractivility (تمرد پذیری مدیریتی):
پیچیدگی در سازمان و فرآیند بکار گرفته شده در ساخت سیستم، ممکن است از اندازة پروژه (تعداد افردی که در تمام جهات ساخت سیستم درگیر هستند)، وابستگیهای پروژه، فاصله جغرافیایی سیستمها و . . . بعبارتی عوامل تولید کننده نرم افزار غیر قابل کنترل هستند چون سازمان، افراد و فرآیند هستند و ماشین نیستند که کنترل شوند و سرمایههای اولیه برای تولید نرم افزار الزاماً ماشین، سرمایه و پول نیست بلکه یکسری عوامل انسانی متغیری هستند که تحت مدیریت قرار میگیرند.
راهکارهای معماری
حق مشکل I : معماری نرم افزری میبایست سیستم را قابل هضم و بطور هوشمند قابل مدیریت بوسیله مهیا کردن تجریدی که بدون نیاز به جزئیات، مهیا کننده مفاهیم ساده و یکسان باشند تجزیه سیستم و . . .
حل مشکل IF : معماری نرم افزاری نمیبایست توسعه سیستم را آسانتر برای مدیریت بوسیله ارتقای ارتباطات، مهیا کرن بهتر با جدا کردن کار با کاهش زیاد وابستگیهای قابل مدیریت و غیره.
اما مسائل جدید پیدا شده مرتبط با تجزیه سیستم برای حل پیچیدگی بایست توسط معماری بررسی شوند.
چگونه سیستم را به قطعات بشکنیم، یک تجزیه خوب اصل از بین رفتن کوپلاژ بین مؤلفهها (یا قطعات) را بوسیله واسطهای واضح و توانمند، ساده کردن بوسیله تقسیم به قطعات منتقل قابل استدلال که دوباره میتوانند جدا شوند، ارضا میکند.
آیا تمام قطعات مورد نیاز را داریم ساختار میبایست وظیفه مندی و یا سرویسهای مورد نیاز سیستم را پشتیبانی کند بنابراین رفتار دینامیکی سیستم زمان طراحی معماری میبایست بحساب آید. همینطور میبایست زیربنای ضروری برای پشتیبانی این سرویسها را داشته باشیم.
آیا این قطعات با هم بدرسیت کار میکنند؟ این موضوع واسط و رابطههای بین قطعات میباشد. اما تطابق خوبی که جامعیت سیستم را مدیریت می کند و همچنین با شرایط سیستم کار کند زمانیکه این قطعات ترکیب میشود خصوصیات خوب داشته باشند. مورد لزوم است.
شکل زیر وسعت تصمیم و تأثیرات مستقیم را معین میکند. بخشیی از تصمیمات در حوزه محدود به توسعههای محلی (Local) است و اثری روی معماری ندارد و در سطح تک تک مؤلفهها است و از نوع غیر معماری میباشد.
بخش دیگر Local نیست ولی تأثیر زیادی ندارد. از خود تقسیمبندی سیستماتیک و Local میباشد. خود سیستماتیک شامل Highimpaet میباشد که ما بدنبال Highimpnet میباشیم (اولویت بالا برای ما مهم است).
تأثیر زیاد
(اولویت بالا، مهم برای حرفهها
تمرکز تصمیمات معماری
تأثیر کم
غیرمعماری سیستماتیک
بطور کلی غیر معماری( ممکن است مجموعهای از سیایت و خطوط راهبردی معماری نیاز باشد)
غیرمعماری سیستماتیک
و بدلیل اینکه تصمیمات معماری روی جنبههای مختلفی از جمله 1- Sysstempriority (قراردادهای اولویت: مثلاً آیا Perdormance اولویت بیشتری دارد یا Security):
2- تجزیه و ترکیب سیستم 3- مسائل مربوط به راههای میامنبر 4- جامعیت سیم، . . . اثر میگذارد، نباید سیستمهای عاری از لایههای مختلف تجرید رخ دهد. که متمرکز اصلی بر روی عناصر ساختاری سیستم را خصوصیات قابل روئیت از بیرون و روابط ما بین آنها میباشد.
مدل لایهبندی و تصمیمات معماری:
به تا سطح تصمیم معماری نرم افزار وجود دارد.
1- سطح بالاتر از معماری (Meta- Architecture): dictionary معماری میباشد مجموعهای از تصمیمات سطح بالا است که ساختاری، تجزیه و مجموعهای از تصمیمات سطح بالا را شامل میشود. دورنمای معماری ،
تحقیق درباره پیچیدگی در نرم افزار