1. STWW-Programma SEESCOA: Software Engineering for Embedded Systems using a Component-Oriented Approach Voortgangsverslag 01/10/2002-31/03/2003 SEESCOA PROJECT VOORTGANGSVERSLAG Inleiding Dit voortgangsverslag bevat: een overzicht van de werkzaamheden uitgevoerd door de 4 partners in de periode 01/10/2002-31/03/2003. een lijst met tussentijdse vergaderingen uit dezelfde periode. het verslag van de samenkomst met de gebruikerscommissie die plaats had vrijdag 9 mei 2003 in het Pand te Gent. de disseminaties uit deze periode. 2 SEESCOA PROJECT VOORTGANGSVERSLAG Werkzaamheden uitgevoerd door K.U.Leuven Distributed Contract Monitor In het derde jaar van het SEESCOA project werd een contract monitoring systeem uitgwerkt dat toelaat om niet-functionele vereisten – die opgelegd werden aan component-gebaseerde applicaties – op te volgen. Dit systeem maakt het mogelijk om tijdsvereisten (zoals deadlines en periodiciteiten) op te volgen op één knooppunt. Indien een van de contracten eenmaal of meermaals wordt verbroken wordt dit offline bijgehouden voor analyse achteraf. In de afgelopen zes maanden werd de architectuur van het monitoring subsysteem zodanig aangepast dat de 2 laatstgenoemde beperkingen weggewerkt zijn. De architectuur laat nu toe gedistribueerde contracten te specificeren en te verifiëren, wat de toepasbaarheid ervan sterk vergroot. Daarnaast werd ook de mogelijkheid voorzien om online feedback te geven over contractbreuken. Deze laatste uitbreiding maakt het mogelijk dat de applicatie tijdens de uitvoering informatie krijgt over niet-functionele vereisten die niet opgevolgd worden. Het aanbieden van gedistribueerde monitoring biedt evenwel een aantal uitdagingen: Er is een aangepaste vorm van resource-beheer nodig om de contracten op te volgen. Dit resourcebeheer is zowel nodig op het vlak van de berichtenuitwisseling (er wordt informatie over gebeurtenissen uitgewisseld tussen de knooppunten) als op het vlak van het schedulen van monitoring activiteiten en de event history. Daarnaast dient er ook tot een nauwkeurige synchronizatie van de klokken te komen tussen de verschillende knooppunten, aangezien gebeurtenissen een correcte tijdsstempel moeten krijgen. Om bovenstaande functionaliteit te ondersteunen werd de bestaande monitor opgedeeld in monitoring nodes en monitored nodes1. Een monitoring node staat in voor het verzamelen van informatie over gebeurtenissen komende van andere knooppunten, de contracten te verifiëren en eventuele contractbreuken te melden. Om contractbreuken te melden worden feedback poorten voorzien op de contracten waarop de applicatie kan verbinden. De monitored nodes staan in voor het onderscheppen van lokale gebeurtenissen en er tijdsstempels aan toe te kennen, waarna ze worden verstuurd naar de monitoring node. Informatie over de contracten wordt bewaard in een contract file dat ingelezen wordt door de monitoring node, terwijl de informatie over de te monitoren componenten wordt bewaard in verschillende probe files die verspreid worden naar de verschillende monitored nodes. Om de klokken te synchronizeren wordt gebruikt gemaakt van het Network Time Protocol (NTP), dat toelaat tot een nauwkeurigheid te komen van +/- 1ms op een 1 Een typische configuratie zal bestaan uit één monitoring node en meerdere monitored nodes. 3 SEESCOA PROJECT VOORTGANGSVERSLAG lokaal netwerk. Op de monitoring node draait een NTP server; op de monitored nodes draait een NTP client. De nieuwe contract monitor is momenteel nog in opbouw en zal afgewerkt zijn tegen het einde van de 2e periode van jaar 4. Bandbreedte contracten -> formalisme uitgewerkt: In de context van de ontwikkeling van resource aware embedded applicaties, hebben we een formalisme uitgewerkt dat toelaat van elke poort zijn bandbreedte eigenschappen te beschrijven. Deze beschrijving is tweezijdig. Enerzijds hebben we de uitgaande stroom van boodschappen, waarvan op een statistische manier de grootte en de frequentie van voorkomen wordt bepaald (door middel van metingen of kennis van de applicatie). Anderzijds worden voor de inkomende berichtenstroom vereisten opgesteld waaraan de inkomende berichten moeten voldoen (eveneens op basis van de grootte en frequentie van de berichten). Deze poort eigenschappen worden door de ontwerper van de component opgesteld. Het is dan de bedoeling dat tijdens het connecteren van componenten deze eigenschappen worden gebruikt om de haalbaarheid van een connectie tussen twee poorten te controleren, rekening houdend met de beschikbare hoeveelheid bandbreedte. * componentsysteem op iPAQ + camera surveillance case uitgebreid voor ad hoc connecties via Bluetooth: Omdat we de bruikbaarheid van ons componentsysteem op verschillende embedded platformen willen testen, hebben we het systeem op een mobiel draadloos platform tewerk gesteld. Het gaat hier over een iPAQ handheld computer, een kleine draagbare computer die met een Bluetooth module is uitgerust. Via deze module kunnen we een ad hoc verbinding opzetten met een vast station als we er in de buurt komen. Aan de hand van deze hardware hebben we ons camera bewakingssysteem uitgebreid zodat bewakers die een handheld computer op zak hebben automatisch de beelden waar beweging op gedetecteerd werd van een bepaalde camera kunnen opvragen. De gerealiseerde toepassing toont aan hoe flexibel we met ons componentsysteem kunnen omgaan en het op verschillende architecturen tewerk stellen, zonder zijn goede eigenschappen te verliezen zoals het vlot samenwerken van gedistribueerde componenten. 4 SEESCOA PROJECT VOORTGANGSVERSLAG Werkzaamheden uitgevoerd door V.U.B. Project Status Cocompose CoCompose [6][7] is a software design approach that incorporates a design language and an automated translation process. The design language supports visual modelling starting from generic concepts, which represent the elements of the system to be developed (e.g. Storage, Camera, Logging, Event). These concepts eventually map to concrete implementation constructs, such as classes, methods, attributes, etc. The language uses the generic abstraction mechanism of composites to represent relationships (inheritance or association) between concepts and modules (components, aspects, design patterns, ...) that are built up of concepts. The language allows for high-level design, but also for refinement to executable/implementation level. The automatic translation process uses solution patterns and implementation generators to expand composites (see Figure 1). A solution pattern describes the composite in terms of a structure of nested concepts and composites. An implementation generator can generate specific code that implements that composite. This is useful for lower-level composites, such as inheritance. Each composite can have several solution patterns and/or implementation generators. An automated selection and constraint checking mechanism is used to derive one feasible implementation from all possible implementations. Solution patterns Implementation C# SEESCOA Generators Java Top-level model Figure 1: A CoCompose model with solution patterns and implementation generators. 5 SEESCOA PROJECT VOORTGANGSVERSLAG In the context of the SEESCOA project, the CoCompose tool has been extended to generate SEESCOA code. The tool allows for adding a specific language backend and extra implementation generators for that language (see Figure 2). Existing Tool Support (Generic) Models/ Solution Patterns Java, ... Implementation Generators Implements low-level composites in SEESCOA language constructs SEESCOA Implementation Generators Visual Modelling Translation Process Java, ... Backend SEESCOA Backend Generates SEESCOA elements and files Figure 2: Extending the CoCompose tool for SEESCOA. As a first case study, the StorageController component from the common SEESCOA testcase has been described in the CoCompose language. This component is responsible for the database connectivity. The CoCompose description of the StorageController is decomposed in the core functionality, the ports and the component = the composition of core and ports. As such, it achieves a better separation of concerns than standard OO design. As a second case study the StorageVideoImage utility class from the common SEESCOA testcase has been described in the CoCompose language. This class processes and stores video images received from the camera. This class can be implemented in several ways: image processing can be done on (1) reading or (2) writing the image and several processing algorithm strategies are possible. CoCompose can describe these alternatives and choose from them automatically. Task 2.6 Evolution and Versioning We have been also working on evolution and versioning. We have built (currently ongoing work) a software library that supports storage, documentation, classification and retrieval of software components and component-based applications. The documentation process is based on the 4-levels of documentation (by Jézéquel et al.) [3] presented in D. 2.2. These levels are: syntax, semantics, synchronization and quality of service. However, we consider this is not enough information when reusing and building a component-based application. Therefore we have augmented these levels by considering also other non-functional properties such as versioning, implementation considerations, dependencies between components, etc. For classifying components we have extended the faceted classification scheme (by Prieto-Díaz) [1] . This approach is composed basically by facets and terms. Facets 6 SEESCOA PROJECT VOORTGANGSVERSLAG describe some aspect of a software asset. Terms are the actual values of the facets (one single value per facet). The advantages of using the faceted classification scheme is that common assets are grouped together (depending on the terms of the asset) and also that the structure of the library gives already an idea of what assets do. However, this scheme is only suitable for “small” assets and not components, which are multi-behavioural. Thus an extension to this scheme has been made. We have developed the multi-dimensional specification and classification scheme [2]. It is the aforementioned extension of Prieto-Díaz’s approach for supporting components. This extended scheme consists of: Dimensions: different view on components (QoS, version, …). One dimension contains many facets (QoS contains speed, memory, …; version contains versionnumber, previous version, versiontype). Facets: particular part of the view given by a dimension. A facet is sometimes defined by many terms (versiontype is either revision or variant) or is defined by a type (versionnumber is a structured-number, previous version is a component) Components are then classified by their terms, i.e. the different values of the different facets of the different dimensions The status of this task is the following: Implementation of the library allowing to document components, classify and search components in the library and browse the library following the structure of the library (dimensions, facets, terms) Model for documenting a full application as a configuration of components is ready; implementation is ongoing. Import/export functions from/to the CCOM-tool and the library can be implemented straightforwardly. Future Work Currently, alternative CoCompose design structures are chosen manually during the translation process. This selection of alternative design structures will be automated, e.g. by means of constraint checking or heuristics [4]. CoCompose designs can translate to a great number of possible implementations. Adding a single concept can already add a number of extra implementations (concept as class, concept as method, concept as component, etc.). To improve scalability of the translation process, optimisation techniques, such as early elimination of non-feasible implementations and caching of earlier translations will be applied. In task 2.6 also another goal is to support evolution in component-based applications. We have already a basis (with the multi-dimensional scheme) for describing component-based applications in a very fine-grained level of granularity. 7 SEESCOA PROJECT VOORTGANGSVERSLAG The reason of the previous is to be able to give enough information for doing impact analysis. We will use metrics (some specific for component-base development, some others brought and straightforwardly adapted from object orientation) for answering questions such as: how much impact the replacement of component A v1.2 by v1.3 will have in the overall system?. Some examples of metrics that can be used are: DCC - Direct Class Coupling MPC - Message Pass Coupling CItCM – Component Integration Complexity Metric The component library (under development) will be consequently also be extended and modified for supporting evolution. Bibliography [1] R. Prieto-Diaz, P. Freeman. Classifying Software for Reusability. IEEE Software, 1987, January. 4(1): p. 6-16. [2] Miro Casanova and Ragnhild Van Der Straeten. Supporting Evolution in Component-based Software Development Using Component Libraries. In the proceedings of the 7th European Conference on Software Maintenance and Reengineering, Benevento (Italy), 2003. [3] J. Jézéquel et al. Making Component Contract Aware. Computer of ACM. (Vol. 32, No. 7). pp. 38-45. July 1999. [4] Akşit, M., Marcelloni, F., Deferring Elimination of Design Alternatives in ObjectOriented Methods, Concurrency and Computation: Practice and Experience, Vol. 13, pp. 1247-1279, Wiley, December 2001. [5] Tekinerdoğan, B., Akşit, M., Synthesis Based Software Architecture Design, in Akşit, M. (ed.), Software Architectures and Component Technology, Kluwer Academic Publishers, Dordrecht, 2002. [6] Wagelaar, D., A Concept-Based Approach for Early Aspect Modelling, position paper for AOSD 2003 workshop on "Early Aspects", Boston, USA, March 2003. [7] Wagelaar, D., A Concept-Based Approach to Aspect-Oriented Software Design, MSc. Thesis, University of Twente, Enschede, The Netherlands, August 2002. 8 SEESCOA PROJECT VOORTGANGSVERSLAG Werkzaamheden uitgevoerd door Universiteit Gent Motion detection and tracking In the previous months all university partners were heavily involved in the SCSS (SEESCOA Camera Surveillance System) testcase. In order to show the usefulness of reusable components, we developed two extra case studies: motion tracking and a chess robot. camera component motion detection motion tracking robot controller moving target Figure 1: Motion tracking using a computer controlled PC. Motion tracking is performed using a computer-controlled robot with a camera attached to the arm of the robot (see Figure 1). A motion detection component is used in order to compare subsequent images shot by the camera, and if there is a substantial amount of motion detected that warrants turning the robot arm, the robot controller starts turning the camera until the moving object is again centered in the camera. By adding a new component, the popular GNUChess program, we were able to develop a chess robot (see Figure 2). A position detection component is used to study the chess position, as seen by the camera. If a move is detected, this is fed to GNUChess, which in turn calculates a counter move. The robot then moves the pieces using a magnet. 9 SEESCOA PROJECT VOORTGANGSVERSLAG camera component position detection GNU Chess robot controller Figure 2: A chess robot. Input Replay In previous work packages, we have developed a record/replay system that enables us to replay a previously recorded execution. As the replayed executions are equivalent to the recorded one, removing the non-determinism from the execution, we are able to use cyclic debugging techniques. The tool we developed was able to record/replay the messages send between the different SEESCOA components. However, it was unable to tackle the non-determinism introduced by the input the application receives from external sources (e.g. video images). We therefore have implemented a tool (called TORNADO) that also allows us to capture this type of input. The tool intercepts all system calls: During the record phase: o trace return values from system calls o trace changes made to memory pages by system calls During the replay phase: o content-based replay of system calls (as opposed to orderingbased) 10 SEESCOA PROJECT VOORTGANGSVERSLAG o avoid 'black-hole' effects for e.g. printf: the applications should still produce (some) output o ordering-based replay to maintain in-kernel consistency (memory allocations, ...) Preliminary results show that the overhead is acceptable. Of course, the overhead depends heavily on the amount of input consumed by the application. JVM Influence on execution behaviour The performance of a Java application is determined by a number of things; e.g. the Java byte code, the processor, the memory subsystem (cache, TLB, ...), the JVM (interpreter, JIT-compiler, optimizing JIT-compiler, mixed mode, ...), and of course the input consumed by the application. While developing an embedded system (=hardware+software) one is often interested in the performance that will be obtained (e.g. total execution time) before the actual hardware is available. Currently, we are looking at methods that will enable developers to do this. Jikes adaptive IBM 1.4.1 Blackdown 1.4.1 Sun 1.4.1 Kaffe JRockit Jikes base 3 2 1 0 -1 -2 -2 -1 0 1 2 Figure 3: Principal component analyse Therefore, we tested a number of benchmarks (SPECjvm98, SPECjbb2000, Java Grande Forum) on a number of JVM’s (Kaffe, Jikes, Sun, Blackdown, IBM, Jrockit). We collected 34 statistics (number of cache misses, number of memory operations,…) using the perfctr kernel patch, applied to Linux kernel 2.4.19 running on a 1GHz AMD Duron processor. 11 SEESCOA PROJECT VOORTGANGSVERSLAG Using principal component analysis we looked for the dominant components. The results are shown in Figure 3: it is clear that (most of the time) the different benchmark result are grouped together for a certain JVM. Future work In the next months, we will continue working on our input replay tool (by making it an lightweight in-kernel replay system and by adding debugger hooks) and continue our performance modelling (by validating the analysis on other processors and by comparing Java workloads with classical C, C++ workloads). 12 SEESCOA PROJECT VOORTGANGSVERSLAG Werkzaamheden uitgevoerd door L.U.C. Introduction In order to determine the topics to be investigated during the last year of the project, we have gone through a validation phase. In addition to last year’s case, which allowed to validate to what extent our approach to UI building fits in the componentbased application development used in SEESCOA, we have assessed our UI development approach with regard to completeness and flexibility. Some scenarios have been considered, and this revealed that the following topics (some of which were determined already as research topics) are worth investigating in this stage of the project: Task Modelling: Extracting a Dialog Model Extended GUI design control Towards Multimodal Interaction: speech I/O Tool support Task Modelling: Extracting a Dialog Model We have been using Task Modelling with the ConcurTaskTree notation for some time in this project. ConcurTaskTrees is a graphical hierarchical notation for task models, in which the nodes (tasks) of the tree are related with temporal operators. Our approach consists in annotating the interaction tasks with their UI descriptions. The UI description is a high-level, abstract UI description based on XML. However, the drawback of this approach is that the Task Model is made at design time, and that only a limited part of the information it contains is directly used in the coding phase or at runtime. Only the UI descriptions are used at runtime. A lot of “glue code” must be written to relate the separate UI blocks to each other and to determine the flow or navigation in the application. Recently, we have realised a breakthrough in our research by automatically extracting a Dialog Model (sequence of UI blocks when certain tasks are activated) from the ConcurTaskTree Task Model. The derivation of the Dialog Model is done in two phases. The Enabled Task Sets (ETS) are derived from the Task Model. ETS are sets of tasks that are logically enabled to start their performance during the same period of time. When translated to a GUI context, ETS represent all the tasks that must be accessible through the GUI at a certain point in time. Based on the temporal operators, a State Transition Network (STN) is realised with the ETS as nodes. In the STN, particular tasks trigger a transition between the nodes. The STN represents the Dialog Model. 13 SEESCOA PROJECT VOORTGANGSVERSLAG Automatic extraction of the Dialog Model ensures consitency with the Task Model, which is a design time artefact. Extended GUI Design Control In our approach, an abstract UI description (XML-based) is automatically rendered to a GUI on the target device. It is obvious that this automatic rendering process allows almost no control over the appearance of the GUI. The more abstract the UI description, the more device specific GUI elements (e.g. fancy widgets) are lost. Automatic layout management is another restriction of the rendering process. Several ways can be explored to enhance the designer’s control over the GUI presentation. During the last months we have experimented with enhanced widget presentation control. This has been realised by the integration of “widget mapping rules” in the XML-based UI description. The mapping rules allow to determine the presentation on the level of a widget, widget group and/or a category of widgets. Towards Multimodal Interaction: Speech I/O All experiments with regard to user interfaces in this project were examples of GUIs. In a first attempt to evolve towards multimodal interaction, we have investigated to what degree our XML-based UI descriptions are a sound basis for speech I/O. The experiment with regard to speech synthesis consists of adding a spoken representation of the GUI (e.g. items selected in a list) as a result of a certain action. A new tag has been defined to be inserted into the XML-based UI description. Also, we have been investigating speech input. A new tag has been defined to be inserted in the XML-based UI description. Speech recognition still has its limitations on embedded/mobile devices. XML-based UI description for speech I/O needs additional research to allow for more flexibility and to support sequential as well synchronous multimodality. Tool Support Tool support is desired in order to make UI development for embedded systems, according to our approach, feasible. Full-fledged tool support is beyond the scope of the project. Two experiments have been done with regard to tool support. A Task Annotation Tool has been developed. This tool allows to annotate an interaction task of the task model with a UI description. Existing or new XML-based descriptions are used. The tool stimulates consistent GUI development for similar tasks through reuse of the description. A graphical tool for Multi-device Layout Specification has been developed. The tool supports constraint-based layout management, and allows to show a graph of the 14 SEESCOA PROJECT VOORTGANGSVERSLAG constraints between (groups of) widgets. Previewing the GUI for different target devices at the same time is possible. Dissemination The results of this work package in the first half of year 4 have been reported in several papers. Four papers have been accepted for publication in conference proceedings. One paper is submitted. 15 SEESCOA PROJECT VOORTGANGSVERSLAG Verslag van de bijeenkomst van de gebruikerscommissie De bijeenkomst van de gebruikerscommissie vond plaats in Gent in het Pand op vrijdag 9 mei 2003 van 14u30 tot 18 uur. Op deze meeting werd het werk dat uitgevoerd werd in maanden 37-42 voorgesteld, en werd een blik op de toekomst geworpen. Het IWT en de gebruikerscommissie werden voor deze vergadering uitgenodigd. Agenda: 14:30 14:45 15:30 16.00 Aanvang en Welkomstwoord Werkzaamheden en toekomstplannen van de 4 partners Voorstelling van nieuw ingediend project: CoDAMos Conclusie Alle universitaire partners, meerdere bedrijven uit de gebruikercommissie als ook het IWT waren aanwezig op deze meeting. Deelnemers Universitaire partners KULeuven Prof. Yolande Berbers David Urting Yves Vandewoude Stefan Van Baelen LUC Karin Coninx Kris Luyten Chris Vandervelpen Universiteit Gent Prof. Koen De Bosschere Frank Cornelis Lieven Eeckhout Andy Georges Michiel Ronsse VUB Prof. Viviane Jonckers Werner Van Belle Miro Casanova 16 SEESCOA PROJECT VOORTGANGSVERSLAG Dennis Wagelaar Leden van de gebruikerscommissie Agfa Luc Pattyn Siemens-Atea Alex De Smedt Roger Theeuws Imec Diederik Verkest Barco Lode Leroy Alcatel Marc Godon Koen Handekyn IWT Gil De Reze Voorstellingen van de universitaire partners Een overzicht werd gegeven van het gedane werk. Hierbij werden de taken waaraan gewerkt werd gesitueerd in het totale werkpakket. Er werd vooral aandacht besteed aan de gebruikte aanpak, de problemen die zich voordeden, de oplossingen die gekozen werden en de resultaten, zonder in detail te gaan. Verder werd ook besproken wat in de komende 6 maanden aan bod zou komen. De slides van de presentaties kunnen op de website bekeken worden. Discussie 1e vraag: (Tijdens presentatie KULeuven rond bandbreedte contracten.) Vraag: (IMEC) Is dat een dynamisch systeem? Antwoord: Zover zitten we nog niet, maar het is wel de bedoeling om verschillende soorten contracten voor verschillende systemen te hebben. 17 SEESCOA PROJECT VOORTGANGSVERSLAG 2e vraag: (Tijdens presentatie VUB rond CoCompose.) Vraag: (IMEC) Zal er opgesplitst worden in design-time en run-time applicatie generatie? En zal er ook rond run-time applicatie generatie gewerkt worden? Antwoord: het is inderdaad de bedoeling om ook tijdens de uitvoering applicaties op maat af te leveren, dit kan zowel aan server-zijde als aan client-zijde gebeuren. Hiertoe zullen wel variatiepunten in het design moeten ingebouwd worden. Dit is trouwens ook 1 van de doelstellingen van het ingediende vervolgproject. 3e vraag: (Tijdens presentatie UGent rond de assen/dimensies bij het vergelijken van VM’s.) Vraag: (VUB, Werner) Wat betekenen die assen? Want er zijn nieuwe assen gecreëerd waarvan de betekenis niet direct duidelijk is. Antwoord: je kan in bepaalde situaties wel afleiden wat ze betekenen omwille van mogelijke correlaties, maar het is niet altijd direct duidelijk. 4e vraag: (Tijdens presentatie UGent rond de assen/dimensies bij het vergelijken van VM’s.) Vraag: (Siemens) Welke VM moet ik kiezen? Antwoord: dit is momenteel nog een onderzoekstopic, we kunnen al wel groepen/correlaties onderkennen. 5e vraag (meer een bemerking eigenlijk): (Tijdens presentatie UGent rond de assen/dimensies bij het vergelijken van VM’s.) Opmerking: (Alcatel) Er is een belangrijke invloed van de garbage collector mbt de performantie van applicaties. Er dient hier dus ook mee rekening gehouden te worden in de benchmarks die zullen dienen om de verschillende VM’s met elkaar te vergelijken, m.a.w. het is ook belangrijk om benchmarks te gebruiken die veel objecten aanmaken. 6e vraag: (Tijdens presentatie UGent rond de assen/dimensies bij het vergelijken van VM’s.) Vraag: (Agfa) Hoe groot is de variate tussen de verschillende VM’s? Het is niet echt duidelijk uit de figuren aangezien de assen niet benoemd zijn 18 SEESCOA PROJECT VOORTGANGSVERSLAG Antwoord: er zullen een aantal vuistregels opgesteld moeten worden om deze figuren af te beelden op reële waarden. 7e vraag: (Tijdens de record-replay demo.) Vraag: (IMEC) “Wordt er gereplayed met dezelfde timings?” Antwoord: Ja 8e vraag: (Tijdens het overzicht van het CoDAMoS project.) Vraag: (Siemens) Gaan jullie samenwerken met groepen die werken rond OSGi en MHP? Antwoord: OSGi biedt al een aantal zaken aan, maar wij willen verder gaan. Daarnaast is het ook niet de bedoeling concrete demonstratoren te hebben wel om aan strategisch basisonderzoek te doen. 19 SEESCOA PROJECT VOORTGANGSVERSLAG Overzicht van tussentijdse vergaderingen 13 November 2 December 30 January 18 February 24 March 4 April 15 April 22 April 20 SEESCOA PROJECT VOORTGANGSVERSLAG Disseminatie Seminaries naar breed publiek - International Symposium on Java and Embedded Systems 21 November 2002, Het Pand, Gent programma: 09:00 a.m. Registration 09:15 a.m. Welcoming Address by Jacques Willems (Prorector of Gent University) 09:30 a.m. The Real-Time Specification for Java, the Next Step for Java Language Use in Embedded Applications by Greg Bollella (Sun Microsystems) 10:30 a.m. Coffee break 11:00 a.m. Kilobytes, Microseconds, and Bytecodes: Java Hardware and SoftwareTechnologies for Space- and Time-Constrained Environments by David Hardin (aJile Systems) 11:45 a.m. JavaCard: Small is Beautiful by Michel Koenig (University of Nice Ecole Superieure en Sciences Informatiques) 12:30 p.m. Lunch 02:00 p.m. Java in Real-life Projects by Luc Pattyn (Agfa-Gevaert) 02:45 p.m. Packaging Java applications for Embedded Systems by Marco Mulder (IBM/OTI) 03:30 p.m. Deploying Java on Mobile Devices by James Lynch (Motorola) 04:15 p.m. End 21 SEESCOA PROJECT VOORTGANGSVERSLAG - seminarie voor vlaamse industrie via het Vlaams Software Platform (VSP) 12 December 2002, Agora building, Brussels programma: - Componentenmodel en componentcompositie ontwerp tool - Run-time componentensysteem - Gebruikersinterfaces voor ingebedde systemen - Generiek debuggen van componenten - Presentatie van het camerabewakingssysteem 22 SEESCOA PROJECT VOORTGANGSVERSLAG Publicaties Y. Vandewoude, and Y. Berbers, Meta model driven state transfer in component oriented systems, Proceedings of the second international workshop on unanticipated software evolution (Kniesel, G. and Costanza, P., eds.), pp. 3-8, 2003 P. Rigole, Y. Berbers, and T. Holvoet, A UPnP software gateway towards EIB home automation, Proceedings of the IASTED International Conference on Computer Science and Technology (Cosnard, M. and Ibarra, O.H. and Jaja, J. and Kumar, V. and Sarrafzadeh, M., eds.), pp. 1-6, 2003 Y. Vandewoude, and Y. Berbers, Run-time evolution for embedded componentoriented systems, Proceedings International Conference on Software Maintenance (Werner, B., ed.), pp. 242-245, 2002 K. Luyten, T. Clerckx, K. Coninx and J. Vanderdonckt (*), Derivation of a Dialog Model from a Task Model by Activity Chain Extraction, accepted for DSV-IS'2003, Design, Specification and Verification of Interactive Systems, 4-6 June 2003, Funchal, Madeira, Portugal, Will be published as a LNCS edition: Lecture Notes on Computer Science , Springer. (*) is co-author of UCL Louvain-la-Neuve C. Vandervelpen, K. Luyten, K. Coninx, Location-Transparent User Interaction for Heterogeneous Environments, accepted for HCI International 2003, 10th International Conference on Human-Computer Interaction, Kreta, 22-27 June 2003. J. Van den Bergh, K. Luyten, K. Coninx, A Run-time System for Context-Aware Multi-Device User Interfaces, accepted for HCI International 2003, 10th International Conference on Human-Computer Interaction, Kreta, 22-27 June 2003. K. Coninx, K. Luyten, C. Vandervelpen, J. Van den Bergh and B. Creemers, Dygimes: Dynamically Generating Interfaces for Mobile Computing Devices and Embedded Systems, accepted for MobileHCI 2003, 8-11 September, Udine, It. , Will be published as a LNCS edition: Lecture Notes on Computer Science , Springer. C. Vandervelpen , P. Rigole(*) , K. Luyten, K. Coninx, and Y. Berbers (*), A Component-Based Software Engineering Case for Ubiquitous Computing, submitted for UbiComp 2003, the fifth Annual Conference on Ubiquitous Computing, Seattle, US, 12-15 oktober 2003. (*) co-authors DistriNet, KULeuven (project partners). Miro Casanova and Ragnhild Van Der Straeten. Supporting Evolution in Componentbased Software Development Using Component Libraries. In the proceedings of the 7th European Conference on Software Maintenance and Reengineering, Benevento (Italy), 2003. Wagelaar, D., A Concept-Based Approach for Early Aspect Modelling, position paper for AOSD 2003 workshop on "Early Aspects", Boston, USA, March 2003. Cornelis, F.; Georges, A.; Christiaens, M.; Ronsse, M.; De Bosschere, K.: Taxonomy of record/replay systems. Accepted for presentation at SSGRR 2003 23 SEESCOA PROJECT VOORTGANGSVERSLAG Ronsse, M.; Stougie, B.; Maebe, J.; De Bosschere, K.: An efficient data race detector backend for DIOTA. Accepted for presentation at the Parco2003 conference. Cornelis, F.; Ronsse, M.; De Bosschere, K.: TORNADO: A Novel Input Replay Tool. Accepted for presentation at the PDPTA 2003 conference (Parallel and Distributed Processing Techniques and Applications) Ronsse, M.; Christiaens, M.; De Bosschere, K.: Debugging Shared Memory Parallel Programs Using Record/Replay. Accepted for publication in the FGCS journal (Future Generations of Computer Systems) Eeckhout, L.; Georges, A.; De Bosschere, K.: How Java Programs Interact with Virtual Machines at the Microarchitectural Level. Accepted for presentation at OOPSLA 2003 (Object Oriented Programmings Systems, Languages and Applications). 24