Communication software synthesis from UML-ESL models Thiago Cardoso * , Edna Barros * , Bruno Prado * and Andr´ e Aziz * * Centro de Inform´ atica, Universidade Federal de Pernambuco, Pernambuco, Brazil Departamento de Computac ¸˜ ao, Universidade Federal de Sergipe, Sergipe, Brazil Departamento de Estat´ ıstica e Inform´ atica, Universidade Federal Rural de Pernambuco, Pernambuco, Brazil e-mail: tfc@cin.ufpe.br Abstract—The electronic devices market demands a larger amount of functionality integrated into a single product. To address this demand, the industry migrated to solutions based on processors, increasing the software role in the systems. However, processor-based solutions raises the design complexity due to the complexity of Hardware-dependent Software (HdS). To cope with this complexity, the virtual platforms approach is applied, in which the whole system is modeled in order to reduce the design time. Nowadays, much of this work is manually performed, synthesizing all structures and behavior required in a system level design language (SLDL). However, with the increasing systems complexity, it is becoming impractical to continue performing this synthesis manually. In the last decade, several studies have addressed the synthesis of software components from descriptions in SLDLs and recently in the Unified Modeling Language (UML). Although significant automation has been obtained, there are limitations in the abstraction achieved. In order to raise the abstraction of the description, the UML-ESL profile was pro- posed to abstract the communication structure, with a synthesis technique for communication between software and hardware interfaces. This work presents a technique to synthesize the multitasking support and the communication between software components of the system from a description in UML-ESL for virtual platform simulation. The results obtained showed up to 60% decrease in the amount of code manually written. Index Terms—software synthesis, UML, ESL, platform-based design, virtual platforms, scheduling I. I NTRODUCTION The electronic devices market demands a larger amount of functionality integrated into a single product. To address this demand, the industry migrated to solutions based on pro- cessors, increasing the software role in the systems, reaching about 80% of the total of implemented components [1]. How- ever, processor-based solutions raises the design complexity due to the complexity of Hardware-dependent Software (HdS) that controls the hardware and software interface. To cope with this complexity, the virtual platforms approach is applied, in which the whole system (processor, devices, etc) is modeled in order to reduce the design time. This high level model allows the development of the software without the real hardware implementation, providing an early verification of the system. It is generated by mapping an application model to a platform model, through the synthesis of its hardware and software components. In order to achieve significative gains in productivity, this generation must be highly automated, but in JY ERW R3 R5 R4 R3 R4 Uejgfwnkpi Gzvgtpcn Eqoowpkecvkqp Kpvgtpcn Eqoowpkecvkqp Crrnkecvkqp eqfg JfU Fig. 1. Software synthesis example most systems the software component synthesis is performed manually. The software synthesis (Figure 1) comprises the application code generation and the HdS code generation. The former transforms the application model into sequential code in a target language for each software component in the system. The latter generates code that handles multitasking, the com- munication among software components (internal communi- cation) and the communication between a software and a hardware component (external communication). The challenge in automating the software synthesis is in the latter activity, whose complexity raises with the abstraction level of the application model, especially concerning the communication description, as it represents most of the HdS generation. In the last decade several studies have addressed the syn- thesis of software components from descriptions in system level design languages (SLDL). The SLDLs, such as SystemC and SpecC, model the communication aspects in the message level, following the taxonomy proposed in [2]. In this level the structure of the communication still must be modeled as interconnection among the modules of the system. It is possible to abstract these structural details by raising to the service level, where the communication is modeled in terms of function calls among the modules. Recently, established languages in the software engineer- ing field, such as the Unified Modeling Language (UML), have been used in automated synthesis approaches, but in most of them UML is used as a visual representation of a SLDL. Although significant automation has been obtained in these approaches, there are limitations in the abstraction level 978-1-4673-2608-7/12/$31.00 ©2012 IEEE