Software Architecture Metrics - New Jersey Institute of Technology

advertisement

(Some) Software Engineering

Research at NJIT

Sergio Bogazzi, Yao Fei

Chen, GuanJie Jiang,

BoYu, Ali Mili

Projects

Software Architecture Analysis

Verification and Validation of Online

Adaptive Systems

Software Engineering Trends

Analyzing Redundancy

Professor Ali Mili 2

Software Architecture Metrics

A Study of Change and

Error Propagations

Project Objective

Defining and Investigating Quality

Metrics for Software Architectures.

Applying these Metrics to Large Scale

Software Architectures.

Correlate the Metrics with Independent

Observations of Quality.

Professor Ali Mili 4

Research Plan

Define and validate theoretic measures computable metrics for software architectures based on information

Automate the process of computing these metrics.

Apply the process and metrics to a NASA case study.

Validate the correctness and usefulness of these metrics.

Professor Ali Mili 5

Selected Quantitative Factors

Error Propagation. Significance for reliability.

Change Propagation. Significance for

Maintainability.

Requirements Propagation. Signifi- cance for Evolvability.

Professor Ali Mili 6

What are these Metrics useful for?

By looking at the Error Propagation Metrics the architect would be able to identify components that have high potential to propagate errors through the system,

,

The error propagation matrices, are also very useful in direction of test plans, critical components that show high tendency to propagate error to other system components should be more thoroughly tested.

Professor Ali Mili 7

What are these Metrics useful for?

(cont’d)

By looking at the Change Propagation Metrics

(CPM) , the architect would be able to identify components that have high potential to propagate the changes inside them to other components.

From CPM, the architect would also be able to identify components that have high potential to be affected by the changes in other components

Professor Ali Mili 8

Project Overview

Define Information theoretic metrics

Coupling, cohesion, redundancy

Define quantitative factors that are relevant to qualitative attributes of the architecture

Error Propagation

Change Propagation

Establishing analytical and/or empirical relationship between the metrics and the quantitative factors

Automate computation of the metrics

Professor Ali Mili 9

Premises of Our Approach

Architectural Level precludes a logic, semantic-based approach; hence we use a stochastic approach.

Information Theory has a wide range of functions that quantify random variables.

We use analytical and empirical means to correlate metrics to qualitative properties.

Professor Ali Mili 10

Recent Accomplishments

Further Analysis of the Correlation between Error Propagation and

Computable Metrics.

Initiating the Analysis of Change

Propagation in the Context of State

Based Components.

Automation of the derivation of metrics from architectural descriptions (in UML, by Nicholay) and from source code (by

Sergio).

Professor Ali Mili 11

Information Coupling and

Cohesion Metrics

We treat coupling in the true architectural sense, as a property of the connector between components.

Coupling in our approach becomes a function of an ordered pair of components characterizing their informational interdependence.

Cohesion of a component measures its internal information flow.

Professor Ali Mili 12

Definition of Quantitative Factors:

Error Propagation

A

S

B

X x` x

OR x`

Error x

The error propagation (EP) is a measure of the likelihood that an error in the message sent by A will propagate into B .

Professor Ali Mili 13

Static Error Propagation Matrix SEPM

(Flattened architecture of a NASA case study)

C4

C5

C6

C7

C1

C2

C3

C8

C9

C10

B

C1 C2 C3 C4 C5 C6 C7

0.18

1 0.11

0.38

0.44

0.58

0.59

1 0 0 0 0

0.11

0.26

1 0 0 0

0.17

0.15

0 0.57

0.23

0 0.18

0

0.08

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

C8 C9 C10

0

0

0 0.5

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

Error Propagation Coefficient (static) = 0.0503

Professor Ali Mili 14

Dynamic Error Propagation Matrix DEPM

(Flattened architecture of a NASA case study)

C7

C8

C9

C10

C4

C5

C6

C1

C2

C3

B

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

1 0.11

0.15

0.3

0.76

0.73

0 0 0

0.37

0.03

0.32

1 0

1

0

0

0

0

0

0 0

0 0.52

0

0

0

0

0

0

0.03

0.19

0 0.67

0 0.28

0.32

0

0

0 0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

Error Propagation Coefficient (dynamic) = 0.0534

Professor Ali Mili 15

Future Work

Empirical Validation of Error Propagation

Analysis

UML Model Extract

Model Info.

Simulate and Log

Components,

Connectors

Design

Experiments

Connector,

Message

Corrupt

Model

Fault

Model

Summit

BASIC

Error Logs

Normal Log

Analyze

Logs

Empirical Error Propagation

MATLAB

Professor Ali Mili 16

Change Propagation

We define Change Propagation from component A to component B as the probability that a change in A due to corrective/ defective maintenance requires a change in B to maintain the overall function of the system.

We are conducting empirical experiment and trying to propose an analytical formula that approximate change propagation

Professor Ali Mili 17

Analyzing Change Propagation: Simple Model

Model architectural components as input-output transformers

C : I

C

 O

C

, from the set of inputs ( to the set of its outputs ( O

C

).

I

C

) of the component C

Consider elementary two-component (pipeline?) architecture, where the first component A “feeds” its output to the second component B as its input. The functionality of the architecture can be presented in the form of the following diagram:

Professor Ali Mili 18

Empirical work

In our experiment, we randomly select a large amount of changes within each component, then go into the source code level to see, if the change will propagate to other components.

By computing for each pair of components (A,

B), the number for which change in A cause a change in B, we are able to derive the change propagation matrix.

Professor Ali Mili 19

C9

C10

C11

C12

C13

C14

C15

C16

C5

C6

C7

C8

C1

C2

C3

C4

C17

C18

Sum

C1

1

C2 C3 C4

1/11 2/11 1/11

1

1/5 1

1

C5

1

1/3

1/8

4/8

1/3

1/8 4/8

1/3

2/5

1/3

1/3

2/2

4/5

1/1

C6

1/11

1

1/8

1/3

Change Propagation Matrix

C7 C8

1

1/3

2/8

2/5

1/3

1

1/8

1/1

C9

2/11

2/3

C10 C11 C12 C13 C14 C15 C16 C17 C18 Changes

1/11 1/11 3/11 11

3

4/5

2/2

0/2

1/3

5

2

1

3

3/8

2/3

1 1/8

1

1/3

2/8

6/8

1

1

1

1

1/3

2

0

3

0

8

8

8

3

1/3

2/5

1

1 1/5

1

1/1

1

1

3

1

5

67

The experiment is still undergoing

Professor Ali Mili 20

Automated Tool

Simplify application of the theory and methods developed to industrial-strength systems

Give project manager an ability to get a glimpse into the quality of software architecture  Project Manager View

Configure the tool for handling specific

ADLs and CASE tools  Analyst View

Professor Ali Mili 21

Benefits

The developments of techniques for measuring error/change propagation help analysts identify trouble spots in the architecture (advances the state of the art)

The development of automated tools help the analyst apply these techniques on large architectures (advances the state of the practice)

Professor Ali Mili 22

Future Work

Use a tool such as SIAT TM , or Understand TM to measure static information theoretic metrics

Compare the measures obtained to those obtained at the design level

Compare information coupling and cohesion measures with traditional measures based on

McCabe.

Perfect the tools

Professor Ali Mili 23

Verification and Validation of

Online Adaptive Systems

Jian GuanJie, Ali Mili, NJIT

Bojan Cukic, Yan Liu, WVU

Professor Ali Mili 24

The Intelligent Flight Control System (IFCS)

IFCS Project: NASA DFRC; NASA ARC;

Boeing; ISR; WVU.

Professor Ali Mili 25

Traditional V&V Techniques

Fault Avoidance

Fault Removal

Fault Tolerance

All are inapplicable to adaptive learning systems

Professor Ali Mili 26

Refinement-based V&V of adaptive systems

Functional Envelope

Monotonic Learning

Safe Learning

Professor Ali Mili 27

Functional Envelope

H

F R

X

X R h

F h

Y

R h

  

F h

Professor Ali Mili

Y

28

Initial Weights

0

=1.0

0

=0.5

0

=0.0

0

[-0.3, 0.3]

Input

(1,1)

(1,0)

(0,1)

(0,0)

(1,1)

(1,0)

(0,1)

(0,0)

(1,1)

(1,0)

(0,1)

(0,0)

(1,1)

(1,0)

(0,1)

(0,0)

10

0.95718

0.88929

0.88985

0.74329

0.88763

0.75727

0.76131

0.58170

0.70029

0.60074

0.60987

0.55051

0.50565

0.48353

0.49364

0.51421

0.51080

0.48304

0.49480

0.51010

20

0.58756

0.51103

0.52137

0.49504

0.50740

0.48525

0.49367

0.51434

0.51098

0.48416

0.49397

0.51027

Iteration Times with Output

50

0.64715

0.49946

0.50934

0.41602

0.53496

0.48290

0.48944

0.48686

0.50880

0.48714

0.49203

0.51342

0.51101

0.48627

0.49197

0.51051

100

0.57213

0.48526

0.48949

0.45580

0.52377

0.48596

0.48869

0.49964

0.50976

0.48836

0.49037

0.51227

0.51096

0.48794

0.49027

0.51073

500

0.50373

0.51578

0.51579

0.50102

0.12861

0.88881

0.88868

0.09960

0.51087

0.49385

0.49424

0.51760

0.51116

0.48878

0.48888

0.51134

0.51118

0.48876

0.48885

0.51137

2000

0.14863

0.87160

0.87141

0.11487

0.50880

0.49985

0.50006

0.51613

0.50909

0.49888

0.49911

0.51662

Converge

7285

0.04999388

0.95669980

0.95675480

0.03909299

7560

0.04999296

0.95670090

0.95675580

0.03909090

8926

0.04999402

0.95669870

0.95675415

0.03909125

8942

0.04999226

0.95670134

0.95675653

0.03908928

Professor Ali Mili 29

Monotonic Learning----MLP

Professor Ali Mili 30

Monotonic Learning----DCS

Professor Ali Mili 31

Safe Learning

 h

 

, F h

( R h

Professor Ali Mili

S )

32

Novelty Detection

Professor Ali Mili 33

Experimental Results of Novelty Detection Using Association Rule

Learning

Professor Ali Mili 34

Programming Language Trends:

An Empirical Study

Yao Fei Chen, Ali Mili

New Jersey Institute of Technology

Introduction

As part of the project of monitoring software engineering technical trends, we are trying to research the evolution of high level programming language.

What are the possible factors which can affect programming language trends?

How can we quantify these factors?

How can we watch/predict/adapt to/affect the trends based the factors?

Professor Ali Mili 36

Possible Factors Which Affect Trends

Intrinsic factors are the factors which can be used to describe the general design criteria of programming language.

Generality

Orthogonality

Reliability

Maintainability

Efficiency

Simplicity

Implementability

Machine Independence

Extensibility

Expressiveness

Influence/Impact

Professor Ali Mili 37

Extrinsic factors are the factors which are not directly related to the general attributes of a programming language, but still can affect the trend of programming language.

Institutional Support

Industrial Support

Governmental Support

Organizational Support

Grassroots Support

Technology Support

Professor Ali Mili 38

Quantifying Factors

Quantifying intrinsic factors:

All intrinsic factors should be considered when one designs a programming language. So, we will try to go over all features of a programming language to check if it matches these factors. Then, we will assign a score to each factor for each programming language.

Quantifying extrinsic factors:

We will do survey for every extrinsic factor and assign scores for them.

Professor Ali Mili 39

Models Construction&Validation

Use statistics method to construct&validate

Models

Factors that might affect the trend

I1

I2

I3

In

F (I

1

, I

2

, …, I n

)

O

1

O

2

O m

Factors that can be used to evaluate the trend

Function used to describe the relationship among factors.

Professor Ali Mili 40

Evaluating Programming Languages

By analyzing a set of programming language, we expect that we can find out statistics models and use them to predict the future trend of a programming language.

COBOL

FORTRAN

LISP

ALGOL

PASCAL

C

C++

JAVA

ADA

ML

APL

MODULA

EIFFEL

PROLOG

SMALLTALK

SCHEME

Professor Ali Mili 41

Analyzing Redundancy

Ali Mili, NJIT

Bojan Cukic, WVU

Jules Desharnais, Laval University

Outgrowth of Dryden Project

What is Redundancy?

Does Redundancy characterize a state or its representation?

Is all redundancy amenable to state redundancy?

Can we talk about redundancy without Fault

Tolerance?

Instant Redundancy vs Temporal Redundancy

Professor Ali Mili 43

Three Views of Redundancy

Non-Injectivity of Representation Function

Duplication of State information

Scale of Fault Tolerant Capabilities.

Professor Ali Mili 44

Non Surjectivity

Representation function from States to

Representations

Total (representability): integers.

Injective (precision): reals.

Surjective (Non-redundancy)

No representation functions satisfy all. Most functions satisfy none.

Professor Ali Mili 45

Duplication of State Information

Axiomatization of functions quantifying duplication

Zero for redundancy free state

One for simple duplication for redundancy free state.

N-1 for N-modular redundancy

Continuous real values in-between.

Professor Ali Mili 46

Scale of Fault Tolerant

Capabilities

Levels of Correctness:

Correctness, Maskability, Recoverability,

Non-recoverability.

Recovery is necessary and sufficient:

Recoverability.

Sufficient conditions of recoverability.

Professor Ali Mili 47

Download