Pub Date : 2011-09-25DOI: 10.1109/ICSM.2011.6080766
L. Briand
Though software engineering is in essence an engineering discipline, that is a discipline whose aim is “the construction of machinery and other artifacts for use by society”, software engineering research has always been struggling to demonstrate impact. This is reflected in part by the funding challenges that the discipline faces in many countries, the difficulties we have to attract industrial participants to our conferences, and the scarcity of papers reporting industrial case studies.
{"title":"Useful software engineering research - leading a double-agent life","authors":"L. Briand","doi":"10.1109/ICSM.2011.6080766","DOIUrl":"https://doi.org/10.1109/ICSM.2011.6080766","url":null,"abstract":"Though software engineering is in essence an engineering discipline, that is a discipline whose aim is “the construction of machinery and other artifacts for use by society”, software engineering research has always been struggling to demonstrate impact. This is reflected in part by the funding challenges that the discipline faces in many countries, the difficulties we have to attract industrial participants to our conferences, and the scarcity of papers reporting industrial case studies.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121600292","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}
Pub Date : 2010-09-12DOI: 10.1109/ICSM.2010.5610421
Frank Steinbrückner
Coherent Software Cities are a software visualization approach which adopts the city metaphor to support the comprehension of various aspects of evolving software systems. For this purpose, the approach implements a three-staged modeling chain yielding coherent sets of application specific visualizations. In this context, a new layout approach for software cities is presented, which explicitly takes development history into account. Its effects are twofold: First, evolution becomes visible in the layouts, which allows for supporting new application scenarios. Second, layouts evolve smoothly and stable during system evolution, which allows software cities to be used online, i.e. during ongoing system development and maintenance.
{"title":"Coherent Software Cities","authors":"Frank Steinbrückner","doi":"10.1109/ICSM.2010.5610421","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5610421","url":null,"abstract":"Coherent Software Cities are a software visualization approach which adopts the city metaphor to support the comprehension of various aspects of evolving software systems. For this purpose, the approach implements a three-staged modeling chain yielding coherent sets of application specific visualizations. In this context, a new layout approach for software cities is presented, which explicitly takes development history into account. Its effects are twofold: First, evolution becomes visible in the layouts, which allows for supporting new application scenarios. Second, layouts evolve smoothly and stable during system evolution, which allows software cities to be used online, i.e. during ongoing system development and maintenance.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116166965","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}
Pub Date : 2009-10-30DOI: 10.1109/ICSM.2009.5306319
S. Reiss
Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user's specifications. The key words here are specifications and generate. We let users specify what they are looking for as precisely as possible using keywords, class or method signatures, test cases, contracts, and security constraints using a simple, web-based interface. Our system then uses an open set of program transformations to map retrieved code into what the user asked for. This approach is implemented in a prototype system for Java with a web interface.
{"title":"Semantics-based code search demonstration proposal","authors":"S. Reiss","doi":"10.1109/ICSM.2009.5306319","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306319","url":null,"abstract":"Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user's specifications. The key words here are specifications and generate. We let users specify what they are looking for as precisely as possible using keywords, class or method signatures, test cases, contracts, and security constraints using a simple, web-based interface. Our system then uses an open set of program transformations to map retrieved code into what the user asked for. This approach is implemented in a prototype system for Java with a web interface.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"26 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132006197","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}
Pub Date : 2009-10-30DOI: 10.1109/ICSM.2009.5306365
S. Tilley, Xiaoying Bai, G. Lewis
Service-Oriented Architecture (SOA) is a way of designing, developing, deploying, and managing enterprise systems where business needs and technical solutions are closely aligned. SOA offers a number of potential benefits, such as cost-efficiency and agility. However, adopting SOA is not without considerable challenges. For example, the most common way to implement a SOA-based system is with Web services, but the standards that define Web services are evolving rapidly and many of the Web services tools are still somewhat immature. There is also the question of how to leverage existing legacy assets within a SOA context. Perhaps most importantly, there are serious challenges related to the testing of SOA-based systems that must be addressed before the SOA paradigm will enjoy broadbased success.
{"title":"First international workshop on service-oriented architecture testing (SOAT 2009)","authors":"S. Tilley, Xiaoying Bai, G. Lewis","doi":"10.1109/ICSM.2009.5306365","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306365","url":null,"abstract":"Service-Oriented Architecture (SOA) is a way of designing, developing, deploying, and managing enterprise systems where business needs and technical solutions are closely aligned. SOA offers a number of potential benefits, such as cost-efficiency and agility. However, adopting SOA is not without considerable challenges. For example, the most common way to implement a SOA-based system is with Web services, but the standards that define Web services are evolving rapidly and many of the Web services tools are still somewhat immature. There is also the question of how to leverage existing legacy assets within a SOA context. Perhaps most importantly, there are serious challenges related to the testing of SOA-based systems that must be addressed before the SOA paradigm will enjoy broadbased success.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126558243","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}
Pub Date : 2009-10-30DOI: 10.1109/ICSM.2009.5306347
M. J. Harrold
One of the most expensive activities that occurs as software is developed and maintained is the testing (or retesting) of the software after it has been modified. Studies suggest that a significant portion of development and maintenance costs go to this retesting, which is known as regression testing. Reports estimate that regression testing consumes as much as 80% of the overall testing budget and can consume up to 50% of the cost of software maintenance. Rapidly changing software and computing environments present many challenges for effective and efficient regression testing in practice. Regression testing can be performed after changes are made to the software, such as after nightly or regular builds, before a new version of the software is released, every time the software is saved and compiled, such as in an agile development environment, or before patches, such as security patches, are released. Regardless of the environment or when it is performed, the goals of regression testing are the same: to improve confidence that the changes behave as intended and that they have not adversely affected unchanged parts of the software. Because regression testing is important, but expensive, much research has been performed, both in industry and in academia, to develop techniques to make regression testing more effective and efficient. This research has also produced many tools and systems that have been used for empirical studies that investigate the effectiveness, scalability, and practicality of the techniques. Researchers have developed techniques for addressing a number of issues related to regression testing, and, in this talk, I will discuss them in four areas. First, techniques attempt to reduce the regression testing time by creating effective regression test suites that test the changed part of the software, by identifying test cases in the regression test suite that do not need to be rerun on the changed software, and by identifying and removing obsolete test cases. Second, techniques can reuse test suites created for one version of the software by identifying those test cases that need to be rerun for testing subsequent versions of the software and by computing an effective ordering for running the test cases. Third, techniques can recycle test cases by monitoring executions to gather test inputs that can be used for retest-ing and by creating unit test cases from system test cases. Finally, techniques could recover test cases by identifying, manipulating, and transforming obsolete test cases, by generating new test cases from old ones, and by repairing test cases when the software changes. In this talk, I will overview the research in testing of evolving software, and discuss achievements to date in managing regression testing by reducing, reusing, recycling, and recovering test cases. I will also present the state of the research and the state of the practice in regression testing. Finally, I will discuss the current trends in both acade
{"title":"Reduce, reuse, recycle, recover: Techniques for improved regression testing","authors":"M. J. Harrold","doi":"10.1109/ICSM.2009.5306347","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306347","url":null,"abstract":"One of the most expensive activities that occurs as software is developed and maintained is the testing (or retesting) of the software after it has been modified. Studies suggest that a significant portion of development and maintenance costs go to this retesting, which is known as regression testing. Reports estimate that regression testing consumes as much as 80% of the overall testing budget and can consume up to 50% of the cost of software maintenance. Rapidly changing software and computing environments present many challenges for effective and efficient regression testing in practice. Regression testing can be performed after changes are made to the software, such as after nightly or regular builds, before a new version of the software is released, every time the software is saved and compiled, such as in an agile development environment, or before patches, such as security patches, are released. Regardless of the environment or when it is performed, the goals of regression testing are the same: to improve confidence that the changes behave as intended and that they have not adversely affected unchanged parts of the software. Because regression testing is important, but expensive, much research has been performed, both in industry and in academia, to develop techniques to make regression testing more effective and efficient. This research has also produced many tools and systems that have been used for empirical studies that investigate the effectiveness, scalability, and practicality of the techniques. Researchers have developed techniques for addressing a number of issues related to regression testing, and, in this talk, I will discuss them in four areas. First, techniques attempt to reduce the regression testing time by creating effective regression test suites that test the changed part of the software, by identifying test cases in the regression test suite that do not need to be rerun on the changed software, and by identifying and removing obsolete test cases. Second, techniques can reuse test suites created for one version of the software by identifying those test cases that need to be rerun for testing subsequent versions of the software and by computing an effective ordering for running the test cases. Third, techniques can recycle test cases by monitoring executions to gather test inputs that can be used for retest-ing and by creating unit test cases from system test cases. Finally, techniques could recover test cases by identifying, manipulating, and transforming obsolete test cases, by generating new test cases from old ones, and by repairing test cases when the software changes. In this talk, I will overview the research in testing of evolving software, and discuss achievements to date in managing regression testing by reducing, reusing, recycling, and recovering test cases. I will also present the state of the research and the state of the practice in regression testing. Finally, I will discuss the current trends in both acade","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"205 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123055642","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}
Pub Date : 2009-09-01DOI: 10.1109/ICSM.2009.5306354
S. Tilley
2009 marks the 25th edition of the IEEE International Conference on Software Maintenance (ICSM). This special panel session celebrates ICSMs silver anniversary and the people who helped create and shape its history. From the pioneering efforts of the first workshop to todays weeklong series of federated events, many things have changed over the years. But at least one thing remains constant: the original goal of creating a supportive environment for fostering the exchange of ideas and information related to the disciplined maintenance and evolution of large-scale software-intensive systems.
{"title":"25 Years of Software Maintenance","authors":"S. Tilley","doi":"10.1109/ICSM.2009.5306354","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306354","url":null,"abstract":"2009 marks the 25th edition of the IEEE International Conference on Software Maintenance (ICSM). This special panel session celebrates ICSMs silver anniversary and the people who helped create and shape its history. From the pioneering efforts of the first workshop to todays weeklong series of federated events, many things have changed over the years. But at least one thing remains constant: the original goal of creating a supportive environment for fostering the exchange of ideas and information related to the disciplined maintenance and evolution of large-scale software-intensive systems.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117051375","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}
Pub Date : 2009-09-01DOI: 10.1109/ICSM.2009.5306393
G. Lewis, Dennis B. Smith, N. Chapin, K. Kontogiannis
The main goal of this workshop is to provide an opportunity for participants to present current work and have a lively discussion of open issues for the maintenance and evolution of service-oriented systems. The dialog will include both short-term research issues such as reengineering processes and long-term issues such as evolution patterns for service-oriented systems.
{"title":"MESOA 2009: 3rd International workshop on maintenance and evolution of service-oriented systems","authors":"G. Lewis, Dennis B. Smith, N. Chapin, K. Kontogiannis","doi":"10.1109/ICSM.2009.5306393","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306393","url":null,"abstract":"The main goal of this workshop is to provide an opportunity for participants to present current work and have a lively discussion of open issues for the maintenance and evolution of service-oriented systems. The dialog will include both short-term research issues such as reengineering processes and long-term issues such as evolution patterns for service-oriented systems.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"314 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122121887","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}
Pub Date : 2009-09-01DOI: 10.1109/ICSM.2009.5306352
D. Weiss
A product line is a family of products designed to take advantage of their common aspects (commonalities) and predicted variabilities. A product line may be software only, e.g., a family of GUIs; software + hardware, e.g., a family of televisions; or hardware only. Where software is a part of the product line, the variability accommodated by the product line is an economic decision and strongly affects the technology and the architecture used in the design and implementation of the product line. For example, where variability is narrowly bounded, a domain specific language may be used to define the product line and generate members of it, but the market for it may be relatively narrow. On the other hand, initial investment cost may be high, production cost very low, and time to market very short. Where variability is broadly bounded, a complex software architecture may be needed, production of products may be only semi-automated, time to market may increase, but market appeal may be much wider. Empirical studies, using baseline techniques, suggest that applying product line engineering produces a factor of three to five improvement in product development cost or product development speed. This talk will focus on the architectural considerations in defining and designing a product line, particularly questions such as "What are the attributes of a good software product line architecture?" and "How might a product line architecture change the economics of software development?", introducing an open market both in architecture and in software components. I will illustrate points with examples taken from Lucent Technologies and Avaya, from the Software Product Line Hall of Fame, from building architecture, and from other industries.
{"title":"Architecture of product lines","authors":"D. Weiss","doi":"10.1109/ICSM.2009.5306352","DOIUrl":"https://doi.org/10.1109/ICSM.2009.5306352","url":null,"abstract":"A product line is a family of products designed to take advantage of their common aspects (commonalities) and predicted variabilities. A product line may be software only, e.g., a family of GUIs; software + hardware, e.g., a family of televisions; or hardware only. Where software is a part of the product line, the variability accommodated by the product line is an economic decision and strongly affects the technology and the architecture used in the design and implementation of the product line. For example, where variability is narrowly bounded, a domain specific language may be used to define the product line and generate members of it, but the market for it may be relatively narrow. On the other hand, initial investment cost may be high, production cost very low, and time to market very short. Where variability is broadly bounded, a complex software architecture may be needed, production of products may be only semi-automated, time to market may increase, but market appeal may be much wider. Empirical studies, using baseline techniques, suggest that applying product line engineering produces a factor of three to five improvement in product development cost or product development speed. This talk will focus on the architectural considerations in defining and designing a product line, particularly questions such as \"What are the attributes of a good software product line architecture?\" and \"How might a product line architecture change the economics of software development?\", introducing an open market both in architecture and in software components. I will illustrate points with examples taken from Lucent Technologies and Avaya, from the Software Product Line Hall of Fame, from building architecture, and from other industries.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127242921","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}
Pub Date : 2008-10-24DOI: 10.1109/ICSM.2008.4658048
Jifeng He
This talk presents a theory of testing that integrates into Hoare and Hepsilas Unifying Theory of Programming (UTP). We give test cases a denotational semantics by viewing them as specification predicates. This reformulation of test cases allows for relating test cases via refinement to specifications and programs. Having such a refinement order that integrates test cases, we develop a testing theory for fault-based testing. Fault-based testing uses test data designed to demonstrate the absence of a set of pre-specified faults. A well-known fault-based technique is mutation testing. In mutation testing, first, faults are injected into a program by altering (mutating) its source code. Then, test cases that can detect these errors are designed. The assumption is that other faults will be caught, too. We apply the mutation technique to both specifications and programs. Using our theory of testing, two new test case generation laws for detecting injected (anticipated) faults are presented: one is based on the semantic level of design specifications, the other on the algebraic properties of a programming language.
{"title":"Refinement and test case generation in Unifying Theory of Programming","authors":"Jifeng He","doi":"10.1109/ICSM.2008.4658048","DOIUrl":"https://doi.org/10.1109/ICSM.2008.4658048","url":null,"abstract":"This talk presents a theory of testing that integrates into Hoare and Hepsilas Unifying Theory of Programming (UTP). We give test cases a denotational semantics by viewing them as specification predicates. This reformulation of test cases allows for relating test cases via refinement to specifications and programs. Having such a refinement order that integrates test cases, we develop a testing theory for fault-based testing. Fault-based testing uses test data designed to demonstrate the absence of a set of pre-specified faults. A well-known fault-based technique is mutation testing. In mutation testing, first, faults are injected into a program by altering (mutating) its source code. Then, test cases that can detect these errors are designed. The assumption is that other faults will be caught, too. We apply the mutation technique to both specifications and programs. Using our theory of testing, two new test case generation laws for detecting injected (anticipated) faults are presented: one is based on the semantic level of design specifications, the other on the algebraic properties of a programming language.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128024013","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}
Pub Date : 2008-10-24DOI: 10.1109/ICSM.2008.4658047
H. Sneed
This keynote is directed to the software service organizations in the emerging countries of Asia and South America as well as to outsourcing companies in Eastern Europe. It summarizes the sad state of many western user organizations caught in the legacy software trap and how eastern software shops can help them. The talk focuses on the processes, techniques and tools required to run a remote software maintenance operation, the legalities of maintenance contracts and the economics of outsourced services. The speaker shares his experience in how to establish a good customer relationship and how to charge the services in a way that is acceptable to both the customer and the service provider.
{"title":"Offering software maintenance as an offshore service","authors":"H. Sneed","doi":"10.1109/ICSM.2008.4658047","DOIUrl":"https://doi.org/10.1109/ICSM.2008.4658047","url":null,"abstract":"This keynote is directed to the software service organizations in the emerging countries of Asia and South America as well as to outsourcing companies in Eastern Europe. It summarizes the sad state of many western user organizations caught in the legacy software trap and how eastern software shops can help them. The talk focuses on the processes, techniques and tools required to run a remote software maintenance operation, the legalities of maintenance contracts and the economics of outsourced services. The speaker shares his experience in how to establish a good customer relationship and how to charge the services in a way that is acceptable to both the customer and the service provider.","PeriodicalId":211605,"journal":{"name":"International Conference on Smart Multimedia","volume":"409 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116242663","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}