Ali Mili

Ali Mili
New Jersey Institute of Technology | NJIT · Department of Computer Science

About

106
Publications
21,153
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,789
Citations

Publications

Publications (106)
Article
Full-text available
Given two programs, say P and Q, a differentiator is a test suite T such that execution of P and Q on T produces different outcomes; this concept is used in mutation testing, where it is important to highlight semantic differences between non-equivalent mutants. Given a specification R and a program P, a detector is a test suite T such that executi...
Chapter
Full-text available
Program mutation is the process of generating syntactic variations of a base program and analyzing them by comparison with the base; this process is meaningful only to the extent that the mutants are semantically distinct from the base program, but that is not always the case. Two programs may be syntactically distinct yet semantically equivalent....
Chapter
Full-text available
Equivalent mutants are a major nuisance in mutation testing because they introduce a significant amount of bias. But weeding them out is difficult because it requires a detailed analysis of the source code of the base program and the mutant. In this paper we argue that for most applications, it is not necessary to identify equivalent mutants indivi...
Conference Paper
Full-text available
Equivalent mutants are a constant source of aggravation in mutation testing because they distort mutation based analysis; but the identification of equivalent mutants is known to be undecidable, in addition to being (in practice) tedious and error-prone. We argue that for most applications it is not necessary to individually identify equivalent mut...
Conference Paper
Full-text available
Software mutation is a widely used technique of software testing that consists in generating variants of a base program by applying standard modifications to its source code. One of the main obstacles in the use of software mutations is the existence of equivalent mutants, i.e. mutants whose behavior is indistinguishable from the base program, even...
Conference Paper
Full-text available
The presence of equivalent mutants is a recurrent source of aggravation in mutation-based studies of software testing, as it distorts our analysis and precludes assertive claims. But the determination of whether a mutant is equivalent to a base program is undecidable, and practical approaches are tedious, error-prone, and tend to produce insufficie...
Technical Report
Full-text available
details of semantic metrics to capture program redundancy
Conference Paper
Full-text available
Mutation testing is often used to assess the quality of a test suite by analyzing its ability to distinguish between a base program and its mutants. The main threat to the validity/ reliability of this assessment approach is that many mutants may be syntactically distinct from the base, yet functionally equivalent to it. The problem of identifying...
Article
Full-text available
In the same way that natural languages influence and shape the way we think, programming languages have a profound impact on the way a programmer analyzes a problem and formulates its solution in the form of a program. To the extent that a first programming course is likely to determine the student's approach to program design, program analysis, an...
Article
Full-text available
During the last two past decades, software architecture has been a rising subject of software engineering. Since, researchers and practitioners have recognized that analyzing the architecture of a software system is an important part of the software development process. Architectural evaluation not only reduces software development efforts and cost...
Chapter
Full-text available
This chapter presents a quantitative security risk management cybersecurity measure namely the Mean Failure Cost (MFC). We illustrate it to quantify the security of an e-Learning application while taking account of its respective stakeholders, security requirements, architectural components and the complete list of security threats. Moreover, in th...
Article
Software architecture has become an increasingly important research topic in recent years. Concurrently much more attention has been paid to methods of evaluating non functional attributes of these architectures. However, in current architectural description languages (ADLs) based on a formal and abstract model of system behavior, there is a notabl...
Conference Paper
One of the main issue of software systems engineering is determining the overall system quality attributes at an early stage. This has several advantages such as early detection of problems, cost benefits and assuring that the chosen architecture will meet both functional and non-functional quality attributes. One emerging approach for dealing with...
Article
During recent years, Software Architecture has attracted tremendous attention; since researchers and practitioners have recognized that analyzing system's architecture is an important part of the software development process. However, we find it paradoxical that no Architectural Description Language (ADL) in use nowadays has no means to automatical...
Article
The concept of software architecture emerged in the eighties as an abstraction of all the design decisions pertaining to broad system structure, component coordination, system deployment, and system operation. As such, software architecture deals less with functional attributes than with operational attributes of a software system. So much so that...
Conference Paper
Full-text available
Vulnerabilities in a system may have widely varying impacts on system security. In practice, security should not be defined as the absence of vulnerabilities. In practice, security should not be quantified by the number of vulnerabilities. Security should be managed by pursuing a policy that leads us first to the highest impact vulnerabilities. In...
Conference Paper
Full-text available
Current trends indicate that IT security measures will need to greatly expand to counter the ever increasingly sophisticated, well-funded and/or economically motivated threat space. Traditional risk management approaches provide an effective method for guiding courses of action for assessment, and mitigation investments. However, such approaches no...
Conference Paper
Full-text available
Information security continues to evolve in response to disruptive changes with a persistent focus on information-centric controls and a healthy debate about balancing endpoint and network protection, with a goal of improved enterprise/business risk management. Economic uncertainty, intensively collaborative styles of work, virtualization, increase...
Conference Paper
Full-text available
As a measure of system reliability, the mean time to failure falls short on many fronts: it ignores the variance in stakes among stakeholders; it fails to recognize the structure of complex specifications as the aggregate of overlapping requirements; it fails to recognize that different components of the specification carry different stakes, even f...
Conference Paper
Full-text available
The development, certification and evolution of dependable software requires the ability to analyze software artifacts in all their extensive detail. This, in turn, is contingent upon availability of reliable, certified tools that can rigorously analyze the behavior and properties of software artifacts. One of the most difficult challenges in the d...
Conference Paper
Full-text available
George Boole ushered the era of modern logic by arguing that logical reasoning does not fall in the realm of philosophy, as it was considered up to his time, but in the realm of mathematics. As such, logical propositions and logical arguments are modeled using algebraic structures. Likewise, we submit that security attributes must be modeled as for...
Conference Paper
Full-text available
The study of software architectures is gaining importance due to its role in various aspects of software engineering, like product line engineering, component-based software engineering and other emerging paradigms. With the increasing emphasis on design patterns, the traditional practice of ad-hoc software construction is slowly shifting towards p...
Chapter
Full-text available
Given a specification that includes a number of user requirements, we wish to focus on the requirements in turn, and derive a partly defined program for each; then combine all the partly defined programs into a single program that satisfies all the requirements simultaneously. In this paper we introduces a mathematical basis for solving this proble...
Article
Full-text available
Predicting software engineering trends is a strategically important asset for both developers and managers, but it's also difficult, due to the wide range of factors involved and the complexity of their interactions. This paper reveals some interesting trends and a method for studying other important software engineering trends. This article trades...
Conference Paper
Full-text available
Summary form only given. Software architectures are an emerging discipline in software engineering as they play a central role in many modern software development paradigms. Quantifying software architectures is an important research agenda, as it allows software architects to subjectively assess quality attributes and rationalize architecture-rela...
Conference Paper
Full-text available
The study of software architectures is gaining importance due to its role in various aspects of software engineering such as product line engineering, component based software engineering and other emerging paradigms. With the increasing emphasis on design patterns, the traditional practice of ad-hoc software construction is slowly shifting towards...
Conference Paper
Full-text available
The study of software architectures is emerging as an important discipline in software engineering, due to its emphasis on large scale composition of software products, and its support for emerging software engineering paradigms such as product line engineering, component based software engineering, and software evolution. Architectural attributes...
Conference Paper
To assist the analysis software architectures, we have developed a Web-based CASE tool that automates the steps of capturing, modeling, and inspection of software architectures, in order to derive and display the change propagation probabilities.
Article
Redundancy is a feature of systems that arises by design or as an accidental byproduct of design, and can be used to detect, diagnose or correct errors that occur in systems operations. While it is usually investigated in the con-text of fault tolerance, one can argue that it is in fact an intrinsic feature of a system that can be analyzed on its o...
Conference Paper
Full-text available
Online adaptive systems cannot be certified using traditional testing and proving methods, because these methods rely on assumptions that do not hold for such systems. In this paper, we discuss a framework for reasoning about online adaptive systems, and see how this framework can be used to perform the verification of these systems. In addition to...
Article
Full-text available
Risk assessment is an essential part in managing software development. Performing risk assessment during the early development phases enhances resource allocation decisions. In order to improve the software development process and the quality of software products, we need to be able to build risk analysis models based on data that can be collected...
Conference Paper
Summary form only given. Traditional software metrics are inapplicable to software architectures, because they require information that is not available at the architectural level, and reflect attributes that are not meaningful at this level. We briefly present architecture-relevant quality attributes, then we introduce architecture-enabled quantit...
Conference Paper
Summary form only given. Online adaptive systems evolve as they are exposed to new learning data. Traditional verification techniques do not apply to them because they are based on assumptions that do not hold for them. We had presented a framework for analyzing and verifying such systems. We further explore one of the methods we had identified.
Article
Full-text available
This paper discusses a case study where we use relations to represent the requirements of a fault tolerant flight control system. This task is part of a larger research project, carried out on behalf of Dryden Flight Research Center, whose purpose is to investigate the certification of an adaptive flight control system that is fault tolerant with r...
Article
Full-text available
Predicting the evolution of software engineering technology is, at best, a dubious proposition; it is fast paced and determined by an array of factors, many of them outside the software engineering arena. The authors discuss their first ventures in this domain and preliminary conclusions. The goal of watching software engineering trends means to de...
Article
Full-text available
The study of software architectures is emerging as an important discipline in software engineering, due to its emphasis on large scale composition of software products, and its support for emerging software engineering paradigms such as product line engineering, component based software engineering, and software evolution. Architectural attributes...
Article
Full-text available
The measures of functional distances between relational program specifications were defined using mathematical techniques. Distances were measured using values in a partially ordered sets that were used to capture various aspects of similarity between requirements specification. The definition of these measures of distances were correlated with pra...
Article
Full-text available
Successful software reuse depends on many factors, adequate description of reusable software is one of them. This paper focuses on some of the inherent problems in adequately describing software for later focussed retrieval. Out of these considerations, a hybrid approach, combining well known techniques from library science with techniques based on...
Conference Paper
Full-text available
We present a formal specification of fault tolerance requirements for an analytical redundancy based fault tolerant flight control system. The development of the specification is driven by the performance and fault tolerance requirements contained in the US Air Force military specification MIL-F-9490D. The design constraints imposed to the system f...
Conference Paper
Full-text available
Because it codifies best practices, and because it supports various forms of software reuse, the discipline of software architecture is emerging as an important branch of software engineering research and practice. Because architectural-level decisions are prone to have a profound impact on finished software products, it is important to apprehend t...
Conference Paper
The software challenges of the new millennium include more mature users expecting functioning software, more critical technical and business applications requiring dependable software, globalization requiring distributed development teams, and paradigm clashes between new and old economy firms. Software engineering has to be evaluated anew in terms...
Conference Paper
Full-text available
The common view of component centered development is one where applications are constructed by assembling interacting but non-overlapping software components. We are interested in the case where components do overlap, but that may still be developed independently, and deployed and executed in a distributed fashion. In our approach, applications are...
Conference Paper
In a companion paper (Mili et al., 2000), we propose an ROI-based cost model for software reuse, and discuss in what sense and to what extent this model encompasses many relevant aspects of existing software reuse cost models. In this paper, we present an automated tool that supports the model, and we briefly illustrate its operation. The tool whic...
Conference Paper
Full-text available
Several cost models have been proposed in the past for estimating, predicting, and analyzing the costs of software reuse. The authors analyze existing models, explain their variance, and propose a tool-supported comprehensive model that encompasses most of the existing models
Article
Full-text available
Fault avoidance, fault removal and fault tolerance represent three successive lines of defense against the contingency of faults in software systems and their impact on system reliability. Beyond the colorful discussions of the relative merits of these techniques, the law of diminishing returns advocates that they be used in concert, where each is...
Article
This article stems from a panel session at the 1997 Symposium on Software Reusability, and discusses open research issues, classified by goal and by approach. Software development cannot possibly become an engineering discipline so long as it has not perfected a technology for developing products from reusable assets in a routine manner, on an indu...
Article
Full-text available
We present an experiment whose purpose is to define an analytical approach to the prediction of integration costs for COTS products. Our approach consists in defining the specification of the COTS product as well as the specification of the context in which we plan to use it by means of formal (relational) specifications, and assessing integration...
Conference Paper
Traditional programming paradigms revolve around mapping a single requirements specification into a program. As less and less software is developed from scratch, and more and more is developed from existing software artifacts, this traditional paradigm is growing less and less predominant. Paradigms that are gaining ground include: Program adaptat...
Article
It is sobering, even humbling, to observe that this simple, understated, theorem has laid the ground for a large body of research work. In this short column, we briefly discuss some of its interpretations; for the sake of readability, we will not go into details, but merely sketch how the analysis of these interpretations has led to interesting dev...
Article
Full-text available
It is common to distinguish between two paradigms of software reuse: black box reuse, which consists in reusing components verbatim, without modifying them; and white box reuse, which provides for making modifications to retrieved components before using them. Because software components are very information-rich (i.e. it takes a great deal of info...
Article
Full-text available
Today's digital systems are growing increasingly complex, and are being used in increasingly critical functions. The first premise makes them more prone to contain faults, and the second premise makes their failure less tolerable. This widening gap highlights the need for fault tolerant techniques, which make provisions for reliable operation of di...
Article
Full-text available
Fault avoidance, fault removal and fault tolerance represent three successive lines of defense against the contingency of faults in software systems and their impact on system reliability. The law of diminishing returns advocates that these three sets of methods be put to bear to achieve effective software verification and validation: each method i...
Article
We describe a relational method for specifying features and detecting feature interactions. The method allows for an independent specification of system features, and for a detection of interaction between features. 1 Introduction Feature Interaction refers to a situation where the activation of two functions produces an unpredictable behaviour, th...
Article
Behavioral specifications of objects, modules, and data types can be defined by relations, which can in turn be represented by axiomatic systems. These axiomatic systems define the relation at hand by induction on the complexity of the invocation history of the object; their semantics can be defined by fixpoint theory. In this paper we discuss how...
Article
We describe a relational method for specifying features and detecting feature interactions. The method allows for an independent specification of system features, and for a detection of interaction between features. The method is based on the lattice of relational specifications: the system specification is given as the conjunction (lattice operato...
Article
Full-text available
We give a formal relation-based definition of scenarios and we show how different scenarios can be integrated to obtain a more global view of user-system interactions. We restrict ourselves to the sequential case, meaning that we suppose that there is only one user (thus, the scenarios we wish to integrate cannot occur concurrently). Our view of sc...
Article
We describe a relational method for specifying features and detecting feature interactions. The method allows for an independent specification of system features, and for a detection of interaction between features. The method is based on the lattice of relational specifications: the system specification is given as the conjunction (lattice operato...
Conference Paper
Given a software library whose entries are represented by formal specifications, we distinguish between two retrieval procedures: exact retrieval, whereby, given a query K, we identify all the library components that are correct with respect to K; approximate retrieval, which is invoked when exact retrieval fails, and identifies the library compone...
Article
Full-text available
Software libraries are repositories which contain software components; as such, they represent a precious resource for the software engineer. As software libraries grow in size, it becomes increasingly difficult to maintain adequate precision and recall with informal retrieval algorithms. In this paper, we discuss the design and implementation of a...
Conference Paper
This paper discusses an undergraduate option in software engineering which is currently in the approval process at the University of Ottawa. The proposed option represents a close collaboration between the Department of Computer Science and the Department of Electrical and Computer Engineering. In this paper we present an analysis of the weaknesses...
Article
Full-text available
We propose a method which integrates program modification to the refinement calculus style of program development. Given a program developed through stepwise refinement of a specification, we propose an approach to specify modifications and to derive a new program from the existing refinement steps. This approach is based on the refinement lattice...
Article
This paper discusses a mathematical background for the formal treatment of a number of issues related to software reuse, including: component matching; similarity measures; and component modifications. 1 Background: The Lattice of Refinement In earlier work [ 3 ] , we had investigated the lattice properties of the refinement ordering between progra...
Article
Given a specification that includes a number of user requirements, we wish to focus on the requirements in turn, and derive a partly defined program for each; then combine all the partly defined programs into a single program that satisfies all the requirements simultaneously. In this paper we introduce a mathematical basis for solving this problem...
Article
Maintainability is a measure of the ease with which a software system can be maintained. In this paper we propose a quantitative definition of maintainability, and discuss means to estimate the maintainability of a software system on the basis of a static analysis of its deliverables. Such an estimation effort is useful inasmuchas it allows us to p...
Article
Full-text available
Software productivity has been steadily increasing over the past 30 years, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver; nothing short of an order of magnitude increase in productivity will extricate the software industry from its perennial crisis. Several decades...
Article
Full-text available
This paper discusses a mathematical background for the formal treatment of a number of issues related to software reuse, including: component matching; similarity measures; and component modifications. 1 Background: The Lattice of Refinement In earlier work [ 3 ] , we had investigated the lattice properties of the refinement ordering between progra...
Conference Paper
Software reuse poses a number of challenges, ranging from managerial to technical - not least of these is the problem of storing and retrieving software components in a time efficient manner. This paper presents the design and implementation of an automated software repository, where software components can be automatically stored and retrieved. Th...
Article
Full-text available
In our correspondence to the fifth Workshop on Software Reuse [1], we had discussed the design and preliminary implementation of a repository where software components can be stored and retrieved automatically, using a formal-specification approach. In this paper we report on our progress, by describing the first prototypes we have for this reposit...
Article
The paper presents an approach for structuring large software repositories for supporting software reuse. After a presentation of the specifics of retrieving software from a base of reusable components, the paper presents an approach for formally specifying the components and for arranging those specifications in a lattice structure. An approach fo...
Conference Paper
The Ministry of Science and Learning of Tunisia has appointed us as consultants to make a proposal for the nationwide introduction of computers in Higher Education. This paper reports on our main recommendations and conclusions.
Conference Paper
An empirical study of the management of software maintenance is presented, based on completion of an earlier study. The survey at hand has been conducted by means of live interviews with analysts and software managers, using a translated version of B.P. Lientz and E.B. Swanson's (1978) survey form (slightly adjusted at times to take into account a...
Article
Programmer productivity has been the subject of several investigations. These have raised several questions and have highlighted several paradoxes. This article presents a statistical study which evaluates the impact of a number of factors on programmer productivity. We have limited our attention to controllable facts, i.e., factors that a software...
Article
Success in software engineering depends primarily on managerial considerations, which are in turn contingent on an accurate and reliable cost-estimation procedure. Among the many software cost-estimation procedures available today, COCOMO stands out by its concern for accuracy and the thoroughness of its procedures. But COCOMO is calibrated to a sp...