This event has now been cancelled due to COVID-19
The SINZ 2020 Workshop will take place 7-8 April, 2020 in Wellington, New Zealand. The workshop will be hosted by Victoria University of Wellington at the Wellington ICT Graduate School. The location will be level 3 of NEC House (40 Taranaki St).
Please register by 30 March: https://sinz2020-workshop.eventbrite.com
The program is as follows, with further details below:
- Tuesday 7 April – “Workshop on Leveraging Software Ecosystems for Global Expansion”
- Wednesday 8 April – we are delighted to have some excellent invited speakers give talks on topics related to software engineering and programming languages
|Tuesday 7 April – Workshop on Leveraging Software Ecosystems for Global Expansion Led by Daniela Damian, Tony Clear|
|1030-1100||Registration and Welcome|
|1100-1200||Daniela Damian – Co-innovation and software engineering in open software platform ecosystems|
|1330-1400||Workshop Welcome (Intro session Theme and Goals)|
|1400-1500||Industry Panel (Xero)|
|1530-1700||Interactive Discussion on Frameworks|
|Wednesday 8 April – Invited Speakers led by Craig Anslow|
|0900-0930||Welcome and Introduction|
|0930-1000||Oscar Nierstrasz – Interactive Modeling for Agile Development|
|1000-1030||Robert Biddle – Clickety-Click: Improving Collaborative Software Development|
|1100-1130||Patrick Lam – Knowing your software|
|1130-1200||Eric van Wyk – Extensible Programming Languages: Opportunities, Questions, and Challenges|
|1300-1330||Robert O’Callahan – The Future Of Debugging|
|1330-1400||Nick Cameron – What is a NewSQL database and why would you use one?|
|1430-1500||Jean Guy Schneider- Virtual Environments for Improved Enterprise Software Deployment|
|1500-1530||Christoph Treude – Defining Computer Science Concepts|
|1530-1700||SINZ Business Meeting led by Ewan Tempero|
(University of Victoria, Canada)
|Co-innovation and software engineering in open software platform ecosystems||Software development is experiencing a paradigm shift from the more traditional bespoke or market-driven model to a software platform model that uses open innovation within an ecosystem of third party extensions and integrations to create value for a much larger customer market. This talk describes insights from a recent study from two two service software platform ecosystems. In particular, it provides a discussion of (1) the co-innovation process that takes place within such ecosystems and (2) software engineering challenges and tradeoffs experienced as a direct consequence of openness in these ecosystems.
Bio: Daniela Damian is a Professor of Software Engineering in University of Victoria’s Department of Computer Science, in Canada, where she leads research in the Software Engineering Global interAction Laboratory (SEGAL, http://thesegalgroup.org). Her research interests include Empirical Software Engineering, Requirements Engineering, Computer-Supported Cooperative Work and more recently software ecosystems. Her recent work has studied the developers’ socio-technical coordination in large, geographically distributed software projects, as well as stakeholder management in large software ecosystems. Daniela has served on the program committee boards of several software engineering conferences. She is currently serving on the editorial boards of Transactions on Software Engineering, the Journal of Requirements Engineering, is the Requirements Engineering Area Editor for the Journal of Empirical Software Engineering, and the Human Aspects Area Editor for the Journal of Software and Systems. She will be ICSE 2022 Program Co-Chair.
(University of Berne, Switzerland)
|Interactive Modeling for Agile Development||Software development is intimately tied to modeling. In well-understood domains, we can exploit established techniques as Domain Specific Languages or Model-Driven Development to keep our models and code in sync, but in new and evolving domains, this poses a severe challenge. Instead we need a way to interactively develop and explore models of domain concepts and requirements, and keep these in sync with the software we develop. Ideally these models are themselves executable, so we can use them not just for testing purposes and validating requirements, but also for collaborative exploration of scenarios, and assessing the impact of changes in requirements. In this talk we try to imagine what a development environment might look like that focuses on interactive and exploratory modeling rather than just editing of textual program snippets. We will use GT, a new, “moldable development environment”, to illustrate how interactive modeling might fit into an agile development process.|
Bio: Oscar Nierstrasz is Professor of Computer Science at the Institute of Computer Science (INF) in the Faculty of Science of the University of Bern, where he founded the Software Composition Group in 1994. He is co-author of over 300 publications and co-author of the open-source books Object-Oriented Reengineering Patterns and Pharo by Example. The Software Composition Group carries out research in diverse aspects of software evolution. Current research is focussed on Agile Software Assistance: enabling software developers to quickly and effectively analyze complex software systems with the help of tools to rapidly construct, query and manipulate software models.
(Carleton University, Canada)
|Clickety-Click: Improving Collaborative Software Development|| Successful software involves several different perspectives and sources of expertise. Agile Software Development emphasizes collaboration, but
our studies show many opportunities are missed, and many beneficial practices
are not recognized. In this talk, I will review some of our research findings, and
suggest how better understanding of human behaviour can lead to collaboration,
and better software.|
Bio: Robert Biddle is a Professor in the School of Computer Science and Institute of Cognitive Science at Carleton University in Ottawa, Canada. His research is in Software Design and Human-Computer Interaction. His current research projects are on usable security, especially authentication and security decision-making, and on human factors in software design and development. Robert has Bachelors and Masters degrees in Mathematics and Computer Science from the University of Waterloo in Canada, a PhD from the University of Canterbury in New Zealand, and has diplomas in both childhood and adult education. He has awards for research, teaching, and graduate mentorship; he is a Commonwealth Scholar, and a Fellow of the New Zealand Computer Society.
(University of Waterloo, Canada)
|Knowing your software||
Whether at the level of phone apps (e.g. a 1* rated app on the Google Play Store) or critical government systems (e.g. Canada’s fiasco-laden Phoenix government payroll software), observing software failures in the wild is far easier than it should be. Yet few software developers set out to create faulty software. I will focus on the gap between expectations and reality in today’s world. I’ll discuss tools and techniques for specifying and analyzing software (specifications, static and dynamic analysis, and testing), especially in the context of evolving software systems, and discuss the strengths and opportunities for improvements in these technologies.|
Bio: Patrick Lam is an Associate Professor of Electrical and Computer Engineering at the University of Waterloo and a Visiting Scholar at VUW, having just completed his term a Director of Waterloo’s Software Engineering Program. His research interests focus on static analysis, particularly of developer-supplied information like annotations and test cases. Patrick has been making a concerted effort to enjoying New Zealand’s outdoors.
Eric Van Wyk
(University of Minnesota, USA)
|Extensible Programming Languages: Opportunities, Questions, and Challenges||Extensible programming languages allow programmers to mix and match language features to suit their problem domain or task at hand. Most approaches support the addition of new (domain-specific) syntax/notations, semantic analysis (e.g. type/error checking), optimizations, and/or translations to a general-purpose host language. A common example adds SQL syntax to Java or C, checking that queries are type correct, with respect to a database schema, and generating code that communicates with a database. The varying approaches can be distinguished by how they answer certain questions about the modularity and composability of language feature specifications. Our approach focuses on composability; it supports the development of language extensions by independent parties such that their composition with the host language is automatic and guaranteed to form a working compiler. This view frees the programmer from needing any understanding of the underlying compiler implementation. We demonstrate this in ableC, an extensible specification of C, with extensions for various models of parallel programming, database access, tensor manipulation, regular expression matching, inductive data types, and several others.|
Bio: Dr. Eric Van Wyk is an Associate Professor in the Department of Computer Science and Engineering at the University of Minnesota. He earned a Ph.D. at the University of Iowa in 1998 and was a postdoc at the Oxford University Computing Laboratory until 2002 when he joined the University of Minnesota. In 2004 he was a recipient of a National Science Foundation CAREER Award and was a 2005-2007 University of Minnesota McKnight Land Grant professor. In 2017 he received the College of Science and Engineering Charles E. Bowers Faculty Teaching Award.
(Pernosco, New Zealand)
|The Future Of Debugging||Developers spend a lot of time debugging. Lots of research has been done on record-and-replay systems and other advanced debugging tools, but industry adoption has been slow. We’ll talk about ongoing efforts to improve debugging in practice in the context of the “rr” and “Pernosco” debuggers. rr is a state-of-the-art open-source record/replay/reverse debugger for C/C++/Rust on Linux which is seeing a lot of adoption. Pernosco is a considerably more ambitious cloud-based omniscient debugger for a similar target market. I will give an overview of the technology behind these debuggers, their strengths and weaknesses, and what we’re learning from the people using (and not using) them.
Bio: Robert O’Callahan obtained a PhD in static program analysis from CMU in 2001, advised by Daniel Jackson and Jeannette Wing. He worked on dynamic analysis at IBM Research, then dived into full-time browser engine development for Mozilla for ten years, where he became a Distinguished Engineer and also led the development of rr. In 2016 he left Mozilla to work on debugging full time, cofounding the Pernosco project.
(PingCap New Zealand)
|What is a NewSQL database and why would you use one?||Databases have long been an essential component in many software projects. By letting programmers ignore the messy details of data persistence and retrieval, databases have become one of the most successful and long-lived abstractions in software engineering. NoSQL databases (e.g., Cassandra, Dynamo, MongoDB) are a radical departure from traditional relational database, offering high availability and simple, flexible scaling. However, they typically only offer eventual consistency (rather than traditional ACID transactions) and a much more low-level interface. NewSQL databases give developers the best of both worlds. I’ll get in to the details of what scalability, consistency, and availability features these databases offer, how they can be implemented, and the trade-offs in deciding what kind of database to use.
Bio: Nick Cameron is a staff engineer at PingCAP working on distributed systems and databases. He is a member of the Rust core team and previously worked on Rust at Mozilla. He has also worked on Firefox and conducted research in programming languages at Victoria University of Wellington. He has a PhD from Imperial College London.
|Jean-Guy Schneider (Deakin University, Australia)||Virtual Environments for Improved Enterprise Software Deployment||Contemporary Enterprise IT systems are highly interconnected and
interdependent. A failure in one system can cause a cascade of failures across
multiple systems, possibly bringing business to a standstill. Ensuring the
quality of IT systems in such a context is a challenging activity, and
virtualizing real-world deployment environments for testing purposes plays a
crucial role in quality assurance activities. In this presentation, we will
give an overview of our decade-long research in techniques and tools for the
automated generation of executable models of software services suitable for
provisioning realistic virtual deployment environments to test highly
interconnected enterprise software systems. We will also provide an outlook
how contemporary Machine Learning techniques can advance the state-of-the-art
of virtual deployment environments.
Bio: Jean-Guy Schneider is a Professor in Software Engineering at the School of Information Technology at Deakin University, Burwood Campus. He is the Director of the Software Engineering Innovation Lab as well as the Academic Director, Industry Capstone in the School of IT. His research interests lie in the general area or reliable software systems and are positioned in the intersection of Software Engineering and Computer Science. He currently conducts research in the areas of Mobile Computing, Software Engineering for Artificial Intelligence, as well as the applicability of software development processes in tertiary education.
|Christoph Treude (University of Adelaide, Australia)||Defining Computer Science Concepts||Programmers are continually in situations where they must not only acquire technical information, but also discover what they do not know and learn new concepts. Helping programmers orient themselves in a knowledge curriculum that is both enormous and in continual evolution is challenging. Search tools can help, but their effectiveness depends on the ability of users to issue proper queries and to assess the relevance and quality of the results. Posts on on-line forums where programmers look for information often include links to Wikipedia when it can be assumed readers will not be familiar with the linked terms. For example, Stack Overflow contains almost half a million links to Wikipedia. A Wikipedia article will thus often be the first exposure to a new computing concept for a programmer. We conducted an exploratory study with 18 students by asking them to read a Wikipedia article on a common computing concept that was new to them, while using the think-aloud protocol. In this talk, we will summarise the results of our qualitative analysis of the session transcripts to better understand the experience of programmers learning a new computing concept using Wikipedia, and we will highlight our recommendations for adapting information sharing practices in on-line programmer communities to better account for the learning needs of the users.
Bio: Christoph Treude is an ARC DECRA Fellow and a Senior Lecturer in the School of Computer Science at the University of Adelaide, Australia. He received his Ph.D. in computer science from the University of Victoria, Canada. The goal of his research is to advance collaborative software engineering through empirical studies and the innovation of tools and processes that explicitly take the wide variety of artefacts available in a software repository into account. He currently serves on the editorial board of the Empirical Software Engineering journal and as general co-chair for the IEEE International Conference on Software Maintenance and Evolution 2020.