Frontier of
Embodiment Informatics:
ICT and Robotics

Top Global University Project: Waseda Goes Global - A Plan to Build a
Worldwide Academic Network that is Open, Dynamic and Diverse

Improving Reliability and Development Efficiency of Software through Analyses and Measurements

Hironori WASHIZAKI, Director, Global Software Engineering Laboratory, Waseda University

Software supports many aspects of daily life in today’s society, especially because numerous modern devices are connected. In this context, the efficient development and maintenance of software that can respond to diverse requirements and environmental changes as well as multi-faceted quality improvements, including functionality, security, and reliability are urgently required. Furthermore, it is imperative that a higher developmental efficiency and reliability are simultaneously achieved.

To improve such technologies, our group evaluates and analyzes various software, developments, and operational data. To practically implement these technologies, we also strive to concurrently realize improved software reliability and developmental efficiency in the context of commercial production through industry–government–academia collaborations. Our research focuses on three specific areas: (1) software componentry by analyzing program resources and efficiently developing software by reusing the analysis results and design patterns, (2) object-oriented quality evaluation based on analyzing characteristics and measurements of software, and (3) simultaneously achieving high reliability and developmental efficiency by analyzing the relationships between resources and software quality in previous projects involving development processes and development teams. The overview of each project is illustrated below.

(1) Reusing at least 60% of high-quality components in a development increases the development efficiency and reliability of software two- to three-fold. However, componentry studies to date have focused on handling components instead of reusing them. Consequently, past approaches cannot handle existing resources whose relationships to requirements are unclear because they were not intended to be reused. Additionally, past approaches lack a mechanism to guarantee reliability. To overcome these shortcomings, we identify the reusable range and generate interfaces to automatically extract components with a high reusability, allowing existing resources originally intended for a single purpose to be reused. Furthermore, we automate traceability against the requirements to improve the reusability. For example, we have successfully realized the automatic recovery of the correspondence between the requirements and programs at a high accuracy in collaboration with Hitachi.

Additionally, many reusable patterns may efficiently incorporate high-quality resources, but their applications and verifications are implemented manually, resulting in a poor efficiency and reliability. To resolve this, we distinguish between the changeable and unchangeable portions in a design pattern and compare the results against specific portions in the application targets, allowing us to automatically apply patterns, search all transition states, and verify the correctness of applications through testing. A few successful examples in this area include our work in conjunction with the National Institute of Informatics and The University of Tokyo to verify rich web application patterns using JavaScript. We have also verified patterns to incorporate security in conjunction with the National Institute of Informatics and the Institute of Information Security. Since 2015, we have been working on applying these results through an international collaboration project with Florida Atlantic University and other institutions with support from the International Information Science Foundation.

(2) Although many measurement methods quantitatively assess software quality, they currently lack a solid foundation in their goals and definitions. As a result, consistent quantitative evaluations encompassing many factors related to quality, development, and operations, are difficult. Our approach realizes a measurement method in an object-oriented manner to record the reasons for the derivation, enabling multi-faceted quality measurements and evaluations. For example, our collaboration with OGIS-RI has resulted in a commercialized multi-faceted quality diagnostic tool for programs, which is finding practical applications in many fields.

(3) Although quality evaluations have been actively studied for software, processes, and resources, how a specific software package affects other software, processes, and resources is not well understood. Thus, our approach uses an object-oriented framework to analyze and measure the characteristics and quality of resources, including software, processes, and teams in a number of past projects, which allows their interactions to be modeled. Our efforts make it easy to plan quality improvements and devise actions. One of our research projects in this area is collaboration with Yahoo! JAPAN in which data in software and projects are measured to diagnose and predict quality. Another project with Fujitsu revealed that a program becomes more complex with a larger number of defects if there are more organizational changes during development. Since 2015, we have been establishing the world’s first benchmark to comprehensively demonstrate the relationships among many aspects of quality in software products with support from the Information-technology Promotion Agency (See Waseda Researchers Started to Work on Establishing World’s First Benchmark in Quality Survey and Evaluation Framework in Software Products).

Click to enlarge