{"title":"Program Comprehension","authors":"V. Rajlich, Leon A. Wilson","doi":"10.1081/E-ESE-120044350","DOIUrl":"https://doi.org/10.1081/E-ESE-120044350","url":null,"abstract":"This paper presents a case study for the GraBaTs'09 tool contest. Program comprehension may bene t from graph and transformation techniques because they enable custom queries, and complex query results (i.e., graphs). However, there is one main issue to address: scalability. Software developers need tools that help them understand large code bases. For instance, the Java Development Tools from Eclipse consists of around six thousand Java classes, which translate into roughly ve million nodes in the corresponding graph. We propose two independent tasks in order to evaluate the adequacy of transformation tools to program comprehension and similarly demanding tasks. The rst one exercises the scalability of tools by requiring them to lter large input graphs. The associated test-case contains a set of graphs of increasing size that should help comparing tools. The second task exercises the genericity of the tools. A tool that solves both tasks demonstrates that it scales, and that it does not trade scalability for genericity.","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123660635","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":"Fault Injection","authors":"R. Iyer, Nithin Nakka, W. Gu, Z. Kalbarczyk","doi":"10.1081/E-ESE-120044235","DOIUrl":"https://doi.org/10.1081/E-ESE-120044235","url":null,"abstract":"","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126957308","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":"Logic Programming","authors":"M. Carro","doi":"10.1081/E-ESE-120044145","DOIUrl":"https://doi.org/10.1081/E-ESE-120044145","url":null,"abstract":"• Prolog, Alain Colmerauer 1972 • Program = a knowledge base expressed as definite clauses • Queries to the knowledge base • Closed world assumption: we assume ¬ to be true if sentence is not entailed by the knowledge base • Syntax: • Capital characters denote variables, • Small character stand for constants, • The head of the rule precedes the body, Appending what two lists gives the list [1,2]? • As the answer we get back all possible substitutions A=[ ] B=[1,2] A=[1] B=[2] A=[1,2] B=[ ]","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"89 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114713816","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":"Software Evolution","authors":"A. Zaidman, M. Pinzger, A. Deursen","doi":"10.1081/E-ESE-120044353","DOIUrl":"https://doi.org/10.1081/E-ESE-120044353","url":null,"abstract":"Software evolution is the term used in software engineering to refer to the process of developing an initial version of the software and then repeatedly updating it to satisfy the user’s needs. Software evolution is an inevitable activity, as useful and successful software stimulates users to request new and improved features. However, evolving a software system is typically difficult and costly. In this chapter, we provide an historical overview of the field and survey four important research ares: program comprehension, reverse engineering, reengineering, and software repository mining. We report on key approaches, results, and indicate a number of challenges open to on-going and future research in software evolution.","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116054258","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":"Smart Machines","authors":"J. Kallinikos","doi":"10.1081/E-ESE-120044162","DOIUrl":"https://doi.org/10.1081/E-ESE-120044162","url":null,"abstract":"The entry reviews Shoshana Zuboff’s acclaimed work In the Age of the Smart Machine: The Future of Work and Power, originally published in 1988 against the backdrop of the considerable technological changes that have occurred over the last two decades. The core themes of the book dealing with the impact of information technology on the workplace are highly relevant even today while the analytic paths Zuboff pursued seem to hold considerable promise in approaching key issues raised by the expansion of information technology in social and economic life, and designing better systems.","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121115127","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":"Requirements: Tracing","authors":"Seok-Won Lee, R. Gandhi, S. Park","doi":"10.1081/e-ese-120044209","DOIUrl":"https://doi.org/10.1081/e-ese-120044209","url":null,"abstract":"","PeriodicalId":386020,"journal":{"name":"Encyclopedia of Software Engineering","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128012088","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}