Title: Some Software Engineering Research at NJIT
1(Some) Software Engineering Research at NJIT
- Sergio Bogazzi, Yao Fei Chen, GuanJie Jiang,
BoYu, Ali Mili
2Projects
- Software Architecture Analysis
- Verification and Validation of Online Adaptive
Systems - Software Engineering Trends
- Analyzing Redundancy
3Software Architecture Metrics
- A Study of Change and Error Propagations
4Project 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.
5Research Plan
- Define and validate computable metrics for
software architectures based on information
theoretic measures - 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.
6Selected Quantitative Factors
- Error Propagation. Significance for reliability.
- Change Propagation. Significance for
Maintainability. - Requirements Propagation. Signifi- cance for
Evolvability.
7What 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.
8What are these Metrics useful for? (contd)
- 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
9Project 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
10Premises 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.
11Recent 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).
12Information 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.
13Definition of Quantitative Factors Error
Propagation
Error
- The error propagation (EP) is a measure of the
likelihood that an error in the message sent by A
will propagate into B.
14Static Error Propagation Matrix SEPM (Flattened
architecture of a NASA case study)
Error Propagation Coefficient (static) 0.0503
15Dynamic Error Propagation Matrix DEPM (Flattened
architecture of a NASA case study)
Error Propagation Coefficient (dynamic) 0.0534
16Future Work Empirical Validation of Error
Propagation Analysis
17Change 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
18Analyzing Change Propagation Simple Model
- Model architectural components as input-output
transformers C IC ? OC, from the set of inputs
(IC ) of the component C to the set of its
outputs (OC ). - 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
19Empirical 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.
20The experiment is still undergoing
21Automated 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
22Benefits
- 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)
23Future 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
24Verification and Validation of Online Adaptive
Systems
- Jian GuanJie, Ali Mili, NJIT
- Bojan Cukic, Yan Liu, WVU
25The Intelligent Flight Control System (IFCS)
- IFCS Project NASA DFRC NASA ARC Boeing ISR
WVU.
26Traditional VV Techniques
- Fault Avoidance
- Fault Removal
- Fault Tolerance
- All are inapplicable to adaptive learning systems
27Refinement-based VV of adaptive systems
- Functional Envelope
- Monotonic Learning
- Safe Learning
28Functional Envelope
29(No Transcript)
30Monotonic Learning----MLP
31Monotonic Learning----DCS
32Safe Learning
33Novelty Detection
34- Experimental Results of Novelty Detection Using
Association Rule Learning
35Programming Language TrendsAn Empirical Study
Yao Fei Chen, Ali Mili New Jersey Institute of
Technology
36Introduction
- 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?
37Possible 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
38- 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
39Quantifying 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.
40Models ConstructionValidation
- Use statistics method to constructvalidate
Models
41Evaluating 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
42Analyzing Redundancy
- Ali Mili, NJIT
- Bojan Cukic, WVU
- Jules Desharnais, Laval University
43Outgrowth 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
44Three Views of Redundancy
- Non-Injectivity of Representation Function
- Duplication of State information
- Scale of Fault Tolerant Capabilities.
45Non 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.
46Duplication 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.
47Scale of Fault Tolerant Capabilities
- Levels of Correctness
- Correctness, Maskability, Recoverability,
Non-recoverability. - Recovery is necessary and sufficient
Recoverability. - Sufficient conditions of recoverability.