Architecture Design PV167 Project in Object-oriented Design of Information Systems B. Bühnová 1 System Modularization Architecture Design/Part 1 2 Modularization of Software  Motivation  Separation of concerns  Break-down of system complexity  Reuse  Architecture design  UMLPackage diagram (Analysis)  UMLComponent diagram (Design/Implementation)  UMLDeployment diagram (Realisation) 3 Implementation-oriented Modularization  Motivation  Reuse  Architectural tactics  Separation of concerns  Implementation  Service-oriented approach  Data passing, i.e. we can no longer rely on shared knowledge  Challenges  Shared knowledge that is hard to pass along  Crosscutting concerns 4 Components and Interfaces  Provided interfaces  Required interfaces 5 Architectural Patterns and Tactics Architecture Design/Part 2 6 Architectural Patterns  The Model-View-Controller (MVC) pattern  Separates presentationand interaction from the system data.  The Layered architecture pattern  System organised into layers with interfaces to other layers.  The Repository architecture pattern  Interaction through a central repository.  The Client-server architecture pattern  Distributionof data and processing across stand-alone serviceproviding servers and clients calling the services.  The Pipe and filter architecture pattern  Functional transformations process their inputs to outputs. 7 Architectural Tactics for Dependability  Redundancy  Keep more than 1 version of a critical component available so that if one fails then a backup is available.  E.g. switch to backup servers automatically if failure occurs.  Diversity  Provide the same functionality in different ways so that they will not fail in the same way.  E.g. different servers may be implemented using different operating systems (e.g. Windows and Linux).  However, adding diversity and redundancy adds complexity and this can increase the chances of error. 8 N-version programming pattern  Multiple versions of a software system carry out computations at the same time.  The results are compared using a voting system and the majority result is taken to be the correct result. Which of the tactics are involved here? 9 Architectural Tactics for Security  Use redundancy and diversity to reduce risk  Keep multiple copies of data and use diverse infrastructure so that an infrastructure vulnerability cannot be the single point of failure.  Compartmentalize your assets  Organize the system so that assets are in separate areas and users only have access to the information that they need rather than all system information.  Design for recoverability  Design the system to simplify recoverability after a successful attack. Chapter 14 Security Engineering 10 Architectural Tactics for Performance  Introduce concurrency  If requests can be processed in parallel, the blocked time can be reduced.  Maintain multiple copies of either data or computations  The purpose of replicas is to reduce the contention that would occur if all computations took place on a central server.  Increase available resources  Faster processors, additional processors, additional memory, and faster networks all have the potential for reducing latency. 11 Architectural Quality and its Prediction Architecture Design/Part 3 12 Quality prediction  Palladio Component Model  Quality prediction and design simulation framework 13