Engineers of embedded software systems rely on efficient design techniques and tools along with efficient run-time support. In the design of complex embedded real-time systems, the Hierarchical Scheduling Framework (HSF) has been introduced as a design-time framework enabling compositional schedulability analysis of embedded software systems with real-time properties. Moreover, the HSF provides a run-time framework guaranteeing that these non-functional requirements are met. In this paper a system consists of a number of semi-independent components called subsystems, and these subsystems are allowed to share logical resources. The HSF makes sure that the individual subsystems respect their allocated CPU budgets. However, as semi-independent sub-systems share logical resources, extra complexity is introduced. Specifically, the contribution of this paper is a novel method to allow for budget overruns; a common scenario when a subsystem utilizes shared logical resources. This proposed method is not only more resource efficient than existing methods, but it is also more appropriate for supporting composability of independently developed real-time subsystems.
In reactive systems, execution is driven by external events to which the system should respond with appropriate actions. Such events can be simple, but systems are often supposed to react to sophisticated situations involving a number of simpel events occurring in accordance with some pattern. A systematic approach to handle this type of systems is to separate the mechanism for detecting composite events from the rest of the application logic. A detection mechanism listens for simple event occurrences and notifies the application when one of the complex event patterns of interest occur. The event detection mechanism can for example be based on an event algebra, i.e., expressions that correspond to the event patterns of interest are built from simple events and operators from the algebra.
This thesis presents a novel event algebra with two important characteristics: It complies with algebraic laws that intuitively ought to hold for the operators of the algebra, and for a large class of expressions the detection can be correctly performed with limited resources in terms of memory and time. In addition to the declarative algebra semantics, we present an imperative detection algorithm and show that it correctly implements the algebra. This algorithm is analysed with respect to memory requirements and execution time complexity. To increase the efficiency of the algebra, we also present a semantic-preserving transformation scheme by which many expressions can be transformed to meet criteria under which limited resource requirements are guaranteed. Finally, we present a prototype implementation that combines the algebra with the event system in Java.
East and South European countries are going through a process of intensive changes and ICT plays an important role in supporting these changes. Most of the East and South European countries have a tradition of high quality education, in particular in natural and traditional technical sciences and thus have a good potential to take the new challenges. Today there is a strong need for advances and excellence in Software Engineering education and research, which are crucial for effective development of software industry in the region.
Verification of today's Systems-on-Chip (SoC) occur at low abstraction-levels, typically at register-transfer level (RTL). As the complexity of SoC designs grows, it is increasingly important to move verification to higher abstraction levels. Hardware/software co-simulation is a step in this direction, but is not sufficient due to inaccurate processor models, and slow hardware simulation speeds. System level monitoring, commonly used for event-based software debugging, provides information about task scheduling events, inter-task communication and synchronisation, semaphores/resources, I/O interrupts, etc. We present MAMon, a monitoring system that can both monitor the logic-level and the system-level in single/multiprocessor SoCs. A small hardware probe-unit is integrated in the SoC design and connects via a parallel port link to a host-based monitoring tool environment. The probe-unit collects all events in the target system in runtime, and timestamps them with a resolution of J ps. The events are then stored in a database on the host for further processing. The paper will describe MAMon and how it works for software and hardware monitoring. The paper also describe how system-level monitoring can be achieved non-instrusively by using a hardware-based Real-Time Kernel.
The embedded systems domain represents a class of systems that have high requirements on cost efficiency as well as run-time properties such as timeliness and dependability. The research on component-based systems has produced component technologies for guaranteeing real-time properties. However, the issue of saving resources by allocating several components to real-time tasks has gained little focus. Trade-offs when allocating components to tasks are, e.g., CPU-overhead, footprint and integrity. In this paper we present a general approach for allocating components to real-time tasks, while utilizing existing real-time analysis to ensure a feasible allocation. We demonstrate that CPU-overhead and memory consumption can be reduced by as much as 48% and 32% respectively for industrially representative systems.
Within one organization, there are often many conceptually related but technically separated information systems. Many of these are legacy systems representing enormous developmp-ç m,ent efforts, and containing large amounts of data. The integration of these often requires extensive design modifications. Reusing applications "as is" with all the knowledge and data they represent would be a much more practical solution. This paper describes the Business Object Model, a model providing integration and reuse of existing applications and cross applications modelling capabilities and a Business Object Framework implementing the object model. We also present a product supporting the model and the framework, Information Organizer, and a number of design patterns that have been built on top of it to further decrease the amount of work needed to integrate legacy systems. We describe one such pattern in detail, a general mechanism for reusing relational databases.
In this thesis a dancing swan robot is made utilizing already existing components. Webuilt the neck from stacking servo-actuators on top of each-other. The legs are a beamconstruction with 1 degree of freedom. The wings have 4 degrees of freedom, of which 3 inthe shoulder joint. From the shoulder joint a beam protrudes outwards to an actuator in theelbow joint which in turn has a beam attached representing the outer wing. Communicationsare handled by USB transceivers making a regular personal computer capable of directlyinterfacing with the actuators. In order to choreograph the motion a recording solution wasimplemented utilizing the sensors in the servo-actuators to periodically sample the positionof the joints. A control program is developed to handle both playback of recorded motionand a prerecorded audio track. While recording the control program periodically polls theengines about their current position and stores the time and position in a table. Whenplaying the animation the control program periodically polls the table to see if any samplesare due, in which case it instructs the actuator to move towards the sample point.
Software intensive products and systems evolve over the life-cycle. Changing business objectives may drive architectural or process changes. Altering either architecture or process mightinfluence the other. Also the organization may influence and be influenced. This paper describes these relationships and proposes a method for assessing the influence on process that a proposed architectural change can have. The method includes the use of scenarios and process reference models. A case study where the method has been used is described, identifying the need for changes in the processes to be able to utilize the advantages made possible due to the architectural evolution. The case study supports our proposal that a structured method to assess the impacts on process when changing the architecture of a system helps to reduce risks and to facilitate the envisioned business benefits. This also identifies the need to devise methods for other types of changes, e.g. how a process change may influence architecture or organization.
Nowadays, as the use of computers is rapidly spreading to our life, software is getting more and more complex and large in computer systems. Therefore, the software configuration management (SCM) is playing an increasingly important role in the software development process. One of its significant activities is change management, which has an outstanding role in dealing with the continued and concurrent change requirements during the system development and use.
In this report, we describe some basic activities of SCM, overview some representative SCM CASE tools with emphasizing on change management and analyze a possibility of integration of SCM version management tool (e.g., Subversion) and error management tool (e.g., Bugzialla) in order to provide an integrated software configuration management and change management. Moreover, a set of exercises based on RCS are developed, which illustrate some SCM simple activities and their modification to facilitate version management and change management.
We consider the problem of scheduling $n$ jobs on $m geq 2$ parallel machines in online settings with the objective of minimizing total tardiness. Since no bounded competitive algorithms exist to minimize the general problem of weighted total tardiness of the form $sum w_j T_j$, we consider an objective of the form $sum w_j (T_j+d_j)$, where $w_j, T_j$, and $d_j$ are the weight, tardiness, and deadline of each job, respectively and develop competitive algorithms dependent on jobs' processing times.
This thesis have two tasks: one is to help in the development of the ArchWiztool at ABB and the other is to find a way of how to formalise security related architecturalresponsibilities in a general way so that they can be incorporated in the tool. This thesis report focuses on thesoftware quality attribute security.The ArchWiz tool is developed at ABB Corporate Research in Västerås. The scopeof the tool is to serve as a software architecture guidance and knowledge tool for all softwarearchitecture professionals within ABB. The ArchWiz tool is a way of helping the architects of ABB to matchtheir product requirements with a list of general reusable requirements. The matched productrequirements can then use the reusable requirement's architectural solutions, which are also presentedin the tool. The tool focuses on usability, security and safety in this first version but it isconstructed so that the user can add their own general requirements regarding any quality.The architecture design phase in the development of a software system is a keypart in the development process, it gives the first design decisions and gives informationon if the system will have potential to meet its key requirements. Security is a software quality thathas grown in importance for the architectural design of the system. There exist a number of potentialthreats and attacks that might breach the security of the software and these threats needs to beprotected against. The ArchWiz project closed in December 2009 and at that time the tool was notfinished. A good foundation and a GUI framework for further implementations were developed but toget a fully functioning tool more implementations need to be made. Security is one of thequality attributes, which the ArchWiz is supposed to support. Suggestions on how to formalise securityresponsibilities in the tool have in this thesis been created and analysed. However, the suggestionsneed to be in incorporated in the tool and tested through users tests with the ABB architects.With the user tests as basis, the best suggestion can be selected.