J. Estublier, D. B. Leblang, G. Clemm, R. Conradi, A. Hoek, W. Tichy, Darcy Wiborg Weber
Software configuration management (SCM) is an important discipline in professional software development and maintenance. The importance of SCM has increased as programs have become larger, more complex, and more mission/life-critical. This paper presents a brief summary of a full report that discusses the evolution of SCM technology from the early days of software development to present, and the specific impact university and industrial research has had along the way.
{"title":"Impact of the research community for the field of software configuration management","authors":"J. Estublier, D. B. Leblang, G. Clemm, R. Conradi, A. Hoek, W. Tichy, Darcy Wiborg Weber","doi":"10.1145/581339.581423","DOIUrl":"https://doi.org/10.1145/581339.581423","url":null,"abstract":"Software configuration management (SCM) is an important discipline in professional software development and maintenance. The importance of SCM has increased as programs have become larger, more complex, and more mission/life-critical. This paper presents a brief summary of a full report that discusses the evolution of SCM technology from the early days of software development to present, and the specific impact university and industrial research has had along the way.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121776781","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}
In early 1999, VA Software launched a project to understand how the Internet development community had been able to produce software such as Linux, Apache and Sarnba that was generally developed faster and with higher quality than comparable commercially available alternatives. Our goal was simple: determine how to make more software development projects successful. We discovered that successful Internet community projects employed a number of practices that were not well characterized by traditional software engineering methodologies. We now refer to those practices as collaborative software development or CSD. Late in 1999 we developed the SourceForge platform to make it easy for even small software development projects to employ those practices, and in November of 1999 launched the SourceForge.net Web site based on the SourceForge platform. The site was an overwhelming success, and in less than two years, grew to support more than 27,000 software development projects and over a quarter million software developers worldwide. SourceForge.net affords us an unequaled test bed for understanding CSD. In response to demand from companies seeking to enable CSD within their organizations, we announced a commercial version of the SourceForge platform, SourceForge Enterprise Edition, in August 2001. This paper describes the principles of CSD, the software development pain points those principles address, and our experience enabling CSD with the SourceForge platform.
{"title":"Accelerating software development through collaboration","authors":"L. M. Augustin, D. Bressler, Guy Smith","doi":"10.1145/581339.581409","DOIUrl":"https://doi.org/10.1145/581339.581409","url":null,"abstract":"In early 1999, VA Software launched a project to understand how the Internet development community had been able to produce software such as Linux, Apache and Sarnba that was generally developed faster and with higher quality than comparable commercially available alternatives. Our goal was simple: determine how to make more software development projects successful. We discovered that successful Internet community projects employed a number of practices that were not well characterized by traditional software engineering methodologies. We now refer to those practices as collaborative software development or CSD. Late in 1999 we developed the SourceForge platform to make it easy for even small software development projects to employ those practices, and in November of 1999 launched the SourceForge.net Web site based on the SourceForge platform. The site was an overwhelming success, and in less than two years, grew to support more than 27,000 software development projects and over a quarter million software developers worldwide. SourceForge.net affords us an unequaled test bed for understanding CSD. In response to demand from companies seeking to enable CSD within their organizations, we announced a commercial version of the SourceForge platform, SourceForge Enterprise Edition, in August 2001. This paper describes the principles of CSD, the software development pain points those principles address, and our experience enabling CSD with the SourceForge platform.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125224354","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}
This paper is aimed at software engineering practitioners and researchers, who are familiar with object-oriented analysis, design and programming and want to obtain an overview of the technologies that are enabling component-based development. We introduce the idea of component-based development by defining the concept and providing its economic rationale. We describe how object-oriented programming evolved into local component models, such as Java Beans and distributed object technologies, such as the Common Object Request Broker Architecture (CORBA), Java Remote Method Invocation (RMI) and the Component Object Model (COM). We then address how these technologies matured into distributed component models, in particular Enterprise Java Beans (EJB) and the CORBA Component Model (CCM). We give an assessment of the maturity of each of these technologies and sketch how they are used to build distributed architectures.
{"title":"Component technologies: Java beans, COM, CORBA, RMI, EJB and the CORBA component model","authors":"W. Emmerich, N. Kaveh","doi":"10.1145/581339.581448","DOIUrl":"https://doi.org/10.1145/581339.581448","url":null,"abstract":"This paper is aimed at software engineering practitioners and researchers, who are familiar with object-oriented analysis, design and programming and want to obtain an overview of the technologies that are enabling component-based development. We introduce the idea of component-based development by defining the concept and providing its economic rationale. We describe how object-oriented programming evolved into local component models, such as Java Beans and distributed object technologies, such as the Common Object Request Broker Architecture (CORBA), Java Remote Method Invocation (RMI) and the Component Object Model (COM). We then address how these technologies matured into distributed component models, in particular Enterprise Java Beans (EJB) and the CORBA Component Model (CCM). We give an assessment of the maturity of each of these technologies and sketch how they are used to build distributed architectures.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130280800","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}
We present a novel method for estimating the number of defects contained in a document using the results of an inspection of the document. The method is empirical, being based on observations made during past inspections of comparable documents. The method yields an interval estimate, that is, a whole range of values which is likely to contain the true value of the number of defects in the document. We also derive point estimates from the interval estimate. The method is validated using a known empirical inspection dataset and clearly outperforms existing approaches for estimating the defect content after inspections.
{"title":"Empirical interval estimates for the defect content after an inspection","authors":"F. Padberg","doi":"10.1145/581348.581350","DOIUrl":"https://doi.org/10.1145/581348.581350","url":null,"abstract":"We present a novel method for estimating the number of defects contained in a document using the results of an inspection of the document. The method is empirical, being based on observations made during past inspections of comparable documents. The method yields an interval estimate, that is, a whole range of values which is likely to contain the true value of the number of defects in the document. We also derive point estimates from the interval estimate. The method is validated using a known empirical inspection dataset and clearly outperforms existing approaches for estimating the defect content after inspections.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116196005","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}
Technical, cognitive and social factors inhibit the widespread success of systematic software reuse. Our research is primarily concerned with the cognitive and social challenges faced by software developers: how to motivate them to reuse software, and how to reduce the difficulty of locating components from a large reuse repository. Our research has explored a new interaction style between software developers and reuse repository systems enabled by information delivery mechanisms. Instead of passively waiting for software developers to explore the reuse repository with explicit queries, information delivery autonomously locates and presents components by using the developers' partially written programs as implicit queries. We have designed, implemented, and evaluated a system called CodeBroker, which illustrates different techniques to address the essential challenges in information delivery: to make the delivered information relevant to the task at hand and personalized to the background knowledge of an individual developer. Empirical evaluations of CodeBroker show that information delivery is effective in promoting reuse.
{"title":"Supporting reuse by delivering task-relevant and personalized information","authors":"Y. Ye, G. Fischer","doi":"10.1145/581339.581402","DOIUrl":"https://doi.org/10.1145/581339.581402","url":null,"abstract":"Technical, cognitive and social factors inhibit the widespread success of systematic software reuse. Our research is primarily concerned with the cognitive and social challenges faced by software developers: how to motivate them to reuse software, and how to reduce the difficulty of locating components from a large reuse repository. Our research has explored a new interaction style between software developers and reuse repository systems enabled by information delivery mechanisms. Instead of passively waiting for software developers to explore the reuse repository with explicit queries, information delivery autonomously locates and presents components by using the developers' partially written programs as implicit queries. We have designed, implemented, and evaluated a system called CodeBroker, which illustrates different techniques to address the essential challenges in information delivery: to make the delivered information relevant to the task at hand and personalized to the background knowledge of an individual developer. Empirical evaluations of CodeBroker show that information delivery is effective in promoting reuse.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121361021","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}
Design patterns are a valuable mechanism for emphasizing structure, capturing design expertise, and facilitating restructuring of software systems. Patterns are typically applied in the context of an object-oriented language and are implemented so that the pattern participants correspond to object instances that are created and connected at run-time. The paper describes a complementary realization of design patterns, in which many pattern participants correspond to statically instantiated and connected components. Our approach separates the static parts of the software design from the dynamic parts of the system behavior. This separation makes the software design more amenable to analysis, thus enabling more effective and domain-specific detection of system design errors, prediction of run-time behavior, and more effective optimization. This technique is applicable to imperative, functional, and object-oriented languages: we have extended C, Scheme, and Java with our component model. We illustrate our approach in the context of the OSKit, a collection of operating system components written in C.
{"title":"Static and dynamic structure in design patterns","authors":"E. Eide, A. Reid, J. Regehr, Jay Lepreau","doi":"10.1145/581364.581367","DOIUrl":"https://doi.org/10.1145/581364.581367","url":null,"abstract":"Design patterns are a valuable mechanism for emphasizing structure, capturing design expertise, and facilitating restructuring of software systems. Patterns are typically applied in the context of an object-oriented language and are implemented so that the pattern participants correspond to object instances that are created and connected at run-time. The paper describes a complementary realization of design patterns, in which many pattern participants correspond to statically instantiated and connected components. Our approach separates the static parts of the software design from the dynamic parts of the system behavior. This separation makes the software design more amenable to analysis, thus enabling more effective and domain-specific detection of system design errors, prediction of run-time behavior, and more effective optimization. This technique is applicable to imperative, functional, and object-oriented languages: we have extended C, Scheme, and Java with our component model. We illustrate our approach in the context of the OSKit, a collection of operating system components written in C.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130972611","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}
The Web has very rapidly become central to many applications in diverse areas. As our reliance on Web-based applications continues to increase and the Web systems supporting these applications become more complex, there is growing concern about the manner in which the Web-based systems/applications are created and their quality, integrity and maintainability. The development of Web-based systems has generally been ad hoc, resulting in poor quality and maintainability. In the recent times, there have been many failures of Web applications due to a variety of problems and causes. The way the developers address these problems is critical to deploying successful large-scale Web applications. This paper addresses these issues and offers a holistic approach to managing the complexity of development of Web-based systems and Web applications. It highlights the various real-world issues, challenges and considerations in development of large Web applications, compared to traditional software development, and recommends the Web engineering approach that Web/software developers could follow.
{"title":"Meeting the challenges of Web application development: the web engineering approach","authors":"S. Murugesan, Y. Deshpande","doi":"10.1145/581339.581446","DOIUrl":"https://doi.org/10.1145/581339.581446","url":null,"abstract":"The Web has very rapidly become central to many applications in diverse areas. As our reliance on Web-based applications continues to increase and the Web systems supporting these applications become more complex, there is growing concern about the manner in which the Web-based systems/applications are created and their quality, integrity and maintainability. The development of Web-based systems has generally been ad hoc, resulting in poor quality and maintainability. In the recent times, there have been many failures of Web applications due to a variety of problems and causes. The way the developers address these problems is critical to deploying successful large-scale Web applications. This paper addresses these issues and offers a holistic approach to managing the complexity of development of Web-based systems and Web applications. It highlights the various real-world issues, challenges and considerations in development of large Web applications, compared to traditional software development, and recommends the Web engineering approach that Web/software developers could follow.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134499440","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}
Viewpoint-based Requirements Engineering (VBRE) is based on the fact that there is a multiplicity of stakeholders that take part in any requirements process. This will inevitably lead to conflicts and inconsistencies that, if adequately managed, can be used to improve the process, as they are sources of requirements. There comes a time in every VBRE process when different viewpoints need to be compared to discrepancies (conflicts, inconsistencies). But in Requirements Engineering (RE) we also deal with other categories of statements, apart from "requirements", like domain descriptions and interface specifications. We could use this categorization to (i) internally classify the contents of each viewpoint by categories; (ii) compare the contents of one viewpoint against another, taking into account that this comparison should only be made between elements of the same category; (iii) classify the discrepancies by the affected categories and (iv) generate resolutions for the discrepancies according to this classification. In this paper, we present a VBRE method based on this approach, which is not constrained to a particular representation formalism. The proposed framework includes discrepancy detection and classification and solution generation.
{"title":"Requirements, domain and specifications: a viewpoint-based approach to requirements engineering","authors":"Andrés Silva","doi":"10.1145/581339.581354","DOIUrl":"https://doi.org/10.1145/581339.581354","url":null,"abstract":"Viewpoint-based Requirements Engineering (VBRE) is based on the fact that there is a multiplicity of stakeholders that take part in any requirements process. This will inevitably lead to conflicts and inconsistencies that, if adequately managed, can be used to improve the process, as they are sources of requirements. There comes a time in every VBRE process when different viewpoints need to be compared to discrepancies (conflicts, inconsistencies). But in Requirements Engineering (RE) we also deal with other categories of statements, apart from \"requirements\", like domain descriptions and interface specifications. We could use this categorization to (i) internally classify the contents of each viewpoint by categories; (ii) compare the contents of one viewpoint against another, taking into account that this comparison should only be made between elements of the same category; (iii) classify the discrepancies by the affected categories and (iv) generate resolutions for the discrepancies according to this classification. In this paper, we present a VBRE method based on this approach, which is not constrained to a particular representation formalism. The proposed framework includes discrepancy detection and classification and solution generation.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121054782","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}
Summary form only given. Telecommunication applications are inherently distributed and the interface provided to third party applications is often complex and also distributed. Usually, these third party components need only a subset of the provided data, therefore a simple and standardized access method would be preferred. Such an interface is provided by the Lightweight Directory Access Protocol (LDAP) and we designed an LDAP to CORBA (Common Object Request Broker Architecture) gateway acting as a bridge between the involved technologies.
{"title":"Enterprise application integration by means of a generic CORBA LDAP gateway","authors":"M. Jandl, W. Radinger, A. Szep, K. M. Göschka","doi":"10.1145/581457.581462","DOIUrl":"https://doi.org/10.1145/581457.581462","url":null,"abstract":"Summary form only given. Telecommunication applications are inherently distributed and the interface provided to third party applications is often complex and also distributed. Usually, these third party components need only a subset of the provided data, therefore a simple and standardized access method would be preferred. Such an interface is provided by the Lightweight Directory Access Protocol (LDAP) and we designed an LDAP to CORBA (Common Object Request Broker Architecture) gateway acting as a bridge between the involved technologies.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114728786","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}
L. Osterweil, Philippe B Kruchten, M. Fowler, Wilhelm Schäfer
Interest in the use of processes to provide assistance in software development activities remains at a high level. But the focus of attention has shifted in recent years. Early work emphasizing the study of languages for defining processes was rapidly eclipsed by process evaluation and improvement work, most notably the Capability Maturity Model (CMM). As process improvement has matured as a strategy and philosophy it has also given rise to a strong reaction to the perception that it is unduly ponderous and constraining. Movements such as Extreme Programming (XP) have cast themselves as lightweight alternatives, emphasizing the primacy of freedom and flexibility. Both philosophies and communities continue to grow in size, development, and depth of understanding.The goal of this panel will be to explore the differences between these major approaches to the use of process in software development by bringing together leading articulate exponents of the approaches. Each panelist will be charged with presenting a very concise characterization of the approach being represented. But the focus of the panel will be on understanding the nature of the differences in approach, and the reasons for these differences. Similarities will be sought as well.An underlying hypothesis of the panel is that the differences in approach arise in large measure from differences in objective and differences in assumptions about the software development context. Thus, for example, one approach may be intended to support very long range organizational objectives, while the other may be more tactically oriented. One approach may assume that evolvability is an overriding objective, while another may be more focused on speed to market. One may make stronger assumptions about the skills and training of project personnel. The panel will attempt to delve into these issues to see if it may be possible to suggest criteria for suggesting which approach (and possible adaptation) should be selected for a given development situation.In a larger sense, the goal of this panel is to suggest the possibility of a discipline of software process engineering. Insofar as the panel is able to suggest that development situations can be used to guide the selection of process approaches to the provision of assistance, might this then be an indication that process formalisms could play a role in subsequent specification of detailed processes, and evaluation of their effectiveness?The panel will react to this and related questions. While lively interchanges among the panelists will be stimulated and expected, similar interchanges with the audience will also be cultivated.
{"title":"Lightweight vs. heavyweight processes: is this even the right question?","authors":"L. Osterweil, Philippe B Kruchten, M. Fowler, Wilhelm Schäfer","doi":"10.1145/581339.581426","DOIUrl":"https://doi.org/10.1145/581339.581426","url":null,"abstract":"Interest in the use of processes to provide assistance in software development activities remains at a high level. But the focus of attention has shifted in recent years. Early work emphasizing the study of languages for defining processes was rapidly eclipsed by process evaluation and improvement work, most notably the Capability Maturity Model (CMM). As process improvement has matured as a strategy and philosophy it has also given rise to a strong reaction to the perception that it is unduly ponderous and constraining. Movements such as Extreme Programming (XP) have cast themselves as lightweight alternatives, emphasizing the primacy of freedom and flexibility. Both philosophies and communities continue to grow in size, development, and depth of understanding.The goal of this panel will be to explore the differences between these major approaches to the use of process in software development by bringing together leading articulate exponents of the approaches. Each panelist will be charged with presenting a very concise characterization of the approach being represented. But the focus of the panel will be on understanding the nature of the differences in approach, and the reasons for these differences. Similarities will be sought as well.An underlying hypothesis of the panel is that the differences in approach arise in large measure from differences in objective and differences in assumptions about the software development context. Thus, for example, one approach may be intended to support very long range organizational objectives, while the other may be more tactically oriented. One approach may assume that evolvability is an overriding objective, while another may be more focused on speed to market. One may make stronger assumptions about the skills and training of project personnel. The panel will attempt to delve into these issues to see if it may be possible to suggest criteria for suggesting which approach (and possible adaptation) should be selected for a given development situation.In a larger sense, the goal of this panel is to suggest the possibility of a discipline of software process engineering. Insofar as the panel is able to suggest that development situations can be used to guide the selection of process approaches to the provision of assistance, might this then be an indication that process formalisms could play a role in subsequent specification of detailed processes, and evaluation of their effectiveness?The panel will react to this and related questions. While lively interchanges among the panelists will be stimulated and expected, similar interchanges with the audience will also be cultivated.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126730162","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}