John Linn · Wiley Encyclopedia of Computer Science and Engineering · 2007
Abstract Embedded software is commonplace. It is a defining constituent of the many products we use daily. More and more, products depend on electronics and software to implement the many new functions we demand. As a result, the complexity of embedded software is exploding. Development of complex embedded software is a nonrecurring cost that must be amortized across sales of all products that use the software. Because of the high cost of developing software containing millions of lines of code, software reuse, in all its forms, is the only practical way to minimize this cost to the consumer. The embedded software developer faces many special challenges. Among these challenges are quick time‐to‐market with hardware/software codesign, high‐quality designs with high reliability, special design‐for‐test features enabling high test coverage, scalable modular designs incorporating many different CPUs and instruction sets, software architectures and computational models that address real‐time applications, designs that support energy‐efficient use of the underlying electronics, user‐centric interfaces, and protection from the risks of computer hacking, terrorism, theft, and litigation.
Cited by 0
Labrosse, Jean J, Ganssle, Jack, Oshana, Robert · CERN Document Server (European Organization for Nuclear Research) · 2007
Cited by 0
2008
Abstract—Developers need to evaluate software’s performance to make software efficient. This paper suggests a performance evaluation system for embedded software. The suggested system consists of code analyzer, testing agents, data analyzer, and report viewer. The code analyzer inserts additional code dependent on target system into source code and compiles the source code. The testing agents execute performance test. The data analyzer translates raw-level results data to class-level APIs for reporting viewer. The report viewer offers users graphical report views by using the APIs. We hope that the suggested tool will be useful for embedded-related software development, because developers can easily and intuitively analyze software’s performance and resource utilization.
Cited by 0
Labrosse, Jean J. · 2008
Cited by 0
Edward A. Lee · Advances in computers · 2002
Cited by 54
Edward A. Lee · 2002
The science of computation has systematically abstracted away the physical world. Embedded software systems, however, engage the physical world. Time, concurrency, liveness, robustness, continuums, reactivity, and resource management must be remarried to computation. Prevailing abstractions of computational systems leave out these "non-functional" aspects. This chapter explains why embedded software is not just software on small computers, and why it therefore needs fundamentally new views of computation. It suggests component architectures based on a principle called "actor-oriented design," where actors interact according to a model of computation, and describes some models of computation that are suitable for embedded software. It then suggests that actors can define interfaces that declare dynamic aspects that are essential to embedded software, such as temporal properties. These interfaces can be structured in a "system-level type system" that supports the sort of design-time and run-time type checking that conventional software benefits from.
Cited by 0
Edward A. Lee · 2001
Syntax It is useful to separate syntactic issues from semantic issues. An abstract syntax defines how a design can be decomposed into interconnected components, without being concerned with how a design is represented on paper or in a computer file (that is the concern of the concrete syntax).
Cited by 0
Goetz Botterweck, Lero The, Irish Software et al. · 2016
aachen.de Companies successfully applying product line approaches of-ten follow a long-term strategy and need to plan product portfolios years ahead. For instance in the automotive indus-try, managers constantly make decisions about future prod-uct evolution, like “the LED tail lights will be introduced with the next facelift and the LED front lights two years later”. With a raising number of features, feature changes, and evolution steps, a systematic approach for evolution planning becomes essential. However, there is only very lit-tle support for such evolution in model-based product line engineering so far. This paper presents an approach for extending model-driven product line engineering towards automated and tool-supported techniques for product line evolution. We provide a feature-based approach to model the variability over time and a catalogue of change operators for feature models.
Cited by 0
H. K. Utterback · 2005
Abstract In this chapter we will explore the world of embedded software systems, including a brief overview of past systems, current systems, and what we might expect in the future. A discussion of the benefits of embedded systems to overall spacecraft design and the attendant drawbacks will lead into the application of software engineering to the problems of developing embedded software systems. Development environments, simulation of developing hardware interfaces, and changing requirements will be discussed. Software development issues will be examined, including language selection and the ramifications of a bad choice, the reuse problem, and testing, testing, testing. Automatic code generation from various design sources will also be discussed. We will focus on the software aspects of these embedded systems, looking at the planning and development processes necessary to produce reliable and trusted spacecraft software.
Cited by 0
Pierre-Loïc Garoche · Princeton University Press eBooks · 2019
This chapter looks at the current state of physical systems controlled by an onboard computer. Typically this covers transportation systems such as cars, aircraft, railway systems, space systems, or even medical devices, all of them either for the expected harmfulness for people, or for the huge cost associated with their failure. The chapter shows how the increase of computer use in those systems has led to huge benefits, but also an exponential growth in complexity. Furthermore, the drawback of this massive introduction of computers to control systems is the lack of predictability for both computer and software. This chapter shows how the aerospace industry, and more generally critical embedded systems industries, is now facing a huge increase in the software size in their systems. This in turn creates a greater system complexity increase because of safety or performance objectives. Moreover, this complexity leads to the need to integrate even more advanced algorithms to sustain autonomy and energy efficiency.
Cited by 0
Princeton University Press eBooks · 2019
Cited by 0
Eric Paire · 2005
Cited by 2
Peter Gliwa · 2021
Cited by 2
Anjan Kumar Reddy Ayyadapu, Dr. Mohammad Ahmar Khan, Dr. Kusuma Rajasekhar, Davinder Kumar · Zenodo (CERN European Organization for Nuclear Research) · 2024
Cited by 0Open access
Piet Cordemans, Edouard Thyebaut, Davy Pissoort et al. · Lirias (KU Leuven) · 2014
Soft errors are faults which are not caused by defective hardware, rather they are induced due to noise or transient events. In this paper we describe defensive programming and redundancy techniques to detect and deal with soft errors. These techniques are categorized according to data and control flow errors.
Cited by 0
Christopher Garside · Zenodo (CERN European Organization for Nuclear Research) · 2024
Cited by 0Open access
Kasper V. Lund, Jakob R. Andersen · 2003
More than 90 % of the microprocessors produced today are used in embedded devices. With the current development tools, it is exceedingly difficult to debug, profile, and update code running on embedded devices in operation. This leaves developers unable to diagnose and solve software issues on deployed embedded systems, something that is unacceptable for an industry where robustness is paramount. In this thesis, we show that it is possible to build a fully serviceable software platform that fits on memory-constrained embedded devices. We use virtual machine technology to enable full serviceability even for system software components. At the bottom of the software stack, we have replaced real-time operating systems with an efficient 30 KB object-oriented virtual machine. The virtual machine contains a reflective interface that allows developers to debug, profile, and update code running on embedded devices even in operation. The serviceability extends to system software components, including interrupt handlers, device drivers, and networking
Cited by 0
Mikael Åkerholm, Anders Möller, Hans Hansson et al. · 2008
Cited by 0
Hafner, Martina · 2008
Cited by 0
Doug Abbott · Elsevier eBooks · 2006
Cited by 1