Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

SOFTWARE ARCHITECTURE - CASE STUDY 3 Rening 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

Communication of transaction results and data replication

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

Weights Table for Architectural Elements

Evaluating Performance: - various design considerations - something to be architectural: It must be a


component, or a relationship between components, or a property (of components or relationships) that needs to be externally visible in order to reason about the ability of the system to meet its quality requirements or to support decomposition of the system into independently implementable pieces.

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

Reect the Evaluation: - Measure of Architectural Quality:


i= nth Quality attribute

Weight for QAi x Weighted average rating for i= 1st QA implementing QA design consideration

- range -1 (worst t) to +1(best t)

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

You might also like