Chapter 8 Analysis

28
Chapter 8 Analysis Zachary Cleaver

description

Chapter 8 Analysis. Zachary Cleaver. Analysis Definition and Purpose. Architectural analysis is the activity of discovering important system properties using the system’s architectural models. - PowerPoint PPT Presentation

Transcript of Chapter 8 Analysis

Page 1: Chapter 8 Analysis

Chapter 8 AnalysisZachary Cleaver

Page 2: Chapter 8 Analysis

Analysis Definition and PurposeArchitectural analysis is the activity of

discovering important system properties using the system’s architectural models.

Architectural analysis helps identify incorrect/inefficient design decisions, clarifies component functions and objects, and aids in communication between designers and customers.

Page 3: Chapter 8 Analysis

Facets of Architectural Analysis1) Goals of analysis2) Scope of analysis3) Primary architectural concerns being

analyzed4) Level of formality between models

Page 4: Chapter 8 Analysis

Facets of Analysis: Goals1) Completeness2) Consistency3) Compatibility4) Correctness

Page 5: Chapter 8 Analysis

CompletenessThe main goal of assessing an architecture’s

completeness is to ensure it adequately capture all key functional and non-functional requirements.

Ideally, all services will be needed by a component, and each component will have a service that provides for it.

Page 6: Chapter 8 Analysis

ConsistencyDefinition: Internal property of an

architectural model that is intended to ensure that different elements of that model do not contradict one another.

Types of Inconsistencies:NameInterfaceBehavioralInteractionRefinement

Page 7: Chapter 8 Analysis

Name InconsistencySame-name components providing similar

services. Is the right one being used?

Accessing a nonexistent class or method resulting in compile-time errors

Page 8: Chapter 8 Analysis

Interface InconsistencyReqInt: getSubQ(Natural first, Natural last, Boolean remove) returns FIFOQueue;

ProvInt1: getSubQ(Index first, Index last) returns FIFOQueue;

ProvInt2: getSubQ(Natural first, Natural last, Boolean remove) returns Queue;

Page 9: Chapter 8 Analysis

Behavioral InconsistencySubtract(int x, int y) returns int;

int myVal = Subtract(427, 27)

The method behavior treats it as a date subtraction, subtracts 27 days from April 27, and returns 331 (March 31)

Page 10: Chapter 8 Analysis

Interaction InconsistencyOccurs when a component’s provided

operations are accessed in a manner that violates certain interaction constraints.

Ex. pop_back() in c++

Page 11: Chapter 8 Analysis

Refinement InconsistencyRefinement inconsistencies stem from a

system’s architecture being frequently captured at different levels of abstraction (higher v. lower)

Check that elements were not lost, key properties were not omitted or changed, etc.

Page 12: Chapter 8 Analysis

CompatibilityCompatibility ensures that the model adheres

to the design guidelines imposed by an architectural style, reference architecture, or architectural standard.

Page 13: Chapter 8 Analysis

CorrectnessCorrectness is relative.

It is the result of architecture to some artifact, where the artifact either fulfills the architecture or the architecture elaborates and fulfills the artifact.

Page 14: Chapter 8 Analysis

Scope of AnalysisComponent and Connector LevelSubsystem and System LevelData Exchanged in (sub)systemArchitectures at Different Abstraction LevelsComparison of Two or More Architectures

Page 15: Chapter 8 Analysis

Component and Connector Level AnalysisEnsures the given component or connector

provides the services expected of itHowever, this does not ensure services are

modeled correctlyChecks name consistency

Page 16: Chapter 8 Analysis

Subsystem and System Level AnalysisPair-wise conformance: Two interacting

components are considered at a time, and name, interface, behavior, and interaction conformance are established.

Compare component properties (efficiency vs. security)

Petry’s “Honey-baked ham” syndrome

Page 17: Chapter 8 Analysis

Data Exchanged in the System or Subsystem

Assess data elements to ensure the system’s data is properly modeled, implemented, and exchanged among structural elementsStructure of the data (typed vs. untyped)Flow of data through the system (point-to-point

vs. broadcast)Properties of data exchange (consistency,

security, etc.)

Page 18: Chapter 8 Analysis

Architecture at Different Abstraction Levels

A

B

C

D

Page 19: Chapter 8 Analysis

Comparisons of Two or More ArchitecturesComparing current architecture to a model of

the desired architectureComparing two architectures for properties

such as processing and storage capabilities

Page 20: Chapter 8 Analysis

Architectural Concern Being AnalyzedStructural CharacteristicsBehavioral CharacteristicsInteraction CharacteristicsNon-functional Characteristics

Page 21: Chapter 8 Analysis

Structural CharacteristicsDetermines whether the architecture is well

formedFocuses on connectivity among architecture

components and connectors, points of network distribution, etc.

Identify problems such as disconnected components or subsystems, missing pathways between components and connectors, unwanted pathways, etc.

Page 22: Chapter 8 Analysis

Behavioral CharacteristicsConcerned with the behavior of individual

components and their behaviors as a whole within the architecture

Internal behaviors of individual components is considered, as well as the composite behaviors of components as they interact

Page 23: Chapter 8 Analysis

Interaction CharacteristicsHelps to establish whether the architecture

will actually be able to fulfill some of its requirements (efficiency)

Concerned with internal behaviors of systems (security)

Page 24: Chapter 8 Analysis

Non-Functional CharacteristicsDifficult to assess since they can span

multiple components and connectorsTheir definitions can be much more informal,

making it difficult to properly understand them in the architecture

Page 25: Chapter 8 Analysis

Level of Formality of Architectural ModelsInformalSemiformalFormal

Page 26: Chapter 8 Analysis

Informal ModelsTypically captured in box-and-line diagramsGreat for showing high-level representations

of a systemCan be dangerous to use because of a lack of

information and an ambiguous nature

Page 27: Chapter 8 Analysis

Semiformal ModelsAims to be useful to both technical and

nontechnical stakeholdersUML

Page 28: Chapter 8 Analysis

Formal ModelsDesigned for technical stakeholdersThese type of models can suffer from

scalability problems