my profile

MY BLOG

resume

Education

Ph.D in Computer Science (Software Engineering)

University of Ottawa

Thesis topic: “Model-Driven Testing in Umple”.

Abstract

In this thesis we present a language and technique to facilitate model-based testing. The core of our approach is an xUnit-like language that allows tests to refer to model entities such as associations. This language can be used by developers to describe tests based on an existing UML model. The tests might even be written before creating a UML model, and be based on requirements. The testing language, including its parser and generators, is written entirely in Umple, an open-source textual modeling tool with semantics closely based on UML, and which generates Java, PHP and several other target languages. Tests in our language can be embedded in Umple or in standalone files. The test language compiler converts our abstract testing language into JUnit, PHPUnit and other domain-language testing environments. In addition to allowing developers to write tests manually, we have created generators that create abstract tests for any Umple model. These generators can be used to verify the Umple compiler and to give Umple users extra confidence in their models. User-defined tests can be standalone or embedded in methods; they can be generic, referring to metamodel elements. Tests can also be located in traits or mixsets to allow testing of separate concerns or product lines. To test our language and the tests written in it, we have created an extensive test suite. We have also implemented mutation testing, that enables varying of features of the models to ensure that runs of the pre-mutation tests then fail.

M.Sc in Computer Science (Software Engineering)

University of Ottawa

Thesis topic: ” Umple C++ Code generator”

Abstract

We discuss the design and analysis of a code generator for C++, implemented in the Umple model-oriented programming technology. Umple adds UML constructs and patterns to various base programming languages such as Java and PhP. Umple code generators create code for those constructs, which can include UML associations and state machines, as well as patterns such as immutable and singleton. Base language methods are passed through unchanged along with the generated code. Creating a C++ code generator for Umple posed many challenges, all of which are discussed in this thesis: We had to focus on the appropriate C++ idioms and stylistic conventions to follow. We followed a test-driven development process to ensure that the resulting code was correct. To evaluate the work, we compared our C++ generator with those in other tools such as ArgoUML and IBM Rational Software Architect. We conclude that our C++ generator is superior in many ways to these widely used tools because it is more complete and generates better quality code.

B.Sc in Computer Science

Taibah University

My senior project was to develop a centralized dynamic model using Petri Nets for a bridge known with congestion issue. We also developed a Petri Net simulator to run the model in C#.

Employment

Faculty Member

Taibah University

A Faculty member in the department of computer science in Taibah University.

Teacher Assistant

University of Ottawa

Teacher assistant for for different courses in the department of computer science in Univerisity of Ottawa

Graduate Research

University of Ottawa

Part of a research team conducting research on a model-driven development in a tool called Umple. Also different research areas, such as: requirement analysis and modelling, data science, machine learning, distributed behaviour and communication and quality assurance.

Teacher Assistant

Taibah University

Was given a full schedule for roughly 3 semesters at the undergraduate level. Courses included Object-Oriented Programming II with C#, Discrete Mathematics, Management of DB Systems, Computer Graphics with OpenGL/C++

Web Designer

WSI Internet Solutions, a franchise by Al-Ansar technology

I was responsible about meeting customers for requirements elicitation and design web pages. I connect to WSI solutions network for outsourcing.

My Portfolio

  • All
  • Model-Driven Development
  • Model-Driven Testing
  • Thesis
     

Contact info

Let's keep in touch

 

Contact info

  • 800 King Edward, Ottawa, Canada, ON
  • +1 613 869 4741
  • sultan@sultaneid.com
  • http://sultaneid.com