1378 IEICE TRANS. INF. & SYST., VOL.E89–D, NO.4 APRIL 2006 PAPER Special Section on Knowledge-Based Software Engineering Supporting Application Framework Selection Based on Labeled Transition Systems Teruyoshi ZENMYO †∗ , Member, Takashi KOBAYASHI †† , Nonmember, and Motoshi SAEKI a) , Member SUMMARY Framework technology is one of the promising ap- proaches to reuse eectively software and its key issues are 1) to select the suitable frameworks for the software requirements specification, and 2) to fill the suitable hot spots with application-specific codes (customiza- tion). This paper proposes a new technique for automated support of the above issues by using labeled transition systems (LTSs) together with met- rics technique. We model the behavior of the frameworks and the system behavior specified in the requirements specification by using two LTSs re- spectively. By establishing bisimilar relationship between the two LTSs, we check whether the behavior of the framework can match to the require- ments and explore how to fill its hot spots. This process is done by means of constructing a graph to extract the bisimilar relationships, and each path of the graph denotes one of the implementations of the requirements by the framework. We attach some measures to the LTS of the framework, such as the number of the hot spots to be filled and the number of the parameters to be set up when filling the corresponding hot spot. These measures are used to estimate developer’s eorts in filling the hot spots for each implemen- tation, i.e. for each path of the graph. The result of estimating the eorts guides the developers to select the implementation, and the structure of the application-specific codes to be filled in can be automatically generated from the selected implementation. Furthermore we discuss case studies in the area of Web application, where Struts and Turbine can be used. key words: application framework, labeled transition system 1. Introduction Framework technology[1] based on object-oriented con- cepts is one of the promising approaches to reuse eec- tively software and becomes very popular even for practi- tioners. We have got various kinds of practical frameworks nowadays, especially Jakarta Struts and Turbine [2] are well known and frequently used in the area of Web application development. A framework can be considered as a incomplete source code, and has specific “blank” places, so called hot spots, which the developers fill in with application-specific codes, so that it becomes a complete implementation satisfying the requirements specification. We call this task of filling the code customization. Software development processes using frameworks are dierent from conventional ones; first of all, developers select a set of the frameworks suitable for imple- menting the requirements specification, and then they iden- Manuscript received June 30, 2005. Manuscript revised October 12, 2005. The authors are with the Dept. of Computer Science, Tokyo Institute of Technology, Tokyo, 152–8552 Japan. †† The author is with the Global Scientific Information and Com- puting Center, Tokyo Institute of Technology, Tokyo, 152–8552 Japan. Presently, with Toshiba Corporation. a) E-mail: saeki@se.cs.titech.ac.jp DOI: 10.1093/ietisy/e89–d.4.1378 tify which hot spots in the selected frameworks should be used for the development because the frameworks usually have more than one hot spot. By filling application-specific codes in the identified hot spots, i.e. customizing the frame- works, the developers can get the final product. To use eectively frameworks, the key tasks are 1) to select the suitable frameworks and 2) to identify the suitable hot spots and to fill them with application-specific codes. 1. Selecting the suitable frameworks: The developers should select the frameworks by which they can im- plement the requirements and they can do with least development eorts. To fill application-specific codes in the hot spot so that the framework can work well as a program, the developers should write the application- specific codes and set up parameters specific to the hot spot. These eorts to do greatly depend on the selected frameworks and their hot spots. 2. Identifying the suitable hot spots and fill them with application-specific codes: Since usually more than one hot spot are available to achieve the application- specific requirements, the developers should decide which hot spots should be actually used. They select the hot spots so that they can achieve the requirement with least development eorts. What code the hot spot should be filled with greatly depends on the hot spots. The above tasks to use frameworks require of the developers much knowledge about a family of frameworks of a prob- lem domain. Automated support for the tasks to select the frameworks and to fill the application-specific codes in their hot spots is necessary for the developers, even non-experts to the frameworks. This paper proposes a new technique to support the above tasks by using computer, i.e. by using this technique, non-experts of the frameworks can be guided to select the suitable frameworks for the requirements specification and to decide which hot spots are filled in with what application specific codes. We focus on the behavioral aspects of requirements specifications and of frameworks, and check whether the be- havior of the framework can match to the system behavior specified with the requirements specification. If the behav- ior of the selected framework matches to the requirements, we consider that it can implement the requirements. We model the behavior of frameworks and the system behavior of the requirements specification by using two labeled tran- sition systems (LTSs) respectively. By establishing bisimilar Copyright c 2006 The Institute of Electronics, Information and Communication Engineers