Armin Eberlein

Armin Eberlein
University of Regina · Faculty of Engineering and Applied Science

About

128
Publications
32,997
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
2,506
Citations

Publications

Publications (128)
Conference Paper
Due to the lack of central control in distributed systems, design and implementation of such systems is a challenging task. Interaction of multiple autonomous components can easily result in unwanted behavior in the system. Therefore it is vital to carefully review the design of distributed systems. Manual review of software documents is too ineffi...
Conference Paper
Global influence factors, e.g., quality attributes or technical constraints, often guide the process of designing software architectures. However, characteristics of individual requirements (e.g., the complexity or volatility of a requirement) also impact the design of architectures. Consequently, systematically handling the impact of individual re...
Article
Lack of central control in distributed systems makes the requirement analysis and design of such systems a challenging task. Literature suggests that detection and removal of defects prior to the deployment of a software system is several times less expensive than the discovery of faults afterwards. Since manual review of software requirements and...
Article
Multi-agent systems (MAS) are efficient solutions for commercial applications such as robotics, business commerce applications, information retrieval and search engines. In MAS, agents are usually designed with distribution of functionality and control. Lack of central control implies that the quality of service of MAS may be degraded because of po...
Chapter
The quality of information systems heavily depends on software requirements engineering and software architecting. Both activities are the foundation for subsequent tasks, such as software development project planning, implementation, or maintenance. This paper introduces a methodological framework to support the transition from requirements to arc...
Chapter
Getting meaningful information from empirical data is a challenging task in software engineering (SE). It requires an in-depth analysis of the research problem, the data obtained and to select the most suitable data analysis methods, as well as an evaluation of the validity of the analysis result. This chapter reports research with three data analy...
Conference Paper
Full-text available
Distributed knowledge has attracted more and more attention as a way to improve knowledge sharing across the world using the Internet. This paradigm enables many systems to interact with each other and share their knowledge while keeping their own ontology. Several researchers have worked on this topic with different strategies but they all argue t...
Conference Paper
Emergent behavior in distributed systems is a central problem that may lead to unexpected behaviors and major faults. Emergent behaviors are usually categorized into three groups: emergent behaviors occur due to scenarios incompleteness; emergent behaviors as a result of violation of a system wide policy; and emergent behaviors as a result of synth...
Conference Paper
Network filtering has become an important security issue worldwide. Network filters are designed and put in place to enforce restrictions for a variety of different motives, such as political, social, economical or merely security reasons. Although network filters can be applied to different networks, their main use is for the Internet. However, as...
Conference Paper
The growing complexity of software has posed challenges for the design, understanding and maintenance of software. Software developers often spend a lot of effort on understanding how software components are connected. Through analysis of the data obtained from a real software application, this paper demonstrates that network analysis approaches ca...
Article
Recommendation systems provide users with up-to-date guidance on processes, artifacts or other project-relevant information. Recommendation systems for requirements engineering can be used to provide the right information, at the right time, to requirements engineers. In this paper, we use systematic mapping to provide an overview of recommendation...
Article
There are many factors that provide input into the software development process, such as the values, beliefs, norms, practices, skills, behaviors, knowledge and goals of stakeholders. Research has shown that successful software system development relies on alignment or congruence between these factors. How to monitor the level of congruence between...
Article
Time-to-market has become more and more critical for software development projects. Thus, the time available for requirements engineering is drastically reduced and at the same time, the requirements are subject to frequent changes due to fast and fierce competition. Whoever releases a product containing the most valuable features first will profit...
Article
The requirements engineering process has been recognized as an important part in software development. Due to the efforts spent in this area, people have developed several requirements engineering process models. Although the models vary greatly, we have identified some practices that are included in numerous models in order to help people develop...
Article
Agile methodologies (DSDM, XP, Crystal, SCRUM, etc.) have been adopted as popular approaches to software development mainly because of their capability to deliver the end product faster and incorporate changes to the requirements. Agile follows iterative development, i.e. the implementation of software systems in successive releases. A side effect...
Article
Full-text available
This paper reports on the transition from monolithic to component-based software development in a multinational firm working in process control for embedded applications. The strategic motivations for moving to components are presented and the key ideas are outlined. It also addresses the advantage of component-based development for the implementat...
Conference Paper
Full-text available
The Web of information has grown to millions of independently evolved decentralized information repositories. Decentralization of the web has advantages such as no single point of failure and improved scalability. Decentralization introduces challenges such as ontological, communication and negotiation complexity. This has given rise to research to...
Article
Using Commercial Off-The-Shelf (COTS) products to build software systems requires the evaluation of existing COTS products, the selection of the COTS that best fit system requirements, and the integration of the selected COTS into the system. During this process, it is inevitable to encounter two types of mismatches: (1) COTS mismatches, which are...
Conference Paper
Variability in service-oriented architectures (SOA) is usually addressed through loose coupling of services and dynamic retrieval, composition and binding of services. Facilitating variability can lead to different instances of one SOA. These instances share commonalities, but vary in certain aspects (e.g., in functionality or quality attributes)....
Conference Paper
Ranking software requirements helps decide what requirements to implement during a software development project, and when. Currently, requirements ranking techniques focus on resource constraints or stakeholder priorities and neglect the effect of requirements on the software architecture process. However, the order in which requirements are implem...
Article
Strategic release planning (SRP) is a critical step in iterative software development. SRP involves the assignment of features or requirements to releases while considering hard and soft constraints, such as time, effort, quality or resources. ReleasePlanner™ is a web-based decision support tool that is based on a sound and rigorous formal strategi...
Article
Selecting appropriate styles for software architectures is important as styles impact characteristics of software (e.g. reliability). Moreover, styles influence how software is built as they determine architectural elements (e.g. components, connectors) and rules on how these elements are integrated in the architecture. Therefore this study present...
Conference Paper
Full-text available
Distributed agent-mediated knowledge management (AMKM) has attracted much attention as a way to improve knowledge sharing across the world. In AMKM, many systems can potentially interact with each other and share their knowledge while keeping their own ontology such as health care systems that handle problems of distributed experience and search en...
Conference Paper
Textual software requirements can be specified in various ways. However, not all types of textual specifications might be an appropriate starting point for creating software architectures. Thus, this paper investigates different formats of textual software requirements and tries to identify a suitable input for creating architectures. Case studies...
Conference Paper
COTS-based development (CBD) in particular the evaluation and selection of COTS candidates is a challenging task. One major challenge is the possible conflict between stakeholders, which can occur during the evaluation and selection of COTS products. This conflict is inevitable since stakeholders have different needs and preferences. In this paper,...
Conference Paper
Full-text available
Literature suggests that requirements defects are a very costly problem to fix. Understanding how requirements changes influence the overall quality of software is important. Having some defect predictors at the requirements stage may help the stakeholders avoid making choices that could bring about catastrophic defect numbers at the end or at leas...
Conference Paper
Full-text available
In this paper we introduce a semantic search technique based on ontological concept learning. We also present a prototype of a multi-agent system (MAS) that can handle semantic search and at the same time hide the search complexity from the user. MAS can handle distribution and decentralization of information at the expense of ontology diversity. I...
Conference Paper
The transition from software requirements to software architectures has consistently been one of the main challenges during software development. Various methodologies that aim at helping with this transition have been proposed. However, no systematic approach for assessing such methodologies exists. Also, there is little consensus on the technical...
Conference Paper
The ongoing debate over the merits of classical software engineering (SE) methodologies and agile methodologies has so far resulted in no clear benefits for the SE community. This paper uses the CHAPL framework developed in our previous research to analyse the history of classical SE methodologies and agile methodologies. Our historical analysis fo...
Conference Paper
Evaluation of software is critical in a world that increasingly relies on software. Several software evaluation methodologies have been developed, but as software solutions increases in number and size, many of them do not scale. Improving scalability of software evaluation methodologies is a challenge and failing to reach a reasonable scalability...
Conference Paper
Software development has significantly matured in the last decade. However, one of the critical challenges today is uncertainty inherent to every aspect of software development including requirement specifications, design, coding, and testing. In this paper, we propose a framework for uncertainty management in software engineering. The framework is...
Conference Paper
Despite its popularity, The COTS-based development still faces some challenges, in particular the evaluation and selection process in which uncertainty plays a major role. A hybrid model, composed of the analytic hierarchy process (AHP) and Bayesian belief network (BBN), is proposed to evaluate and rank various COTS candidates while explicitly cons...
Conference Paper
This paper presents an approach for the ad-hoc assessment of software architecture qualities. The method allows evaluating architectures at early development stages and focuses on development qualities (e.g., coupling), rather than on runtime qualities (e.g., performance). Early feedback in the development process facilitates immediate improvement...
Article
Full-text available
The complexity of software projects as well as the multidisciplinary nature of requirements engineering (RE) requires developers to carefully select RE techniques and practices during software development. Nevertheless, the selection of RE techniques is usually based on personal preference or existing company practice rather than on characteristics...
Article
Full-text available
Requirements engineering (RE) is a critical phase in the software engineering process and plays a vital role in ensuring the overall quality of a software product. Recent research has shown that industry increasingly rec- ognizes the importance of good RE practices and the use of appropriate RE techniques. However, due to the large number of RE tec...
Article
Full-text available
During the selection of commercial off-the-shelf (COTS) products, mismatches encountered between stakeholders’ requirements and features offered by COTS products are inevitable. These mismatches occur as a result of an excess or shortage of functionality offered by the COTS. A decision support approach, called mismatch handling for COTS selection (...
Article
Full-text available
There is an ongoing debate in the software engineering (SE) community over the usefulness and applicability of classical SE methodologies versus agile methodologies. Based on an investigation of the philosophical origins, the history and the technological support of representative classical SE methodologies and agile methodologies, a framework is p...
Conference Paper
Full-text available
Adoption of the most suitable requirements engineering (RE) process and selection of the most appropriate RE techniques for a given project are challenging issues for industry. In order to alleviate the problems, a framework for RE process development (FRERE) was developed based on our research in the last six years. The overall architecture of the...
Article
The use of Commercial Off-The-Shelf (COTS) products in the software development process requires the evaluation of existing COTS products, and then selecting the one that best fits system requirements. In this process, it is inevitable to encounter mismatches between COTS features and system requirements. Mismatches occur as a result of an excess o...
Article
Software architectures can be represented in many different ways, e.g., using formalized notations, such as SDL, or less formal visualizations, like UML. Besides the notation, the representation also includes mechanisms for reasoning about the various concerns addressed in the architecture, e.g., functional aspects or run-time issues. However, deci...
Conference Paper
Atomic requirements are one way of specifying software requirements. In this paper, we describe how atomic requirements can be of particular interest in the context of software architectures. We describe the way how to specify atomic requirements and their impact on the requirements engineering process, with an emphasis on architectural issues. In...
Conference Paper
Smart homes have enjoyed increasing popularity in recent years. In order for them to further expand their market share, users need to be able to fully control devices. Policies are one way for users to achieve such flexible control of devices. However, user policies often tend to interact in unwanted ways leading to unexpected behavior of devices....
Conference Paper
Using software engineering (SE) knowledge to support the software development process is challenging due to the complex structure of SE knowledge and the uncertain nature of large-scale software projects. However, already before developing software, establishing a development process suitable for the project at hand is another challenge. This paper...
Article
Feature Interaction is a problem mostly considered in the telecommunications domain. Many solutions for detecting interactions between telephony features have been reported. In this paper, we investigate the feature interaction problem beyond the traditional telecommunications domain and look at interactions between policies in other domains. We pr...
Article
Full-text available
In the process of selecting Commercial Off-The-Shelf (COTS) products, it is inevitable to encounter mismatches between system requirements and COTS products. These mismatches occur as a result of an excess or shortage of the COTS attributes. This paper proposes a decision support approach, called MiHOS (Mismatch Handling for COTS Selection), that a...
Conference Paper
COTS-based software development (CBSD) is a promising development paradigm used to speedup the software development process, decrease the cost and development effort, and improve the quality of the final software product. This paper reviews various research efforts within the CBSD field for the purpose of better understanding the overall CBSD devel...
Conference Paper
We study the notion of safe realizability and implied scenarios for Message Sequence Chart (MSC) specifications with the following contributions: (1) We investigate the cause of implied scenarios and show that even though implied scenarios are an artifact of the distributed and global system behaviour, nevertheless, they are the result of the nonde...
Conference Paper
Full-text available
Commercial off-the-shelf (COTS) products are increasingly being used in software development. In COTS-based development, selecting appropriate COTS is the most crucial phase. This paper explores the evolution of COTS selection practices, and surveys eighteen of the most significant COTS selection approaches. The paper traces how each approach contr...
Conference Paper
Selection of the most appropriate RE techniques for a software project based on the project's characteristics is a non-trivial process and a common challenge faced by software developers. In order to facilitate RE techniques selection, we propose a model for RE technique suitability assessment (RETSA) based on project attributes. This model was dev...
Conference Paper
Software architectures have a significant impact on software quality. However, building architectures is a non-trivial task. In this paper, we present a process module for pre-processing requirements before developing the architecture. The benefit of this module is that it "prepares " requirements for architecting: It helps elicit additional techni...
Article
This paper presents an interaction taxonomy for classifying and identifying requirement interactions in software systems. The proposed taxonomy is in the form of a four-layered pyramid that defines 6 Main Interaction Categories in the first layer, 17 Interaction Subcategories in the second layer, 29 Interaction Types in the third layer, and 29 Inte...
Article
In the process of selecting commercial off-the-shelf (COTS) products, it is inevitable to encounter mismatches between COTS products and system requirements. Mismatches occur when COTS attributes do not exactly match our requirements. Many of these mismatches are resolved after selecting a COTS product in order to improve its fitness with the requi...
Article
The creation of a development process is a challenging task. The most-widely published process models, such as the Waterfall model, are very generic, and their application and customization to a specific problem domain requires major effort. Additionally, their refinement into fine-grained process steps demands a lot of dedicated work. There is def...
Article
Full-text available
In engineering design, customers usually provide product requirements in the form of a natural language while computer-aided design systems may prefer more formal and structured specifications. In this paper, a formalisation process is proposed to transform product requirements from its natural language descriptions to a formal specification. The f...
Article
A new approach for generating state machine designs from scenarios is presented that assigns state values to the states of system's components (processes) in different scenarios. State values are assigned using a light domain theory inferred from the domain knowledge, and are used to detect identical states of processes in order to merge partial be...
Article
Full-text available
Off-the-shelf (OTS) components and OTS-based development (OBD) significantly impact software development practices and product quality. In the early stages of development, software architectures are often built by creating new and / or combining existing components. Nevertheless, we still lack common frameworks for OBD for these activities. This pa...
Conference Paper
Full-text available
Elicitation, modeling and analysis of requirements are main challenges during software development. In parallel, software architectures have become a well established area in software engineering research and practice. However, there is still a lack of fundamental process models and guidelines for the transition between the two important phases of...
Article
This paper presents a remote healthcare patient monitoring system, called the Virtual Eye (VI), that utilises the World Wide Web infrastructure to monitor, collect, analyse and record patients' health status. The data is stored in the hospital database and can be accessed from anywhere through the internet. When a patient is in an alarming situatio...
Conference Paper
Full-text available
Enterprise architectures represent business objectives that can be extracted during requirements engineering. After gathering these objectives in form of requirements the resulting specifications must be translated into software architectures for later implementation. This transition has proven to be a non- trivial task. Even though requirements en...
Article
Full-text available
This paper investigates the problem of requirement interactions which occurs due to negative relationships between requirements when developing software systems. This paper presents IRIS-TS (Requirements Interactions using Semi-formal methods - Tool Support) which identifies and detects requirement interactions using semi-formal methods in any soft...
Article
The selection of proper RE techniques for a project has been a challenging issue in industry. It is usually done based on personal preference or existing company practice rather than on characteristics of RE techniques and the project at hand. Moreover, research has shown that there are numerous useful RE techniques that are, however, not widely us...
Article
Software technologies need to be customized to make them effective and efficient for a specific context. In this position paper, we consider the customization of the COTS selection process. We have developed a methodology which customizes the selection process based on the actual project domain characteristics (PDCs) including attributes such as av...
Conference Paper
Full-text available
The selection of requirements engineering (RE) techniques during software project development is a challenge for most developers. One of the reasons is that there is a great lack of requirements engineering education in most academic programs, so software developers have to learn requirements engineering practices on the job. This can easily result...
Conference Paper
Full-text available
Selection of Commercial-off-The-Shelf (COTS) software products is a knowledge-intensive process. In this paper, we show how knowledge bases can be used to facilitate the COTS selection process. We propose a conceptual model to support decision makers during the evaluation procedures. We then describe how this model is implemented using agent techno...
Conference Paper
Full-text available
Adoption of the most suitable requirements engineering (RE) process and selection of the most appropriate RE techniques for a given project is a common challenge faced by industry. This paper presents a methodology for RE process development for a given project. The novelty of this work is four-fold. First, a RE process knowledge base (REPKB) is es...
Conference Paper
Full-text available
Requirements engineering is considered a critical phase of the software development life cycle. However, because of the complexity of today's projects, requirements often have a negative impact on each other. Requirements interaction detection is an important activity for the discovery of such unwanted interactions. Commonly used detection processe...
Article
The Object Model Creation Process (OMCP) is considered a major task in Object-Oriented Analysis and Design (OOAD). In the Rational Unified Process (RUP), objects and classes are identified from the use case model, which is a combination of the Use Case diagram and the Use Case Specification (UCS) document. The automation of the generation of the cl...
Article
Existing Requirements Engineering (RE) process assessment models lack the components necessary to provide enough information about the quality of a RE process. The concept of "COncern of Requirement Engineering" (CORE) and the assessment models proposed in our previous research provide a method and new perspectives to assess the quality of a RE pro...
Conference Paper
Full-text available
The object model creation process (OMCP) is considered a major task in object-oriented analysis and design (OOAD). In the rational unified process (RUP), objects and classes are identified from the use case model, which is a combination of the use case diagram and the use case specification (UCS) document. The automation of the generation of the cl...
Conference Paper
Existing requirements engineering (RE) process assessment models lack the components necessary to provide enough information about the quality of an RE process. The concept of "concern of requirement engineering" (CORE) and the assessment models proposed in our previous research provide a method and new perspectives to assess the quality of an RE p...
Conference Paper
One of the most challenging tasks in requirements engineering is the establishment of guidelines of when and how to use certain requirements engineering processes within the project context. Requirements interaction detection, as a requirements engineering activity, still lacks the definition of precise guidelines for when and how to apply the diff...
Conference Paper
Full-text available
This paper presents a methodology to automate natural language requirements analysis and class model generation based on the Rational Unified Process (RUP). Use-case language schemas are proposed to reduce complexity and vagueness of natural language. Some rules are identified and used to automate class model generation from use-case specifications...
Article
Full-text available
We describe an empirical study of open-source and closed-source software projects. The motivation for this research is to quantitatively investigate common perceptions about open-source projects, and to validate these perceptions through an empirical study. We investigate the hypothesis that open-source software grows more quickly, but does not fin...
Conference Paper
Developing a suitable Requirements Engineering (RE) process for a given project is a challenge faced by many practitioners. In this paper, we propose a novel multi-tier structure for a web-based Requirements Engineering Process dEvelopment AssistanT (REPEAT). This tool is designed to help requirements engineers develop a suitable RE process for a g...
Conference Paper
There is an increasing trend to use commercial-off-the-shelf components (COTS) in building new software systems. COTS products can save time and effort compared to custom-made systems. The success of COTS-based systems highly depends on the effective evaluation and selection of those COTS. Over ten approaches have been proposed in literature to pro...
Conference Paper
Full-text available
The development of class models using the Rational Unified Process (RUP) requires complete, correct and unambiguous use case specification documents. The Use Case Driven Development Assistant (UCDA) tool provides automated assistance in developing use case diagrams, writing use case specification documents and developing the analysis class models....
Conference Paper
This paper deals with the problem of requirements interaction. We introduce a three level framework to detect requirements interactions at different levels of cost, time, and complexity. Level 2 where we use semiformal methods to detect interactions contains the main contribution of the research. Also we combine existing approaches (e.g. informal a...
Article
Full-text available
The elicitation, modeling and analysis of requirements have consistently been one of the main challenges during the development of complex systems. Telecommunication systems belong to this cat- egory of systems due to the worldwide distribution and the heterogeneity of today's telecommunication networks. Scenarios and use cases have become popular...
Article
Full-text available
Evaluation, prioritization and selection of candidate requirements are of tremendous importance and impact for subsequent software development. Effort, time as well as quality constraints have to be taken into account. Typically, different stakeholders have conflicting priorities and the requirements of all these stakeholders have to be balanced in...