The Karlskrona Manifesto

Last updated
The Karlskrona Manifesto for Sustainability Design
Key people
Christoph Becker
Ruzanna Chitchyan
Leticia Duboc
Steve Easterbrook
Martin Mahaux
Birgit Penzenstadler
Guillermo Rodríguez-Navas
Camille Salinesi
Norbert Seyff
Colin C. Venters

The Karlskrona Manifesto [1] for sustainability design in software was created as an output of the Third International Workshop on Requirements Engineering for Sustainable Systems (RE4SuSy) held in Karlskrona, Sweden, co-located with the 22nd IEEE International Requirements Engineering Conference (RE'14). The manifesto arose from a suggestion in the paper by Christoph Becker, "Sustainability and Longevity: Two Sides of the Same Quality?" that sustainability is a common ground for several disciplines related to software, but that this commonality had not been mapped out and made explicit and that a focal point of reference would be beneficial.

The Karlskrona Manifesto can be split into nine principles:

  1. Sustainability is never isolated and can also be looked at globally.
  2. Sustainability has multiple dimensions, so it is necessary to define which dimension is being looked at during analysis.
  3. Sustainability is multidisciplinary and requires multiple perspectives.
  4. When looking at sustainability, this should be done independently of the focus of the system.
  5. Sustainability can be assessed by the system itself and how the system fits into the larger system.
  6. System status at different levels of usage is important for responsible decisions to be made with sustainable design.
  7. Identify the most effective way to be sustainable over alternative options at different levels to ensure the most sustainable choice is being made.
  8. The current generation shouldn't be compromised, however meeting the needs of the future generations is necessary when evaluating the most sustainable choice.
  9. Assessing software over a long term and consider decisions with this in mind.

These principles were later made into a catalogue to support software sustainable design. [2]

Related Research Articles

Software engineering is an engineering-based approach to software development. A software engineer is a person who applies the engineering design process to design, develop, test, maintain, and evaluate computer software. The term programmer is sometimes used as a synonym, but may emphasize software implementation over design and can also lack connotations of engineering education or skills.

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, including for example in systems engineering, software engineering, or enterprise engineering. It is a broad concept that could speak to any necessary function, attribute, capability, characteristic, or quality of a system for it to have value and utility to a customer, organization, internal user, or other stakeholder. Requirements can come with different levels of specificity; for example, a requirement specification or requirement "spec" refers to an explicit, highly objective/clear requirement to be satisfied by a material, design, product, or service.

Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering.

The World Wide Web has become a major delivery platform for a variety of complex and sophisticated enterprise applications in several domains. In addition to their inherent multifaceted functionality, these Web applications exhibit complex behaviour and place some unique demands on their usability, performance, security, and ability to grow and evolve. However, a vast majority of these applications continue to be developed in an ad hoc way, contributing to problems of usability, maintainability, quality and reliability. While Web development can benefit from established practices from other related disciplines, it has certain distinguishing characteristics that demand special considerations. In recent years, there have been developments towards addressing these considerations.

Software visualization or software visualisation refers to the visualization of information of and related to software systems—either the architecture of its source code or metrics of their runtime behavior—and their development process by means of static, interactive or animated 2-D or 3-D visual representations of their structure, execution, behavior, and evolution.

<span class="mw-page-title-main">Systems architecture</span> Conceptual model of a system

A system architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system.

<span class="mw-page-title-main">Design rationale</span>

A design rationale is an explicit documentation of the reasons behind decisions made when designing a system or artifact. As initially developed by W.R. Kunz and Horst Rittel, design rationale seeks to provide argumentation-based structure to the political, collaborative process of addressing wicked problems.

Software requirements for a system are the description of what the system should do, the service or services that it provides and the constraints on its operation. The IEEE Standard Glossary of Software Engineering Terminology defines a requirement as:

  1. A condition or capability needed by a user to solve a problem or achieve an objective
  2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document
  3. A documented representation of a condition or capability as in 1 or 2

Alain Wegmann was a Swiss computer scientist, professor of Systemic Modeling at the École Polytechnique Fédérale de Lausanne (EPFL), and Information Technology and Services consultant, known for the development of the Systemic Enterprise Architecture Methodology (SEAM).

The Software Sustainability Institute is a national facility for building better software based in the UK and founded in 2010. The Institute is based at the University of Edinburgh with sites at the University of Manchester, the University of Oxford and the University of Southampton.

Software analytics is the analytics specific to the domain of software systems taking into account source code, static and dynamic characteristics as well as related processes of their development and evolution. It aims at describing, monitoring, predicting, and improving the efficiency and effectiveness of software engineering throughout the software lifecycle, in particular during software development and software maintenance. The data collection is typically done by mining software repositories, but can also be achieved by collecting user actions or production data.

Axel van Lamsweerde is a Belgian computer scientist and Professor of Computing Science at the Universite catholique de Louvain, known for his work on requirements engineering and the development of the KAOS goal-oriented modeling language.

Klaus Pohl is a German computer scientist and Professor for Software Systems Engineering at the University of Duisburg-Essen, mainly known for his work in Requirements Engineering and Software product line engineering.

Privacy engineering is an emerging field of engineering which aims to provide methodologies, tools, and techniques to ensure systems provide acceptable levels of privacy.

Architecturally significant requirements are those requirements that have a measurable effect on a computer system’s architecture. This can comprise both software and hardware requirements. They are a subset of requirements, the subset that affects the architecture of a system in measurably identifiable ways.

<span class="mw-page-title-main">Birgit Penzenstadler</span> German software engineering professor

Birgit Penzenstadler is a German associate professor of Software Engineering at Chalmers University of Technology and adjunct docent at Lappeenranta University of Technology.

Birgit Vogel-Heuser is a German computer scientist and professor at The Technical University of Munich (TUM). She has been cited over 5,000 times. Vogel-Heuser's research focuses on systems and software engineering, and modeling of distributed embedded systems.

<span class="mw-page-title-main">Christoph Becker</span> Canadian academic

Christoph Becker is a Professor of Information and Director of the Digital Curation Institute at the University of Toronto. His research focuses on the design of just and sustainable information and software systems, judgment and decision-making in systems design, social responsibility in computing, and digital curation.

References

  1. Becker, Christoph; Chitchyan, Ruzanna; Duboc, Leticia; Easterbrook, Steve; Penzenstadler, Birgit; Seyff, Norbert; Venters, Colin C. (2015). "Sustainability Design and Software: The Karlskrona Manifesto" (PDF). 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering. pp. 467–476. doi:10.1109/ICSE.2015.179. ISBN   9781479919345. S2CID   14777274.
  2. Oyedeji, Shola; Seffah, Ahmed; Penzenstadler, Birgit (July 2018). "A Catalogue Supporting Software Sustainability Design". Sustainability. 10 (7): 2296. doi: 10.3390/su10072296 . ISSN   2071-1050.