Industrial Excellence Center (IXC) Embedded Applications Software Engineering (EASE) Prof. Per Runeson
EASE in a nutshell 10 years of research 8.6 MSEK funding/year (+2 MSEK in kind) 7 research challenges 5 industry partners 4 research themes 2 academic partners 1st phase started Oct 1, 2008
Software Themes A: Flexible Software Architectures B: Parallel Embedded Systems C: Efficient Software Methods (OSS, Agile) D: Aligning Requirements and Verification Technology/T ools Engineering/ People
Industrial Challenges 1.Multi-purpose architecture to find a logical architecture of flexible and networked embedded systems. 2.Dynamic resources utilization to find principles and mechanisms for dynamic utilization across the system architecture. 3.Trade-offs between actors to find instruments to balance trade-offs between operators, suppliers, requirements and resources. 4.Homogenous user experience to give a homogenous user experience in an open and flexible environment.
Industrial Challenges (cont’d) 5.Distributed development to improve the distribution of development of products and services across projects, sites and companies. 6.Information management to find new approaches for management of information, versions and variants. 7.Industry-academia research model to industry-academia research models fo mutual benefit for involved parties.
Themes A: User Experience-Driven System Configuration “Software products are built “inside- out”, not taking the users into account.” B: Flexible Execution of Software in Parallel Embedded Systems “Parallel processors provide power, but require new ways of programming.”
Themes (cont.) C: Efficient Software Development “More and better products must be developed with less effort.” D: Aligning Requirements and Verification “Effort is wasted on rework, since product information is not aligned.”
Theme B - motivation Processor computation frequencies cannot scale any more Multiple cores introduced New problem: parallelize computation
Theme B1: CAL data flow language.cal for actors.nl for networks actor AddUntilOverflow() int X, int Y ==> intSum : run: action X:[x], Y:[y] ==> Sum:[sum] guard sum >= 0 var int sum=x+y end drain: action X:[x], Y:[y] ==> end terminate: action Y[lastToken]==> end priority run > drain; end schedule fsm run: run (run) --> run; run (drain) --> drain; drain (terminate) --> drain; end
Javascript study Dynamic extraction of parallelism Loops allocated to threds –data depency violations identified -> roll-back Theme B2 – thread level speculation
Theme B plans Mapping and partitioning of computation graph to threads/cores Mapping CAL to EIT’s hardware architecture –one actor per core –several actors per core Implementation of Thread-level speculation in two types of JavaScript engines –register-based (V8) –stack-based (SpiderMonkey)
More LUCAS-day October 21 Invited talk: Open Source in Mission Critical applications Mats Jonsson, Senior Systems Architect at Saab Systems Other topics Mapping streaming applications to many core architectures Static Analysis and Transformations of Dataflow Multimedia Applications Sensor based robot control over real-time networks Palpable Computing in health care Semantic Applications of Text Processing How do humans communicate with a mobile robot? Regression Testing Practices Automated Linking of Natural Language Software Artefacts AM 5 x workshops and tutorials PM + guided tour in the robot lab
EASE partners and funding 10.5 MSEK/year Industry Sony Ericsson ST Ericsson Ericsson AXIS SoftHouse ABB Academia LU BTH Public VINNOVA