Bran SelicMalina Software Corp., Ottawa, Canada
Bran Selic
Hon. Doctor of Engineering
About
220
Publications
65,244
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
8,013
Citations
Introduction
Additional affiliations
Education
October 1972 - December 1974
September 1967 - July 1972
September 1967 - July 1972
Publications
Publications (220)
A PDF version of the slides used in my Keynote presentation at the Educators Symposium held in conjunction with the MODELS 2023 conference in Vasteras, Sweden.
Bran Selic's keynote presentation given at the CAiSE 2023 Conference held in Zaragoza, Spain (June 2023)
Bran Selic's keynote presentation given at the ICSA 2023 conference in L'Aquila, Italy
Robert Williams made the headlines in the United States in 2020 when he was wrongly identified by a facial recognition system and arrested as a wanted criminal.1 The root cause of this appalling violation of Williams’s personal rights was traced to a bias in the underlying machine learning system, which was trained using mostly images with a predom...
Layering and layered system architectures are among the most common architectural styles in software engineering. Despite its near ubiquity, it turns out that there has been very little theoretical work on a more precise definition of what constitutes and what characterizes layering. This has had the unfortunate consequence that the layering style...
The concept of classification as realized in most traditional object-oriented computer languages has certain limitations that may inhibit its application to modeling more complex phenomena. This is likely to prove problematic as modern software becomes increasingly more integrated with the highly dynamic physical world. In this paper, we first prov...
This contribution proposes to apply informal ideas
for model development within a formal tool. The basic idea is
to relax the requirements expressed with particular modeling
language elements and allow developers to dynamically customize
the level of formality in a visual and intuitive way. For UML and
OCL class models, the requirements for usual o...
The concept of classification as realized in most traditional object-oriented computer languages has certain limitations that may inhibit its application to modeling more complex phenomena. This is likely to prove problematic as modern software becomes increasingly more integrated with the highly dynamic physical world. In this paper, we first prov...
The inexorable penetration of software into practically every facet of modern society calls for sophisticated architectural styles, including ones that can sup-port architectures with dynamically shifting structures, which are required to cope with the dynamics of their applications. With the advent of modern Inter-net-based systems operating in re...
There is a long-standing challenge to narrow the gap between software engineering research and industrial practice. This gap is reinforced by a number of challenges, including differing timelines, metrics, expectations, and perceptions of these two communities. We believe that these and other related challenges need be analyzed and discussed, to di...
This book constitutes thoroughly revised and selected papers from the 8th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2020, held in Valletta, Malta, in February 2020.
The 15 revised and extended papers presented in this volume were carefully reviewed and selected from 66 submissions. They present recen...
The author states that AUDIT was an embarrassing admission of defeat, reflecting a development team resigned to the poor quality of their code. It dawned on him much later that the AUDIT program was simply an example of the very ancient feedback control loop pattern. In his experience, there is little awareness of the importance and complexity of t...
Many theoretical methods for dealing with component-based software design have been proposed. Unfortunately, practically all of them ignore the inconvenient fact that software-based systems need an underlying hardware and software infrastructure to function. Consequently, all software applications are susceptible to idiosyncratic effects stemming f...
This book constitutes thoroughly revised and selected papers from the 7th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2019, held in Prague, Czech Republic, in February 2019.
The 16 thoroughly revised and extended papers presented in this volume were carefully reviewed and selected from 76 submissions. T...
Several research efforts from different areas have focused on the execution of UML models, resulting in a diverse and complex scientific body of knowledge. With this work, we aim at identifying, classifying, and evaluating existing solutions for the execution of UML models. We conducted a systematic review in which we selected 63 research studies a...
This book constitutes thoroughly revised and selected papers from the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, held in Funchal, Madeira, Portugal, in January 2018. The 22 thoroughly revised and extended papers presented in this volume were carefully reviewed and selected from 101 submission...
With the increased demand for so-called “smart” systems, which are required to interact with the physical world in ever more complex ways, we are witnessing a corresponding growth in the complexity of the software that is at the core of such systems. Keeping pace with this rise in complexity is proving to be a challenge for current mainstream progr...
In order to achieve effective support for software development, the transition between an informal and provisional mode of tool operation, which is conducive to design exploration, and a formal mechanistic mode required for computer-based design capture is crucial. This contribution proposes a smooth transition for designing class models starting f...
Context: Latent uncertainty in the context of software-intensive systems (e.g., Cyber-Physical Systems (CPSs)) demands explicit attention right from the start of development. Use case modeling—a commonly used method for specifying requirements in practice, should also be extended for explicitly specifying uncertainty. Objective: Since uncertainty i...
This book constitutes thoroughly revised and selected papers from the 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2017, held in Porto, Portugal, in February 2017.
The 20 thoroughly revised and extended papers presented in this volume were carefully reviewed and selected from 91 submissions. They con...
This book constitutes thoroughly revised and selected papers from the 4th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2016, held in Rome, Italy, in February 2016.
The 17 thoroughly revised and extended papers presented in this volume were carefully reviewed and selected from 118 submissions. They are or...
The proven ability of some modeling languages to be used as both design and implementation languages has raised hopes of a seamless blending between design and implementation, a capability that only seems possible in the domain of software engineering. In turn, this has led to methodological questions on how best to take advantage of models and mod...
Uncertainty is intrinsic in most technical systems, including Cyber-Physical Systems (CPS). Therefore, handling uncertainty in a graceful manner during the real operation of CPS is critical. Since designing, developing, and testing modern and highly sophisticated CPS is an expanding field, a step towards dealing with uncertainty is to identify, def...
Cyber-Physical Systems (CPSs) are the future generation of highly connected embedded systems having applications in diverse domains including Oil and Gas. Employing Product Line Engineering (PLE) is believed to bring potential benefits with respect to reduced cost, higher productivity, higher quality, and faster time-to-market. However, relatively...
Many attempts to transfer the results of software research into useful industrial products fail. In this short paper, we identify some of the primary reasons why this happens, based on lessons learned from long-term experience with industrial software development. It is argued here that the primary causes of project failures can often be due to (a)...
Version 2.5 is formally a minor revision to the UML 2.4.1 specification, having been substantially rewritten
as solicited by the UML Specification Simplification RFP ad/09-12-10. It supersedes
formal/2011-08-05 (Infrastructure) and formal/2011-08-06 (Superstructure).
Designers and developers of real-time software systems often find that conventional computer languages lack important features that are crucial to their work. This category of systems is characterized by the fact that it needs to interact tightly with the physical world: real-time software is typically used to observe and control real-world phenome...
Some details of the actual metamodel are omitted for clarity.
Even the most basic foray into quantum physics reveals that the traditional “laws of physics” used in most engineering work are, in fact, merely high-level approximations of reality.
More precisely, MARTE allows multiple clocks to be associated with a timed element (each clock with a value corresponding to its perspective), but a single clock is by far the most common case.
Although the MARTE specification includes in its Annex A a definition of a full AADL subprofile, the AADL stereotypes and other constructs described in this chapter are different from those found in the standard. They were chosen for their pedagogical value instead of for accuracy.
The details of how the behavior of the Displayer class is specified are of no interest here and are omitted.
The Schedulability Analysis Modeling (SAM) subprofile of MARTE is used to determine whether or not a given platform implementing a given task scheduling policy can satisfy all of the hard real-time deadlines of a multitasking application. SAM is a refinement of the generic MARTE GQAM analysis framework and is applicable to an important category of...
The two languages were developed by different teams at approximately the same time.
This only applies to the way that deployment is modeled, but does not preclude the use of base concepts from the UML deployment model, such as Artifact or even Node (possibly refined using MARTE stereotypes).
This is, of course, a simplified representation; for example, many operating systems depend on a more basic software layer that shields them to a certain extent from the hardware.
Readers who are curious as to why two different forms of referring to the same stereotype, one starting with uppercase letter (PaStep) and the other with a lowercase letter (paStep), will find the answer in Section 2.3.5.
In this talk, we review the course of an industrial project involving a product line for a complex cybe-physical system. The project involved an industry partner and a research institute in Norway, Simula Research Laboratory. The product is a subsea oil and gas extraction facility. Each instance of the product must be adapted to fit a specific phys...
From the publisher's summary:
Modeling and Analysis of Real-Time and Embedded Systems with UML and MARTE explains how to apply the complex MARTE standard in practical situations. This approachable reference provides a handy user guide, illustrating with numerous examples how you can use MARTE to design and develop real-time and embedded systems an...
Modeling and Analysis of Real-Time and Embedded Systems with UML and MARTE explains how to apply the complex MARTE standard in practical situations. This approachable reference provides a handy user guide, illustrating with numerous examples how you can use MARTE to design and develop real-time and embedded systems and software. Expert co-authors B...
In recent years, High Performance Computing (HPC) systems have been shifting from expensive massively parallel architectures to clusters of commodity PCs to take advantage of cost and performance benefits. Fault tolerance in such systems is a growing concern for long-running applications. In this paper, we briefly review the failure rates of HPC sy...
With cloud computing, a large number of Virtual Machines (VMs) can be provisioned to form high performance computing (HPC) to run computation-intensive applications using the Hardware as a Service (HaaS) model. Fault Tolerance (FT) for HPC in the cloud is increasingly a challenging issue, because any fault during the execution would result in re-ru...
Using model-based approaches for designing embedded systems helps remove unnecessary details in a manner that reduces production costs, increases the potential for easy validation and verification, and facilitates reuse and evolution. In this context, a common practice is to use UML as the base language, possibly specialized by the so-called profil...
ContextIntegrated control systems (ICSs) are heterogeneous systems where software and hardware components are integrated to control and monitor physical devices and processes. A family of ICSs share the same software code base, which is configured differently for each product to form a unique installation. Due to the complexity of ICSs and inadequa...
Requirements play a critical role in the development of large-scale integrated control systems. The quality of these requirements has a significant impact on almost every single activity of the development lifecycle. The inherent complexity of such systems, which typically spans entire product lines, requires a systematic and comprehensive approach...
Model-based engineering (MBE) has been touted as a new and substantively different approach to software development, characterized by higher levels of abstraction and automation compared to traditional methods. Despite the availability of published verifiable evidence that it can significantly boost both developer productivity and product quality i...
UML profiling is pragmatic choice that lets language designers define a Domain-Specific Modeling Language (DSML) by tuning UML to meet specific domain. An alternative approach is to define a pure-DSML. Each approach has its own benefits and drawbacks. We propose an approach and a tool that helps get the best from both approaches; maximizing reuse w...
We investigate three approaches describing models of business processes: the OMG standard BPMN in its recent version 2.0, the workflow patterns of the Workflow Pattern Initiative and their reference implementation YAWL. We show how the three approaches ...
The general perception and opinion of the Unified Modeling Language in the minds of many software professionals is colored by its early versions. However, the language has evolved into a qualitatively different tool: one that not only supports informal lightweight sketching in early phases of development, but also full implementation capability, if...
Integrated Control Systems (ICSs) are often large-scale and highly configurable software-intensive systems-of-systems, with software and hardware components integrated to control and monitor physical devices and processes (e.g., oil and gas production platforms). Employing Product Line Engineering (PLE) is believed to bring potential benefits with...
In recent years, High Performance Computing (HPC) systems have been shifting from expensive massively parallel custom architectures to clusters of commodity personal computers to take advantage of cost and performance benefits. To avoid having to restart an application in case of sudden failure, checkpointing/restart fault tolerance mechanisms are...
Recent years have seen a proliferation of languages for describing embedded systems. Some of these languages have emerged
from domain-specific frameworks, and some are adaptions or extensions of more general-purpose languages. In this paper, we
focus on two widely-used standard languages: the Architecture Analysis and Design Language (AADL) and the...
form only given. Abstraction is the very essence of architectural specification and modeling. Consequently, as we develop a proper theoretical underpinning for model-based engineering methods, it is crucial for us to understand more precisely what is involved in moving from a concrete specification of some system to a more abstract one (or vice ver...
This specification of a UML™ profile adds capabilities to UML for model-driven development of Real Time and
Embedded Systems (RTES). This extension, called the UML profile for MARTE (in short MARTE for Modeling and
Analysis of Real-Time and Embedded systems), provides support for specification, design, and verification/validation
stages. This new p...
One pillar of Model-Driven Development for real-time embedded software is the separation of concerns between application model and target platform. This requires definition of model transformations realizing the mapping of the application model onto the target platform. Real-Time and Embedded Systems design means coping with different target platfo...
This is a half-day tutorial dealing with the relatively new field of modeling language design.
Recent years have seen a proliferation of languages for describing embedded control systems. Some of these languages have emerged from domain-specific frameworks, and some are adaptions or extensions of more general-purpose languages. In this paper, we focus on two widely-used standard languages: the Architecture Analysis and Design Language (AADL)...
The authors of this issue's "Point/Counterpoint" department debate the merits of UML as a useful tool. Eoin Woods and David Emery, in "Is UML Sufficient for Describing Architectures?", posit that although widely used, UML has some serious limitations as an architecture description language, while Bran Selic, in "UML 2: Designed for Architects," sta...
Development of increasingly more sophisticated dependable real-time and embedded systems requires new paradigms since contemporary code-centric approaches are reaching their limits. Experience has shown that model-based engineering using domain-specific modeling languages is an approach that can overcome many of these limitations. This chapter firs...
This chapter outlines Papyrus, a tool for graphical modeling of UML2 applications. It is an open-source project, designed as an Eclipse component, and based on the existing EMF-based realization of the UML2 meta-model. The goal of this open-source project is twofold. First, it is a complete, efficient, robust, and methodologically agnostic implemen...
The design of complex technical system invariably involves multiple domain-specific languages to cover the many different
facets of such systems. However, unless the languages are designed to be used in combination, this typically leads to conflicting
specifications that are difficult to reconcile due to the ontological and other differences betwee...
The authors of this issue's" Point/Counterpoint" department debate the merits of UML as a useful tool. Eoin Woods and David Emery, in "Is UML Sufficient for Describing Architectures?", posit that although widely used, UML has some serious limitations as an architecture description language, while Bran Selic, in "UML 2: Designed for Architects," sta...
Software developers are notorious for skimping on design documentation, often eschewing it altogether. This trend has led to claims that it is merely an impediment in the fast-paced and highly pliable world of software development-a useless vestige of old-style engineering that should be eliminated altogether. While recognizing the unique nature of...
The design of modeling languages is still much more of an art than a science. There is as yet no systematic consolidated body
of knowledge that a practitioner can refer to when designing a computer-based modeling language. This overview article provides
a personal perspective, comprising a selective summary of some important lessons learned and exp...
Using model-based approaches for designing embedded systems helps abstract away unnecessary details in a manner that increases
the potential for easy validation and verification, and facilitates reuse and evolution. A common practice is to use UML as
the base language, possibly specialized by the so-called profiles. Despite the ever increasing numb...
This short panel position paper outlines the vision of modern development methods and supporting technologies for the development of modern and future real-time and embedded software applications. It is argued that these should be based on so-called model-based software engineering techniques and service-oriented principles.
This book constitutes the refereed proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, MoDELS 2009, held in Denver, CO, USA, during October 4-9, 2009.
The 45 revised full papers and 13 short papers presented were carefully reviewed and selected from 248 submissions. The book also contains three keynot...
Model-based software engineering (MBSE) is an approach to software development characterized in part by significantly greater levels of automation when compared to more traditional development methods. Computer-based tools play a fundamental role in a number of key aspects of development, including authoring support (many MBSE languages are predomi...
The Unified Modeling Language is a language used for analysis and design of software-based systems. This is an entry for the Software Engineering Encyclopedia that gives an overview of UML.
The UML Profile for Modeling and Analysis of Real-Time and Embedded Systems (also called the UML profile for MARTE, or simply, MARTE) adds capabilities to UML for model-driven development of real-time and embedded systems (RTES). It provides support for specification, design, and verification/validation stages. This new profile replaces the existin...
With society's increasing dependence on software, the issue of software quality is becoming more prominent. The term quality of service (QoS) has been used in conjunction with software to cover a broad range of characteristics, such as dependability, responsiveness, security, etc. Historically, the technical challenge of achieving a desired QoS in...
Dynamic system reconfiguration techniques are presented that can enable the systematic evolution of software systems due to unanticipated changes in specification or requirements. The methodological approach is based upon a domain analysis, which identifies a set of concepts that reflect the types of reconfigurations possible and the system integri...