بدلیل تفاوت ذاتی بین نرم افزار و سخت افزار پیچیدگی خاصی در ابعاد مختلف از جمله تعریف نرم افزار، طراحی و پیادهسازی، تست و نگهداری آن وجود دارد که:
با پیچیدگی سیستمهای طبیعی و محصولات فیزیکی ساخت است بشر متفاوت است.
یک خاصیت ذاتی سیستمهای نرم افزاری بزرگ
بنابراین نمیتوان این پیچیدگی را از بین برد بلکه باید آنرا کنترل نمود.
انواع پیچیدگی:
intelleictually intractivility (تمردپذیری و اجازه پذیرفتن برای آشفتگی):
پیچیدگی بطور ذاتی در ساخت سیستم وجود دارد، پیچیدگی ممکن است از بزرگی سیستم ، یا از واسینگیها، بدعتها و پیادهسازی تکنولوژی و . . . بوجود آید.
Management intractivility (تمرد پذیری مدیریتی):
پیچیدگی در سازمان و فرآیند بکار گرفته شده در ساخت سیستم، ممکن است از اندازة پروژه (تعداد افردی که در تمام جهات ساخت سیستم درگیر هستند)، وابستگیهای پروژه، فاصله جغرافیایی سیستمها و . . . بعبارتی عوامل تولید کننده نرم افزار غیر قابل کنترل هستند چون سازمان، افراد و فرآیند هستند و ماشین نیستند که کنترل شوند و سرمایههای اولیه برای تولید نرم افزار الزاماً ماشین، سرمایه و پول نیست بلکه یکسری عوامل انسانی متغیری هستند که تحت مدیریت قرار میگیرند.
راهکارهای معماری
حق مشکل I : معماری نرم افزری میبایست سیستم را قابل هضم و بطور هوشمند قابل مدیریت بوسیله مهیا کردن تجریدی که بدون نیاز به جزئیات، مهیا کننده مفاهیم ساده و یکسان باشند تجزیه سیستم و . . .
حل مشکل IF : معماری نرم افزاری نمیبایست توسعه سیستم را آسانتر برای مدیریت بوسیله ارتقای ارتباطات، مهیا کرن بهتر با جدا کردن کار با کاهش زیاد وابستگیهای قابل مدیریت و غیره.
اما مسائل جدید پیدا شده مرتبط با تجزیه سیستم برای حل پیچیدگی بایست توسط معماری بررسی شوند.
چگونه سیستم را به قطعات بشکنیم، یک تجزیه خوب اصل از بین رفتن کوپلاژ بین مؤلفهها (یا قطعات) را بوسیله واسطهای واضح و توانمند، ساده کردن بوسیله تقسیم به قطعات منتقل قابل استدلال که دوباره میتوانند جدا شوند، ارضا میکند.
آیا تمام قطعات مورد نیاز را داریم ساختار میبایست وظیفه مندی و یا سرویسهای مورد نیاز سیستم را پشتیبانی کند بنابراین رفتار دینامیکی سیستم زمان طراحی معماری میبایست بحساب آید. همینطور میبایست زیربنای ضروری برای پشتیبانی این سرویسها را داشته باشیم.
آیا این قطعات با هم بدرسیت کار میکنند؟ این موضوع واسط و رابطههای بین قطعات میباشد. اما تطابق خوبی که جامعیت سیستم را مدیریت می کند و همچنین با شرایط سیستم کار کند زمانیکه این قطعات ترکیب میشود خصوصیات خوب داشته باشند. مورد لزوم است.
فایل ورد 53 ص
دانلود مقاله پیچیدگی در نرم افزار