H. HaghighiShahid Beheshti University | SBU · Faculty of Computer Science and Engineering
H. Haghighi
Doctor of Engineering
About
98
Publications
24,689
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
816
Citations
Introduction
Software Testing;
Formal Methods;
Software Development and Architecture;
Data Quality and Analysis
Skills and Expertise
Publications
Publications (98)
In the last decade, several Automated Program Repair (APR) techniques have been proposed. Most of these techniques produce candidate patches using repair operators that apply changes to buggy programs. Therefore, to repair more bugs, a more extensive set of repair operators is required. However, more repair operators lead to long repair time and mo...
Code coverage criteria are widely used in object-oriented (OO) domains as test quality indicators. However, these criteria are based on the procedural point of view, and therefore do not address the specific features of OO programs. In this article, we extend the code coverage criteria and introduce a new set of criterion, called “object coverage c...
Code coverage criteria are widely used in object-oriented (OO) domains as test quality indicators. However, these criteria are based on the procedural point of view, and therefore, do not address the specific features of OO programs. In this article, we extend the code coverage criteria and introduce a new set of criterion, called “object coverage...
Introduction:
Effective crisis management can reduce the costs and consequences of a crisis and has a significant impact on saving human lives in critical situations. Proper use of information and communication technologies (ICTs) can improve all crisis management phases and crisis communication cycles according to the needs of stakeholders. The p...
Existing program-based automated test techniques from object-oriented programs generate only test data or test cases, which are not equipped with effective oracle to reveal the logical errors in the program. In addition, these techniques often focus on conventional code coverage criteria and intra-method testing, and are less concerned with inter-m...
Having a sophisticated and believable narrative that provides players with meaningful choices is an indicator of an enjoyable experience in many game genres. Authoring and debugging such narratives is a tedious task. Moreover, designing maps that support complex narratives is not a trivial process. Therefore, it is advantageous to provide authors w...
Introduction: The crisis management information system (CMIS) is a mission-critical system that enables the crisis management team for understanding, diagnosing, interpreting, analyzing, structuring, and making decisions faster by providing timely and high-quality information at the right time. The purpose of this research is to provide an architec...
Concurrent programs are being widely adopted in development of multi-core and many-core processors. However, these types of programs present some features such as concurrency, communication and synchronization which make their testing more challenging than sequential programs. Search-based techniques, which use meta-heuristic search algorithms, hav...
Software systems development nowadays has moved towards dynamic composition of services that run on distributed infrastructures aligned with continuous changes in the system requirements. Consequently, software developers need to tailor project specific methodologies to fit their methodology requirements. Process patterns present a suitable solutio...
Various approaches have been developed to tackle the problem of automatic test data generation. Among them search-based methods use metaheuristic algorithms to guide search in the input space of the program under test. This paper presents a new approach for improving search-based test data generation methods. This approach is based on learning the...
This paper presents a framework for constructing Linear Discriminate Analysis (LDA) classifier, securely, over distributed data. It is assumed that data is partitioned among several parties such that for obtaining higher benefits from a greater extent of data, all participants are willing to model the LDA classifier on whole data, but for privacy c...
Test data generation has a notable impact on the performance of software testing. A well-known approach to automate this activity is search-based test data generation. Most studies in this area use branch coverage as the test criterion. Since the prime path coverage criterion includes branch coverage, it has higher probability to detect software fa...
Software defect prediction (SDP) seeks to estimate fault-prone areas of the code to focus testing activities on more suspicious portions. Consequently, high-quality software is released with less time and effort. The current SDP techniques however work at coarse-grained units, such as a module or a class, putting some burden on the developers to lo...
ز مشکلات مهم در پیشبرد پروژه های دولت الکترونیک در ایران عدم وجود مدل های مرجع ملی از جمله مدل مرجع نرم افزاراست. ارائه مدل مرجع نرم افزار برای ایران منجر به کاهش هزینه خرید یا تمدید مجوزهای نرم افزاری استفاده شده در دستگاه هایدولتی می شود. همچنین این امر منجر به ایجاد مکانیزمی برای یافتن راه حل های نرم افزاری مناسب برای تامین نیازهای کسب وکاریدستگ...
Using machine learning techniques for constructing automated test oracles have been successful in recent years. However, existing machine learning based oracles have deficiencies when applied to software systems with low observability, such as embedded software, cyber-physical systems, multimedia software programs, and computer games. This paper pr...
One of the most important, but tedious and costly tasks of software testing process is test data generation. Several methods for automating this task have been presented, yet due to their practical drawbacks, test data generation is still widely performed by humans in industry. In our previous work, we employed the notion of Game With A Purpose (GW...
A Fuzzy Inference System (FIS) is a way of mapping an input space to an output space using the fuzzy logic. FISs are widely used to solve classification problems. The Shuffled Frog Leaping Algorithm (SFLA) is a metaheuristic inspired by the natural evolution of frogs in searching for the largest source of food. By using local and global searches si...
Constraint solvers are well-known tools for solving many real-world problems such as theorem proving and real-time scheduling. One of the domains that strongly relies on constraint solvers is the technique of symbolic execution for automatic test data generation. Many researchers have tried to alleviate the shortcomings of the available constraint...
Trust-aware recommender systems have been widely used in recent years to improve the performance of traditional collaborative filtering systems. A common assumption of existing trust models is that all items have the same importance for all users. However, it is reasonable to expect that some items are more significant than others in making recomme...
Discovering cohesive subgraphs is an important issue in the analysis of massive graphs. A new type of cohesive subgraphs, k-truss, has gained a lot of attentions in recent years. Although different methods have been proposed to extract k-truss subgraphs, they are unable to deal with big graphs, and they suffer from the lack of efficiency. To deal w...
Trust-aware recommender systems have attracted much attention in recent years because of the popularity of social networks. Some researchers have proposed local trust models to measure trust between two users based on their interactions. However, in most cases, there are few (if any) direct interactions between two users. In such cases, it is usefu...
Attackers leverage various obfuscation techniques to create a metamorphic malware that can evade from detection by anti-malwares. To defeat, we propose Graph Mining for Metamorphic Malware Detection (G3MD), an intelligent system for static detection of metamorphic malwares. G3MD demonstrates one of the many aspects of what the current generation of...
Despite there are too many different viewpoints and definitions of the "Smart City" notion, the management part of a particular city needs to formulate a special definition of this concept for the city, based on its specific characteristics and priorities. The main question of this research is "What are the general characteristics of the smart city...
Software piracy has been known as unauthorised reconstruction or illegal redistribution of a licenced software. Detecting pirated from base software is a major concern since pirated software can lead to significant financial losses as well as serious security vulnerabilities. To detect software piracy, we have recently proposed Metamorphic Analysis...
This review article remarks the difficulties with diagnosing Alzheimer's disease and highlights the pivotal role of clinical decision support systems in timely detection of this disease. This systems could pave the way for better service delivery to elderly people through facilitated process of diagnosis.
Various methods have been proposed for constructing and optimizing fuzzy inference systems. This paper first proposes a new method to create zero-order Sugeno fuzzy inference systems using the Shuffled Frog Leaping Algorithm (SFLA). As the second contribution, the paper introduces four improvements over SFLA. The resulting version of SFLA, called I...
So far, valuable research studies have been conducted on mapping notations of object-oriented specification, such as Object-Z, in different object-oriented programming languages, such as C++. However, the results of selecting JVM-based programming languages for mapping have not covered most of basic Object-Z structures. In this paper, the Groovy la...
The search space of potential inputs of a program is very large, even for the very small one, while this size is a key determining factor affecting the performance of any search-based test data generation approach. However, despite the large volume of work on search-based test data generation, the literature contains little work that concerns this...
با گسترش سریع و مداوم اینترنت، ضرورت وجود سیستمهای توصیهگر به طرز چشمگیری افزایش یافته است. سیستمهای توصیهگر مبتنی بر اعتماد، گونهای از سیستمهای توصیهگر هستند که با بکارگیری روابط اعتماد میان کاربران سعی در بهبود کیفیت پیشنهادات دارند. منطق پشت این سیستمها این است که کاربران تمایل به پذیرش اقلامی دارند که به جای افراد غریبه توسط اشخاص قابل...
In human-based computation, the machine outsources certain steps of an algorithm to humans to optimize computation by making an equilibrium of human and machine computation advantages. Software testing is an important part of the software development life cycle that aims to reveal failures in software. One of the most important activities in the so...
Increasing the number of electronic services provided by the Tehran municipality on one
hand, and continuous modifications in these services and the related technologies on the other hand, introduces a high priority for training Tehran citizens to use electronic services effectively. Nevertheless, no systematic study in the area of citizen educatio...
Networks with billions of vertices introduce new challenges to perform graph analysis in a reasonable time. Clustering coefficient is an important analytical measure of networks such as social networks and biological networks. To compute clustering coefficient in big graphs, existing distributed algorithms suffer from low efficiency such that they...
Search-based test data generation methods mostly consider the branch coverage criterion. To the best of our knowledge, only two works exist which propose a fitness function that can support the prime path coverage criterion, while this criterion subsumes the branch coverage criterion. These works are based on the Genetic Algorithm (GA) while scalab...
With the exponential growth of the online community activities, group recommender systems have become popular in recent years. However, making recommendations relevant to the common interests of a group is a challenging task due to the diversity of group members' preferences. In this paper, we propose a novel Trust-aware Group Recommendation (TGR)...
Collaborative Filtering (CF) is one of the most successful recommendation techniques. Recently, implicit trust-based recommendation approaches have emerged that incorporate implicit trust information into CF in order to improve recommendation performance. Previous implicit trust models assume that all users have the same perception of ratings. How-...
Collaborative Filtering (CF) is the most popular recommendation technique that uses preferences of users in a community to make personal recommendations for other users. Despite its popularity and success, CF suffers from the data sparsity and cold-start problems. To alleviate these issues, in recent years, there has been an upsurge of interest in...
This paper presents a novel approach to address the problem of automatic detection of the software that is pirated. Software piracy, which is the unauthorized reconstruction and distribution of licensed and copyrighted software, imposes high economical and commercial losses annually and is also considered as a drastic threat to the security of soft...
Cloud workflow is a special type of cloud computing systems which mainly concentrates on workflow management. One of the major issues with cloud workflow systems is automatic multi-cloud workflow management. This paper proposes a service oriented framework for cloud workflow management which integrates heterogeneous multi-cloud platforms to provide...
The increase in the complexity of computer systems has led to a vision of systems that can react and adapt to changes. Organic computing is a bio-inspired computing paradigm that applies ideas from nature as solutions to such concerns. This bio-inspiration leads to the emergence of life-like properties, called self-* in general which suits them wel...
Cloud’s profitability is mainly driven by the business, and on the other hand, a successful business is hardly geared with clients’ satisfaction. Therefore, there is high competition between cloud providers for satisfying clients and attracting more of them. In this way, long term business success factors should also be considered in addition to sh...
Context
The nature of the object-oriented development process is iterative and incremental, and through this process, software artifacts are refined and evolved continuously; however, most of proposed methods for deriving test cases from formal, object-oriented specifications have been adapted from previous structural techniques and are not aligned...
With the proliferation of graph applications in social network analysis, biological networks, WWW and many other areas, a great demand of efficient and scalable algorithms for graph mining is rising. In many applications, finding the most influential nodes in the network is informative for the network analyzers in order to track the spread of infor...
UML-B is a graphical formal modelling notation which is based on UML and relics oil Event-B and its verification tools. In this paper, we propose annealing and introduce subtyping rules as well-known refactoring rules which can improve and assist the derivation of object-oriented design from an abstract specification written in UML-B. We prove that...
The most important issue for a Bot is to conceal its commander source so that the analyzer could not find the commander if the Bot is under analysis. In this paper we propose a mechanism for managing the Botnet C and C communication based on Cloud Computing infrastructures. The proposed mechanism provides a hierarchical organization of managerial n...
Due to the popularity of object-oriented programming approaches, there is a growing interest in utilizing object-oriented concepts, such as encapsulation and reuse, when applying formal methods. The main contribution of this paper is to review and compare existing formal methods to develop object-oriented programs from formal specifications. The se...
Because of numerous parameters existing in the Cloud’s environment, it is helpful to introduce a general solution for dynamic resource provisioning in Cloud that is able to handle uncertainty. In this paper, a novel adaptive control approach is proposed which is based on continuous reinforcement learning and provides dynamic resource provisioning w...
Despite the need for change, highly available software systems cannot be stopped to perform changes because disruption in their services may consequent irrecoverable losses. Current work on runtime evolution are either too disruptive, e.g., “blackouts” in unnecessary components in the quiescence criterion approach or presume restrictive assumptions...
Developing large and complex systems often involves many stakeholders each of which has her own expectations from the system; hence, it is difficult to write a single formal specification of the system considering all of stakeholders' requirements at once; instead, each stakeholder can specify the system from her own viewpoint first. Then, the resu...
Reinforcement Learning (RL) is a powerful solution to adaptive control when no explicit model exists for the system being controlled. To handle uncertainty along with the lack of explicit model for the Cloud's resource management systems, this paper utilizes continuous RL in order to provide an intelligent control scheme for dynamic resource provis...
Service conceptual cohesion has an incredible impact on the reusability and maintainability of serviceoriented software systems. Conceptual cohesion indicates the degree of focus of services on a single business functionality. Current metrics for measuring service cohesion reflect the structural aspect of cohesion and therefore cannotbe utilized to...
Since the Small and Medium Business (SMB) markets is growing, service-oriented architecture will play a crucial role in the SMB IT market. In this market the ability for better integration, increased flexibility, and cost reduction in development by reuse of existing services must be considered. Because of the service oriented architecture's dynami...
Object-Z is an extension of Z which provides specific constructs to facilitate specification in an object-oriented style. A number of contributions have been made so far to animate Object-Z with various object-oriented programming languages. However, none of the existing animation methods present their mapping rules formally. Also, none of these an...
Visual and formal modeling notations can complement each other when developing software systems. Object-Z (OZ) is an object-oriented extension of the Z notation for writing formal specifications. Much work exists on translations between UML and OZ. However, UML is not a formal modeling language. This delays verification and validation of UML visual...
Cloud computing is a new technology which is proffering IT services based on pay-as-you-go model to consumers from everywhere in the world. The growing demand of Cloud infrastructure and modern computational requests like business, scientific and web applications result in large-scale data centers and lead to extra electrical energy consumption. Hi...
Chord is a popular structured peer-to-peer protocol. In this protocol a hash function is used to identify Nodes ID and data Keys. Therefore, it is possible that different nodes have the same ID; examining the features of this protocol under the condition in which different nodes may have the same ID is important. In this paper, using Alloy, we form...
Object-Z is an extension of the Z notation which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map Object-Z to various object-oriented languages. However, the given mapping approaches do not cover several Object-Z specification con...
Nowadays, service oriented architecture provides a scalable framework for service composition. Today's systems are tending to be large scaled, such as cloud workflows; in such systems, service composition algorithms play a critical role in composing multi-provider services by considering user desirable quality of services so as to fulfill business...
With impressive progress of cloud computing and its influence on many aspects of utility computing, many of companies and enterprises are tending to this new product of information technology; some of these companies are interested in consuming cloud services and others tend to provide cloud services. The most common thing for these two major class...
Web Service Composition provides an opportunity for enterprises to increase the ability to adapt themselves to frequentchanges in users’ requirements by integrating existing services. Our research has focused on proposing a framework tosupport dynamic composition and to use both SOAP-based and RESTful Web services simultaneously in compositeservice...
Probabilistic techniques in computer programs are becoming more and more widely used. Therefore, there is a big interest in methods for formal specification, verification, and development of probabilistic programs. In this paper, we introduce a Z-based formalism that assists us to specify probabilistic programs simply. This formalism is mainly base...
One of the key issues that should be considered when addressing reliable evolution is to place a software system in a consistent status before and after change. This issue becomes more critical at runtime because it may lead to the failure on running mission-critical systems. In order to place the affected elements in a safe state before dynamic ch...
At the moment, cloud computing has an interesting progression in academic and industrial areas. Many well-known companies like Microsoft, Amazon, Google and IBM has built their own clouds in addition to many other open source cloud computing platforms and frameworks. There are many characteristics which a cloud should have. Many of the existing pla...
Continuous availability of services and low degree of disruption are two inherent necessities for mission-critical software systems. These systems could not be stopped to perform updates because disruption in their services consequent irretrievable losses. Additionally, compared to offline update, the changes should preserve the correct completion...
High cohesion as a desirable principle in software design has an incredible impact on software reuse, maintenance and support. In service-oriented architecture (SOA), the focus of services on single business functionality is defined as conceptual cohesion. Current metrics for measuring service cohesion reflect mostly the structural aspect of cohesi...
Today enterprises are facing rapid and radical changes in business environments, making business agility a crucial step toward gaining competitive advantages over rivals. Service- oriented architectures (SOA) are touted as the key to business agility. However to deliver business agility with SOA effectively, business services should be designed acc...
Object-Z is an extension of Z which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map Object-Z to various object- oriented languages. However, the given mapping rules do not cover some Object-Z specification constructs, such as cla...
Modularity is one of the prominent principles in designing services which must be adhered during service design. Services can be simply defined as modular units which concentrate on a single business functionality. Focusing on a single business functionality, modular services can be easily reused in various contexts and also can be composed to sati...
Software systems development nowadays has moved towards dynamic composition of services that run on distributed infrastructures aligned with continuous changes in the system requirements. Consequently, software developers need to tailor project specific methodologies to fit their methodology requirements. Process patterns present a suitable solutio...
Probabilistic techniques in computer programs are becoming more and more widely used. Therefore, there is a big interest in methods for formal specification, verification, and development of probabilistic programs. In this paper, we present a constructive framework to develop probabilistic programs formally. To achieve this goal, we first introduce...
Low coupling is a service-oriented design and development principle that should be taken into account during all stages. Having loosely coupled services not only increases service reusability, but also prevents the propagation of changes to other services and thus simplifies maintenance of service-oriented systems as well. In this paper, we focus o...
ERP system is to mange user\administrator manual documents dynamically. Since an ERP package is frequently changed during its implementation in customer sites, it is often needed to add new documents and/or apply required changes to existing documents in order to cover new or changed capabilities. The worse is that since these changes occur continu...
ERP systems are often supposed to be implemented and deployed in multi-national companies. On the other hand, an ERP developer may plan to market and sale its product in various countries. Therefore, an EPR system should have the ability to communicate with its users, who usually have different languages and cultures, in a suitable way. EPR support...
One of the most important aspects expected from ERP systems is to integrate various operations existing in administrative, financial, commercial, human resources, and production departments of the consumer organization. Also, it is often needed to integrate the new ERP system with the organization legacy systems when implementing the ERP package in...
It is now widely accepted that programming concurrent software is a complex, error-prone task. Therefore, there is a big interest in the specification, verification and development of concurrent programs using formal methods. In our work-in-progress project, we are attempting to make a constructive framework for developing concurrent programs forma...
Probabilistic techniques in computer programs are becoming more and more widely used. Therefore, there is a big interest in the formal specification, verification, and development of probabilistic programs. On the other hand, Martin-Löf's theory of types is an appropriate notation for formal program development since it allows us to express both sp...
Existing experiences indicate that one of the most prominent reasons that some ERP implementations fail is related to selecting an improper ERP package. Among those important factors resulting in inappropriate ERP selections, one is to ignore preliminary activities that should be done before the evaluation of ERP packages. Another factor yielding t...
Probabilistic techniques in computer programs are be-coming more and more widely used. Therefore, there is a big interest in the formal specification, verification, and development of probabilistic programs. In our work-in-progress project, we are attempting to make a constructive framework for developing prob-abilistic programs formally. The main...
In this paper, we introduce a refinement approach to develop probabilistic programs formally. To achieve this goal, we first present a way to specify probabilistic programs in a Z-based notation. We then use an existing method of translating Z into a refinement calculus to transform our Z-style specifications of probabilistic programs into specific...
The abstraction inherent in most specifications and the need to specify nondeterministic programs are two well-known sources of nondeterminism in formal specifications. In this paper, we present a Z-based formalism by which one can specify bounded, unbounded, erratic, angelic, demonic, loose, strict, singular, and plural nondeterminism. To interpre...