日本ソフトウェア科学会 第30回大会 実践的IT教育研究グループ (rePiT)セッションに予稿「プロジェクト型演習に基づく実践的IT講座における共通性の分析と教育効果の評価」を投稿しました.

鷲崎 弘宜、伊永 祥太、山田 佑輔、筧 捷彦、深澤 良彰、山戸 昭三、大久保 雅司、”プロジェクト型演習に基づく実践的IT講座における共通性の分析と教育効果の評価”、日本ソフトウェア科学会 第30回大会、東京大学本郷キャンパス、2013年9月10-13日 (PDF)

概要

産学における高度 IT 人材育成への危機意識の高まりを受けて,実務に即した内容やプロジェクトマネジメント,さらにはヒューマンスキルを,プロジェクト型演習を中心として産学連携により教育する実践的 IT 講座の設置が様々な大学で進められている.早稲田大学基幹理工学部情報学科においては,発注側・経営側の視点に立った情報システムの企画・活用を,仮想事例を題材とした仮想プロジェクト形式で学習する講座を産学連携で実施している.本稿では、効率的および効果的な産学連携による実践的講座の設計と実施を検討するうえで参考となるように,早稲田大学を含む複数の大学における実践的講座を対象として,フィーチャモデリングにより実践的講座の共通性と可変性を分析した結果を報告する.さらに本稿では,そのような実践的講座の教育効果を評価する試みの一つとして,早稲田大学の事例を対象に,アンケート調査や講座履修前後の知識・技能評価を実施した結果を報告する.

Our paper titled “Analyzing effectiveness of workshops for learning agile development” has been accepted at Agile 2013 Conference (Agile 2013).

Shota Suzuki, Hironori Washizaki, Ryushi Shiohama, Masashi Kadoya, Yoshiaki Fukazawa, “Analyzing effectiveness of workshops for learning agile development,” Proceedings of Agile 2013 Conference (AGILE 2013), pp.XX-YY, Nashville, August 5-9, 2013. (PDF)

Abstract

Workshops are sometimes known as effective ways to learn the human and social factors of software engineering. However, their effectiveness in learning agile development principles in particular has not yet been determined, despite the fact that numerous agile development workshops have been held over the years. In this paper, we analyze the effectiveness of agile development workshops through an experiment, and show that one of representative workshops is indeed effective at learning agile principles. Self-study is another commonly used method to learn something new. Therefore, we compare the effectiveness of workshops with that of self-study to better illustrate the effectiveness of agile development workshops. In our experiment, we examine 7 workshop subjects and 8 selfstudy subjects, and compare their scores on the agile mind check, which is a method used to measure their degree of mastery of agile principles. As a result, we demonstrate the effectiveness of agile development workshops, especially those that simulate actual experiences. We also show that one of workshops is more effective than self-study regarding the agile mind check score.

Our paper titled “Validating Security Design Pattern Applications Using Model Testing” has been accepted at 8th International Conference on Availability, Reliability and Security (ARES2013).

Takanori Kobashi, Nobukazu Yoshioka, Haruhiko Kaiya, Hiroyoshi Washizaki, Yoshiaki Fukazawa, “Validating Security Design Pattern Applications Using Model Testing,” Proceedings of 8th International Conference on Availability, Reliability and Security (ARES2013), pp.XX-YY, University of Regensburg, Germany, September 2-6, 2013.(PDF)

Abstract

Software developers are not necessarily security specialists, security patterns provide developers with the knowledge of security specialists. Although security patterns are reusable and include security knowledge, it is possible to inappropriately apply a security pattern or that a properly applied pattern does not mitigate threats and vulnerabilities. Herein we propose a method to validate security pattern applications. Our method provides extended security patterns, which include requirement- and design-level patterns as well as a new model testing process using these patterns. Developers specify the threats and vulnerabilities in the target system during an early stage of development, and then our method validates whether the security patterns are properly applied and assesses whether these vulnerabilities are resolved.

Our paper titled “Recovering Traceability Links between Requirements and Source Code in the Same Series of Software Products” has been accepted at 17th International Software Product Line Conference (SPLC 2013).

Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Tadahisa Kato, Masumi Kawakami, Kentaro Yoshimura, “Recovering Traceability Links between Requirements and Source Code in the Same Series of Software Products, ” Proceedings of 17th International Software Product Line Conference (SPLC 2013), pp.XX-YY, Tokyo, August 26-30, 2013. (PDF)

ABSTRACT

If traceability links between requirements and source code are not clarified when conducting maintenance and enhancements for the same series of software products, engineers cannot immediately find the correction location in the source code for requirement changes. However, manually recovering links in a large group of products requires significant costs and some links may be overlooked. Here, we propose a semi-automatic method to recover traceability links between requirements and source code in the same series of large software products. In order to support differences in representation between requirements and source code, we recover links by using the configuration management log as an intermediary. We refine the links by classifying requirements and code elements in terms of whether they are common or specific to
the products. As a result of applying our method to real products that have 60KLOC, we have recovered valid traceability links within a reasonable amount of time. Automatic parts have taken 13 minutes 36 seconds, and non-automatic parts have taken about 3
hours, with a recall of 76.2% and a precision of 94.1%. Moreover, we recovered some links that were unknown to engineers. By recovering traceability links, software reusability will be improved, and software product line introduction will be facilitated.

http://splc2013.net/

論文”パターンの構造化を利用したパターンランゲージの拡充”が電子情報通信学会論文誌 特集号「ソフトウェア基礎・応用特集」に採択されました。

中野聡之, 角谷将司, 鈴木翔太, 鷲崎弘宜, 深澤良彰, 羽生田栄一, 本橋正成, 三上 徹也, “パターンの構造化を利用したパターンランゲージの拡充”, 電子情報通信学会論文誌, Vol.XX, No.YY, pp.XX-YY, 2013. (PDF)

概要

多数のパターンからのパターンランゲージの構築により,体系化されたパターン名を用いて言語として円滑なコミュニケーションが可能となり,思考や情報の共有が容易となる.しかし,パターンの抽出のための従来手法では,関連を伴う多くのパターンを抽出することは困難である.そこで我々は,既知のパターンのモデル化とそれに基づく構造変形を利用して,関連するパターンの候補群を導出する手法を提案する.提案手法を用いることで,既知のパターンと関連するパターンを現実的な時間で導出できる.

Our paper titled “Investigating the relationship between project constraints and an appropriate iteration length in agile development by conducting simulation” has been accepted by International Journal of Computer Applications in Technology (IJCAT).

Ryushi Shiohama, Hironori Washizaki, Shin Kuboaki, Kazunori Sakamoto and Yoshiaki Fukazawa, “Investigating the relationship between project constraints and an appropriate iteration length in agile development by conducting simulation,” International Journal of Computer Applications in Technology (IJCAT), Vol.XX, No.YY, pp.XX-YY, 2013. (PDF)

Abstract

Agile development is aimed at minimizing overall risk and encouraging rapid and flexible response to specification changes by using an iterative process. Despite its iterative feature, studies on the effects of iteration length have been lacking. Currently, there is no established method to quantitatively determine the appropriate iteration length, and abortion of projects with an inappropriate iteration length has been reported. We therefore create a model of agile development that focuses on iteration length, and propose a method of simulating a particular project to estimate the appropriate iteration length.  urthermore, we simulate diverse situations using various parameters to understand the relationship between the iteration length and project constraints. Our results show that the appropriate iteration length depends on the condition of the project constraints; the larger the amount of uncertainty, the shorter the appropriate iteration length, while the higher the complexity of the project, the longer the iteration length should be.

Our paper titled “A Generalized Software Reliability Model Considering Uncertainty and Dynamics in Development” has been accepted at 14th International Conference of Product Focused Software Development and Process Improvement (PROFES 2013).

Kiyoshi Honda, Hironori Washizaki, YoshiakiFukazawa, “A Generalized Software Reliability Model Considering Uncertainty and Dynamics in Development,” Proceedings of 14th International Conference of Product Focused Software Development and Process Improvement (PROFES 2013), pp.342-346, Paphos, Cyprus, June 12-14, 2013. (PDF)

Abstract

Development environments have changed drastically in recent years. The development periods are shorter than ever and the number of team has increased. These changes have led to difficulties in controlling the development activities and predicting the end of developments. In order to assess recent software developments, we propose a generalized software reliability model based on a stochastic process, and simulate developments that include uncertainties and dynamics, such as unpredictable requirements changes, shortening of the development period, and decrease in the number of members. We also compare our simulation results to those of other software reliability models. Using the
values of uncertainties and dynamics obtained from our model, we can evaluate the developments in a quantitative manner.

Our paper titled “Mutation Analysis for JavaScript Web Applications Testing” has been accepted at 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013).

Kazuki Nishiura, Yuta Maezawa, Hironori Washizaki, Shinichi Honiden, “Mutation Analysis for JavaScript Web Applications Testing,” Proceedings of 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013), pp.159-165, Hyatt Harborside at Logan Int’l Airport, Boston, June 27-29, 2013. (PDF)

Abstract

When developers test modern web applications that use JavaScript, challenging issues lie in their event-driven, asynchronous, and dynamic features. Many researchers have assessed the adequacy of test cases with code coverage criteria; however, in this paper, we show that the code coverage-based approach possibly misses some faults in the applications. We propose a mutation analysis approach for estimating the fault-finding capability of test cases. We assume that developers can find overlooked fault instances and improve the test cases with the estimated capability. To create a set of faulty programs, i.e., mutants, we classify the JavaScript features in web applications and then define a comprehensive set of mutation operators. We conducted a case study on a real-world application and found that our approach supported the improvement of test cases to expose hand-seeded faults by an extra ten percent.

Our paper titled “Comparative Evaluation of Programming Paradigm: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming” has been accepted at 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013).

Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa, “Comparative Evaluation of Programming Paradigm: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming,” Proceedings of 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013), pp.594-599, Hyatt Harborside at Logan Int’l Airport, Boston, June 27-29, 2013. (PDF)

Abstract

There are many programming paradigms for the separation of concerns (SoC). Each paradigm modularizes concerns in a different way. Context-oriented programming (COP) has been developed as a supplement to objectoriented programming (OOP), which is one of the most widely used paradigms for SoC. It modularizes concerns that are difficult for OOP. In this paper, we focus on three paradigms – OOP, aspect-oriented programming (proposed as a supplement to OOP that has a different approach from COP), and COP – and study whether COP can modularize concerns better than other two paradigms in given situations. Then we determine the reasons why COP can or cannot better modularize concerns.

Our paper titled “Extended Design Patterns in New Object-Oriented Programming Languages” has been accepted at 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013).

Kazunori Sakamoto, Hironori Washizaki, Yoshiaki Fukazawa, “Extended Design Patterns in New Object-Oriented Programming Languages,” Proceedings of 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013), pp.600-605, Hyatt Harborside at Logan Int’l Airport, Boston, June 27-29, 2013. (PDF)

Abstract

Most of design patterns are implemented in major object-oriented programming languages such as C++ and Java. However, newer object-oriented programming languages than such languages has new language features which can improve implementations of design patterns. In this paper, we propose two extended design patterns called customizable state pattern and deeply immutable pattern. We compares implementations of our design patterns in Java, C++ and eight new object-oriented programming languages through our motivating example. As a result, we confirmed new languages, in particular Scala, improved implementations of our design patterns.