Software Systems Engineering
Mais Informação
+351 210 464 023
Software System Engineering (SSE) is a branch of systems engineering concerned with the full lifecycle of large and complex software intensive systems. It focuses on their specification, provided services, architecture, design, implementation, security, quality assurance, operation and evolution over time. It is also concerned with the process, methods and tools used in aforementioned perspectives in an economic and timely manner. The SSE area has a high application potential, since most current human endeavours rely on intensive software systems.
The main areas addressed by the SSE research group are the following: Big Data and Visual Analytics, Empirical Software Engineering, Workflow/Process Management, and Cybersecurity.
Big Data and Visual Analytics (BD&VA) can help organisations harness their data and use it to promote faster, better decision making and create new products and services. They imply examining large amounts of data to uncover hidden patterns, correlations and other insights to understand what happened in the past and to identify new opportunities. Besides the huge data that streams into most organisations’ businesses, new data streams (e.g. IoT) pose interesting challenges for applied research in this area, such as (i) the use of parallelisation architectures for in-memory analytics (e.g. Hadoop/Spark) or GPGPU visualisation frameworks (e.g. OpenCL/WebCL) and machine learning techniques supported by highly interactive visual interfaces, (ii) the discovery, interpretation and communication of meaningful data patterns, (iii) dealing with time-dependent data, even time-critical and, (iv) detection of data anomalies that, although corresponding to a tiny part of data, may be critical and costly.
Application Areas
1) Healthcare
Detection of Telomeres (nucleoprotein structures composed of protein, DNA and RNA molecules) from electron microscope images (in cooperation with Claus Azzalin research team at IMM). Use of graph-based approaches to store and visualize social networks in the context of healthcare systems (in cooperation with João Louro, CIO at Hospital Sta. Maria).
2) Intelligent transportation systems
Identification of drivers’ main fuel consumption parameters from big data generated from driving monitor process. Project performed in Lisbon City with Carris buses, savings of 2-3 liters per 100km were achieved through monitor process and the identification of main consumption parameters. Project in collaboration with the company Tecmic and Carris.
3) Smart Grids
Renewable production forecast based on historical data and weather conditions. Smart Electric Vehicle charging using OpenADR standard to turn on/off remotely the charging process, considering driving profile, energy prices based on renewable production excess and electrical distribution network limitations. Research in collaboration with Centro Algoritmi at Minho University.
4) Fisheries Control Activity
Fishing activity needs to be controlled to avoid massive fishing. Vessel Monitor System were implemented and fishing reporting systems were created. Huge data is generated and knowledge extraction and data manipulation is needed. Our work is based on the identification fishing patterns (GPS coordinates, time period, weight and fish type) and identification of fishing activity type based on boat speed and the change of direction. This research is being carried out in the context of the PT2020 project SeaITall in cooperation with the company Xsealance, Inov and IPMA at Portugal.
5) Smart Cities
Track user movements passively in a city mobility process based on mobile device sensor information. Identification of transportation mode used, time, distance and patterns. Research in collaboration with Centro Algoritmi at Minho University.
Empirical Software Engineering (ESE): Understanding a discipline implies observation, model building, and empirical knowledge. Empirical Software Engineering (ESE) is a part of Software Engineering that emphasises the undertaking of empirical studies to collect data for validating theories on software systems (software products, processes, and resources). Methods used include quantitative and qualitative approaches such as experiments, case studies or surveys. This research area requires real world laboratories to observe and manipulate the variables that describe how developers conceptualise, build and maintain software systems, and how the latter are explored in practice.
This research thread aims at progressing the state of the art in Software Engineering, with an emphasis on the application of empirical validation approaches, as well as disseminating best practices in that scope, in academia and industry. Currently, we are tackling the following topics:
- crowdsourcing-based approaches to improve software maintenance;
- web apps quality assessment;
- interactive development environment (IDE) extensions for process awareness;
- Matlab / Octave program comprehension;
- release practices in open source projects;
- patterns for designing IT infrastructures;
- methods and tools for improving API usability;
- knowledge management and reference ontologies;
- negotiation mechanisms connected to decision support systems.
Workflow/Process Management (W/PM): As scientific research becomes more data intensive the concept of data science research becomes essential for scientific progress. Research artifacts such as raw data, datasets, workflows, processes, models, software tools, etc., must be seen as a whole, fully integrated amongst research communities, preserved and managed by digital means and ecosystems in an Internet/Web scale. This view is nowadays widely accepted by scientists and researchers in all areas of knowledge, and several ongoing global scale initiatives are paving the way to turn this view into common practice in the years to come.
This research thread aims at progressing the state of the art in scientific workflow management systems, with emphasis on the use of visual programming paradigms, multicriteria decision support systems, knowledge management and learning from complex network data.
This research thread development is supported by the expertise of the research group members, collaborator entities research initiatives and the DataScience4NP project (2016-2019).
Cybersecurity: As organisations and individuals depend more and more on updated and accurate information in all aspects of their existence, IT has become a strategic resource that needs to be protected and managed. New services and new ways of interaction using mobile and wearable devices, the deployment and massification of online-connected devices (IoT), and the exposition of more critical systems to the Internet (for instance, in the case of the Smart Cities or Health), pose serious threats to the information security. New directions are emerging to ensure the confidentiality, integrity, and availability of information so that individuals, organisations and its systems (some of them critical) continue to operate flawlessly, facing the risks that are important to understand and mitigate.
This research thread aims at the investigation and study of the threats to cybersecurity and to design and propose new approaches and solutions to cope with some of those threats. Currently this thread is tackling the following specific topics:
- Security in the software engineering processes – how security specific processes can be embedded in software engineering practices to deliver software products that have an high quality in terms of security;
- Web, mobile and wearable secure software development – specific security procedures to tackle existing threats in these platforms;
- Security in highly distributed systems – approaches for defining and implementing security end-to-end environments on distributed systems (for instance, on IoT-based ecosystems);
- Adaptable security architectures – security architectures based on distributed security services that can be orchestrated to implement specific security scenarios;
- Digital asset management for privacy protection – usage of rights management systems to implement secure mechanisms / privacy mechanisms for users to deploy privacy-enhanced scenarios for cloud and social network systems;
- Educational and knowledge e-IPR protection – usage of rights management systems to provide security and governance over knowledge-generated and educational content;
- E-health security – applicability of rights management systems to offer the protection of PII (Personal Identifiable Information) on e-health systems;
- Cyber security situation awareness, information sharing and exchange, standards, data sources, metrics, risk analysis and cyber security decision aiding;
- Digital content filtering;
- Cybersecurity awareness and gamification.