Knowledge Co-Creation - Profiles of researchers
Establishing a Unified Systems and Software Engineering Platform by Combining Soft Approaches and Hard Approaches
Professor, Faculty of Science and Engineering, Waseda University
Crucial Areas Bordering Management, Systems and Software
Since my undergraduate years, my major and interests have always been software engineering. I started doing simple programming to create games and drawing software back when I was in elementary school. Eventually, I started to think about how to write programs in ways that are simpler and more fun, and became interested in software development methodologies.
Software engineering focuses on the developmental and operational processes of software such as software architecture, evaluation, verification, quality management, componentization, and reusability. After conducting much of this research in collaboration with over 25 companies, I began to think that software engineering, in a narrow sense of the term, is limited to solving problems that directly affect the development and actual operation of software. These problems often occur in the outer boundaries that are shared with the realms of management, organization, and personnel training. I started getting a sense that without a strong understanding of the realms of management and business, the software development process cannot improve in any fundamental way.
Although there is some recognition of software engineering of the importance of the surrounding realms in the world, at the core of its research, the main focus is still on the analytical facets of software itself, and research into software and its connection to the real world is still weak. Recently, I have been trying to make the point of assertively promoting the importance of having wider definitions of systems and software engineering that take management systems and social systems into consideration.
The key to making these connections requires a combination of a "soft" approach, which involves finding solutions flexibly and heuristically from the objective itself, and a "hard" approach, which is to take an analytical perspective based on clear objectives. One example of the former is to further advance the development of patterns surrounding the analysis and knowhow of organizational environments. An instance of the latter is to further advance the analysis of requirements and implementation of systems and software, as well as the reusability and quality assurance that are supported by data. The objective is to establish a seamless combination of the "soft" and "hard" approaches by maintaining the traceability of organizational environments and the systems and software it contains, as well as through data verification and machine learning to study patterns.
This effort to broaden the horizon of software engineering based on the research of "soft" and "hard" approaches has been what I am good at, and I hope to further strengthen it in the future. It is only recently that I began feeling confident enough to say this. I believe I was able to reach this point because I have been paying attention to this and attending research societies and academic conferences in fields and realms outside my expertise since I was a university student.
Software and Pattern Language
I have created the figure below to illustrate the state that I believe software engineering should aim for (Figure 1). At the center are the fundamental concepts and technologies that support systems and software engineering. I took some of the surrounding elements that have largely been dismissed in the past, such as the various processes of development and actual operation, and management at the bottom, and engaged in many projects by performing verification using data to conduct theoretical analyses through collaborative research with companies. Furthermore, we organized a project-based research institute called the Global Software Engineering Laboratory, and in cooperation with my colleagues, who are professors at the Faculty of Science and Engineering, we have strived to establish a unified systems and software engineering platform that takes a wider approach.
Figure 1: Systems and software development process and engineering concepts
The management and processes drawn on the lower part of the figure are areas that software engineering, in a narrow sense of the term, has yet to sufficiently address. We have been expanding into these areas recently, and have been engaging in efforts to implement software engineering in the widest sense of the term, including organizational environment, strategy, and organizational objectives. This enables us to develop highly effective systems and software efficiently by first drawing on abstraction and patternizing from the top level, taking suitable design requirements of the system and software and developing them, and then analyzing the developed system/software and the developmental and operational data to achieve modularization for reusability and increased reliability.
When engaging in these efforts, it is also important to consider the process of patternizing the knowhow and basic principle that surround project management, as well as development and operation. In actual working environments, there are many unique patterns that have not been clearly defined in words. Often times, those in the actual working environments know the best methods well, but they remain as tacit knowledge and are not clearly communicated. It is important to properly identify these methods as patterns and reflect them in systems and software processes to connect them and help further advance management, development, and operation. In addition, by supporting these patterns with theories and data, their effects and limitations become clear, making new developments and improvements that had initially been overlooked possible. In order to achieve this, the appropriate combination of a soft approach and a hard approach is indispensable.
In software engineering, designers are called architects, and the system structure is called architecture. Much of the basic terminology uses metaphors from construction and architecture. Even the term "patterns" is derived from the term "pattern language," a methodology developed by the architect and urban planner Christopher Alexander. This methodology claims that cities, communities, and environments that we consider pleasant or comfortable are not designed from scratch on the desks of experts—they are built on the collection of human memories, sensations, and cultural patterns. The same logic can be applied to systems and software. Programs are not created simply by writing codes using a predefined set of rules, but also by considering the various fundamental principles that underlie it, such as organizational strategy, cultural elements, and other factors. These kinds of discussions have been taking place since the 1990s.
Together with the participants of the first Asian PLoP held in 2010 (front row center)
An international conference called PLoP (Pattern Languages of Programs) started in 1994, and smaller regional conferences have formed all over the world under it. An unofficial conference called "Japan PLoP" was held in Japan in 1999, and the "Pattern Working Group" was established in 2003 under the Software Engineering Special Interest Group of the Information Processing Society of Japan, where I served as a coordinator. In addition, in an effort to spread this conference to the entire Asian region, we launched Asian PLoP in 2010, which was held at Waseda University. It was held again in 2011 and 2014, and I served as the chairman for all those events. In March 2018, we are planning to hold the conference again at Waseda University, for which I will again serve as the chairman. Naturally, we discuss matters related to software and information systems at these conferences, but we have also recently started discussing the patterns that are present in a wider range of fields, such as in corporate management, education, culture, and society. This wider approach enables us to engage with the community beyond the boundaries of our expertise and to engage in interdisciplinary efforts to lay the groundwork for encouraging innovation.
Opening the AI and IoT Business School
Finally, the most important part is people. No matter how advanced technology and management methods become, the results will remain the same if the knowledge, skills, and attitudes of the people who are involved do not change. Furthermore, the source that creates new technologies and management methods are people as well. Therefore, we are also committed to cultivating talent and verifying the effectiveness of educational programs. One pillar of this effort is to train working adults and college students, and the other pillar is to educate the children who will inherit the future.
For the former, when I was working in the National Institute of Informatics, I served as one of the founding members of the "Top SE," a training program for software engineers that support the learning of advanced software science and engineering. Under the slogan "Cultivating Super Architects who will drive the software industry forward to the next generation," we struggled to create a new educational program from scratch at first, but many of the students who completed the course went on to produce steady results in various fields. In addition, organizing the technology and knowhow helped me cultivate my own skills.
10 years have passed since then, and now, we will launch the "Smart SE" (Smart Systems and Services Innovative Professional Education Program) in 2018 with a grant “enPiT-Pro” offered from the Ministry of Education, Culture, Sports, Science and Technology (Figure 2). This will be a "smart" version and will incorporate future-oriented technologies such as IoT, cloud, big data, and AI. The goal is to cultivate human resources who will drive the development of systems and software forward. Working under the banner of a business school focusing on the fields of AI and IoT and based on our extensive industry-academia network (Figure 3) including 13 universities and 21 organizations (and over 5,000 member companies), we plan to train 3,000 people in four years. In addition to technological skills, we also aim to cultivate human resources who can integrate their skills into corporate business strategy. Our success will be measured by how well we can teach the participants to go beyond boundaries and demonstrate their skills across different fields.
Japan is lagging behind in promoting computer science and programming education for children. It is of course important to offer children more opportunities to experience computers and learn about programming, but we should also make sure that they are provided with meaningful content by properly analyzing what skills and knowledge that the children can attain by using which tools, and through which teaching methods.
At the G7 Programming Learning Summit
In line with this, we have been providing opportunities since 2016 to experience programming and to research effective learning methods through our "G7 Programming Learning Summit" held at our university campuses and at other venues, in cooperation with Fuji Television Kids and other organizations. We have gathered tools from all over the world to teach children about programming, and in an effort to give children in Japan a chance to experience these tools, we have created a framework called a "rubric" to evaluate their learning progress. With the rubric, we conducted learning observations and questionnaires to analyze the effectiveness of this learning and education program. Each tool and learning method has certain advantages, and by backing these findings with data, I believe we will be able to offer learning experiences based on firm scientific evidence, allowing for further development.
10 years have passed since I assumed my position at this university. At this critical juncture, I had the honor of receiving two awards: the Waseda Research Award (High-Impact Publication) and the Teaching Award (President's Award). In the next 10 years, I want to use my experience in both research and education to continue my efforts to link my research into the "soft" and "hard" approaches with my research into the surrounding fields. Instead of taking a broad but shallow approach, I would like to pursue a broad and deep approach in my research.
Professor, Faculty of Science and Engineering, Waseda University
Born in 1976, Hironori Washizaki graduated from the School of Science and Engineering at Waseda University with a bachelor’s degree in Information Science in 1999, a master’s degree in Information Science in 2001, and a doctorate degree of the same specialization in 2003. He became a research associate at Waseda University in 2002, and then a research associate at the National Institute of Informatics in 2004. In 2005, he became a research associate at the Graduate University for Advanced Studies. Then, in 2007, he became an assistant professor at the National Institute of Informatics, and an assistant professor at the Graduate University for Advanced Studies. In 2008, he became an associate professor in the Faculty of Science and Engineering at Waseda University, and a visiting associate professor at the National Institute of Informatics. In 2016, he became a professor at Waseda University, and a visiting professor at the National Institute of Informatics. His specialization lies in research and education in systems and software engineering, specifically in reusability and quality assurance. He has won many awards. He has also served as an editorial committee member in international journals and has served as chairman in international conferences. Click here for more information.