Omar Bahy Badreddin

dblp:19/6931 · also Omar Badreddin · DBLP profile ↗
← Back
21ranked-venue papers
9as first author
3since 2021 · last 2021
0000-0002-8851-4131ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 17 · 9 first-author · 3 since 2021Human-computer interaction and ubiquitous computing · 2Computer networks · 1Databases, data management, data science and information retrieval · 1
YearPublicationVenuePosition
2021 Characterization of Software Design and Collaborative Modeling in Open Source Projects
Rahad Khandoker, Omar Bahy Badreddin, Sayed Mohsin Reza
MODELSWARD2
2021 Umple: Model-driven development for open source and education
abstract
Umple is an open-source software modeling tool and compiler. It incorporates textual language constructs for UML modeling, including associations and state machines. It includes traits, aspects, and mixins for separation of concerns. It supports embedding methods written in many object-oriented languages, enabling it to generate complete multilingual systems. It provides comprehensive analysis of models and generates many kinds of diagrams, some of which can be edited to update the Umple code. Umple runs on the command line, in a web browser or in integrated development environments. It is designed to help developers reduce code volume, while they develop in an agile, model-driven manner. Umple is also targeted at educational users where students are motivated by its ability to generate real systems from their software models.
Timothy Lethbridge, Andrew Forward, Omar Bahy Badreddin, Dusan Brestovansky, Miguel Garzón, Hamoud Aljamaan, Sultan Eid, Ahmed Husseini Orabi, Mahmoud Husseini Orabi, Vahdat Abdelzad, Opeyemi Adesina, Aliaa Alghamdi, Abdulaziz Algablan, Amid Zakariapour
Sci. Comput. Program.3
2021 The human in model-driven engineering loop: A case study on integrating handwritten code in model-driven engineering repositories
abstract
Abstract In model‐driven engineering (MDE) software projects, large portions of the executable code are automatically generated from designs and models. This generated code may or may not be edited by the developers to achieve their development objectives. MDE projects also include a significant amount of handwritten code (HC). This handwritten code is developed under unique constraints, as it must integrate with generated artifacts and code elements that are not directly developed by the engineers. These constraints adversely affect codebase quality and maintainability. This case study aims to investigate the hypothesis pertaining to the handwritten code quality developed in the context of MDE. The study analyzes these unique code fragments and compares their characteristics to handwritten code in repositories where code generation is not present. The study finds that handwritten code quality in the MDE context suffers from elevated technical debt and code smells. We observe key code smells that are particularly evident in this handwritten code. These findings imply that code generators must optimize for human comprehension, prioritize extensibility, and must facilitate integration with handwritten code elements.
Rahad Khandoker, Omar Bahy Badreddin, Sayed Mohsin Reza
Softw. Pract. Exp.2
2020 Towards a Model-based Fuzzy Software Quality Metrics
Omar Masmali, Omar Bahy Badreddin
MODELSWARD2
2018 A Decade of Software Design and Modeling: A Survey to Uncover Trends of the Practice
abstract
We present the results of a survey of 228 software practitioners conducted on two phases ten years apart. The goal of the study is to uncover trends in the practice of software design and the adoption patterns of modeling languages such as UML. The first phase was conducted in April-December 2007 and included 113 responses. The second phase was conducted in March-November 2017 and included 115 responses. Both surveys were conducted online, employed identical solicitation mechanisms, and included the same set of questions. The survey results are analyzed within each phase and across phases. We present the results and analysis of the data identifying upward and downward trends in design and modeling practices. The results suggest some increase in formal and informal modeling and identify key challenges with modeling platforms and tools. The results can help researchers, practitioners, and educators to focus efforts on issues of relevance and significance to the profession.
Omar Bahy Badreddin, Rahad Khandoker, Andrew Forward, Omar Masmali, Timothy Lethbridge
MoDELS1
2018 Reducing UML Modeling Tool Complexity with Architectural Contexts and Viewpoints
abstract
International audience
Maged Elaasar, Florian Noyrit, Omar Bahy Badreddin, Sébastien Gérard
MODELSWARD3
2017 Model Driven Software Engineering in Education: A Multi-Case Study on Perception of Tools and UML
abstract
While several benefits of using models in software engineering have been observed in practice, the adoption of modeling remains low. Multiple challenges of using models, especially related to tools, have been reported both for industrial use and for education. However, there is a lack of systematic, empirical investigations of the challenges in modeling education and their relation to industrial challenges. Therefore, we conducted a multiple-case study with two cases, in the U.S and Sweden, focusing on students' perceptions towards tooling and UML in education. Our data collected from 369 student evaluation surveys, enriched with qualitative data, shows that the students' perception of modeling tools depends not only on the complexity of tools, but rather on multiple contextual factors, including tool characteristics, scope of course and project contents, nature of the required models, and the tools' role in generating executable artifacts. We conclude that there is a need for tailoring modeling tools for education beyond focusing on simplification and usability. Furthermore, due to the broad diversity within the modeling domain, there is a need for adapting the use of tools to the specific curriculum and course learning objectives.
Grischa Liebel, Omar Bahy Badreddin, Rogardt Heldal
CSEE&T2
2016 Modeling Meets Programming: A Comparative Study in Model Driven Engineering Action Languages
Maged Elaasar, Omar Bahy Badreddin
ISoLA (2)2
2016 A Controlled Experiment for Evaluating the Comprehensibility of UML Action Languages
abstract
Action Languages represent an emerging paradigm where modeling abstractions are embedded in code to bridge the gap with visual models, such as UML models. The paradigm is gaining momentum, evident by the growing number of tools and standards that support this paradigm. In this paper, we report on a controlled experiment to assess the comprehensibility of those languages and compare it to that of object-oriented (OO) programming languages. We further report on the impact of also having access to the UML notation on the comprehensibility of those languages. Results suggest that action languages are significantly more comprehensible than traditional OO languages. Furthermore, there was not a significant improvement in comprehensibility when the UML notation was used along with both OO and action language code. We conclude that action languages are a promising alternative to traditional OO languages for specifying details, yet seem to be as comprehensible as high-level visual models.
Omar Bahy Badreddin, Maged Elaasar, Abdelwahab Hamou-Lhadj
MODELSWARD1
2014 Creating Quantitative Goal Models: Governmental Experience
Okhaide Akhigbe, Mohammad Alhaj, Daniel Amyot, Omar Bahy Badreddin, Edna Braun, Nick Cartwright, Gregory Richards 0001, Gunter Mussbacher
ER4
2014 Specifying Trace Directives for UML Attributes and State Machines
abstract
Developers using model driven development (MDD) to develop systems lack the ability to specify traces that operate at the model level. This results in specification of traces at the generated code level. In this paper, we are proposing trace directives that operate at the model level to specify the tracing of UML attributes and state machines. Trace directives are implemented as part of the Umple textual modeling language, thus these directives can be expressed in a textual form. Trace code will be injected into system source code that corresponds to trace directives specified at the model level.
Hamoud Aljamaan, Timothy Lethbridge, Omar Bahy Badreddin, Geoffrey Guest, Andrew Forward
MODELSWARD3
2014 A Test-Driven Approach for Developing Software Languages
abstract
Test-Driven Development (TDD) is the practice of attempting to use the software you intend to write, before you write it. The premise is straightforward, but the specifics of applying it in different domains can be complex. In this paper, we provide aTDD approach for language development. The essence is to apply TDD at each of four levels of language processing, hence we call our approach Multi-Level TDD, or MLTDD. MLTDD can be applied to programming languages, preprocessors, domain specific languages, and transformation engines. MLTDD was used to build Umple, a model-oriented programming language available for Java, Ruby, and PHP. We present two case studies where this approach was implemented to develop two other domain specific languages.
Omar Bahy Badreddin, Andrew Forward, Timothy Lethbridge
MODELSWARD1
2014 A Novel Approach to Versioning and Merging Model and Code Uniformly
abstract
Model Driven Architecture (MDA) advocates the use of models, rather than code, as the main development artifact. Yet model versioning and merging tools still lag in capabilities, ease of use and adoption relative to source code versioning and merging tools. This forces many teams to avoid model-based collaboration and concurrent model modifications. In this paper, we highlight the main challenges behind the relatively small adoption of model merging approaches. We present a novel model-based programming technology that addresses many of those challenges. The approach treats code and models uniformly, effectively enabling modelers to version and merge models using existing text-based technologies.
Omar Bahy Badreddin, Timothy Lethbridge, Andrew Forward
MODELSWARD1
2014 Investigation and Evaluation of UML Action Languages
abstract
We analyze the current direction of UML Action Language development and provide a classification of the proposed action language structure and statements. We also present a functioning implementation of an action language and discuss our platform for experimenting with Action Language based systems. We propose a novel approach that adopts a bottom-up technique to defining an action language. This approach embeds the action language into a textual environment that includes the UML modeling elements. Unlike current action languages that typically address class diagrams only, our proposal includes class and state machine modeling abstractions as part of the action language. We tackle the problem of modeling-in-text not by introducing yet another programming language, but instead by providing an increased level of abstraction to existing high level programming languages. Both, a textual representation of the model and its visual view represent the same underlying model but from different vantage points.
Omar Bahy Badreddin, Timothy Lethbridge, Andrew Forward
MODELSWARD1
2014 Enhanced Code Generation from UML Composite State Machines
abstract
Abstract: UML modelling tools provide poor support for composite state machine code generation. Generated code is typically complex and large, especially for composite state machines. Existing approaches either do not handle this case at all or handle it by flattening the composite state machine into a simple one with a combinatorial ex-plosion of states, and excessive generated code. This paper presents a new approach that transforms a composite state machine into an equivalent set of simple state machines before code generation. This avoids the combinato-rial explosion and leads to more concise and scalable generated code. We implement our approach in Umple.We report on a case study, comparing our approach to others in terms of code size and scalability. 1
Omar Bahy Badreddin, Timothy Lethbridge, Andrew Forward, Maged Elaasar, Hamoud Aljamaan, Miguel Garzón
MODELSWARD1
2013 Model oriented programming: bridging the code-model divide
abstract
Model Driven Engineering proposes the use of models as the main development artifacts. This methodology involves generating code from models and then perhaps adding some details to the generated code. Frequently, it is required to also reverse-engineer code to generate models. Despite the wide acceptance of modeling benefits, the use of Model Driven Engineering practices remains limited. We present model oriented programming as a new paradigm to reduce the ever-present tension between model-centric and code-centric development styles. The core of this approach is to add UML abstractions such as associations and state machines directly into a high-level programming language code. In this approach, model diagrams become just another abstract view of the code. The need for reverse engineering is eliminated, since everything in the diagram is represented directly in the code. Model orientation is illustrated using Umple, a working model oriented programming platform. A functional layer of an airline reservation system is presented as a case study.
Omar Bahy Badreddin, Timothy Lethbridge
MiSE1
2012 Model-driven rapid prototyping with Umple
abstract
SUMMARY The emergence of model‐driven software development brings new opportunities and challenges for rapid prototyping. On the one hand, the modeling process is inherently abstract, removing the prototyper from details, and letting him or her focus on exploring design alternatives for various aspects of the system. On the other hand, the most popular modeling languages and tools entirely omit the modeling and generating of user interfaces. As a result, the benefit of user interface prototypes as a medium for interaction with the user and customer is lost. This paper presents a model‐oriented technology called Umple that can be used for prototyping and also supporting model driven engineering. Umple allows end users to quickly create class and state machine models and to incrementally embed implementation artifacts. At any point in the modeling process, users can quickly generate a fully functional prototype that exposes modeling implications on the user interface, and allows stakeholders to get a feel of how the full system will behave. Copyright © 2011 John Wiley & Sons, Ltd.
Andrew Forward, Omar Bahy Badreddin, Timothy Lethbridge, Julian Solano
Softw. Pract. Exp.2
2011 Teaching UML using umple: Applying model-oriented programming in the classroom
abstract
We show how a technology called Umple can be used to improve teaching UML and modeling. Umple allows UML to be viewed both textually and graphically, with updates to one view reflected in the other. It allows UML concepts to be added to programming languages, plus web-based code generation from UML to those languages. We have used Umple in student laboratories and assignments for two years, and also live in the classroom. In a survey, students showed enthusiasm about Umple, and indicated they believe it helps them understand UML better. Improvements in their grades also support our approach.
Timothy Lethbridge, Gunter Mussbacher, Andrew Forward, Omar Bahy Badreddin
CSEE&T4
2010 Umple: a model-oriented programming language
abstract
Our research tool, Umple, has the objective of raising the abstraction level of programming languages by including modeling abstractions such as UML associations, attributes and state machines. My research focuses on the syntax and semantics of state machines in Umple and the empirical validation of Umple as a whole.
Omar Bahy Badreddin
ICSE (2)1
2010 A study of applying a research prototype tool in industrial practice
abstract
Our research tool, Umple, has the objective of raising the abstraction level of programming languages by adding modeling abstractions such as UML associations, attributes and state machines. My research focuses on the syntax and semantics of state machines in Umple plus the empirical validation of Umple. The latter consists of a grounded theory study of Umple users, and action research involving the use of Umple in an industrial sitting. The grounded theory study is guiding our research and development of Umple. The action research is enlarging the pool of Umple users and contributing to the validation of Umple's approach.
Omar Bahy Badreddin, Timothy Lethbridge
SIGSOFT FSE1
2008 Mining software aging: A neural network approach
abstract
This paper investigates the use of Artificial Neural Networks (ANN) to predict software aging phenomenon. We analyze resource usage data collected on a typical long-running software system: a web server. A Multi-Layer Perceptron feed forward Artificial Neural Network was trained on an Apache web server dataset to predict future server resource exhaustion through univariate time series forecasting. The results were benchmarked against those obtained from non-parametric statistical techniques, parametric time series models and empirical modeling techniques reported in the literature.
Hisham El-Shishiny, S. Sobhy Deraz, Omar Bahy Badreddin
ISCC3