Ivica Crnkovic: AI engineering –– new challenges in system and software architecting and managing lifecycle for AI-based systems
Abstract: Artificial Intelligence based on Machine Learning, and in particular Deep Learning, is today the fastest growing trend in software development, and literally used in all other research disciplines, with a very high impact on the modern society. However, a wide use of AI in many systems, in particular dependable systems, is still far away of being widely used. On the one hand there is a shortage of expertise, on the other hand the challenges for managing AI-based complex and dependable systems are enormous, though less known, and in general underestimated. Some aspects of these challenges are based on management of resources, including computational, data storage capacity, performance, and real-time constraints. Introduction of AI-based components, i.e. components that includes AI algorithms, require significant changes in system and software architecture, and its successful deployment is based on many architectural decisions and on changes of the development process.
This talk discusses some of these challenges, illustrate a case of Cyber-physical systems, and gives some ideas for new research in software engineering inducing software architecture, i.e. for AI engineering.
Bio: Ivica Crnkovic is a professor of software engineering at Chalmers University, Gothenburg, Sweden. He is the director of ICT Area of Advance at Chalmers University, and the director of Chalmers AI Research Centre (CHAIR). His research interests include, software architecture, software development processes, software engineering for large complex systems, component-based software engineering, and recently Software engineering for AI. Professor Crnkovic is the author of more than 200 refereed publications on software engineering topics, and guest editor of a number of special issues in different journals and magazines, such as IEEE Software, and Elsevier JSS . He was the general chair of 40th International Conference on Software Engineering (ICSE) 2018, held in Gothenburg, 2018. Before Chalmers, Ivica Crnkovic was affiliated with Mälardalen University, Sweden, and before that he was employed at ABB company, Sweden, where he was responsible for software development environments and tools. More information is available on http://www.ivica-crnkovic.net
Diomidis Spinellis: Fifty years of sustained progress: Form, forces, and lessons of Unix architectural evolution
Abstract: Unix has evolved over five decades, shaping modern operating systems, key software technologies, and development practices. Studying the evolution of this remarkable system from an architectural perspective can provide insights on how to manage the growth of large, complex, and long-lived software systems. Along main Unix releases leading to the FreeBSD lineage we examine core architectural design decisions, the number of features, and code complexity, based on the analysis of source code, reference documentation, and related publications. We see that the growth in size has been uniform, with some notable outliers, while cyclomatic complexity has been religiously safeguarded. A large number of Unix-defining design decisions were implemented right from the very early beginning, with most of them still playing a major role. Unix continues to evolve from an architectural perspective, but the rate of architectural innovation has slowed down over the system’s lifetime. Architectural technical debt has accrued in the forms of functionality duplication and unused facilities, but in terms of cyclomatic complexity it is systematically being paid back through what appears to be a self-correcting process. Some unsung architectural forces that shaped Unix are the emphasis on conventions over rigid enforcement, the drive for portability, a sophisticated ecosystem of other operating systems and development organizations, and the emergence of a federated architecture, often through the adoption of third-party subsystems. These findings allow us to form an initial theory on the architecture evolution of large, complex operating system software.
Bio: Diomidis Spinellis is a Professor in the Department of Management Science and Technology at the Athens University of Economics and Business, Greece. His research interests include software engineering, IT security, and cloud systems engineering. He has written two award-winning, widely- translated books: “Code Reading” and “Code Quality: The Open Source Perspective”. His most recent book is “Effective Debugging: 66 Specific Ways to Debug Software and Systems”. Dr. Spinellis has also published more than 300 technical papers in journals and refereed conference proceedings, which have received more than 8000 citations. He served for a decade as a member of the IEEE Software editorial board, authoring the regular “Tools of the Trade” column, and as the magazine's Editor-in- Chief over the period 2015–2018. He has contributed code that ships with Apple’s macOS and BSD Unix and is the developer of UMLGraph, CScout, git-issue, and other open-source software packages, libraries, and tools. Dr. Spinellis is a senior member of the ACM and the IEEE.
Michael Keeling: Mighty Methods –– Four Essential Tools for Every Software Architect’s Silver Toolbox
Abstract: It is an oversimplification to say that we are living in extraordinary times. When my team was first asked to work from home back in February we were happy to do our part in attempting to stem the tide of an inevitable global pandemic. While we were eager to help, we were also nervous about how suddenly distributing our co-located team would affect our way of working. And yet, after several months we’ve settled into a “new normal” that looks surprisingly similar to our way of working from Before. Much about how we worked changed, in some cases dramatically, but a handful of design methods that were central to our team remained effective even after the shift from a co-located to fully distributed context. In particular, mob programming, example mapping, architecture decision records, and visual thinking are consistently among the most versatile and reliable tools in my silver toolbox.
In this talk we’ll briefly explore these four methods and speculate about what makes them effective tools for software architects in such a broad range of contexts and situations. While this is not a talk about remote work per se, we’ll attempt to use the shifting context of work we’ve all experienced to further isolate variables that might help us identify other potential mighty methods waiting for software architects to adopt.
Bio: Michael Keeling is a software engineer at LendingHome and the author of Design It!: From Programmer to Software Architect. Prior to LendingHome, Keeling worked at IBM on the Watson Discovery Service, Vivisimo, BuzzHoney, and Black Knight Technology. Keeling has also served as an Adjunct Faculty member at Carnegie Mellon University in the Master of Software Engineering Distance Program since 2009. He holds a Master in Software Engineering from Carnegie Mellon University in Pittsburgh, PA and a Bachelor of Science in Computer Science from the College of William and Mary in Williamsburg, VA. Keeling’s current research interests include software architecture design methods, agile software development, and human factors of software engineering. He is a regular speaker in the architecture and agile communities, presenting papers and talks, and facilitating workshops for both national and international audiences. Keeling is a two-time winner of the SEI/IEEE Software “Architecture in Practice” Best Presentation Award for talks given at the 2012 and 2014 SATURN conferences. A full list of his talks and workshops are available on his website, http://www.neverletdown.net/p/speaking-and-writing.html. In his spare time, Keeling enjoys running, hiking, and camping. He lives in Pittsburgh, PA with his family. Contact him via Twitter @michaelkeeling or his website, https://www.neverletdown.net
Abstract: Most PhD projects generate research worthy of publication in top journals and conferences, yet only a small fraction of this research is published in such venues. This talk will explore the reasons behind this limited success, and will explain how “going the extra mile” can greatly increase the chances of publishing in top venues. Using extracts from published papers and from reviews of journal and conference submissions, the talk will demonstrate good and bad practice, and will discuss the common pitfalls behind most paper rejections.
Bio: Radu Calinescu is Reader of Computer Science at the University of York, UK, where he leads a research team developing theory and tools that use mathematical modelling and analysis to improve the safety and performance of adaptive and autonomous systems and processes, and to ensure the safety of machine learning techniques. He has published over 120 research papers, and chaired or served on the Programme Committees of more than 80 international conferences and workshops in research areas including software engineering, self-adaptive systems, and formal methods. He is an IEEE Senior Member, holds a DPhil in Computation from the University of Oxford, and received a British Computer Society Distinguished Dissertation Award for his doctoral research.