Software Engineering Research

The Software Engineering Research is one of the most vibrant research group in this region. It actively involves in the research efforts that aims to improve the techniques, methods, processes and tools for development and maintenance of the large and complex software systems. The research results may be applied to a variety of application areas ranging from small embedded systems to large scale software applications. Most of the research is conducted with close industrial contacts using surveys, experiments and case studies.

The research areas under SERG are as follow:

a) Software Modelling and Specification
Model-driven development, meta-modeling, architecture-based software evolution, design patterns, pattern-oriented design, change propagation, traceability, meta-modeling, software adaptation.

b) Software Verification & Testing
Automated test-case generation, formal verification, verification and testing for MDD.
Software Usability and Reusability

c) Software maintenance and evolution
Basic knowledge of software maintenance comprises thoroughly understanding and re-examining the existing software design and code through reverse engineering and restructuring of change and its associated components. The ultimate aim of this research is to explore mechanisms and better ways to support its maintenance and evolution activities. The study involves its related knowledge that includes reverse engineering, program understanding, visualization, requirements traceability, impact analysis, software measurement, re-documentation, cost estimation and impact evaluation.

d) Software Quality and Testing
The primary objective of this research is to reduce issues on software quality through management viewpoints, validation and verification. As user confidence via testing levels is very critical, our research embarks into study that includes effective testing, testing techniques, methods and practices. Among the possible topics that fall in this research such as quality assurance, quality measurement, regression testing, functional testing, test management and defect removal.

e) Software Process Improvement
The ultimate aim of this research is to support the capability and maturity improvement of software development and deployment from the organizational perspective. Current process improvement initiatives through CMMI, Six Sigma, IDEAL, etc. provide some detailed knowledge of standards, guidelines and practices. However, some issues still prevail towards its practice and realism particularly on SMEs, individual commitment and support. Our exposure to consultancy and synergy effort between CASE and local industries spurs new research interest on the implementation of CMMI, quality management and measurement.

f) Dependable embedded real-time systems
Dependability is a design issue for medical, business and consumer-oriented software such as car braking software system, mobile phones software. Human nowadays become more dependent upon this type of software in their daily life. This software is critical since life is threatened and high cost is incurred in case of software malfunction. These explosive growths of the embedded systems have brought software engineers under tremendous demand to design and build the embedded systems that are safe, reliable, predictable and able to cope with fault.

g) Software as Service
The objective of this research is to explore new techniques and mechanisms to address overheads and issues related to web services and their deployment. The potential components of the web services need to be analyzed and reengineered to improve web accessibility and performance. The state-of-the-art and new technologies are explored to include approaches to support web service composition such as AIMO, OWL-S, BPEL4WS, WSMO and AI-Planning, service orchestration, testing for service-oriented software, scalability, service-oriented modeling and analysis.

h) Intelligent Software Systems
The state-of-the-art and new technologies are explored to include approaches to support RFID, multi-agent systems, spoken dialogue systems, security of web services, intelligent information retrievals, intelligent social networks analysis, language technologies, intelligent information filtering, formal methods of model checking software agents

i) Model-Driven Architecture & Ontologies
Ontologies (shared object models) for interoperating information systems. Ontology servers, ontologies of action and state especially relevant to service-oriented architecture.
Model-Driven Architecture – codeless implementation and testing of applications on standardized software platforms, taking in to account variation points in the platforms and transformations, and non-functional requirements. Especially in the context of service-oriented architecture

j) Component Based Software Engineering (CBSE)
The elements of CBSE research area are the following:
Black-box reuse
Reactive-control and component’s granularity
RAD (rapid application development) tools
Contractually specified interfaces
Introspection mechanism provided by the component systems
Software component market

k) Software Usability and Reusability
Usability is very much concerned with human-computer interaction (HCI) by emphasising on the notion of user-friendliness with the users. In SE, usability plays its role by ensuring the piece of software that was being developed and created is of high usability, which should results in effectiveness and efficiencies when accomplishing tasks. Research activities in usability includesunderstanding the users, the design issues, the design process, user analysis, prototyping and evaluations, reusable components, software product line, reuse metrics.

l) Agile Software Development
Many IT organizations aspire to improve the efficiency and general standard of their software development effort by implementing agile software development practices. Some of the popular agile development methods adopted by IT organizations are Scrum, eXtreme Programming (XP), Kanban, Featured Driven Development (FDD), Dynamic System Development Method (DSDM) and others. We study, identify and analyze the barriers that impact on the performance of IT organizations that use such agile software development methods. We have expertise to help the IT organizations to cater the needed aspects to be successful. The study will also help the IT organizations to select the right methodology for their organization.

Members of Software Engineering Department venture in various research fields. Visit to view the details of the research groups at the faculty.