{"title":"Accurate call graph extraction of programs with function pointers using type signatures","authors":"Darren C. Atkinson","doi":"10.1109/APSEC.2004.16","DOIUrl":"https://doi.org/10.1109/APSEC.2004.16","url":null,"abstract":"Software engineers need to understand programs in order to effectively maintain them. The call graph, which presents the calling relationships between functions, is a useful representation of a program that can aid understanding. For programs that do not use function pointers, the call graph can be extracted simply by parsing the program. However, for programs that use function pointers, call graph extraction is nontrivial. Many widely used C programs utilize function pointers for efficiency and ease of implementation. We present a technique called type signature filtering for improving call graph extraction in the presence of function pointers. Filtering can be accomplished in a single pass after pointer analysis is complete, making it reusable across different analyses. Our results show that for many programs our technique yields a call graph that is nearly identical to the true call graph, even if a naive pointer analysis is used.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"43 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132571436","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A systematic method to identify software components","authors":"Soo Dong Kim, Soo-Ho Chang","doi":"10.1109/APSEC.2004.11","DOIUrl":"https://doi.org/10.1109/APSEC.2004.11","url":null,"abstract":"In component-based development (CBD), component is the basic unit for reuse and it provides a relatively coarse-grained functionality. A component typically consists of several related objects, where they collaborate in order to carry out system operations. Hence it is essential in CBD to identify components with high cohesion and low coupling. In this article, we propose a systematic UML-based method to identify components. Our approach makes use of clustering algorithms, metrics, decision rules and a set of heuristics. We assume that an object-oriented model for a target domain is available. The method takes these artifacts and transforms them into components in a seamless way.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"215 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114574338","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Dynamic community: a new conceptual framework for supporting knowledge collaboration in software development","authors":"Y. Ye, Yasuhiro Yamamoto, K. Kishida","doi":"10.1109/APSEC.2004.45","DOIUrl":"https://doi.org/10.1109/APSEC.2004.45","url":null,"abstract":"Software development is a knowledge intensive activity and software developers are knowledge workers. Knowledge needed for software development is often distributed among different developers. Supporting efficient knowledge collaboration and transfer is thus essential for software development organizations to remain competitive. This paper proposes a new theory /sub y/namic community to support knowledge collaboration and discusses its application in software development. Dynamic community integrates the traditional knowledge management approach in which knowledge is formalized and accumulated in knowledge repositories, and the community-based knowledge collaboration approach in which knowledge is transferred through informal community participation and human contacts. The dynamic community theory takes into full consideration individual knowledge workers' ever-changing needs for new knowledge as well as the role of social relationship of knowledge workers in effective knowledge collaboration. This paper introduces the dynamic community theory, a general system architecture of sociotechnical environments in support of dynamic community, and its application in software development.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114556545","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Using integrated metamodeling to define OO design patterns with Object-Z and UML","authors":"Soon-Kyeong Kim, D. Carrington","doi":"10.1109/APSEC.2004.108","DOIUrl":"https://doi.org/10.1109/APSEC.2004.108","url":null,"abstract":"Three important goals in describing software design patterns are: generality, precision, and understandability. To address these goals, this paper presents an integrated approach to specifying patterns using Object-Z and UML To achieve the generality goal, we adopt a role-based metamodeling approach to define patterns. With this approach, each pattern is defined as a pattern role model. To achieve precision, we formalize role concepts using Object-Z (a role metamodel) and use these concepts to define patterns (pattern role models). To achieve understandability, we represent the role metamodel and pattern role models visually using UML. Our pattern role models provide a precise basis for pattern-based model transformations or refactoring approaches.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128409241","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"UML CASE tool supporting OLE compound document","authors":"Gilrim Choi, Taegyun Kim","doi":"10.1109/APSEC.2004.105","DOIUrl":"https://doi.org/10.1109/APSEC.2004.105","url":null,"abstract":"Research and development projects, in the past decade, have shown that object-oriented (OO) technology could importantly contribute in productivity and reusability improvement. There are various research areas related to OO technology. Two of major research fields in this area are concerned in issues for CASE tools and component- based technologies. This paper discusses an example of applying component-based technology to a CASE tool. This paper proposes the research experience gained while we have developing OODesigner, an OO CASE tool, with compound document support functionality based on COM/OLE technology. As OODesigner with compound document support has interoperability with other application software of Windows system, it can provide more powerful documentation environment than other CASE tools. OODesigner can be used not only to model UML diagrams, but also to make documentation cooperatively with various kinds of OLE servers and containers. Therefore we can conduct powerful and consistent documentation with the tool. In this paper, we present design issues for incrementally implementing the compound document support facilities as a container and a server and show a brief sample for demonstrating the usability of the OLE enabled CASE tool.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128626848","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Issues on adopting software product line","authors":"Eunman Koh, Sajoong Kim","doi":"10.1109/APSEC.2004.62","DOIUrl":"https://doi.org/10.1109/APSEC.2004.62","url":null,"abstract":"Increasing productivity and quality, and decreasing cost and time to market are common goals of organizations developing a set of similar software intensive products. Software product line (SPL) approaches have involved strategic, planned reuse that differs from earlier software reuse paradigms. SPL is generally composed of two engineering processes: domain engineering for developing core assets (e.g., software architectures and components) and application engineering for developing individual products using the assets. However, adopting SPL is a difficult challenge for organizations that are starting a product line effort for the first time. In this paper, we present some problems with adopting a SPL approach and discuss their solutions.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127183566","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An architectural model to support adaptive software systems for sensor networks","authors":"Hyun-Chong Kim, Ho‐Jin Choi, In-Young Ko","doi":"10.1109/APSEC.2004.22","DOIUrl":"https://doi.org/10.1109/APSEC.2004.22","url":null,"abstract":"Major characteristics of sensor networks, such as node mobility, collaboration among heterogeneous sensors, and environmental changes, require flexible and adaptive software systems. It is also essential to have a mechanism to describe configurations of distributed components and to coordinate the sensors in the network through the configuration information. In this paper, we show how an architectural model can be used to support adaptive software systems for sensor networks. This work is based on our previous work of using an architecture description language (ADL) to represent configurations of software components in sensor nodes and to reconfigure them in response to changing needs of users. We use XML as a means to exchange and manipulate ADL descriptions. To demonstrate how the architecture-based adaptation works for sensor networks, we simulated a scenario of reconfiguring a sensor network to handle node failures.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129153466","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"How to have a successful free software project","authors":"A. Senyard, Martin Michlmayr","doi":"10.1109/APSEC.2004.58","DOIUrl":"https://doi.org/10.1109/APSEC.2004.58","url":null,"abstract":"Some free software projects have been extremely successful. This rise to prominence can be attributed to the high quality and suitability of the software. This quality and suitability is achieved through an elaborate peer-review process performed by a large community of users, who act as co-developers to identify and correct software defects and add features. Although this process is crucial to the success of free software projects, there is more to the free software development than the creation of a 'bazaar'. In this paper we draw on existing free software projects to define a lifecycle model for free software. This paper then explores each phase of the lifecycle model and agrees that, while the bazaar phase attracts the most attention, it is the initial modular design that accommodates diverse interventions. Moreover, it is the period of transition from the initial group to the larger community based development that is crucial in determining whether a free software project will succeed or fail.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"616 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123267875","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Martin Deubler, J. Grünbauer, G. Popp, Guido Wimmel, C. Salzmann
{"title":"Tool supported development of service-based systems","authors":"Martin Deubler, J. Grünbauer, G. Popp, Guido Wimmel, C. Salzmann","doi":"10.1109/APSEC.2004.101","DOIUrl":"https://doi.org/10.1109/APSEC.2004.101","url":null,"abstract":"Service-based systems engineering is a recent paradigm that has proven useful for the development of multifunctional systems, whose functions may be used in different contexts and have strong interrelations and dependencies between each other. Integrated into a service-oriented development process, we present an approach for tool supported design of services and execution scenarios describing their interaction, using the tool AUTOFOCUS. It includes the application of simulation, verification of typical requirements for service-based systems using model checking, and code generation. We report on our experience with this approach by means of a case study from the automotive domain, a fairly new field of application for service-based systems engineering.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116670139","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Modeling COTS-based development and related selection methods processes with MAP","authors":"Sihem Ben Sassi, L. L. Jilani, H. Ghézala","doi":"10.1109/APSEC.2004.66","DOIUrl":"https://doi.org/10.1109/APSEC.2004.66","url":null,"abstract":"COTS-based development (CBD) process consists in five main steps including identifying COTS products candidates, selecting the most appropriate one and assembling it with the other components. In practice, this process is not yet obvious to follow. Many methods are proposed to support one or several steps of the process. But, which method to use and how to apply it still remains problematic. The MAP is a process meta-model proposed to support methods specification and their enactment. We have already used the MAP to express the CBD process, and the MAP was also used to express PORE, a COTS selection method. In this paper, we propose to generalize the use of the MAP to express both the CBD process and COTS related methods, especially selection ones. As a result, the developer is guided in the process of choosing the appropriate method and its application.","PeriodicalId":213849,"journal":{"name":"11th Asia-Pacific Software Engineering Conference","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123778965","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}