1 / 26

Analysis of Architecture

Analysis of Architecture. As part of the activities in coming up with a good software architecture, we should analyze the architecture that we have designed and modeled.

aselders
Download Presentation

Analysis of Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analysis of Architecture • As part of the activities in coming up with a good software architecture, we should analyze the architecture that we have designed and modeled. Architectural analysis is the activity of discovering(and organizing/assessing) important system properties using the system’s architectural models. my addition

  2. Dimensions of (or things to consider for) Architectural Analysis • Goals of analysis • Scope of analysis • Concerns to be analyzed • Models and levels of formality • Types of analysis • Levels of automating the analysis • Stakeholders interested in analysis • Analysis techniques

  3. Goals of Analysis • 4 categories of goals for analysis of the architecture: • Completeness • Consistency • Compatibility • Correctness • Cohesiveness • Coupling I would add these 2 more

  4. 1. Architectural Completeness • Completeness with respect to externalconcerns: • Checking the architecture against the requirements • Functional • Non-functional • Difficult to do when the system is large due to massive amount of material • Difficult to do when pieces are specified and designed incrementally (choosing the right moment for assessment) • Completeness with respect to internal concerns: • Checking to see if all the system’s elements are captured • Components • Connectors • Interface and protocols • Dependencies • Interactions e.g. agile system configuration

  5. 2. Architectural Consistency • Internal propertyof the architecture which states that the architectural elements do not contradict each other • Name inconsistencies • May be difficult to catch in incremental design and distributed design when not everything is there and can change • Interface inconsistencies • Watch for polymorphism and overloading versus real problem • Behavioral inconsistencies • Watch for typing such as “difference” may represent arithmetic subtraction of two integers versus number of mismatched characters in two strings (semantic confusion) • Interaction Inconsistencies • These can occur when the protocol is not clear such as “sequence of interaction” between two entities especially in a stateful situation. • Refinement Inconsistencies • This may occur when moving from high level to lower level design and loosing something, or adding something extra, or violate some constraint ---- especially if you use multiple - views

  6. 3. Architectural Compatibility • Compatibility is an external propertyof the model to ensure that the architecture adheres to: • Architecture & Design Standard • Constraints of the adopted Architecture style • Constraints imposed by the reference architecture (reference architecture is an architecture that is applicable to multiple related systems within an application with explicitly defined points of variation) This may be more difficult than it appears because the external standards, style, and reference architecture may all be unclear or not completely defined,

  7. 4. Architectural Correctness • Correctness is an external propertyof the model that addresses if the external system specification is properly realized in the architecture. (includes completeness?) Have we “properly” evolved from the specification to the architectural model ? This is especially difficult to analyze when we use off-the-shelf components which are not perfect match and needs some “tailoring” work.

  8. Cohesion and Coupling • Two additional characteristics of the architecture that we like to be able to assess as “goals” of analyzing architecture. • Cohesion : does the architectural components fit together cleanly with minimal overlap and little extra elements? (component level cohesion) • Coupling: does the architectural components and connectors have excessive interactions? (component level coupling)

  9. Scope of Analysis • Architecture may be analyzed at differentlevels or from different perspectives. Scope of analysis may address: • Component and Connector level analysis • Subsystem and System level analysis • Data exchanges in the System or Subsystem • Different levels of Abstraction • Comparison of two or more Architectures

  10. Component and Connector Level • Each component and each connector needs to be analyzed • Does it provide the specified service • Does it do it correctly (in the intended manner) • The composition of components and connectors • Does the composition provide the intended services • Does the composition work correctly

  11. Subsystem and System Level • At the subsystem and system level, we are analyzing the compositions of components and connectors to form a subsystem and then to form a complete system. • Pair-wise conformance of 2 interacting components in terms of their interface, interaction and behavior is analyzed within the subsystem. • Assessing over-all properties as subsystems are incrementally built and the over-all system continue to evolve • Interesting situation is where off-the-shelf components are configured where there may be need for “additional” functionalities but causing potential degradation in some less acute property (e.g. to improve security, we bring in security guarding components such as extra “walls” and encryption --- which may affect overall execution performance or system maintenance) • System scalability is a critical property as larger and larger heterogeneous subsystems are configured together

  12. Data Exchange Level • In most large or distributed systems, there is large amount of data processed and exchanged (e.g. web-based applications). It is important that data is properly modeled: • The structure of data • Data typing • Data organization • Flow of the data through the system • Point-point • Client-server • Event based broadcast • etc • Properties of data exchanges • Performance • Security • Stateful vs stateless • etc

  13. Different Abstraction Levels • As we refine the architecture and the model, it is important that we ensure the compatibility of the models at different levels. That is the refined models stay consistent with the higher levels. This is especially difficult if different components and subsystems are modeled to different levels of refinement. Component A Component A refinement Component C Component C Component B Component B

  14. Comparing Architectures • We are interested in comparing and ensuring that an “evolving” system has : • not altered from the base architecture or the reference architecture • Stayed within the bounds of some architectural / design standard (looking for both “drift” and “erosion”) • In comparing architectures, we are looking at: • Composition of components and connectors • Interactions among components and connectors • Characteristics of data exchange

  15. Architectural Analysis “Concerns” • In analyzing architectures we are interested in several “key concerns”: • Structural Characteristics (static) • Connectivityof components and connectors • Lower level components contained into higher level composite component • Points of network distribution and concurrency paths • Behavioral Characteristics (static) • Individual component and connector functionalities • Composite and collaborative functionalities (especially when composed with off-the-shelf components or connectors) • Interaction Characteristics (dynamic) • Number and type of connectors and protocols among components and connectors • Properties such as timing, synchronicity, buffering, etc. • Non-functional Characteristics (static & dynamic) • Properties that cut across the whole system or subsystems such as security, performance, quality, etc. heavy overlap

  16. Levels of Formality & Analysis • The level of formality in analysis requires certain level of formality in the architectural models which we use in the analysis: • Informal (box-line) models allow only high level analysis but by a broad sector of stakeholders. Often times the analysis is performed manually with little automation. • Semi-formal models, such as UML, allows a deeper level ofanalysis by those trained to understand that semi-formal model. The amount of training required is not formidable, thus allowing more stakeholders to participate in the analysis. Also allows partial automation of the analysis activity • Formal models , such as Wright or Acme, requires understanding of the formal syntax and semantics used in the model; thus it restricts the number of stakeholders who can participate in the analysis, but does allow better automation and deeper analysis.

  17. Types of Analysis • Static Analysis • Analyzing the architectural model without executing any part of the model • Concerns analyzed are mostly structural, with little other kinds of concerns analyzed • Dynamic Analysis • Involves executing or simulating the execution of the architectural model • Major concerns analyzed are behavior and interaction properties, with some non-functional properties • Scenario-Based or Work-flow Based Analysis • Very good for some specific non-functional concern that cuts across the whole system.

  18. Levels of Automation • A more detailed and formal architectural model is more amenable to automation • A more well “defined” and “quantifiable” property is the more it may be assessed automatically • 3 Levels of Automation: • Manual ---- mostly qualitative & may not be easily duplicated • Partially automated --- using some tools to look for evaluating syntactical conformance or for counting the numbers or for evaluating some property • Fully automated --- only in well-definable areas such as syntactical conformance; most likely not achievable

  19. Stakeholders and Architectural Analysis

  20. Some Analysis Techniques (A) Analysis via Reviews and Inspections (B) Model Based Analysis (C) Simulation Based Analysis

  21. (A) Reviews and Inspections of Architecture • Reviews and inspections are human based activities that require: • 1) preparation for inspection and of architectural material • Think through material discussed earlier such as : • Set goals for analysis of the architecture • Set the scope of the analysis • Decide on the concerns • etc. • 2) preparation of participants (stakeholders) • 3) review/analysis of the architectural material • 4) analysis of the review results and recommend actions • 5) follow-up and closeout

  22. Reviews and Inspections of Architecture • Depending on the context, reviews and inspections may have the broadest spectrum: • Goals: completeness, consistency, correctness, and compatibility • Scope: spans components, connectors and the complete system; also includes data-exchange and compatibility to reference architecture and compliance to standards , etc. • Concerns of reviews may include: structural,behavioral, interaction and non-functional • Types of model used for analysis are: mostly semi-formal; many stakeholders may not understand or appreciate the formal models • Types of analysis for reviews: best for static analysis and scenario-based • Automation: Reviews and Inspections are manual • Stakeholders: all stakeholders may participate

  23. Architectural Trade-Off Analysis Method(ATAM) method may be used for Review/Inspection Business Drivers: goals; major functions; constraints; etc. Quality Attributes: scalability, security, etc. Scenarios: growth, use-case, etc. Analysis Key Facets of Architecture: major decisions & major constraints Architectural Approaches: styles, patterns, further refinements Architectural Decisions Trade-offs Sensitivity points Risk “themes” Non-risks Iterate until the “risks” are mitigated Risks

  24. (B) Model Based Analysis of Architecture • Relies on the system’s architectural descriptions in the model and the manipulation of that model to discover properties of the architecture: • Goals for model-based analysis: consistency, internal completeness, correctness • Scope of the model-based analysis: spans components, connectors and the complete system; also includes data-exchange and compatibility to standards, etc. • Concerns of analysis include: mostly structural; some behavioral, interaction, and non-functional • Types of Model used for analysis are: mostly semi-formal toformal; the more formal models tend to be more useful • Types of Analysis with model-based: best for static analysis of connectivity, conformance, interface, definition-usage, etc. • Automation: typically partially automated • Stakeholders: targeted at technical stakeholders

  25. e.g. Model-Based Reliability Analysis • Reliability definition: Reliability is the probability that the system will perform its intended functionalities without failures for a specified amount of time. • There are many reliability models that will allows us to measure and “predict”: • Mean time between failures • Time to next failure • Time to repair • There are lots of reliability models, almost all “formal” and some based on negative exponential and/or Poisson model : P(Z=a) = [ ( e–δδa) /a! ] where δ is the expected value of Z

  26. ( C ) Simulation Based Analysis • This is basically software simulation of the architecture model and may be used for: • Any of the goals: completeness, consistency, compatibility and correctness analysis • Scope of the analysis may be: the entire system, a specific subsystem, data-exchange, comparing architectural behavior or against standard • The Concerns that can be simulated include: behavior, interaction, non-functional properties • The simulation Model most likely need to be “formal” • The Type of Analysis made with simulation is dynamic and scenario based • These are mostly Automated and computer execution based. • Stakeholders: all stakeholders may be interested

More Related