Professional Documents
Culture Documents
Software Architecture - Case Study 3 Refining and Re-Factoring Architecture - Story of Mccombbs Call Centre-Analysis Ii
Software Architecture - Case Study 3 Refining and Re-Factoring Architecture - Story of Mccombbs Call Centre-Analysis Ii
Logical View: - addresses functional requirements - represents the abstractions of design model and identies major design packages, subsystems, and classes - please refer the gure - n-tier architecture; three tiers are shown: 1. Web-tier II. the application tier III. Data tier
Logical View
Process View: - XML Parsing - Communication of transaction results and data replication
XML Parsing
Implementation View: - organization of static artifacts such as components, executables, data les - describes packages and layers to represent development environment - issues addressed: 1. ease of development 2. management of software assets 3. reuse of components
Implementation View
Deployment View: - describes different servers used to place components as mentioned in the implementation view - web server, application server, and database server are replicated to keep 24x7 availability of the system
Deployment View
Prepare for Evaluation: - Three activities to be performed: 1. identify major functional and non-functional requirements, relationship between them 2. determine scope of evaluation 3. dene priorities for each of the architectural drivers
Requirements Template
Architecture describes what is in your system An architecture is an abstract depiction of your system. What's architectural should be critical for reasoning about critical requirements. An architectural specication needs to be graspable. An architecture is constraining.
Why Evaluate an Architecture? cost to x an error found during requirements or early design phases is orders of magnitudes less to correct than the same error found during testing. Architecture is the product of the early design phase, and its effect on the system and the project is profound
-
-An unsuitable architecture will precipitate disaster on a project. - Architecture also determines the structure of the project: conguration control libraries, schedules and budgets, performance goals, team structure, documentation organization, and testing and maintenance activities all are organized around the architecture. - Architecture evaluation is a less costly way to avoid disaster.
Design Consideration 1: Caching - caching and cach refreshing services only for business rule objects ; static data at startup and other points in time Remedy: - at various servers : proxy, web, application, data, middleware, - application level: extended to user transaction, common services and some backend data Views Effected : Logical and deployment -
Design Consideration 2: Minimize Network Trafc - systems sends an acknowledgement for every message - there is broadcasting of session objects to all web servers Remedy: - optimize on message acknowledgement: consolidate acknowledgements, compress, transmit at a pre-determined frequency - trade-off in terms of low network trafc but increased time for client and server (consolidation and copmpression/decompression algorithms) - challenge : to maintain performance with increasing number of requests or users without sacricing reliability - object broadcasting: designate some servers - interdependent components deployed in close proximity
Design Consideration 3: Minimizing XML Parsing - currently parsing at both ends - very inefcient and hampers performance - Remedy: - at the interface layer, can be done only once at the server - alternative like messaging to be used View affected : logical
Design Consideration 4: Handling High Volume of Data - result of querying - asynchronous mechanism for posting high volume of data - pagination services Views affected: logical
Weight for QAi x Weighted average rating for i= 1st QA implementing QA design consideration
Anti-pattern: - projects still suffer from repeated mistakes of fundamental nature An anti-pattern: ..is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences. - starting point: existing problematic solution - generates negative consequences - re-factored solution