شناسه پست: 21153
بازدید: 397

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