Software modeling is an activity to abstract specific aspects of complex software problems and/or solutions in simple and cost-effective representations (i.e. models) and manipulate them to clarify, share, discuss and modify these aspects. We are focusing on the nature of modeling activity, quality of models and goal-oriented requirements engineering.
Goal Oriented Requirements Engineering
To achieve overall business goals, GQM+Strategies is an approach that aligns the business goals at each level of an organization to strategies and assesses the achievement of goals. Strategies derived from business goals are based on rationales (context factors and assumptions). Because extracting all rationales is an important process in the GQM+Strategies approach, we propose Context-Assumption-Matrix (CAM), which refines the GQM+Strategies model by extracting rationales based on the analysis of the relationships between stakeholders, and the Context Assumption (C/A) definition template to unify the expressive style of contexts and assumptions. To demonstrate the effectiveness of CAM, we conducted an experiment involving 43 students majoring in information sciences at Shimane University in Japan. GQM+Strategies with CAM can extract rationales more efficiently and exhaustively than GQM+Strategies alone. Moreover, when the management policy or the business environment changes, GQM+Strategies with CAM can analyze the rationales and the GQM+Strategies grid easily.
- Takanobu Kobori, Hironori Washizaki, Yoshiaki Fukazawa, Daisuke Hirabayashi, Katsutoshi Shintani, Yasuko Okazaki, Yasuhiro Kikushima, “Identifying rationales of strategies by stakeholder relationship analysis to refine and maintain GQM+Strategies models,” Proceedings of the 15th International Conference of Product Focused Software Development and Process Improvement (Profes 2014), Helsinki, Finland, 10-12 December 2014. (to appear)
Patterns in Software Design Activity
The activities of software analysis and design are important because they are the ﬁrst steps in the software development. The objective of this paper is to identify the patterns that emerge during these activities. Identifying these patterns is important because we can imitate the patterns that increase our productivity and avoid the patterns that decrease our productivity. The patterns are made from sequences the logical actions “Create”, “Delete” and “Rename” applied on the elements of the design diagrams. These actions are collected when creating UML class diagrams with the open source modeling tool ArgoUML. The patterns found are of two types: micro-patterns and macro-patterns. These patterns were related to different design strategies such as top down, breadth ﬁrst.
- Jonatan Hernandez, Hironori Washizaki and Yoshiaki Fukazawa, “Macro and Micro Patterns in the Software Design Activity,” 10th Joint Conference on Knowledge-Based Software Engineering (JCKBSE 2012), August 23-26, 2012. (PDF)
- Jonatan Hernandez, Hironori Washizaki, and Yoshiaki Fukazawa, “Using an Automatic Collection Method to Identify Patterns during Design Activity,” Proceedings of 11TH Joint Conference on Knowledge-Based Software Engineering (JCKBSE 2014), 17-20, September, Volgograd, Russia (to appear) (JCKBSE2014_216.pdf)
Quality of Design Models
UML class diagrams representing the static structure of the relations between different concepts existing in a problem are widely used in model-based software development. However, no effective measures of a class diagram’s understandability yet exist. We have devised quantitative measures of a class diagram’s understandability and evaluated their validity. We obtained strong correlations between the domain experts’ subjective evaluations of the understandability of a class diagram and the measurements of our methods. These results indicate that our measures can effectively quantify the understandability of class diagrams.
- Yuto Nakamura, Kazunori Sakamoto, Kiyohisa Inoue, Hironori Washizaki and Yoshiaki Fukazawa, “Evaluation of Understandability of UML Class Diagrams by Using Word Similarity,” The Joint Conference of the 21st International Workshop on Software Measurement (IWSM) and the 6th International Conference on Software Process and Product Measurement (Mensura), 2011. (PDF)
- 志水理哉, 伊藤弘毅, 田邉浩之, 波木理恵子, 鷲崎弘宜, 深澤良彰, “設計段階における抽象度を考慮したソフトウェアの保守性評価枠組み”, 第18回 ソフトウェア工学の基礎ワークショップ FOSE 2011 in 浅虫温泉, 2011. (PDF)
- 鷲崎弘宜、満田成紀、小林靖英、渡辺博之、沢田篤史、二上貴夫、”MDDロボットチャレンジ2004: モデル講評”、MDDロボットチャレンジ2004資料集、2005. (mdd2004eval_final2.pdf)
- Naohiko Tsuda, Hironori Washizaki, Yoshiaki Fukazawa, “Evaluating Structural Validity of UML Class Diagrams by Measuring the Number of Highly Responsible Classes,” Proceedings of the 13th IASTED International Conference on Software Engineering (SE2014), pp.46-53, Innsbruck, Austria, February 17 – 19, 2014. (iastedDocVer5-6eng.pdf)
Model-Driven Development and Security Patterns
We are conducting researches on model-driven development with special emphasis on application and verification of security requirements and design patterns. See Research: Software Security.
Detecting Design Patterns and Survey
The understandability, maintainability, and reusability of object-oriented programs could be improved by automatically detecting well-know design patterns in programs. Many of the previous detection techniques are based on static analysis and use strict conditions composed of class structure information. Hence, it is difficult for them to detect design patterns in which the class structures are similar. Moreover, it is difficult for them to deal with diversity of design pattern applications. We propose a design pattern detection technique using metrics and machine learning. Our technique judges candidates for the roles that compose the design patterns by using machine learning and measurements of metrics, and it detects design patterns by analyzing the relations between candidates. It suppresses false negative and distinguishes patterns in which the class structures are similar. We conducted experiments comparing our technique with two previous techniques. These results showed that our technique was more accurate than the previous techniques.
- Satoru Uchiyama, Atsuto Kubo, Hironori Washizaki, Yoshiaki Fukazawa, “Design Pattern Detection using Software Metrics and Machine Learning”, Fifth International Workshop on Software Quality and Maintainability (SQM2011), 2011. (PDF)
- 鷲崎弘宜, 深谷和宏, 久保淳人, 深澤良彰, “パターン適用前のソースコードを用いたデザインパターン検出”, コンピュータソフトウェア, Vol.27, No.2, pp136-141, 2010.(PDF)
- 鷲崎弘宜, 坂本一憲, 大杉直樹, 権藤克彦, 服部哲, 久保淳人, 小林隆志, 大月美佳, 丸山勝久, 榊原彰, “デザインパターンへのソフトウェア工学的取り組み”, コンピュータソフトウェア, 岩波書店, Vol.29, No.1, pp.1_130-1_146, 2012.(PDF)
- Satoru Uchiyama, Atsuto Kubo, Hironori Washizaki, Yoshiaki Fukazawa, “Detecting Design Patterns in Object-Oriented Program Source Code by using Metrics and Machine Learning”, Special Issue on Design Patterns, Journal of Software Engineering and Applications, Vol.7, No.X, pp.XX-YY, 2014. (to appear) (JSEA-DP-2014.pdf)
Model-based Development and Model Clone Analysis
Simulink models represent program as block diagrams for usually control system design. In large scale models or a large number of models, duplicated parts called “clones” could reduces the maintainability of models. To overcome such issue, there are existing researches on detecting perfect-matching clones; however these researches are not adequate for detecting imperfect-matching clones made by some partial modifications after copied and pasted. We propose a technique for detecting imperfect-matching clones in Simulink models efficiently by combining the existing perfect-matching clone detection technique and a fast apriori-based graph mining algorithm. We implemented the proposed technique as a detection tool and confirmed that the tool can detect imperfect-matching tools by applying it to several control system design models. It is expected that models could be easily maintained by detecting such clones by the technique, and recording and managing them.
- 鷲崎弘宜, 村上真一, 深澤良彰, “Simulinkモデルにおける非完全一致のクローンの検出”, 組込みシステムシンポジウム2012 ESS2012, 2012. (PDF)