EXPERIENCE IN TEACHING DEVOPS
DevOps is a collection of processes intended to reduce the time between a code commit and placing that code into normal production. Some of these processes allow companies such as Etsy to deploy new versions to production more than 50 times a day. The portion of the life cycle between commit and production involves issues that are rarely taught in Computer Science or Software Engineering curricula. Designing to allow deployment without the necessity for coordinating among different teams is one enabler for rapid deployment. Using appropriate tools to reduce errors and support automated testing and deployment is another.
I have been teaching a graduate level course in DevOps at Carnegie Mellon University since 2015. In this talk, I will give a brief introduction to DevOps and then discuss the course that I teach. In particular, I will point out several areas of knowledge that the students are lacking and that should be a portion of undergraduate curricula.
Len Bass is an award-winning author who has lectured widely around the world. His books on software architecture are standards. His new book on DevOps is, in the words of an Amazon reviewer, “the first DevOps book that shows a realistic and achievable view of the full implementation of DevOps.” He has over 50 years’ experience in software development, 25 of those at the Software Engineering Institute of Carnegie Mellon. He also worked for three years at NICTA in Australia and is currently an adjunct faculty member at Carnegie Mellon University, where he teaches a course in DevOps.
SOFTWARE ENGINEERING IN THE TIMES OF IOT
Recent developments in hardware, cloud and software technologies gave birth to the era of Big Data. The possibility of collecting, processing and making sense of large amounts of data are transforming industry, and bringing unprecedented change. Software is no longer a support function, but core business to most industries. In this talk we will discuss this change from the Technological, Human, and Cultural perspectives and discuss the implications to the future of Software Engineering practice. We will borrow from real life examples in Telco, Oil and Gas and Mining, highlighting the challenges imposed to today’s SE tools, methods and techniques.
A recognized technologist, Karin held a tenured Computer Science Professor position at PUC-Rio. Over her academic career she held joint industry projects with NASA, HP, IBM and Microsoft. Recently, at EMC Brazil Labs where Dr. Breitman served as vice president and chief scientist, she lead a team of data scientist researchers, oversaw a Solutions team, and the Executive Briefing Center. During her tenure at the lab she oversaw the filing of over 50 invention disclosures at the US Patent Office, of which she is a lead inventor in 11. Karin is the author of over one hundred combined patents (Microsoft, EMC and Dell) books, and scientific papers. Her new book “Conversations in Semiotic Engineering” came out in June, by Springer Verlag.
Karin serves in the ACM Practitioners Board, PMI-RJ Board, France Brazil, Grupo Editorial Nacional Board, and InnovAction Board. She also serves as a cloud computing and IoT expert to the European Commission, and as an IoT expert to the Brazilian Ministry of Science, Technology and Innovation in what relates to national IoT policy formulation. She is a Director at the France Brazil Chamber of Commerce.
HYPER SCALABILITY – THE CHANGING FACE OF SOFTWARE ARCHITECTURE
It seems difficult to believe that Web sites such as Youtube.com (debuted in November 2005) and Facebook.com (public access in 2006) have been around for barely a decade. In 2015 Youtube had more than a billion users, who watched 4 billion videos per day and uploaded 300 hours of video per minute. In 2009, Facebook stored 15 billion photos, occupying 1.5 petabytes (PBs) and at that time growing at a rate of 30 million photos per day. In 2015, Facebook users uploaded 2 billion photos each day, requiring 40 PB of new disk capacity daily.
Traffic and storage magnitudes such as these will not become smaller or easier to deal with in the future. In terms of this rate of growth, Youtube and Facebook are by no means unique. With the imminent explosion of the Internet of Things – up to 50 billion new devices are forecast by 2020- the scale of the systems we build to capture, analyze and exploit this ballooning data will continue to grow exponentially. W refer to these systems as hyper scalable systems
Experience building hyper scalable systems has clearly demonstrated that requirements for extreme scale challenge and break many dearly held tenets of software engineering. For example, hyper scale systems cannot be thoroughly system tested before deployment due to their scale and need to run 24×7. Hence new, innovative engineering approaches must be adopted to enable systems to rapidly scale at a pace that keeps up with business and functional requirements, and at acceptable, predictable costs
This talk is about engineering systems at hyper scale for both cloud and private data center hosted deployments. It describes the characteristics of hyper scale systems, and some of the core principles that are necessary to ensure hyper scalability. These principles are illustrated by state of the art approaches and technologies that are used to engineering hyper scalable systems.
EMPIRICAL METHODS AND THEORY IN SOFTWARE ENGINEERING RESEARCH: STATE OF THE ART AND STATE OF PRACTICE
Empirical research in software engineering has now had a long history, with the first ISERN/ESEM meeting held in 1993 and the empirical software engineering journal first volume published in 1996. Since then the community continues to struggle with both the use of theory in software engineering research and with the elucidation of alternative explanations, models, hypotheses and processes in the design of experiments and the analysis of data. This presentation compares two viewpoints on the need for empirical theory in software engineering and highlights the difficulty in describing the real world phenomena being studied in empirical research and the inductive process used. Examples are provided of research programs in inspections and formal methods to highlight the difference between theory and non-theory based research, and how that influences the research questions and the use of inductive and deductive methods. The contrast between scientific method and engineering method and theories is explored and then used to analyze the current state of practice of research in empirical software engineering as published in the International Journal of Empirical Software Engineering in 2017. Based on this analysis recommendations are made concerning the better use of both the engineering method and the scientific method in software engineering research.
Ross Jeffery is Emeritus Professor of Software Engineering in the School of Computer Science and Engineering at UNSW and researcher at CSIRO Data61. He was previously Program Leader in Empirical Software Engineering in National ICT Australia (NICTA). Prior to that he was Director of the Centre for Advanced Software Engineering Research (CAESER) at The University of New South Wales. Prior to his position in Computer Science, Professor Jeffery was the founding Head of the School of Information Systems at UNSW from 1989 to 1995 and Associate Dean (Technology) for the Faculty of Commerce and Economics from 1996 to 1999. He was the founding Chairman the Australian Software Metrics Association (ASMA) where he served as Chairman from its inception for a number of years. Initial presentations in Sydney, Canberra and Melbourne by Professor Jeffery resulted in formation of ASMA chapters in those cities. The ASMA is an example of one of the very first instances in the world of an industrially based collection of empirically measured experience. He was Chairman of the IEAust/ACS Joint Board on Software Engineering. He was also instrumental in creating the Australian Conference on Information Systems for which he was General Chair for the first two meetings and Software Engineering Australia (SEA) where he served as one of the initial company Directors. He has served on the editorial board of the IEEE Transactions on Software Engineering, and the Wiley International Series in Information Systems, and was Associate Editor of the Journal of Empirical Software Engineering. He edited a special issue of the IEEE Transactions on Software Engineering on empirical research in Software Engineering. He has also been on the steering committee of the IEEE and ACM International Conference on Software Engineering and served as Program Co-chair for the 1995 conference in Seattle. He is a founding member of the International Software Engineering Research Network (ISERN). He was elected Fellow of the Australian Computer Society for his contribution to software engineering research. His research interests are in data governance, software engineering process and product modelling and improvement, software quality, software metrics, software technical and management reviews, and software resource modelling and estimation. His research has involved over fifty government and industry organizations and has been funded from industry, government and universities. He has also held positions at The University of Queensland, University of Maryland, and University of Minnesota. He has co-authored five books and over two hundred research papers.
DYNAMICALLY CUSTOMIZABLE SAFETY-CRITICAL EMBEDDED SOFTWARE
Today, many industrial products are defined by software and therefore customizable by installing new applications on demand. Their functionalities are implemented by software and can be modified and extended by software updates. This trend towards customizable products is rapidly expanding into all domains of IT, including Embedded Systems deployed in cars, robotics, and medical devices etc. The current state-of-practice in safety-critical systems allows hardly any modifications once they are deployed. This work aims to supply the missing paradigms and technologies for building and updating safety-critical embedded systems after deployment – subject to stringent timing constraints, dynamic workloads, and limited resources on complex platforms. Essentially there are three key challenges: Composability, Resource-Efficiency and Predictability to enable modular, incremental and safe software updates over system life-time in use. We present research directions to address these challenges: (1) Open architectures and implementation schemes for building composable systems, (2) Fundamental issues in real-time scheduling aiming at a theory of multi-resource (inc. multiprocessor) scheduling, and (3) New-generation techniques and tools for fully separated verification of timing and functional properties of real-time systems with significantly improved efficiency and scalability.
Professor of Embedded Systems at Uppsala University since 2000, PhD in Computer Science from Chalmers, 1991. Distinguished Professor, Northeastern University, China. Interested in Cyber-Physical Systems, Scheduling and Formal Verification. Fellow of IEEE, Member of Academy of Europe and Member of Royal Society of Sciences. Receipent of CAV 2013 Award, Best Paper Awards of RTSS15, ECRTS15, DATE13 and RTSS09 and Outstanding Paper Award of ECRTS12. Board member of ACM SigBed and Selection Committee Chair of ACM Paul Caspi Dissertation Award. Steering Sommittee coChair of EMSOFT, SC member of ESWEEK and ACM LCTES. Editor for journals: ACM Transactions on Embedded Computing and Systems, IEEE Embedded Systems Letters, IEEE Design and Test, Journal of Computer Science and Technology (Chinese Academy of Sciences) and IEEE Transactions on Computers (2002-2007).