1 فصل 8 - طراحي زيرسيستم ها برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony فرنوش گلشن آزمايشگاه سيستم هاي هوشمند بهار 86
فرنوش گلشن 2 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها استاندارد Fowler Package ها ابزار حياتي سيستم هاي بزرگ هستند. هرگاه Class Diagram اي در صفحه A4 نگنجيد، آن را در قالب package پياده سازي کنيد. پيشنهاد Garland استفاده از زيرسيستم به جاي package به علت محدوديت کمتر است. تقسيم بندي کلاس ها به زيرسيستم ها و مديريت وابستگي هاي بين آنها، تمرکز اصلي و کليدي معماري نرم افزار است.
فرنوش گلشن 3 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Terminology Package سيستم زيرسيستم
فرنوش گلشن 4 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Package مجموعه اي از Model Elements Classes Interfaces Components Nodes Hidden Vs. Visible Collaborations Use cases Other packages
فرنوش گلشن 5 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها سيستم “A representation of the entire scope of the development effort.” سيستم را در UML با Stereotype package نمايش مي دهيم.
فرنوش گلشن 6 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها زيرسيستم بخشي از سيستم مجموعه اي از المان هاي مرتبط بهم که مي توانند بطور مستقل در نظر گرفته شوند. واحد تخصيص واحدهاي کاري به تيم ها واحد جداول زمان بندي پروژه واحد توليد، تست، تحويل High Cohesion Low Coupling
فرنوش گلشن 7 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Layers يکي از روشهاي abstract ديدن سيستم “Layers decompose the function of a software system into clearly defined groups where functions of the higher layers depend on functions of the lower layer.” Strict Layering Relaxed layering Inheritance across layering
فرنوش گلشن 8 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها فوايد Layering افزايش قابليت Portability معماري کم حجم نمودن نرم افزار تسهيل Communication مخفي نمودن جزئيات
فرنوش گلشن 9 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها مدل کردن زيرسيستم ها، Interface ها و Layer ها زيرسيستم و layer ابزار اصلي معمار نرم افزار است. decompose کردن نرم افزار به ايجاد وابستگي مي انجامد. مديريت وابستگي ها و توليد Interface از وظايف اصلي معمار نرم افزار است. وابستگي براي Changeability, Testability ايجاد اشکال مي نمايد.
فرنوش گلشن 10 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Subsystem Interface Dependency Viewpoint
فرنوش گلشن 11 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Example1 - Subsystem Interface Dependency Viewpoint
فرنوش گلشن 12 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Example2 - Subsystem Interface Dependency Viewpoint
فرنوش گلشن 13 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها توسعه Subsystem Interface Dependency Viewpoint با Layer ها
فرنوش گلشن 14 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Subsystem Interface Dependency Viewpoint (Scenario)
فرنوش گلشن 15 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Subsystem Interface Dependency Viewpoint (Top- Level)
فرنوش گلشن 16 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Layered Subsystem Viewpoint
فرنوش گلشن 17 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Layering Semantics – Formal and Relaxed
فرنوش گلشن 18 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Layered Subsystem Viewpoint - Example
فرنوش گلشن 19 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Layered Subsystem Viewpoint - Example
فرنوش گلشن 20 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Mapping Subsystems and Layers to Implementation
فرنوش گلشن 21 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Direct Reflection in Source Code #include “foundation/date-time/date.hpp” Vs. #include “date.hpp”
فرنوش گلشن 22 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Subsystems Vs. Components Component ها اجزاي run-time هستند. Subsystem ها اجزاي built-time هستند. زيرسيستم پياده کننده Component است. هر Component يک زير سيستم متناظر دارد. Component نتيجه ساخت، نصب و اجراي يک زيرسيستم است. يک زيرسيستم مي تواند يک يا چند Component را پياده سازي کند.
فرنوش گلشن 23 آزمايشکاه سيستم هاي هوشمند ( طراحي زيرسيستم ها Subsystems Vs. Components