Behavioral Software Metrics
We show how the classical satisfaction relation between programs and requirements can be replaced by quantitative preference metrics that measure the "fit" between programs and requirements. Depending on the application, such fitness measures may include aspects of function, performance, reliability, and robustness.
Thomas A. Henzinger is President of IST Austria (Institute of Science and Technology Austria). He holds a Dipl.-Ing. degree in Computer Science from Kepler University in Linz, Austria, an M.S. degree in Computer and Information Sciences from the University of Delaware, a Ph.D. degree in Computer Science from Stanford University (1991), and a Dr.h.c. degree from Fourier University in Grenoble, France. He was Assistant Professor of Computer Science at Cornell University (1992-95), Assistant Professor (1996-97), Associate Professor (1997-98), and Professor (1998-2004) of Electrical Engineering and Computer Sciences at the University of California, Berkeley. He was also Director at the Max-Planck Institute for Computer Science in Saarbruecken, Germany (1999) and Professor of Computer and Communication Sciences at EPFL in Lausanne, Switzerland (2004-09). His research focuses on modern systems theory, especially models, algorithms, and tools for the design and verification of reliable software, hardware, and embedded systems. His HyTech tool was the first model checker for mixed discrete-continuous systems. He is an ISI highly cited researcher, a member of Academia Europaea, a member of the German Academy of Sciences (Leopoldina), a member of the Austrian Academy of Sciences, a Fellow of the ACM, and a Fellow of the IEEE. He has received the Wittgenstein Award of the Austrian Science Fund (FWF) and an ERC Advanced Investigator Grant.
Building billions of software artifacts
Every day software developers all over the world build hundreds of thousands of software artifacts, ranging from executables, via libraries, to documentation, and websites. Build tools are thus one of the most important enablers for software developers. Consequentially, the last 30 years have seen a plethora of approaches to build languages and engines, ranging from dependency based builds using Make, via task based ones using Ant or MSBuild, to IDE integrated ones using Eclipse or Visual Studio, to embedded DSLs like SCons, Rake, Shake and others. But despite these efforts, many build systems still suffer from being unreliable, since dependencies are missing, not saleable, since they were designed for single machines only, ineffective, since builds are often unnecessarily sequentialized, and not multi tenancy capable, since many build systems and tools assume that they execute in particular locations.
During the past year my team has developed a new build system leveraging earlier work on dependency based builds, combining it with the benefits of DSLs, and hosting it in the Cloud. Conceptually, in our new system every software artifact is build from scratch. However by using proper design choices, we enable many optimizations to build things quickly or not at all, like parallel, cached, staged, incremental, distributed and multitenant builds. The system is meanwhile deployed for our first major customer.
In this talk I will present insights and highlight of our journey of creating a new build system for Microsoft, and I will give a glimpse of the results. I will describe the challenges we faced and the opportunities that lie ahead. And being at a formal methods conference, I will show that a little build theory can help in the design and for the promotion of a new technology, too!
Joint work with Adrian Bonar, Chandra Prasad, Danny van Velzen, Davide Massarenti, Dmitry Goncharenko, John Erickson and Seva Titov.
Wolfram Schulte is an engineering manager and principal researcher at Microsoft, Redmond, USA. Wolfram's research interests include software development tools, ranging from build, via automatic test to deployment, software engineering analytics, ranging from collecting data to prediction, and programming languages, ranging from language design to runtimes.
Wolfram currently leads a new advanced development team, called Tools for Software Engineers (TSE). TSE was formed with former members of Microsoft Research and product teams, with a mission of improving engineering productivity across Microsoft. We do so by building developer services at Microsoft Scale using Cloud technologies. Until summer 2012, Wolfram lead the Research in Software Engineering (RiSE) group, at Microsoft Research (MSR), Redmond, USA. Before joining MSR in 1999, I worked at the University of Ulm (1993-1999), at sd&m, a German software company (1992-1993), and at the Technical University Berlin (1987-1992).