Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Omar Bahy Badreddin is active.

Publication


Featured researches published by Omar Bahy Badreddin.


Software - Practice and Experience | 2012

Model-driven rapid prototyping with Umple

Andrew Forward; Omar Bahy Badreddin; Timothy C. Lethbridge; Julian Solano

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


conference on software engineering education and training | 2011

Teaching UML using umple: Applying model-oriented programming in the classroom

Timothy C. Lethbridge; Gunter Mussbacher; Andrew Forward; Omar Bahy Badreddin

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.


working conference on reverse engineering | 2010

Umplification: Refactoring to Incrementally Add Abstraction to a Program

Timothy C. Lethbridge; Andrew Forward; Omar Bahy Badreddin

Umple adds UML abstractions to base programming languages such as Java, PHP and Ruby. The resulting program can be seen as both model and code at the same time. Umplification is the process of converting a base language program to Umple by a series of refactorings. The result is a program semantically equivalent to the original, but which can be rendered and edited as UML diagrams by a modeling tool or manipulated as a textual program for those who prefer. In this paper we discuss the principles of Umple, the process of umplification, and two examples including umplification of the Umple compiler itself.


open source systems | 2013

Modeling Practices in Open Source Software

Omar Bahy Badreddin; Timothy C. Lethbridge; Maged Elassar

It is widely accepted that modeling in software engineering increases productivity and results in better code quality. Yet, modeling adoption remains low. The open source community, in particular, remains almost entirely code centric. In this paper, we explore the reasons behind such limited adoption of modeling practices among open source developers. We highlight characteristics of modeling tools that would encourage their adoption. We propose Umple as a solution where both modeling and coding elements are treated uniformly. In this approach, models can be manipulated textually and code can be edited visually. We also report on the Umple compiler itself as a case study of an open source project where contributors, using the above approach, have and continue to routinely commit code and model over a number of years.


SERA (selected papers) | 2014

Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity

Omar Bahy Badreddin; Andrew Forward; Timothy C. Lethbridge

UML classes involve three key elements: attributes, associations, and methods. Current object-oriented languages, like Java, do not provide a distinction between attributes and associations. Tools that generate code from associations currently provide little support for the rich semantics available to modellers such as enforcing multiplicity constraints or maintaining referential integrity. In this paper, we introduce a syntax for describing associations using a model-oriented language called Umple. We show source code from existing code-generation tools and highlight how the issues above are not adequately addressed. We outline code generation patterns currently available in Umple that resolve these difficulties and address the issues of multiplicity constraints and referential integrity.


international conference on software engineering | 2010

Umple: a model-oriented programming language

Omar Bahy Badreddin

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.


SERA (selected papers) | 2014

Exploring a Model-Oriented and Executable Syntax for UML Attributes

Omar Bahy Badreddin; Andrew Forward; Timothy C. Lethbridge

Implementing UML attributes directly in an object-oriented language may not appear to be complex, since such languages already support member variables. The distinction arises when considering the differences between modelling a class and implementing it. In addition to representing attributes, member variables can also represent association ends and internal data including counters, caching, or sharing of local data. Attributes in models also support additional characteristics such as being unique, immutable, or subject to lazy instantiation. In this paper we present modeling characteristics of attributes from first principles and investigate how attributes are handled in several open-source systems. We look code-generation of attributes by various UML tools. Finally, we present our own Umple language along with its code generation patterns for attributes, using Java as the target language.


Proceedings of the First International Workshop on User Evaluation for Software Engineering Researchers | 2012

Combining experiments and grounded theory to evaluate a research prototype: lessons from the Umple model-oriented programming technology

Omar Bahy Badreddin; Timothy C. Lethbridge

Research prototypes typically lack the level of quality and readiness required for industrial deployment. Hence, conducting realistic experimentation with professional users that reflect real life tasks is challenging. Experimentation with toy examples and tasks suffers from significant threats to external validity. Consequently, results from such experiments fail to gain confidence or mitigate risks, a prerequisite for industrial adoption. This paper presents two empirical studies conducted to evaluate a model-oriented programming language called Umple; a grounded theory study and a controlled experiment of comprehension. Evaluations of model-oriented programming is particularly challenging. First, there is a need to provide for highly sophisticated development environments for realistic evaluation. Second, the scarcity of experienced users poses additional challenges. In this paper we discuss our experiences, lessons learned, and future considerations in the evaluation of a research prototype tool.


international conference on model-driven engineering and software development | 2014

Enhanced code generation from UML composite state machines

Omar Bahy Badreddin; Timothy C. Lethbridge; Andrew Forward; Maged Elaasar; Hamoud I. Aljamaan; Miguel Garzón

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 explosion 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 combinatorial 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.


rapid system prototyping | 2010

Umple: Towards combining model driven with prototype driven system development

Andrew Forward; Omar Bahy Badreddin; Timothy C. Lethbridge

The emergence of model driven methodologies is bringing new challenges for software prototyping. Models tend to focus on the design of the system, and are less concerned with, or less able to, support prototype qualities like reuse, evolution, or weaving together independently designed parts. This paper presents a model-oriented prototyping tool called Umple that supports model driven engineering and overcomes some of the challenges related to prototyping in a modeling environment. Umple allows end users to quickly model 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 quickly get a feel of how the full system will behave.

Collaboration


Dive into the Omar Bahy Badreddin's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Arnon Sturm

Ben-Gurion University of the Negev

View shared research outputs
Top Co-Authors

Avatar

Grischa Liebel

University of Gothenburg

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge