Tutorials and Workshops

ECBS 2013 Tutorials and Workshops

Visible to the public 

Registration is open until the sessions conclude.

SkySong Convergence Room 150
Wednesday 24 April Target Audience

8:30-10:15

"Seamless Model-Based Development of Embedded Systems with AF3 Phoenix" Antoaneta Kondeva and Sebastian Voss Requirement engineers, software engineers, architects, modellers
10:30-11:30 "How You Can Learn to Stop Worrying and Love Reconfigurable Embedded Systems: A Tutorial" Nathan Sandoval, Casey Mackin, Roman Lysecky, and Jonathan Sprinkle Signal processing, embedded hardware, FPGAs
11:30-12:30 "Mobile Device Software: Model-Based Architectures and Examples" Jonathan Sprinkle Software engineers, UML users
12:30-1:30 Demonstration: "Hexapod Behavior Generator: Model-Based Software Generation" Matt Bunting
1:30-2:30 "Software Security" Johannes Sametinger Software engineers, programmers, software project managers, software administrators
2:30 Closing Remarks

Seamless Model-Based Development of Embedded Systems with AF3 Phoenix

Visible to the public 

8:30-10:15, Wed. 24 April
Antoaneta Kondeva, Daniel Raitu, Bernhard Schatz, Sebastian Voss

Target Audience: requirement engineers, software engineers, architects, modellers

To effectively and efficiently use a model-based development process, tools must offer integrated system views on several levels of abstraction, and provide useable sophisticated analysis and synthesis techniques. In this tutorial we demonstrate the principles and possibilities of model-based development, from the capture of initial requirements via the design of the architecture of the application down to the deployment on the technical platform. Using the freely available AF3 Phoenix tool (http://af3.fortiss.org), participants will learn how to construct and relate different kind of models in a seamless model-based development process, how to use validation and verification techniques on those models, and how to generate a running system from them. Besides addressing core assets of model-based development--including checking well-formedness of models, simulating executable models, synthesizing test cases, or generating deployable code--we demonstrate the possibilities of a tool-supported approach with focus on those aspects often not covered in commonly used tools: Deep Integration of Rich Models, Model-Based Requirements Engineering, Formal Specification and Analyses Techniques, and Design Space Exploration Techniques.

About the Speakers

Antoaneta Kondeva is a researcher at fortiss GmbH and PhD candidate at the Technical University of Munich (TUM) under the supervision of Prof. Broy, who is leading the Software & Systems Engineering faculty at the TUM. She received her B.S., M.S. in Computer Science from the TUM in 2006, and 2009, respectively. From 2009 till 2013 she worked as researcher at the Research Center of the European Aeronautic Defence and Space Company, EADS Innovation Works, where she was involved in several projects concerning the development and application of model-based approaches for seamless development and early analysis of aircraft systems. Her research interests include systems & software engineering, integration of systems and safety engineering, formalization of safety requirements and their refinement throughout the system development process.

Dr. Sebastian Voss is a research group leader at fortiss GmbH. He has done his PhD in the avionic context at European Aeronautic Defence and Space Company, EADS Innovation Works in the department Sensors, Electronics & Systems Integration. Previously, we worked one year for Daimler Research & Development. At fortiss he is currently heading the research group Design Space Exploration that targets to find (optimized) system configurations for automotive, avionic and automation systems. His research interests include the efficient generation of system deployments (mappings from software to hardware) that includes schedules, efficient design space exploration methods and their model-based development.

How You Can Learn To Stop Worrying and Love Reconfigurable Embedded Systems: A Tutorial

Visible to the public 

10:30-11:30, Wed. 24 April
Nathan Sandoval, Casey Mackin, Roman Lysecky, and Jonathan Sprinkle (University of Arizona)

Target Audience: Signal processing, embedded hardware, FPGAs

This tutorial will cover technical details of how we can reconfigure our embedded hardware to optimize performance for new data streams as they arrive. As a participant, you will see details of the toolchain, including

  1. the modeling infrastructure used for codesign,
  2. tools used to implement the algorithms in software,
  3. the tools that permit us to import C/C++ code to hardware,
  4. the middleware framework we use to permit hardware and software tasks to communicate, and
  5. demonstration of the behaviors at runtime.

As part of the tutorial, you will see these methods applied to various image processing algorithms, including portions of the JPEG and JPEG2000 standards, with clear demonstrations of their effectiveness in terms of performance.

About the Speakers

Nathan Sandoval will receive his Master of Science from the University of Arizona in 2013. He graduated in 2011 from the University of Arizona with a degree in Computer Engineering.

Casey Mackin is a Senior in Electrical and Computer Engineering at the University of Arizona. In 2012 he received one of the 25 Astronaut Foundation Scholarships, and he has participated in summer research at Duke University. This summer he will participate in the SUPERB-IT REU at UC Berkeley.

Roman Lysecky is an Associate Professor of Electrical and Computer Engineering at the University of Arizona. He received his B.S., M.S., and Ph.D. in Computer Science from the University of California, Riverside in 1999, 2000, and 2005, respectively. His research focuses on runtime optimization and observation methods for embedded computing systems. He was awarded the Outstanding Ph.D. Dissertation Award from the European Design and Automation Association (EDAA) in 2006 for New Directions in Embedded Systems. He received a CAREER award from the National Science Foundation in 2009 and Best Paper Awards from the ACM/IEEE International Conference on Hardware-Software Codesign and System Synthesis (CODES+ISSS), the ACM/IEEE Design Automation and Test in Europe Conference (DATE), the IEEE International Conference on Engineering of Computer-Based Systems (ECBS), and the International Conference on Mobile Ubiquitous Computing, Systems, Services (UBICOMM). He has coauthored three textbooks on VHDL, Verilog, and C programming. He is an inventor on one US patent. In 2008, he received an award for Excellence at the Student Interface from the College of Engineering and the University of Arizona.

Jonathan Sprinkle is an Assistant Professor of Electrical and Computer Engineering at the University of Arizona. In 2013 he receive the NSF CAREER award, and in 2009, he received the UA's Ed and Joan Biggers Faculty Support Grant for work in autonomous systems. Until June 2007, he was the Executive Director of the Center for Hybrid and Embedded Software Systems at the University of California, Berkeley. His research interests and experience are in systems control and engineering, through modeling and metamodeling, and he teaches in controls and systems modeling. Dr. Sprinkle is a graduate of Vanderbilt University (PhD, MS) and Tennessee Technological University (BSEE).

Mobile Device Software: Model-Based Architectures and Examples

Visible to the public 

10:30-11:30, Wed. 24 April
Jonathan Sprinkle (University of Arizona)
Target Audience: Software engineers, UML users

This tutorial is a step-by-step approach to understanding software used by mobile devices, within the context of model-based design. Mobile device apps are widely viewed as a success, but even successful developers who attempt to program these devices using their existing knowledge may be daunted by the new terminology and unclear starting points. This is due to the informal nature of the documentation, which is potentially advantageous to novice coders, but which can be frustrating to experienced coders, who want to know how to map their current knowledge to these new platforms and APIs.

This tutorial focuses on performing this mapping, and explicitly aims to help make these devices and their APIs accessible in terms of the high-level models that govern their behaviors and many of their designs. Participants who want to learn about the high-level software concepts in mobile device programming, and how those concepts map to canonical UML models will benefit from the presentation of those concepts as part of the tutorial.

The following list of topics will be covered and feature prominently during the tutorial:

  1. Common mobile software patterns. Model-View- Controller, Delegate, and other design patterns.
  2. UML-based mobile software models. The majority of the documentation in both Android and iOS uses only informal models. The tutorial will repackage many high-level architectures as UML models, which makes them more accessible.
  3. Mapping common behaviors to architectures and pat- terns. Nearly everyone has seen how mobile apps can utilize gestures and respond to screen rotation informa- tion. This section will focus on what portions of the design implement these desired behaviors.
  4. Utilizing sensors. GPS, accelerometers, gyroscopes, cameras: all of these sensors are accessed through various design patterns, and this tutorial will discuss those patterns within the context of UML diagrams.
  5. Data models Using the data models as prescribed by the iOS and Android APIs means the ability to rapidly use various visualization and editing classes. This portion of the tutorial will discuss how such designs can be used to rapidly take advantage of these built-in features.
  6. Integration with software synthesis tools. The final portion of the tutorial addresses how domain-specific modeling and other tools can be used to synthesize some (or all) of the code required to go from models to mobile devices.

Before you arrive

If you are participating in this tutorial, please visit http://www2.engr.arizona.edu/~sprinkjm/research/mobile/index.php/ECBS2013/HomePage in order to download and install software necessary for you to write the examples and follow the steps during the tutorial.

About the Speaker

Dr. Jonathan Sprinkle is an Assistant Professor of Electrical and Computer Engineering at the University of Arizona. In 2013 he received the NSF CAREER award, and in 2009, he received the UA's Ed and Joan Biggers Faculty Support Grant for work in autonomous systems. In 2005, Dr. Sprinkle was selected as one of 108 Regional Finalists for 11-19 highly competitive positions of White House Fellow. Until June 2007, he was the Executive Director of the Center for Hybrid and Embedded Software Systems at the University of California, Berkeley.

His research is in the area of intelligent autonomous systems, including UAVs, UGVs, and hybrid systems. Building blocks for this are in domain-specific modeling, metamodeling, and generative programming. Dr. Sprinkle was the co-Team Leader of the Sydney-Berkeley Driving Team, a collaborative entry into the DARPA Urban Challenge with partners Sydney University, University of Technology, Sydney, and National ICT Australia (NICTA). In 2004, he led a team from UC Berkeley which autonomously flew against an Air Force pilot in autonomous pursuit/evasion games in the Mojave Desert at Edwards Air Force Base (the UAV successfully targeted the human pilot). In his teaching career spanning Arizona, Berkeley, and Vanderbilt, he has taught or largely assisted in the graduate courses on mobile phone software design, hybrid systems, unmanned systems, and model-integrated computing.

Dr. Sprinkle graduated with the Ph.D. from Vanderbilt University in August 2003, and with his M.S. in August 2000. He graduated with his BSEE in cursu honorum, cum laude, from Tennessee Tech University in Cookeville, TN, in May 1999, where he was the first graduate of the Computer Engineering program, and the first Electrical Engineering double major.

Hexapod Behavior Generator: Model-Based Software Generation

Visible to the public 

12:30-1:30, Wed. 24 April
Matt Bunting (University of Arizona)
Target Audience: Everyone!

Dmitri is a hexapod robot research tool designed as a class project at the University of Arizona in Spring 2009. Each of Dmitri's legs and head mechanism has three degrees of freedom totaling 21 degrees of freedom. Various past projects have included the study of machine learning methods to get the hexapod to walk, and other class projects involved the study of optic flow computation to build three dimensional maps for terrain adaptation and obstacle avoidance. Each time a new project is conceived, the source code is copied then heavily modified for the specific application. As a research tool, Dmitri is has the capability of exploring various simple or complex behaviors. Unfortunately, it is difficult for most people to quickly implement such behaviors.

This tutorial will demonstrate how a behavior generator using MetaGME helps people of varying programming skills design a custom behavior.  Rather than requiring expert programing experience, users will clearly be able to design various behaviors that can be compiled and run on Dmitri.  Also, users who are experienced will be able to use the same tools to get started, as the generated output is C++ code with sufficient legible formatting to begin adjusting lower level aspects of the behavior.

About the Speaker

Matt Bunting is a PhD student at the University of Arizona. He has received numerous awards, including "Student of the Year" from EE Times in 2011. You can find out more about Matt and Dmitri on YouTube.

Software Security

Visible to the public 

2:30-3:30, Wed. 24 April
Johannes Sametinger (Johannes Kepler University)
Target Audience: Software engineers, programmers, software project managers, software administrators

The importance of IT security is out of doubt. Data, computer and network security are essential for any business or organization. Software security, however, all too often remains out of focus, both from a developer's and from a user's point of view. As a motivation, we will first consider various current security issues taken from the media and point out where software security has played a significant role. We will then present a thorough introduction to software security. We will differentiate software security from IT security, network security, computer security, and also from software safety. Prominent examples of software security bugs are buffer overflows, SQL injection and cross-site scripting. We explain the basic ideas behind such vulnerabilities, give recent examples where these bugs have occurred, and describe the damage they have caused. Next, we will differentiate security bugs from security flaws and again give recent examples.

Mitigation issues will be viewed from two different perspectives, from the developer's point of view and from the end-user's point of view. What does it need to develop secure software? For developers, we will introduce the security touch points, the security development life-cycle, and issues of secure coding. For end-users, we will present a recent case study that demonstrates the importance of software updates. However, technical aspects are not sufficient to guarantee security. A real world example will remind us that humans remain the weakest link in the security chain.

About the Speaker

Johannes Sametinger is a professor in the department of information systems at the Johannes Kepler University Linz in Austria. He teaches courses in algorithms, data structures, programming, software engineering, service engineering and software security. His research interests include many aspects of software engineering, with an emphasis on software security. Dr. Sametinger has received a Dr. techn. in computer science from the Johannes Kepler University Linz. He worked with Siemens in Germany and was a visiting researcher and guest professor in the U.S. (Texas A&M University, Brown University), in Canada (University of Toronto, Universite de Montreal), as well as in Germany (University of Regensburg). He is a longtime member of IEEE and ACM, and has published 50+ scientific papers on various aspects of software engineering. Contact him at johannes.sametinger@jku.at.

Social Media

Visible to the public 

 

Get the latest news about the conference via social media.

 
IEEE Engineering Computer-Based Systems Conference 2013