معماری سيستمهای با مقياس بزرگ آزمايشگاه سيستمهای هوشمند پاييز 93 1 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab Uses of views Capturing the design decisions both early on and as enhancements are made Capturing information about the runtime enviroment for software Providing constrains on the lower-level design and implementation Providing input to the structure of the development organization Designing the system to meet the software reliability, availability, maintainability, and performance requirements Facilitating communication among the project teams Communicating software capabilities and constraints to varios developers, testers, and others آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 2 Other way for thinking Typical questions answered by views of the architecture What are subsystems or components of the software? What are responsibilities of the components? What are the interfaces provided, consumed by these components? What subsystems or components are impact by a change to the software? How much retesting is required if we change this component? When components are involved in installing this change? How are part of system to be physically distributed? How will a change impact the performance of the system What development teams are impacted by a change to this interface? How much effort is involves in the development of this functionality? آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 3 What software architecture is not Hardware, network, physical plant architecture Hardware model number, hardware configuration, routers, LAN Should not duplicate information on other sources Appropriate level of detail Low level implementation details should not included in the software architecture آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 4 Attributes of software architecture(1/2) Cultural adaptability Security Data integrity Maintainability characteristics Portability Changeability Fragility Rigidity Duplication Understandability Debugging support Testability usability آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 5 Attributes of software architecture(2/2) Operational system aspects Performance Availability Manageability Upgradeability Reliability Recoverability Response Scalability Capacity/throughput safety آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 6 Points Members of the architecture team need to constantly evaluate the software architecture to determine if it meets the desire goal with respect to these characteristics Architects must constantly prioritize and manage the trade-off between these attributes for a given projects آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 7 Why architect? Architecting simply recognized the need to focus on the bigger picture of the software design and to provide guidance to the development team designers It is a place to capture early design decitions Provide constraints on the lower level design and implementation Provide the organizational structure for the development team This goal is that a well defined architecture will produce a system that will be easier to design, develop and maintain آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 8 Uses of software architecture Training for the new team members Making modification Testers need to understand the system Ensuring architectural attributes Verification of requirements Project management Operating systems آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 9 Architectural viewpoint summary Viewpoint are built by applying the various UML diagram types to specific architecture development tasks Each viewpoint has specific modeling goals and stakeholders آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 10 IEEE 1471 viewpoints Conceptual and analysis viewpoint Logical design viewpoint Environment/physical viewpoint آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 11 UML: Unified Modeling Language آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 12 Conceptual and analysis viewpoint Viewpoint UML diagram Description Analysis focused Class Describe system entities in response to a scenario. Often refer to as a view of participating classes or VOPC Analysis interaction interaction Interaction diagram between objects for analysis Analysis overall Class Combination of all classes from all focused analysis viewpoints Context Use case Show the external system actors and the system under design آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 13 Logical design viewpoints Viewpoint UML diagram Description Component Component Component communications Component interaction Interaction Interactions among components Component state State/activity State transition/activity diagram for a component or for a set of components Layered subsystem Packages Layering and subsystem design Logical data Classes Critical data views used for integration Subsystem interface dependency Class Subsystem dependencies and interfaces آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 14 Environment/physical viewpoint Viewpoint UML diagram Description Deployment Deployment Mapping of software to hardware for distributed systems Physical data Deployment Physical view of a particular database Process Deployment Show the processes of a particular system instance Process state State Show the dynamic states of a process آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 15