It is difficult to make accurate predictions about what delivers value for users, especially in innovative contexts. The challenge lies in the lack of understanding of the problem and solution space. Design Thinking helps here with its converging and diverging thinking in which different solutions are tried out in practice and compared with each other. Design thinking becomes challenging when using software as a medium, since software development is usually not designed to implement several alternatives simultaneously. Therefore, we present in this paper the outline to an approach how this can be realized with software which we call Insight Centric Design & Development (ICeDD). The special aspect of ICeDD is the combination of Design Thinking as a front–end technique with non–software and the conducting of field experiments with several software alternatives. The idea behind ICeDD has been developed iteratively and incrementally by acting in real–world contexts, observing the effects and reflect on them with the help of a literature research.
Requirements elicitation plays a vital role in building effective software. Incorrect or incomplete requirements lead to erroneous software and costs a huge amount of rework. Rework costs in terms of money and efforts are usually higher than the early detection of potential flaws in the requirements. This happens because most of the techniques employed to extract requirements fail to understand end user goals. Understanding your users and their goals is important to build a capable, viable and desirable product or software system. This paper attempts to suggest and evaluate an alternative approach to understand your potential users and their goals so that correct and complete requirements can be formulated resulting in a successful software. We introduce the concept of a tool-guided elicitation process, classify elicitation techniques in term of their suitability in such a tool-guided process, and present an initial study of the usability und usefulness of our prototype called Vision Backlog.
After the domain-spanning conceptual design, engineers from different domains work in parallel and apply their domain-specific methods and modeling languages to design the system. Vital for the successful design, are system optimization methods and the design of the reconfiguration behavior. The former methods enable the parametric adaption of the system’s behavior, e.g. an adaption of controller parameters, according to a current selection of the system’s objectives. The latter realizes structural adaption of the system’s behavior, e.g. the exchange of software or hardware parts. Altogether, this leads to a complex system behavior that is hard to overview. In addition, self-optimizing systems are used in safety-critical environments. Consequently, the system’s safety-critical behavior has to undergo a rigorous verification and testing process. Existing design methods do not address all of these challenges together. Indeed, a combination of established design methods for traditional technical systems with novel methods that focus on these challenges is necessary. In this chapter, we will focus on such new methods. We will introduce new system optimization and design methods to develop reconfigurations of the software and the microelectronics. In order to ensure the correctness of safety-critical functionality, we propose new testing methods and formal methods to ensure safety-properties of the software. We show how to apply virtual prototyping to deal with the complexity of self-optimizing systems and perform an early analysis of the overall system. As each domain applies its own modeling languages, the result of these methods are several overlapping models. In order to keep these domain-specific models consistent among all domains, we will introduce a new semi-automatic model synchronization technique. Each of these design methods are integrated with the reference process for the development of self-optimizing systems.
Die zunehmende Konsolidierung von Rechenleistung und Speicher ermöglicht es, in Rechenzentren Ressourcen wie z. B. Energie einzusparen [HF13]. Neben der effizienten Nutzung von Energie und Material werden zudem Spitzenlasten auf vorhandene Systeme verteilt. Ein großer Vorteil, denn einzelne Systeme müssen für selten auftretende Spitzenlasten nicht mehr überdimensioniert ausgelegt werden. Im Speicherbereich werden Daten zunehmend zentral vorgehalten und gesichert und zudem werden Cloud-Speicherdienste propagiert und eingebunden. Dabei gilt es, die Verbindung zwischen lokalem Speicher oder dem jeweiligen Cloud-Dienst schnell auszulegen, um Daten zeitnah zu verarbeiten. Erhofft werden Vorteile wie die Kostenreduktion und die gleichzeitige Effizienzsteigerung. Trotz der Zentralisierung von IT-Systemen ist der lokal verfügbare Speicher am Arbeitsplatz in der Vergangenheit stetig gewachsen. Der Preis pro Giga-Byte sinkt fortwährend bei gleichzeitig steigendem Speichervolumen neuer Festplattenmodelle. Der Nachteil: Steigender Speichervolumen in Clients und eine zunehmende verordnete Nutzung zentraler Datenablagen lassen den ungenutzten lokalen Speicherplatz ebenfalls wachsen und führen dadurch zu einer Reduktion derWertschöpfung dieser vorhandenen Ressource. Ungenutzter Festplattenspeicher wird im Projekt AC4DC (Adaptive Computing for Green Data Centers) durch neue Algorithmen zur Speichervirtualisierung sowie einer Cloud-Lösung adressiert. Auf intelligente Weise werden Speicherbereiche auf Clients mit Dateiservern aus Rechenzentren verbunden. Dabei wird der freie, dezentral verfügbare Speicher für eine hoch-verfügbare Datensicherung bzw. als Datenablage mit großem Speicherplatz nutzbar gemacht. Es besteht somit die Möglichkeit das Rechenzentrum mit diesem Speicherdienst unter anderem in Backupprozessen zu unterstützen. Folglich kann der Energiebedarf der Backupsysteme [DHS+09] durch die Reduktion der Anzahl oder Dimensionierung der Systeme mit Datenspeicher sinken. Rechenzentren und Clients verschmelzen so zu einem Gesamtsystem, das vorhandene Ressourcen effektiver als bei isolierter Betrachtung nutzen kann. Realisiert wird ein privater CloudSpeicherdienst zur Steigerung der Wertschöpfung von Clients. Im Folgenden werden die Problematik einer ökonomischen Speicherorganisation, welche aus der heute verfügbaren Cloud-Technologie einerseits und der dezentral verfügbaren Speichertechnik andererseits resultiert, dargelegt und dazu ein Lösungskonzept begründet. Zudem werden die dabei auftretenden Probleme identifiziert und deren prinzipielle Lösung diskutiert. Zur Umsetzung dieses Konzeptes und dessen Anwendung in realen Umgebungen werden derzeit Entwicklungen betrieben, um die Realisierbarkeit, Ökonomie und Einführung beurteilt werden können.
System virtualization is a powerful approach for the creation of integrated systems, which meet the high functionality and reliability requirements of complex embedded applications. It is in particular well-suited for mixed-criticality systems, since the often applied pessimistic manner of critical system engineering leads to heavily under-utilized resources. Existing static resource management approaches for virtualized systems are inappropriate for the dynamically varying resource requirements of upcoming adaptive systems. In this paper, we propose a dynamic resource management protocol for system virtualization that factors criticality levels in and allows the addition of subsystems at runtime. The two-level architecture offers flexibility across virtual machine borders and has the potential to improve the resource utilization. In addition, it provides the capability to adapt at runtime according to defects or changes of the environment.
—Today’s adaptable architectures require the support of configurability and adaptability at design level. However, modern software products are often constructed out of reusable but non-adaptable legacy software artifacts (e.g., libraries) to meet early time-to-market requirements. Thus, modern adaptable architectures are rarely used in commercial applications, because the effort to add adaptability to the reused software artifacts is just too high. In this paper, we describe a methodology to semi-automatically use existing binaries in a reconfigurable manner. It is based on building the annotated control flow graph to identify and extract code on static basic block level depending on different execution requirements given as a set of constraints. This allows for adaptation of binaries after compile time without the use of the corresponding source code. We propose a way of adding additional reconfiguration support to these binary objects. With this approach, reconfiguration can be added with a low effort to non-adaptive software.
The rapid ascent of Android to one of the most influential platforms for mobile devices and tablets shows that the platform meets the preferences of end-users and developers with consistent usability and a convenient development environment targeted at the needs of the many instead of a specialised few. Being based on the Linux kernel, it inherits the rich and mature feature set which made Linux the number one embedded operating system in just a few years. The Android stack, however, only uses and provides a small subset of those features. Real-time capabilities, which enabled Linux for a much broader embedded audience, were not considered in the Android design. By introducing a real-time capable Android appliance, we add a crucial Linux building block combining the benefits of both realms. Besides presenting the software architecture, we discuss our efforts in augmenting the Android stack with RT capabilites in a minimally invasive way, provide effort measurements, and present a performance evaluation based on a prototype implemented using a Motorola Xoom tablet featuring our architecture extensions.
The next generation of advanced mechatronic systems is expected to enhance their functionality and improve their performance by context-dependent behavior. Therefore, these systems require to represent information about the complex environment and changing sets of collaboration partners internally. This requirement is in contrast to the usually assumed static structures for embedded systems. In this paper, we present a model-driven approach which overcomes this situation by supporting dynamic data structures while still guaranteeing that valid worst-case execution times can be derived. It supports a flexible resource management which avoids to operate with the prohibitive coarse worst-case boundaries but instead supports to run applications in different profiles which guarantee different resource requirements and put unused resources in a profile at other applications' disposal. By supporting the proper estimation of worst case execution time (WCET) and worst case number of iteration (WCNI) at runtime, we can further support to create new profiles, add or remove them at runtime in order to minimize the over-approximation of the resource consumption resulting from the dynamic data structures required for the outlined class of advanced systems.
Modern mechatronic systems include a network of microcontroller on which real-time control algorithms and comfort functions are executed. To provide additional resources for stress situations (dealing with emergencies, overload of comfort functions) without deactivation comfort functions, these comfort functions should be reallocated to other nodes of the network. For this purpose a local operating resource manager is combined with an approach to manage heterogenic resources in a network. With a virtual emergency node additional resources for the comfort functions will be provided.
In classical real-time systems the resources for an application are allocated at system start so that every resource request can be fulfilled in future. This would lead to much internal waste of resources in the case of modern Self-X systems, because these systems have highly dynamic resource consumptions. The Flexible Resource Manager (FRM) was developed to overcome this problem. The manager puts temporarily unused resources at other applications' disposal. In this paper the FRM approach is evaluated by concrete application examples and randomly generated applications.
Mario Porrmann合作论文数Heinz Nixdorf Institut Universitat Paderborn5
Jürgen Gausemeier合作论文数Heinz Nixdorf Institute at the University of Paderborn1