Software Engineering

Engineering Undergraduate Programs


Software engineering is an engineering discipline related to all aspects of software production including requirements analysis, design, implementation, testing, deployment and maintenance. We currently have two lines of research related to software engineering: (1) We aim to create smart software systems that can behave as intelligent human beings (see Organic Software Systems), and (2) we also aim to develop methodologies, tools and techniques to understand and improve the learning experience of software engineering learners (see Software Engineering Education/Learning Analytics).

1- Organic Software Systems

Our vision is to create smart software systems that can sense, rationalize, predict, decide, grow and communicate like an intelligent human beings.

The vision of self-managing software systems was proposed in the last two decades. We argue that to be able to realize such vision, a suitable machine consciousness computational model must be incorporated into the software design, as it will be responsible for all cognition, thinking, learning, planning, and decision making tasks. Currently, there exist many general computational models for machine consciousness that could be adopted. They differ in their complexity and their definition of what consciousness is. Therefore, we propose to offer machine consciousness as a service (MCaaS). This enables any software system to become ``self-managing" by loosely coupling itself with the MCaaS service via a suitable management interface. 

We believe the roadmap to build MCaaS is to accomplish the following tasks:

Build different distributed sparse auto encoders/decoders according to the types of data collected. These encoders will pass the data from sensory units to sensory processors, and the decoders will pass the data from the motor processors to the motor units.

  • Build an episodic memory service.
  • Build a procedural memory service
  • Build a sub-cortical service to handle the emotions and rewards using the pain-network, and ML mechanism.
  • Build a semantic memory service using the HTM technology, such service will have classifiers for the high-level layers of HTM (representing learnt concepts/beliefs) , and integrate such HTM with the pain-network, to be able to learn the action suitable for every concept/belief.
  • Build a sensory processing service that is capable of handling the reflexive actions, and communicating with other services to handle voluntarily and rhythmic actions.
  • Build a motor processing service that is a capable of executing an action plan over different motor units.
  • Build an action monitoring service that is capable of comparing predicted action responses against actual action responses to decide on the correctness of the action execution.
  • Build a central executive service adopting the proposed mental saccade, attention switching, and cognition techniques.

All these autonomous services constitutes the MCaaS composite web service. We believe choreography is the suitable coordination style for the components services, as central orchestration will degrade the overall performance and limits possibilities for parallelization. Of course, we require any software system to use MCaaS to expose the suitable interfaces that enables reading the sensory data and executing the required actions. MCaaS will require training with real-life systems data for a period of time until different neural models are stabilized. Of course, if better models appeared for any of the above components, it will be simply replaced without affecting the other components, as SOA is adopted. However, if any neural model needs to be replaced, it should be separately trained first before joining MCaaS, otherwise MCaaS will be affected.

Faculty Member:
Islam Elgedawy

Related Projects:

  • SULTAN: A Composite Data Consistency Approach for SaaS Multi-Cloud Deployment. SULTAN uses service adapters to overcome the cloud heterogeneity problem. It enables SaaS providers to have different consistency requirements for their services' data objects, and totally decouples the SaaS services' code from the required data consistency approaches. Hence, SaaS providers can change their consistency requirements at run-time without the need for any SaaS code modifications.
  • NASEEB: An Escrow-Based Approach for Ensuring Data Correctness over Global Clouds. NASEEB distributes the capacities of the data objects' attributes among the datacenters such that every datacenter has its own non-overlapping quota (i.e., the datacenter escrow). Each datacenter consumes its escrow locally without the need for any global checks. NASEEB allows datacenters to borrow quota from each other to meet incoming high demand. Experimental results show that NASEEB successfully maintains the data correctness as in the classical approaches, and provides a good performance as in the modern approaches as long as the quota borrowing rate is kept low.
  • JAMEJAM: A Multi-Tenant Customizable Discovery Service for Semantic Web Services. JAMEJAM enables users to customize their service discovery process in terms of the adopted aspects ontologies, service models, and service ontologies, matching schemes, and matching policies. Then uses all these types of knowledge to create a customized discovery process on the fly, in which matching results are automatically identified, analyzed, and customized to fulfill users' requirements. Experimental results show that adopting JameJam increases the precision of the discovery process when compared with existing static discovery approaches.
  • CRESCENT: A Reliable Framework for Durable Composite Web Services Management. CRESCENT is a Byzantine fault tolerant service management framework for durable composite web services. It combines quorum-based and state-machine-based Byzantine fault tolerance protocols to ensure reliable service delivery. It enables differentiated levels of service for customers by supporting different types of workflows realized by an adaptive component parallel provisioning approach. Moreover, it supports automated SLA management by extending the WSLA language to describe SLAs in a machine-understandable format. Experimental results show that adopting CRESCENT increases the reliability and throughput of composite web services delivery when compared with existing approaches.
  • USTA: An Aspect-Oriented Framework For Managing Discovery Knowledge of Reusable Assets. USTA enables companies to define and manage their software ontologies in an aspect-oriented manner. It also enables them to define their corresponding matching schemes. USTA enables users to define their goals, contexts, and their preferred matching policies along with their aspect-oriented queries. USTA uses all this information to dynamically create a customized discovery process for every query.
  • RAMA: Automatic Generation for Web Services Conversations Adapters. We proposed a novel ontology-based context-sensitive approach for automatic adapter generation. This approach captures the aggregate conditional substitution semantics of application domain concepts in a context-based manner and uses these semantics to determine the mappings between the different conversation messages and to generate the corresponding conversion functions. The proposed approach ensures services semantic interoperability and increases the chances for service reuse, which consequently improves the efficiency of the smart environment.


2- Selected Related Publications:

  • Islam Elgedawy, CRESCENT+: A Self-Protecting Framework for Reliable Composite Web Services Delivery, Iran J Comput Sci, 1(2) ,  June , 2018, Springer , DOI: 10.1007/s42044-018-0008-3.
  • Islam Elgedawy, Machine Consciousness as a service (MCaaS): a roadmap, Iran Journal of Computer Science, 1(1), 19-30, April , 2018, Springer, DOI: 10.1007/s42044-017-0002-1.
  • Islam Elgedawy, JAMEJAM: A Framework for Automating the Service Discovery Process, Journal of Software (JSW), Volume 11 Number 7, July 2016, doi: 10.17706/jsw.11.7.646-655.
  • Islam Elgedawy, GEMINI: A Hybrid Byzantine Fault Tolerant Protocol For Reliable Composite Web Services Orchestrated Delivery, International Journal of Computer Theory and Engineering (IJCTE), Vol. 8, No. 5, Oct. 2016. DOI: 10.7763/IJCTE.2016.V8.1071
  • Islam Elgedawy, WSLA Extensions for Managing Composite Semantic Web Services, proceedings of 2016 IEEE International Conference on Knowledge Engineering and Applications, Singapore, Sept 2016.
  • Islam Elgedawy, SULTAN: A Composite Data Consistency Approach for SaaS Multi-Cloud Deployment, in proceedings of the 8th IEEE/ACM International Conference on Utility and Cloud Computing (UCC2015), Cyprus, December, 2015
  • Islam Elgedawy, USTA: An Aspect-Oriented Knowledge Management Framework For Reusable Assets Discovery, Arabian Journal for Science and Engineering, Volume 40, Issue 2, pp 451-474, February 2015.
  • Islam Elgedawy, CRESCENT: A Reliable Framework for Durable Composite Web Services Management, Computer Journal, Vol. 58, No. 2, pp. 280-299, February 2015.  DOI:10.1093/comjnl/bxu019.
  • Islam Elgedawy, NASEEB: An Escrow-Based Approach for Ensuring Data Correctness Over Global Clouds, Arabian Journal for Science and Engineering, Vol 39, Issue 12,  pp 8743-8764, December, 2014.
  • Islam Elgedawy, "Web Services Conversation Adaptation Using Conditional Substitution Semantics of Application Domain Concepts", ISRN Software Engineering, vol. 2013, Article­ ID 408267, 26 pages, 2013. (DOI:10.1155/2013/408267).
  • Islam Elgedawy, "DCaaS: Data Consistency as a Service for Managing Data Uncertainty on the Clouds", International Journal of Advanced Computer Science and Applications (IJACSA), Vol. 4, No. 5, June 2013.
  • Islam Elgedawy, "On-demand conversation customization for services in large smart environments", IBM Journal of Research and Development, Special issue on Smart Cities, Vol. 55, No. 1/2, January 2011.


Software Engineering Education/Learning Analytics

Software engineering courses aim to equip learners with the skills they require for diverse software engineering activities, including software specification, software design and implementation, software validation and software evolution. We undertake research with the aim of improving the learning experience of software engineering learners and developing methodologies, tools and techniques to support software engineering education.
We currently focus of the use of software development platforms such as GitLab and GitHub in software engineering education. These platforms allow learners to work with other people collaboratively and keep track of their changes and activities. They do not only allow learners to gain skills that they require for real-life projects, but also allow teaching staff to understand how learners work within a team and how their behaviours are changed over time, and also to potentially detect problematic behaviours.
We are currently working on the following studies:

  • Investigating the effects of using activity metrics from software development platforms in coursework consultation sessions in a software engineering course;
  • Designing a complete pipeline from data extraction to data analysis with data anonymization;
  • Discovering errors and poor practices of learners by analyzing their software repositories on software development platforms;
  • Developing systematic frameworks to characterize and evaluate related approaches in the field of software engineering which could also be useful for people working in industry;
  • Developing tools to support software engineering education, such as to automated feedback tool.

Furthermore, we also conduct user studies to explore the problem domain in depth, develop a better understanding of the effects of our proposed methodologies and evaluate our tools and techniques.
For this research area, we collaborate with the Institute of Coding team at the University of Manchester – an education partner of the Institute of Coding and responsible for developing tools and techniques for teaching software engineering skills.

Faculty Member:

Şükrü Eraslan

Related Publications:

  • Sukru Eraslan, Julio Cesar Cortes Rios, Kamilla Kopec-Harding, Suzanne M. Embury, Caroline Jay, Christopher Page, and Robert Haines. 2020. Errors and Poor Practices of Software Engineering Students in Using Git. In Proceedings of the 4th Conference on Computing Education Practice 2020 (CEP '20). ACM, New York, NY, USA, Article 8.
  • Julio Cesar Cortes Rios, Kamilla Kopec-Harding, Sukru Eraslan, Christopher Page, Robert Haines, Caroline Jay, and Suzanne M. Embury. 2019. A methodology for using GitLab for software engineering learning analytics. In Proceedings of the 12th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '19). IEEE Press, Piscataway, NJ, USA, 3-6.