HTTP/2 302
content-type: text/plain; charset=utf-8
date: Wed, 04 Feb 2026 11:33:58 GMT
location: https://oadoi.org/10.1007/978-3-030-79382-1_24
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=6d47BKvHW9aEbJU%2BKwZFmFJwoVOOdaGabVnF49vJvoM%3D\u0026sid=67ff5de4-ad2b-4112-9289-cf96be89efed\u0026ts=1770204838"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=6d47BKvHW9aEbJU%2BKwZFmFJwoVOOdaGabVnF49vJvoM%3D&sid=67ff5de4-ad2b-4112-9289-cf96be89efed&ts=1770204838"
server: Heroku
vary: Accept
via: 2.0 heroku-router
x-powered-by: Express
content-length: 67
HTTP/1.1 302 Found
Access-Control-Allow-Headers: origin, content-type, accept, x-requested-with
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, PATCH
Access-Control-Allow-Origin: *
Content-Length: 299
Content-Security-Policy: default-src 'self'; object-src 'none'
Content-Type: text/html; charset=utf-8
Date: Wed, 04 Feb 2026 11:33:59 GMT
Location: https://oadoi.org/10.1007/978-3-030-79382-1_24
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: strict-origin-when-cross-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Qm6TYXeL5E8UGmYxKrpPXrOpyRQ6BzIw64vDPKhec7s%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1770204839"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=Qm6TYXeL5E8UGmYxKrpPXrOpyRQ6BzIw64vDPKhec7s%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1770204839"
Server: Heroku
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
HTTP/2 302
access-control-allow-headers: origin, content-type, accept, x-requested-with
access-control-allow-methods: POST, GET, OPTIONS, PUT, DELETE, PATCH
access-control-allow-origin: *
content-security-policy: default-src 'self'; object-src 'none'
content-type: text/html; charset=utf-8
date: Wed, 04 Feb 2026 11:33:59 GMT
location: https://zenodo.org/record/5062145
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
referrer-policy: strict-origin-when-cross-origin
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=Qm6TYXeL5E8UGmYxKrpPXrOpyRQ6BzIw64vDPKhec7s%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1770204839"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=Qm6TYXeL5E8UGmYxKrpPXrOpyRQ6BzIw64vDPKhec7s%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1770204839"
server: Heroku
strict-transport-security: max-age=31556926; includeSubDomains
via: 2.0 heroku-router
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
content-length: 273
HTTP/1.1 301 MOVED PERMANENTLY
server: nginx
date: Wed, 04 Feb 2026 11:34:00 GMT
content-type: text/html; charset=utf-8
content-length: 219
location: /records/5062145
x-ratelimit-limit: 133
x-ratelimit-remaining: 132
x-ratelimit-reset: 1770204901
retry-after: 60
permissions-policy: interest-cohort=()
x-frame-options: sameorigin
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-security-policy: default-src 'self' fonts.googleapis.com *.gstatic.com data: 'unsafe-inline' 'unsafe-eval' blob: zenodo-broker.web.cern.ch zenodo-broker-qa.web.cern.ch maxcdn.bootstrapcdn.com cdnjs.cloudflare.com ajax.googleapis.com webanalytics.web.cern.ch
strict-transport-security: max-age=31556926; includeSubDomains
referrer-policy: strict-origin-when-cross-origin
set-cookie: session=87838a81584fac6f_69832ea8._rSmWqc4eFoISHpkLdqZBZiZgRM; Expires=Mon, 09 Feb 2026 11:34:00 GMT; Secure; HttpOnly; Path=/; SameSite=Lax
x-source: ui
HTTP/1.1 200 OK
server: nginx
date: Wed, 04 Feb 2026 11:34:01 GMT
content-type: text/html; charset=utf-8
transfer-encoding: chunked
vary: Accept-Encoding
link:
; rel="author" , ; rel="author" , ; rel="author" , ; rel="author" , ; rel="cite-as" , ; rel="describedby" ; type="application/dcat+xml" , ; rel="describedby" ; type="application/json" , ; rel="describedby" ; type="application/ld+json" , ; rel="describedby" ; type="application/ld+json;profile="https://datapackage.org/profiles/2.0/datapackage.json"" , ; rel="describedby" ; type="application/marcxml+xml" , ; rel="describedby" ; type="application/vnd.citationstyles.csl+json" , ; rel="describedby" ; type="application/vnd.datacite.datacite+json" , ; rel="describedby" ; type="application/vnd.datacite.datacite+xml" , ; rel="describedby" ; type="application/vnd.geo+json" , ; rel="describedby" ; type="application/vnd.inveniordm.v1+json" , ; rel="describedby" ; type="application/vnd.inveniordm.v1.full+csv" , ; rel="describedby" ; type="application/vnd.inveniordm.v1.simple+csv" , ; rel="describedby" ; type="application/x-bibtex" , ; rel="describedby" ; type="application/x-dc+xml" , ; rel="describedby" ; type="text/x-bibliography" , ; rel="item" ; type="application/pdf" , ; rel="license" , ; rel="type" , ; rel="type" , ; rel="linkset" ; type="application/linkset+json"
x-ratelimit-limit: 133
x-ratelimit-remaining: 131
x-ratelimit-reset: 1770204901
retry-after: 59
permissions-policy: interest-cohort=()
x-frame-options: sameorigin
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-security-policy: default-src 'self' fonts.googleapis.com *.gstatic.com data: 'unsafe-inline' 'unsafe-eval' blob: zenodo-broker.web.cern.ch zenodo-broker-qa.web.cern.ch maxcdn.bootstrapcdn.com cdnjs.cloudflare.com ajax.googleapis.com webanalytics.web.cern.ch
strict-transport-security: max-age=31556926; includeSubDomains
referrer-policy: strict-origin-when-cross-origin
set-cookie: session=87838a81584fac6f_69832ea8._rSmWqc4eFoISHpkLdqZBZiZgRM; Expires=Mon, 09 Feb 2026 11:34:01 GMT; Secure; HttpOnly; Path=/; SameSite=Lax
x-source: ui
content-encoding: gzip
Category Theory Framework for Variability Models with Non-Functional Requirements
Skip to main
Published July 1, 2021
| Version v1
Presentation
Open
Category Theory Framework for Variability Models with Non-Functional Requirements
Show affiliations
1.
Universidad de Málaga | ITIS Software
2.
KTH Royal Institute of Technology
Description
This is a Conference Presentation, please access and cite the published version of the respective publication:
https://doi.org/10.1007/978-3-030-79382-1_24
Software Product Lines (SPLs) make use of Variability Models (VMs) as an input to automated reasoners, which are mainly used to generate optimal product configurations according to certain Quality Attributes (QAs). However, VMs and more specifically those including numerical features (i.e., NVMs), do not natively support QAs, and consequently, neither do automated reasoners commonly used in variability resolution. However, those satisfiability and optimisation problems have been covered and refined in other relational models such as databases.
Category Theory (CT) is an abstract mathematical theory typically used to capture the common aspects of seemingly dissimilar algebraic structures. We propose a unified relational modelling framework subsuming the structured objects of VMs and QAs and their relationships into algebraic categories. This abstraction allows a combination of automated reasoners over different domains to analyse SPLs. The solutions optimisation can now be natively performed by a combination of automated theorem proving, hashing, balanced-trees and chasing algorithms. We validate this approach by means of the edge computing SPL tool HADAS.
Notes
Munoz, Pinto and Fuentes work is supported by the European Union's H2020 research and innovation programme under grant agreement DAEMON 101017109, by the projects co-financed by FEDER funds LEIA UMA18-FEDERJA-15, MEDEA RTI2018-099213-B-I00 and Rhea P18-FR-1081 and the PRE2019-087496 grant from the Ministerio de Ciencia e Innovación.
Accept all cookies
Accept only essential cookies