Axel van Lamsweerde

dblp:71/4758 · DBLP profile ↗
← Back
48ranked-venue papers
19as first author
1since 2021 · last 2025
0009-0001-2035-1444ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 43 · 17 first-author · 1 since 2021Theory of computation · 4 · 2 first-authorSystems, architecture and hardware · 1Databases, data management, data science and information retrieval · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
24 papers
Requirements engineering and software design · 80% Software maintenance and evolution · 10% Program verification · 9%
Theoretical computer science
3 papers
Automated reasoning and model checking · 94% Logic in computer science · 6%

Topics — the 28 heaviest of 32, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Requirements engineering and software design
requirements analysis
0.912025
Obstacle Analysis in Requirements Engineering: Retrospective and Emerging Challenges · IEEE Trans. Software Eng. 2025
Requirements engineering and software design
risk management
0.912025
Obstacle Analysis in Requirements Engineering: Retrospective and Emerging Challenges · IEEE Trans. Software Eng. 2025
Requirements engineering and software design
goal-oriented requirements engineering
0.6122025
Obstacle Analysis in Requirements Engineering: Retrospective and Emerging Challenges · IEEE Trans. Software Eng. 2025
Reasoning about partial goal satisfaction for requirements and design engineering · SIGSOFT FSE 2004
Elaborating Security Requirements by Construction of Intentional Anti-Models · ICSE 2004
Program verification
model checking
0.322014
Analyzing Critical Decision-Based Processes · IEEE Trans. Software Eng. 2014
Analyzing critical process models through behavior model synthesis · ICSE 2009
Software maintenance and evolution
process model analysis
0.322014
Analyzing Critical Decision-Based Processes · IEEE Trans. Software Eng. 2014
Analyzing critical process models through behavior model synthesis · ICSE 2009
Requirements engineering and software design › software process
process modeling
0.212014
Analyzing Critical Decision-Based Processes · IEEE Trans. Software Eng. 2014
Requirements engineering and software design
model-driven engineering
0.232010
Keynote address: model engineering for model-driven engineering · ASE 2010
Scenarios, goals, and state machines: a win-win partnership for model synthesis · SIGSOFT FSE 2006
Generic Lifecycle Support in the ALMA Environment · IEEE Trans. Software Eng. 1988
Requirements engineering and software design
requirements elicitation
0.122008
Requirements engineering: from craft to discipline · SIGSOFT FSE 2008
Generating Annotated Behavior Models from End-User Scenarios · IEEE Trans. Software Eng. 2005
Software maintenance and evolution › software variability
software product variants
0.112020
Adapting requirements models to varying environments · ICSE 2020
Program verification › model checking
process model verification
0.112009
Analyzing critical process models through behavior model synthesis · ICSE 2009
Requirements engineering and software design › risk management
risk assessment
0.112016
Risk-driven revision of requirements models · ICSE 2016
Requirements engineering and software design › model-driven engineering
model synthesis
0.112006
Scenarios, goals, and state machines: a win-win partnership for model synthesis · SIGSOFT FSE 2006
Requirements engineering and software design
scenario-based synthesis
0.112006
Scenarios, goals, and state machines: a win-win partnership for model synthesis · SIGSOFT FSE 2006
Programming languages and type systems › specification language
formal specification languages
0.112014
Analyzing Critical Decision-Based Processes · IEEE Trans. Software Eng. 2014
Requirements engineering and software design › model-driven engineering › model synthesis
behavior model synthesis
0.112005
Generating Annotated Behavior Models from End-User Scenarios · IEEE Trans. Software Eng. 2005
Requirements engineering and software design › requirements elicitation
scenario-based elicitation
0.112005
Generating Annotated Behavior Models from End-User Scenarios · IEEE Trans. Software Eng. 2005
Requirements engineering and software design › non-functional requirements
security requirements
0.012004
Elaborating Security Requirements by Construction of Intentional Anti-Models · ICSE 2004
Automated reasoning and model checking
model checking
0.012012
Generating obstacle conditions for requirements completeness · ICSE 2012
Requirements engineering and software design › formal specification
operational specification
0.012002
Deriving operational software specifications from system goals · SIGSOFT FSE 2002
Requirements engineering and software design
requirements specification
0.012002
Deriving operational software specifications from system goals · SIGSOFT FSE 2002
Automated reasoning and model checking
invariant generation
0.012009
Analyzing critical process models through behavior model synthesis · ICSE 2009
Privacy and data protection
information disclosure
0.012005
Reasoning about confidentiality at requirements engineering time · ESEC/SIGSOFT FSE 2005
Empirical software engineering › software evaluation
model validation
0.012005
Generating Annotated Behavior Models from End-User Scenarios · IEEE Trans. Software Eng. 2005
Systems and software security › security engineering
threat modeling
0.012004
Elaborating Security Requirements by Construction of Intentional Anti-Models · ICSE 2004
Requirements engineering and software design › model-driven engineering › UML
UML models
0.012003
Goal-Oriented Requirements Engineering: From System Objectives to UML Models to Precise Software Specifications · ICSE 2003
Requirements engineering and software design › requirements elicitation
requirements extraction
0.011998
Integrating Obstacles in Goal-Driven Requirements Engineering · ICSE 1998
Requirements engineering and software design › computer-aided software engineering
requirements engineering tools
0.011997
GRAIL/KAOS: An Environment for Goal-Driven Requirements Engineering · ICSE 1997
Logic in computer science
temporal logic
0.011996
Formal Refinement Patterns for Goal-Driven Requirements Elaboration · SIGSOFT FSE 1996

Methods — techniques the papers use, named apart from their topics

retrospective analysis · 0.9model checking · 0.6requirements modeling · 0.4learning technologies · 0.3counterexample analysis · 0.3goal-driven risk analysis · 0.2invariant generation · 0.2invariant propagation · 0.2event-based and state-based specification · 0.2interactive synthesis · 0.1specification patterns · 0.1epistemic logic · 0.1threat trees · 0.0goal-oriented requirements engineering · 0.0formal refinement patterns · 0.0KAOS · 0.0
YearPublicationVenuePosition
2025 Obstacle Analysis in Requirements Engineering: Retrospective and Emerging Challenges
abstract
With the growing adoption of AI-based systems, effective risk management is more important than ever. Obstacle analysis is a requirements engineering technique introduced three decades ago for designing dependable software systems despite failures, exceptions, and unforeseen behaviors in both the software and its environment. An obstacle is an undesirable situation that violates a stakeholder goal, an environment assumption, or a software requirement. Obstacles include safety hazards, security threats, user errors, and other adverse situations. Obstacle analysis provides a structured, systematic approach for identifying, analyzing, and resolving obstacles at the requirements level. In this retrospective paper, we summarize the original technique and discuss its impacts on research and practice. We also propose a research agenda to extend obstacle analysis to address emerging challenges in AI systems engineering.
Emmanuel Letier, Axel van Lamsweerde
IEEE Trans. Software Eng.2
2020 Adapting requirements models to varying environments
abstract
The engineering of high-quality software requirements generally relies on properties and assumptions about the environment in which the software-to-be has to operate. Such properties and assumptions, referred to as environment conditions in this paper, are highly subject to change over time or from one software variant to another. As a consequence, the requirements engineered for a specific set of environment conditions may no longer be adequate, complete and consistent for another set.
Dalal Alrajeh, Antoine Cailliau, Axel van Lamsweerde
ICSE3
2019 Runtime Monitoring and Resolution of Probabilistic Obstacles to System Goals
abstract
Software systems are deployed in environments that keep changing over time. They should therefore adapt to changing conditions to meet their requirements. The satisfaction rate of these requirements depends on the rate at which adverse conditions prevent their satisfaction. Obstacle analysis is a goal-oriented form of risk analysis for requirements engineering (RE), whereby obstacles to system goals are identified, assessed, and resolved through countermeasures. The selection of effective countermeasures relies on environment assumptions and on the assessed likelihood and criticality of the corresponding obstacles. Those various factors estimated at RE time may, however, evolve at system runtime. To meet the system’s goals under changing conditions, this article proposes to defer obstacle resolution to system runtime. Techniques are presented for monitoring obstacle satisfaction rates; deciding when adaptation should be triggered; and adapting the system on-the-fly to countermeasures that are more effective. The approach relies on a model where goals and obstacles are refined and specified in a probabilistic linear temporal logic. The techniques allow for monitoring the satisfaction rate of probabilistic leaf obstacles; determining the severity of obstacle consequences on goal satisfaction rates computed from the monitored obstacle satisfaction rates; and shifting to countermeasures that better meet the required goal satisfaction rates. Our approach is evaluated on fragments of an ambulance dispatching system.
Antoine Cailliau, Axel van Lamsweerde
ACM Trans. Auton. Adapt. Syst.2
2016 Risk-driven revision of requirements models
abstract
Requirements incompleteness is often the result of unanticipated adverse conditions which prevent the software and its environment from behaving as expected. These conditions represent risks that can cause severe software failures. The identification and resolution of such risks is therefore a crucial step towards requirements completeness. Obstacle analysis is a goal-driven form of risk analysis that aims at detecting missing conditions that can obstruct goals from being satisfied in a given domain, and resolving them.
Dalal Alrajeh, Axel van Lamsweerde, Jeff Kramer, Alessandra Russo, Sebastián Uchitel
ICSE2
2015 Handling knowledge uncertainty in risk-based requirements engineering
abstract
Requirements engineers are faced with multiple sources of uncertainty. In particular, the extent to which the identified software requirements and environment assumptions are adequate and sufficiently complete is uncertain; the extent to which they will be satisfied in the system-to-be is uncertain; and the extent to which obstacles to their satisfaction will occur is uncertain. The resolution of such domain-level uncertainty requires estimations of the likelihood that those different types of situations may or may not occur. However, the extent to which the resulting estimates are accurate is uncertain as well. This meta-level uncertainty limits current risk-based methods for requirements engineering. The paper introduces a quantitative approach for managing it. An earlier formal framework for probabilistic goals and obstacles is extended to explicitly cope with uncertainties about estimates of likelihoods of fine-grained obstacles to goal satisfaction. Such estimates are elicited from multiple sources and combined in order to reduce their uncertainty margins. The combined estimates and their uncertainties are up-propagated through obstacle refinement trees and then through the system's goal model. Two metrics are introduced for measuring problematic uncertainties. When applied to the probability distributions obtained by up-propagation to the top-level goals, the metrics allow critical leaf obstacles with most problematic uncertainty margins to be highlighted. The proposed approach is evaluated on excerpts from a real ambulance dispatching system.
Antoine Cailliau, Axel van Lamsweerde
RE2
2014 Integrating exception handling in goal models
abstract
Missing requirements are known to be among the major sources of software failure. Incompleteness often results from poor anticipation of what could go wrong with an over-ideal system. Obstacle analysis is a model-based, goal-anchored form of risk analysis aimed at identifying, assessing and resolving exceptional conditions that may obstruct the behavioral goals of the target system. The obstacle resolution step is obviously crucial as it should result in more adequate and more complete requirements. In contrast with obstacle identification and assessment, however, this step has little support beyond a palette of resolution operators encoding tactics for producing isolated countermeasures to single risks. In particular, there is no single clue to date as to where and how such countermeasures should be integrated within a more robust goal model. To address this problem, the paper describes a systematic technique for integrating obstacle resolutions as countermeasure goals into goal models. The technique is shown to guarantee progress towards a complete goal model; it preserves the correctness of refinements in the overall model; and keeps the original, ideal model visible to avoid cluttering the latter with a combinatorial blow-up of exceptional cases. To allow for this, the goal specification language is slightly extended in order to capture exceptions to goals seperately and distinguish normal situations from exceptional ones. The proposed technique is evaluated on a non-trivial ambulance dispatching system.
Antoine Cailliau, Axel van Lamsweerde
RE2
2014 Analyzing Critical Decision-Based Processes
abstract
Decision-based processes are composed of tasks whose application may depend on explicit decisions relying on the state of the process environment. In specific domains such as healthcare, decision-based processes are often complex and critical in terms of timing and resources. The paper presents a variety of tool-supported techniques for analyzing models of such processes. The analyses allow a variety of errors to be detected early and incrementally on partial models, notably: inadequate decisions resulting from inaccurate or outdated information about the environment state; incomplete decisions; non-deterministic task selections; unreachable tasks along process paths; and violations of non-functional process requirements involving time, resources or costs. The proposed techniques are based on different instantiations of the same generic algorithm that propagates decorations iteratively through the process model. This algorithm in particular allows event-based models to be automatically decorated with state-based invariants. A formal language supporting both event-based and state-based specifications is introduced as a process modeling language to enable such analyses. This language mimics the informal flowcharts commonly used by process stakeholders. It extends High-Level Message Sequence Charts with guards on task-related and environment-related variables. The language provides constructs for specifying task compositions, task refinements, decision trees, multi-agent communication scenarios, and time and resource constraints. The proposed techniques are demonstrated on the incremental building and analysis of a complex model of a real protocol for cancer therapy.
Christophe Damas, Bernard Lambeau, Axel van Lamsweerde
IEEE Trans. Software Eng.3
2013 Engineering Multi-view Models for Model-Driven Engineering
abstract
The effectiveness of model-driven engineering relies on our ability to build high quality models. This task is intrinsically difficult. We need to produce sufficiently complete, adequate, consistent, and well-structured models from incomplete, imprecise, and sparse material originating from multiple, often conflicting sources. The systems we need to consider generally comprises software components, devices and people.
Axel van Lamsweerde
TASE1
2013 Assessing requirements-related risks through probabilistic goals and obstacles
Antoine Cailliau, Axel van Lamsweerde
Requir. Eng.2
2012 Generating obstacle conditions for requirements completeness
abstract
Missing requirements are known to be among the major causes of software failure. They often result from a natural inclination to conceive over-ideal systems where the software-to-be and its environment always behave as expected. Obstacle analysis is a goal-anchored form of risk analysis whereby exceptional conditions that may obstruct system goals are identified, assessed and resolved to produce complete requirements. Various techniques have been proposed for identifying obstacle conditions systematically. Among these, the formal ones have limited applicability or are costly to automate. This paper describes a tool-supported technique for generating a set of obstacle conditions guaranteed to be complete and consistent with respect to the known domain properties. The approach relies on a novel combination of model checking and learning technologies. Obstacles are iteratively learned from counterexample and witness traces produced by model checking against a goal and converted into positive and negative examples, respectively. A comparative evaluation is provided with respect to published results on the manual derivation of obstacles in a real safety-critical system for which failures have been reported.
Dalal Alrajeh, Jeff Kramer, Axel van Lamsweerde, Alessandra Russo, Sebastián Uchitel
ICSE3
2012 A probabilistic framework for goal-oriented risk analysis
abstract
Requirements completeness is among the most critical and difficult software engineering challenges. Missing requirements often result from poor risk analysis at requirements engineering time. Obstacle analysis is a goal-oriented form of risk analysis aimed at anticipating exceptional conditions in which the software should behave adequately. In the identify-assess-control cycles of such analysis, the assessment step is not well supported by current techniques. This step is concerned with evaluating how likely the obstacles to goals are and how likely and severe their consequences are. Those key factors drive the selection of most appropriate countermeasures to be integrated in the system goal model for increased completeness. Moreover, obstacles to probabilistic goals are currently not supported; such goals prescribe that some corresponding target property should be satisfied in at least X% of the cases. The paper presents a probabilistic framework for goal specification and obstacle assessment. The specification language for goals and obstacles is extended with a probabilistic layer where probabilities have a precise semantics grounded on system-specific phenomena. The probability of a root obstacle to a goal is thereby computed by up-propagation of probabilities of finer-grained obstacles through the obstacle refinement tree. The probability and severity of obstacle consequences is in turn computed by up-propagation from the obstructed leaf goals through the goal refinement graph. The paper shows how the computed information can be used to prioritize obstacles for countermeasure selection towards a more complete and robust goal model. The framework is evaluated on a non-trivial carpooling support system.
Antoine Cailliau, Axel van Lamsweerde
RE2
2011 The Humble Humorous Researcher: A Tribute to Michel Sintzoff
abstract
Many of us lost a close colleague on November 28, 2010.More than that: we lost a friend.One that we used to meet regularly, all over the world, always listening to us, making interesting comments and suggestions on our work, joking on every occasion and making us discover how much fun our business is.Rather than reviewing his work in detail, this note puts more focus on Michel's rich personality, with the hope that it will bring back fond memories among those who were lucky enough to share some good times with him.The style is intended to be personal and informal.Michel would have hated anything different, to be sure.Born in 1938 in Brussels, Michel completed his master's degree in Mathematics at the Université catholique de Louvain (UCL) in 1962.After 2 years of civil service as a maths teacher in Katanga (Congo), he entered the MBLE Research Laboratory in Brussels in 1964 (MBLE stands for "Manufacture Belge de Lampes et matériel Electrique").This was a branch of Philips Research Labs specifically dedicated to background research in applied mathematics and computing science.After 18 years of research in programming languages, formal semantics, program analysis and concurrency at MBLE, he joined the newly founded department of Computing Science at UCL in 1982 with new interests in diverse areas such as proof systems, control theory and dynamical systems.Michel contributed to the PhD work of dozens of people in Belgium and France, as supervisor or contributor, without ever having been interested in getting a PhD himself.He received a Doctorate Honoris Causa from the Université Joseph Fourier in Grenoble (France) and was a member of the Informatics section of the Academy of Europe.Michel was an Emeritus Professor at UCL since 2003.The two of us were face to face in the same office at MBLE Research for 10 years (1970)(1971)(1972)(1973)(1974)(1975)(1976)(1977)(1978)(1979)(1980), and had adjacent rooms at UCL for another decade (1993)(1994)(1995)(1996)(1997)(1998)(1999)(2000)(2001)(2002)(2003).Programs, 1972) as the precursor paper on abstract interpretation.This paper and others he wrote around that time on program verification and type discovery are heavily cited in the paper generally considered to have opened the field (Cousot and Cousot, 1977).The technique described in his 1972 paper was simultaneously implemented in Paul Branquart's optimizing compiler for Algol68, confirming how powerful it was. Many consider Michel's paper Calculating Properties of Programs by Valuations on Specific Models (Proc. ACM Conference on Proving Assertions about
Axel van Lamsweerde
Formal Aspects Comput.1
2011 The humble humorous researcher: A tribute to Michel Sintzoff
Axel van Lamsweerde
Sci. Comput. Program.1
2010 Keynote address: model engineering for model-driven engineering
abstract
The effectiveness of MDE relies on our ability to build high-quality models. This task is intrinsically difficult. We need to produce sufficiently complete, adequate, consistent, and well-structured models from incomplete, imprecise, and sparse material originating from multiple, often conflicting sources. The system we need to consider in the early stages comprises software and environment components including people and devices.
Axel van Lamsweerde
ASE1
2009 Analyzing critical process models through behavior model synthesis
abstract
Process models capture tasks performed by agents together with their control flow. Building and analyzing such models is important but difficult in certain areas such as safety-critical healthcare processes. Tool-supported techniques are needed to find and correct flaws in such processes. On another hand, event-based formalisms such as Labeled Transition Systems (LTS) prove effective for analyzing agent behaviors. The paper describes a blend of state-based and event-based techniques for analyzing task models involving decisions. The input models are specified as guarded high-level message sequence charts, a language allowing us to integrate material provided by stakeholders such as multi-agent scenarios, decision trees, and flowchart fragments. The input models are compiled into guarded LTS, where transition guards on fluents support the integration of state-based and event-based analysis. The techniques supported by our tool include model checking against process-specific properties, invariant generation, and the detection of incompleteness, unreachability, and undesirable non-determinism in process decisions. They are based on a trace semantics of process models, defined in terms of guarded LTS, which are in turn defined in terms of pure LTS. The techniques complement our previous palette for synthesizing behavior models from scenarios and goals. The paper also describes our preliminary experience in analyzing cancer treatment processes using these techniques.
Christophe Damas, Bernard Lambeau, François Roucoux, Axel van Lamsweerde
ICSE4
2009 Building Multi-View System Models for Requirements Engineering
abstract
This mini-tutorial overviews a blend of complementary techniques for constructing multi-view models for RE. Requirements engineering techniques are faced with a recurring problem of focus and structure. Elicitation techniques raise the problem of focussing and structuring elicitation sessions and artefacts. Evaluation techniques raise the problem of identifying and comparing items at a common level of abstraction and granularity for risk analysis, conflict management, option selection, or prioritization. Specification techniques offer mechanisms for structuring specifications but do not tell us much on how a complex structure should be built through such mechanisms. For quality assurance, inspection techniques are more effective if inspections can be focussed on structured specifications. Validation and verification techniques require the availability of structured specifications as well. Likewise, evolution techniques are more effective when a rich structure is available for defining change units, granularities of traceable items, built-in derivation links, and satisfaction arguments to be replayed in case of change.
Axel van Lamsweerde
RE1
2008 Requirements engineering: from craft to discipline
abstract
Getting the right software requirements under the right environment assumptions is a critical precondition for developing the right software. This task is intrinsically difficult. We need to produce a complete, adequate, consistent, and well-structured set of measurable requirements and assumptions from incomplete, imprecise, and sparse material originating from multiple, often conflicting sources. The system we need to consider comprises software and environment components including people and devices.
Axel van Lamsweerde
SIGSOFT FSE1
2007 Early verification and validation of mission critical systems
Christophe Ponsard, Philippe Massonet, Jean-François Molderez, André Rifaut, Axel van Lamsweerde, Hung Tran Van
Formal Methods Syst. Des.5
2006 Scenarios, goals, and state machines: a win-win partnership for model synthesis
abstract
Models are increasingly recognized as an effective means for elaborating requirements and exploring designs. For complex systems, model building is far from an easy task. Efforts were therefore recently made to automate parts of this process, notably, by synthesizing behavior models from scenarios of interactions between the software-to-be and its environment. In particular, our previous interactive synthesizer generates labelled transition systems (LTS) from simple message sequence charts (MSC) provided by end-users. Compared with others, the synthesizer requires no additional input such as state or flowcharting information. User interactions consist in simple scenarios generated by the synthesizer that the user has to classify as example or counterexample of desired behavior.Experience with this approach showed that the number of such scenario questions may become fairly large in interaction-intensive applications such as web applications. In this paper, we extend our model synthesis technique by injecting additional information into the synthesizer, when available, in order to constrain induction and prune the inductive search space. Additional information may include global definitions of fluents that link interaction events and atomic assertions; declarative properties of the domain; behavior models of external components; and goals that the software system is expected to satisfy. We provide comparative data on increasingly complex examples to show how effective such constraints are in reducing the number of scenario questions and in increasing the adequacy of the synthesized model. As goals and domain properties might not be easily provided by users, the paper also shows how our synthesizer generates a significant class of them automatically from the available scenarios. As a side-effect, our work provides additional evidence on the synergistic links between scenarios, goals, and state machines for model-driven engineering of requirements and designs.
Christophe Damas, Bernard Lambeau, Axel van Lamsweerde
SIGSOFT FSE3
2005 Reasoning about confidentiality at requirements engineering time
abstract
Growing attention is being paid to application security at requirements engineering time. Confidentiality is a particular subclass of security concerns that requires sensitive information to never be disclosed to unauthorized agents. Disclosure refers to undesired knowledge states of such agents. In previous work we have extended our requirements specification framework with epistemic constructs for capturing what agents may or may not know about the application. Roughly, an agent knows some property if the latter is found in the agent's memory.This paper makes the semantics of such constructs further precise through a formal model of how sensitive information may appear or disappear in an agent's memory. Based on this extended framework, a catalog of specification patterns is proposed to codify families of confidentiality requirements. A proof-of-concept tool is presented for early checking of requirements models against such confidentiality patterns. In case of violation, the counterexample scenarios generated by the tool show how an unauthorized agent may acquire confidential knowledge. Counter-measures should then be devised to produce further confidentiality requirements.
Renaud De Landtsheer, Axel van Lamsweerde
ESEC/SIGSOFT FSE2
2005 Generating Annotated Behavior Models from End-User Scenarios
abstract
Requirements-related scenarios capture typical examples of system behaviors through sequences of desired interactions between the software-to-be and its environment. Their concrete, narrative style of expression makes them very effective for eliciting software requirements and for validating behavior models. However, scenarios raise coverage problems as they only capture partial histories of interaction among-system component instances. Moreover, they often leave the actual requirements implicit. Numerous efforts have therefore been made recently to synthesize requirements or behavior models inductively from scenarios. Two problems arise from those efforts. On the one hand, the, scenarios must be complemented with additional input such as state assertions along episodes or flowcharts on such episodes. This makes such techniques difficult to use by the nonexpert end-users who provide the scenarios. On the other hand, the generated state machines may be hard to understand as their nodes generally convey no domain- specific properties. Their validation by analysts, complementary to model checking and animation by may therefore be quite difficult. This paper describes tool-supported techniques that overcome those two problems. Our tool generates a labeled transition system (LTS) for each system component from simple forms of message sequence charts (MSC) taken as examples or counterexamples of desired behavior. No additional input is required. A global LTS for the entire system is synthesized first. This LTS covers all scenario examples and excludes all counterexamples. It is inductively generated through an interactive procedure that extends known learning techniques for grammar induction. The procedure is incremental on training examples. It interactively produces additional scenarios that the end-user has to classify as examples or counterexamples of desired behavior. The LTS synthesis procedure may thus also be used independently for requirements elicitation through scenario questions generated by the tool. The synthesized system LTS is then projected on local LTS for each system component. For model validation by analysts, the tool generates state invariants that decorate the nodes of the local LTS.
Christophe Damas, Bernard Lambeau, Pierre Dupont, Axel van Lamsweerde
IEEE Trans. Software Eng.4
2004 Elaborating Security Requirements by Construction of Intentional Anti-Models
abstract
Caring for security at requirements engineering time is a message that has finally received some attention recently. However, it is not yet very clear how to achieve this systematically through the various stages of the requirements engineering process. The paper presents a constructive approach to the modeling, specification and analysis of application-specific security requirements. The method is based on a goal-oriented framework for generating and resolving obstacles to goal satisfaction. The extended framework addresses malicious obstacles (called anti-goals) set up by attackers to threaten security goals. Threat trees are built systematically through anti-goal refinement until leaf nodes are derived that are either software vulnerabilities observable by the attacker or anti-requirements implementable by this attacker. New security requirements are then obtained as countermeasures by application of threat resolution operators to the specification of the anti-requirements and vulnerabilities revealed by the analysis. The paper also introduces formal epistemic specification constructs and patterns that may be used to support a formal derivation and analysis process. The method is illustrated on a Web-based banking system for which subtle attacks have been reported recently.
Axel van Lamsweerde
ICSE1
2004 Goal-Oriented Requirements Enginering: A Roundtrip from Research to Practice
Axel van Lamsweerde
RE1
2004 Goal-Oriented Requirements Animation
Hung Tran Van, Axel van Lamsweerde, Philippe Massonet, Christophe Ponsard
RE2
2004 Reasoning about partial goal satisfaction for requirements and design engineering
abstract
Exploring alternative options is at the heart of the requirements and design processes. Different alternatives contribute to different degrees of achievement of non-functional goals about system safety, security, performance, usability, and so forth. Such goals in general cannot be satisfied in an absolute, clear-cut sense. Various qualitative and quantitative frameworks have been proposed to support the assessment of alternatives for design decision making. In general they lead to limited conclusions due to the lack of accuracy and measurability of goal formulations and the lack of impact propagation rules along goal contribution links.
Emmanuel Letier, Axel van Lamsweerde
SIGSOFT FSE2
2004 Deriving tabular event-based specifications from goal-oriented requirements models
Renaud De Landtsheer, Emmanuel Letier, Axel van Lamsweerde
Requir. Eng.3
2003 Goal-Oriented Requirements Engineering: From System Objectives to UML Models to Precise Software Specifications
abstract
This tutorial presents a comprehensive overview of state-of-the-art techniques for eliciting, modeling, specifying, analyzing and documenting high-quality system requirements.
Axel van Lamsweerde
ICSE1
2003 Deriving Tabular Event-Based Specifications from Goal-Oriented Requirements Models
abstract
Goal-oriented methods are increasingly popular for elaborating software requirements. They provide systematic support for incrementally building intentional, structural and operational models of the software and its environment together with various techniques for early analysis, e.g., to manage conflicting goals or anticipate abnormal environment behaviors that prevent goals from being achieved. On the other hand, tabular event-based methods are well-established for specifying operational requirements for control software. They provide sophisticated techniques and tools for late analysis of software behavior models through, e.g., simulation, model checking or table exhaustiveness checks. We propose to take the best out of these two worlds to engineer requirements for control software. It presents a technique for deriving event-based specifications, written in the SCR tabular language, from operational specifications built according to the KAOS goal-oriented method. The technique consists in a series of transformation steps each of which resolves semantic, structural or syntactic differences between the KAOS source language and the SCR target language. Some of these steps need human intervention and illustrate the kind of semantic subtleties that need to be taken into account when integrating multiple formalisms. As a result of our technique SCR specifiers may use upstream goal-based processes a la KAOS for the incremental elaboration, early analysis, organization and documentation of their tables while KAOS modelers may use downstream tables a la SCR for later analysis of the behavior models derived from goal specifications.
Renaud De Landtsheer, Emmanuel Letier, Axel van Lamsweerde
RE3
2003 FAUST: Formal Analysis Using Specification Tools
abstract
Developing high quality requirements specifications is a necessity for a number of critical industrial systems. An integrated toolset, called FAUST, is proposed to assist in the production of such specifications based on the KAOS goal-driven methodology. The tool suite is designed to naturally extend the existing semiformal modeling framework and to allow formalizing only the relevant critical parts. Two tools from the toolset are presented. The requirements checker performs KAOS goal-level checks using existing model checking technology. The requirements animator produces domain-level animations hiding formality even further.
André Rifaut, Philippe Massonet, Jean-François Molderez, Christophe Ponsard, Pierre Stadnik, Axel van Lamsweerde, Hung Tran Van
RE6
2002 Agent-based tactics for goal-oriented requirements elaboration
abstract
Goal orientation is an increasingly recognized paradigm for eliciting, structuring, analyzing and documenting system requirements. Goals are statements of intent ranging from high-level, strategic concerns to low-level, technical requirements on the software-to-be and assumptions on its environment. Achieving goals require the cooperation of agents such as software components, input/output devices and human agents. The assignment of responsibilities for goals to agents is a critical decision in the requirements engineering process as alternative agent assignments define alternative system proposals.The paper describes a systematic technique to support the process of refining goals, identifying agents, and exploring alternative responsibility assignments. The underlying principles are to refine goals until they are assignable to single agents, and to assign a goal to an agent only if the agent can realize the goal.There are various reasons why a goal may not be realizable by an agent, e.g., the goal may refer to variables that are not monitorable or controllable by the agent. The notion of goal realizability is first defined on formal grounds; it provides a basis for identifying a complete taxonomy of realizability problems. From this taxonomy we systematically derive a catalog of tactics for refining goals and identifying agents so as to resolve realizability problems. Each tactics corresponds to the application of a formal refinement pattern that relieves the specifier from verifying the correctness of refinements in temporal logic.Our techniques have been used in two case studies of significant size; excerpts are shown to illustrate the main ideas.
Emmanuel Letier, Axel van Lamsweerde
ICSE2
2002 Deriving operational software specifications from system goals
abstract
Goal orientation is an increasingly recognized paradigm for eliciting, modeling, specifying and analyzing software requirements. Goals are statements of intent organized in AND/OR refinement structures; they range from high-level, strategic concerns to low-level, technical requirements on the software-to-be and assumptions on its environment. The operationalization of system goals into specifications of software services is a core aspect of the requirements elaboration process for which little systematic and constructive support is available. In particular, most formal methods assume such operational specifications to be given and focus on their a posteriori analysis.The paper considers a formal, constructive approach in which operational software specifications are built incrementally from higher-level goal formulations in a way that guarantees their correctness by construction. The operationalization process is based on formal derivation rules that map goal specifications to specifications of software operations; more specifically, these rules map real-time temporal logic specifications to sets of pre-, post- and trigger conditions. The rules define operationalization patterns that may be used for guiding and documenting the operationalization process while hiding all formal reasoning details; the patterns are formally proved correct once and for all. The catalog of operationalization patterns is structured according to a rich taxonomy of goal specification patterns.
Emmanuel Letier, Axel van Lamsweerde
SIGSOFT FSE2
2001 Goal-Oriented Requirements Engineering: A Guided Tour
abstract
Goals capture, at different levels of abstraction, the various objectives the system under consideration should achieve. Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring, specifying, analyzing, negotiating, documenting, and modifying requirements. This area has received increasing attention. The paper reviews various research efforts undertaken along this line of research. The arguments in favor of goal orientation are first briefly discussed. The paper then compares the main approaches to goal modeling, goal specification and goal-based reasoning in the many activities of the requirements engineering process. To make the discussion more concrete, a real case study is used to suggest what a goal-oriented requirements engineering method may look like. Experience, with such approaches and tool support are briefly discussed as well.
Axel van Lamsweerde
RE1
2000 Building Formal Models for Software Requirements
Axel van Lamsweerde
APSEC1
2000 Requirements engineering in the year 00: a research perspective
abstract
Requirements engineering (RE) is concerned with the identification of the goals to be achieved by the envisioned system, the operationalization of such goals into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices, and software. The processes involved in RE include domain analysis, elicitation, specification, assessment, negotiation, documentation, and evolution. Getting high-quality requirements is difficult and critical. Recent surveys have confirmed the growing recognition of RE as an area of utmost importance in software engineering research and practice.
Axel van Lamsweerde
ICSE1
2000 Handling Obstacles in Goal-Oriented Requirements Engineering
abstract
Requirements engineering is concerned with the elicitation of high-level goals to be achieved by the envisioned system, the refinement of such goals and their operationalization into specifications of services and constraints and the assignment of responsibilities for the resulting requirements to agents such as humans, devices and software. Requirements engineering processes often result in goals, requirements, and assumptions about agent behavior that are too ideal; some of them are likely not to be satisfied from time to time in the running system due to unexpected agent behavior. The lack of anticipation of exceptional behaviors results in unrealistic, unachievable, and/or incomplete requirements. As a consequence, the software developed from those requirements will not be robust enough and will inevitably result in poor performance or failures, sometimes with critical consequences on the environment. This paper presents formal techniques for reasoning about obstacles to the satisfaction of goals, requirements, and assumptions elaborated in the requirements engineering process. The techniques are based on a temporal logic formalization of goals and domain properties; they are integrated into an existing method for goal-oriented requirements elaboration with the aim of deriving more realistic, complete, and robust requirements specifications. A key principle is to handle exceptions at requirements engineering time and at the goal level, so that more freedom is left for resolving them in a satisfactory way. The various techniques proposed are illustrated and assessed in the context of a real safety-critical system.
Axel van Lamsweerde, Emmanuel Letier
IEEE Trans. Software Eng.1
1998 Integrating Obstacles in Goal-Driven Requirements Engineering
abstract
Requirements engineering is concerned with the elicitation of high-level goals to be achieved by the system envisioned, the refinement of such goals and their operationalization into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices and software. Requirements engineering processes may often result in requirements and assumptions about agent behaviour that are too ideal; some of them are likely to be violated from time to time in the running system due to unexpected agent behaviour. The lack of anticipation of exceptional behaviors results in unrealistic, unachievable and/or incomplete requirements. As a consequence, the software developed from those requirements will inevitably result in poor performance, sometimes with critical consequences on the environment. This paper proposes systematic techniques for reasoning about obstacles to the satisfaction of goals, requirements, and assumptions elaborated in the requirements engineering process. These techniques are integrated into an existing method for goal-driven requirements elaboration with the aim of deriving more complete and realistic requirements. The concept of obstacle is first defined precisely. Formal techniques and domain-independent heuristics are then proposed for identifying obstacles from goal/assumption formulations and domain properties. The paper then discusses techniques for resolving obstacles by transformation of the goals, requirements and assumptions elaborated so far in the process, or by introduction of new ones. Numerous examples are given throughout the paper to suggest how the techniques can be usefully applied in practice.
Axel van Lamsweerde, Emmanuel Letier
ICSE1
1998 Managing Conflicts in Goal-Driven Requirements Engineering
abstract
A wide range of inconsistencies can arise during requirements engineering as goals and requirements are elicited from multiple stakeholders. Resolving such inconsistencies sooner or later in the process is a necessary condition for successful development of the software implementing those requirements. The paper first reviews the main types of inconsistency that can arise during requirements elaboration, defining them in an integrated framework and exploring their interrelationships. It then concentrates on the specific case of conflicting formulations of goals and requirements among different stakeholder viewpoints or within a single viewpoint. A frequent, weaker form of conflict called divergence is introduced and studied in depth. Formal techniques and heuristics are proposed for detecting conflicts and divergences from specifications of goals/requirements and of domain properties. Various techniques are then discussed for resolving conflicts and divergences systematically by the introduction of new goals or by transforming the specifications of goals/objects toward conflict-free versions. Numerous examples are given throughout the paper to illustrate the practical relevance of the concepts and techniques presented. The latter are discussed in the framework of the KAOS methodology for goal-driven requirements engineering.
Axel van Lamsweerde, Robert Darimont, Emmanuel Letier
IEEE Trans. Software Eng.1
1998 Inferring Declarative Requirements Specifications from Operational Scenarios
abstract
Scenarios are increasingly recognized as an effective means for eliciting, validating, and documenting software requirements. The paper focuses on the use of scenarios for requirements elicitation and explores the process of inferring formal specifications of goals and requirements from scenario descriptions. Scenarios are considered as typical examples of system usage; they are provided in terms of sequences of interaction steps between the intended software and its environment. Such scenarios are in general partial, procedural, and leave required properties about the intended system implicit. In the end such properties need to be stated in explicit, declarative terms for consistency/completeness analysis to be carried out. A formal method is proposed for supporting the process of inferring specifications of system goals and requirements inductively from interaction scenarios provided by stakeholders. The method is based on a learning algorithm that takes scenarios as examples/counterexamples and generates a set of goal specifications in temporal logic that covers all positive scenarios while excluding all negative ones. The output language in which goals and requirements are specified is the KAOS goal based specification language. The paper also discusses how the scenario based inference of goal specifications is integrated in the KAOS methodology for goal based requirements engineering. In particular, the benefits of inferring declarative specifications of goals from operational scenarios are demonstrated by examples of formal analysis at the goal level, including conflict analysis, obstacle analysis, the inference of higher level goals, and the derivation of alternative scenarios that better achieve the underlying goals.
Axel van Lamsweerde, Laurent Willemet
IEEE Trans. Software Eng.1
1997 GRAIL/KAOS: An Environment for Goal-Driven Requirements Engineering
abstract
No abstract available.
Robert Darimont, Emmanuelle Delor, Philippe Massonet, Axel van Lamsweerde
ICSE4
1997 GRAIL/KAOS: An Environment for Goal-Driven Requirements Analysis, Integration and Layout
abstract
The KAOS methodology provides a language, a method, and meta-level knowledge for goal-driven requirements elaboration. The language provides a rich ontology for capturing requirements in terms of goals, constraints, objects, actions, agents etc. Links between requirements are represented its well to capture refinements, conflicts, operationalizations, responsibility assignments, etc. The KAOS specification language is a multi-paradigm language with a two-level structure: an outer semantic net layer for declaring concepts, their attributes and links to other concepts, and an inner formal assertion layer for formally defining the concept. The latter combines a real-time temporal logic for the specification of goals, constraints, and objects, and standard pre-/postconditions for the specification of actions and their strengthening to ensure the constraints.
Robert Darimont, Emmanuelle Delor, Philippe Massonet, Axel van Lamsweerde
RE4
1997 Analogical Reuse of Requirements Frameworks
abstract
Reusing similar requirements fragments is one of the most promising ways to reduce the elaboration time and increase the requirements' quality. This paper investigates the application of analogical reasoning techniques to complete partial requirement specifications. A case base is assumed to be available; it contains requirements frameworks involving goals, constraints, objects, actions and agents from systems which have already been specified. We show how a rich requirements meta-model, coupled with an expressive formal assertion language, may increase the effectiveness of analogical reuse. An acquisition problem is first specified by a requirements engineer as a query formulated in the vocabulary of the specification fragments built so far. Source cases and partial mappings are found by query generalization followed by a search through the case base. Once analogies have been confirmed, mappings are completed by the use of relevance rules that distinguish, in the formal assertions, what is relevant to the analogy from what is irrelevant. The best analogies are then selected and extended in such a way that the logical properties of the answers to the query may be verified, thus increasing confidence in the analogy. The approach is illustrated by analogical acquisition of specifications of a meeting scheduler in the KAOS goal-oriented specification language.
Philippe Massonet, Axel van Lamsweerde
RE2
1997 Requirements and Specification Exemplars
Martin Feather, Stephen Fickas, Anthony Finkelstein, Axel van Lamsweerde
Autom. Softw. Eng.4
1996 Formal Refinement Patterns for Goal-Driven Requirements Elaboration
abstract
Requirements engineering is concerned with the identification of high-level goals to be achieved by the system envisioned, the refinement of such goals, the operationalization of goals into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices and programs. Goal refinement and operationalization is a complex process which is not well supported by current requirements engineering technology. Ideally some form of formal support should be provided, but formal methods are difficult and costly to apply at this stage.This paper presents an approach to goal refinement and operationalization which is aimed at providing constructive formal support while hiding the underlying mathematics. The principle is to reuse generic refinement patterns from a library structured according to strengthening/weakening relationships among patterns. The patterns are once for all proved correct and complete. They can be used for guiding the refinement process or for pointing out missing elements in a refinement. The cost inherent to the use of a formal method is thus reduced significantly. Tactics are proposed to the requirements engineer for grounding pattern selection on semantic criteria.The approach is discussed in the context of the multi-paradigm language used in the KAOS method; this language has an external semantic net layer for capturing goals, constraints, agents, objects and actions together with their links, and an inner formal assertion layer that includes a real-time temporal logic for the specification of goals and constraints. Some frequent refinement patterns are high-lighted and illustrated through a variety of examples.The general principle is somewhat similar in spirit to the increasingly popular idea of design patterns, although it is grounded on a formal framework here.
Robert Darimont, Axel van Lamsweerde
SIGSOFT FSE2
1995 Goal-directed elaboration of requirements for a meeting scheduler: problems and lessons learnt
abstract
Recently a number of requirements engineering languages and methods have flourished that not only address 'what' questions but also 'why', 'who' and 'when' questions. The objective of the paper is twofold: to assess the strengths and weaknesses of one of these methodologies on a nontrivial benchmark; and to illustrate and discuss a number of challenging issues that need to be addressed for such methodologies to become effective in supporting real, complex requirements engineering tasks. The problem considered here is that of a distributed meeting scheduler system; the methodology considered is the KAOS goal directed language and method. The issues raised from this case study include goal identification, the "deidelization" of unachievable goals, the handling of interfering goals, the impact of early formal reasoning, the merits of early reuse of abstract descriptions and categories, requirements traceability and the need to link requirements to retractable assumptions, and the potential benefits of hybrid acquisition strategies.
Axel van Lamsweerde, Robert Darimont, Philippe Massonet
RE1
1993 Goal-Directed Requirements Acquisition
Anne Dardenne, Axel van Lamsweerde, Stephen Fickas
Sci. Comput. Program.2
1988 Generic Lifecycle Support in the ALMA Environment
abstract
ALMA is an environment kernel supporting the elaboration, analysis, documentation, and maintenance of the various products developed during an entire software lifecycle. Its central component is an environment database in which properties about software objects and relations are collected. Two kinds of tools are provided: high-level tools and syntax-directed tools. A basic feature of the ALMA kernel is its genericity. Tools of the first kind are parameterized on software lifecycle models while tools of the second kind are parameterized on formalisms. Versions of specific models and formalisms are generated by a meta-environment, which also generates the environment database structure tailored to the desired lifecycle model. The database support meta-system and the instatiated database support systems it generates are emphasized, including the architectural design decisions made and the mechanisms introduced for achieving parameterization on lifecycle models.>
Axel van Lamsweerde, Bruno Delcourt, Emmanuelle Delor, Marie-Claire Schayes, Robert Champagne
IEEE Trans. Software Eng.1
1979 Formal Derivation of Strongly Correct Concurrent Programs
Axel van Lamsweerde, Michel Sintzoff
Acta Informatica1
1972 On an Extension of Dijkstra's Semaphore Primitives
Hendrik Vantilborgh, Axel van Lamsweerde
Inf. Process. Lett.2