{"title":"Towards an effective software engineering course project","authors":"Zakarya A. Alzamil","doi":"10.1109/ICSE.2005.1553621","DOIUrl":"https://doi.org/10.1109/ICSE.2005.1553621","url":null,"abstract":"Software engineering instructors face many challenges. Among these challenges is the course project. Instructors are required to train their students on the professional skills to be ready for the real world business, which requires the students to work on real projects. However, because of the low quality of the students' work, not all of the professional organizations are cooperating to offer a chance for the software engineering students to work on a real project. Therefore, most of the software engineering courses' projects are in-class project, in which the instructors represent the clients. In this paper, I proposed a solution to this problem based on my experience in involving my software engineering students in real world projects.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"87 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122566056","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 multiple case study on the impact of pair programming on product quality","authors":"H. Hulkko, P. Abrahamsson","doi":"10.1145/1062455.1062545","DOIUrl":"https://doi.org/10.1145/1062455.1062545","url":null,"abstract":"Pair programming is a programming technique in which two programmers use one computer to work together on the same task. There is an ongoing debate over the value of pair programming in software development. The current body of knowledge in this area is scattered and unorganized. Review shows that most of the results have been obtained from experimental studies in university settings. Few, if any, empirical studies exist, where pair programming has been systematically under scrutiny in real software development projects. Thus, its proposed benefits remain currently without solid empirical evidence. This paper reports results from four software development projects where the impact of pair programming on software product quality was studied. Our empirical findings appear to offer contrasting results regarding some of the claimed benefits of pair programming. They indicate that pair programming may not necessarily provide as extensive quality benefits as suggested in literature, and on the other hand, does not result in consistently superior productivity when compared to solo programming.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"96 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121960926","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":"Chianti: a change impact analysis tool for Java programs","authors":"Xiaoxia Ren, B. Ryder, Maximilian Störzer, F. Tip","doi":"10.1145/1062455.1062598","DOIUrl":"https://doi.org/10.1145/1062455.1062598","url":null,"abstract":"Chianti is a change impact analysis tool for Java that is implemented in the context of the eclipse environment. Chianti analyzes two versions of a Java program, decomposes their difference into a set of atomic changes, and a partial order inter-dependences of these changes is calculated. Change impact is then reported in terms of affected (regression or unit) tests whose execution behavior may have been modified by the applied changes. For each affected test, Chianti also determines a set of affecting changes that were responsible for the test's modified behavior. This latter step of isolating failure inducing changes for one specific test from irrelevant changes can be used as a debugging technique in situations where a test fails unexpectedly after a long editing session.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125948199","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":"Five years of product line engineering in a small company","authors":"M. Verlage, Thomas Kiesgen","doi":"10.1145/1062455.1062551","DOIUrl":"https://doi.org/10.1145/1062455.1062551","url":null,"abstract":"In 1999, a new team at MARKET MAKER Software AG began to develop a software product line for managing and displaying stock market data and financial market news. The basic idea was to use Web technology in all applications for delivering services to customers. It soon turned out that the company had to change both the processes and the organization. This report summarizes the changes made and the lessons learned over the past five years, when the product line idea was introduced into a small company which faced the pressure to quickly market the first product line instances.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130397042","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":"Enriching software engineering courses with service-learning projects and the open-source approach","authors":"Chang Liu","doi":"10.1145/1062455.1062566","DOIUrl":"https://doi.org/10.1145/1062455.1062566","url":null,"abstract":"Real-world software engineers deal with complex problem. Yet many software engineering courses do not involve projects of enough complexity to give students such experience. We sense that service-learning projects, while difficult to manage and sustain, can serve a crucial role in this regard. Through trials in a senior-level software engineering course, we discovered that the open-source approach works well to enable students to work on large, multiple-term service-learning projects. We developed GROw, a cross-term, cross-team educational software process to meet the challenges of adopting complex, real-world projects in one-term courses, and to sustain service learning.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"161 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134240690","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":"Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks","authors":"Amy J. Ko, H. Aung, B. Myers","doi":"10.1145/1062455.1062492","DOIUrl":"https://doi.org/10.1145/1062455.1062492","url":null,"abstract":"Several innovative tools have found their way into mainstream use in modern development environments. However, most of these tools have focused on creating and modifying code, despite evidence that most of programmers' time is spent understanding code as part of maintenance tasks. If new tools were designed to directly support these maintenance tasks, what types would be most helpful? To find out, a study of expert Java programmers using Eclipse was performed. The study suggests that maintenance work consists of three activities: (1) forming a working set of task-relevant code fragments; (2) navigating the dependencies within this working set; and (3) repairing or creating the necessary code. The study identified several trends in these activities, as well as many opportunities for new tools that could save programmers up to 35% of the time they currently spend on maintenance tasks.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133035892","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 structural context to recommend source code examples","authors":"Reid Holmes, G. Murphy","doi":"10.1145/1062455.1062491","DOIUrl":"https://doi.org/10.1145/1062455.1062491","url":null,"abstract":"When coding to a framework, developers often become stuck, unsure of which class to subclass, which objects to instantiate and which methods to call. Example code that demonstrates the use of the framework can help developers make progress on their task. In this paper, we describe an approach for locating relevant code in an example repository that is based on heuristically matching the structure of the code under development to the example code. Our tool improves on existing approaches in two ways. First, the structural context needed to query the repository is extracted automatically from the code, freeing the developer from learning a query language or from writing their code in a particular style. Second, the repository can be generated easily from existing applications. We demonstrate the utility of this approach by reporting on a case study involving two subjects completing four programming tasks within the Eclipse integrated development environment framework.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129197052","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 peer reviews in teaching framework development","authors":"A. Zeid, Moemen Elswidi","doi":"10.1109/ICSE.2005.1553619","DOIUrl":"https://doi.org/10.1109/ICSE.2005.1553619","url":null,"abstract":"Framework development is one of the most challenging software development tasks. Teaching framework development is even more challenging. In this paper, we propose a creative process to teach framework development. We propose using peer review in the process. We present the process and some examples and findings out of our experience.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128471944","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":"Agile software reuse recommender","authors":"Frank McCarey, M. Cinnéide","doi":"10.1145/1062455.1062586","DOIUrl":"https://doi.org/10.1145/1062455.1062586","url":null,"abstract":"The demand for organisations to produce new or enhanced software implementations quickly in response to an ever changing environment has fuelled the use of agile processes. In such processes, the role of analysis, design models and documentation in the creation and evolution of the software is often marginalized. These challenges facing developers are the main motivation for our work. Reuse rewards and must be fostered. We must assist and encourage developers in making full use of large component repositories by complementing component retrieval with component recommendation, this allows developers to discover or locate components in a time efficient manner. The recommendation approach should be consistent with the principles of agile development; reusable components currently being developed should not need any additional documentation and reuse of such components should be appealing, straightforward and require little additional developer effort.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128982234","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}
J. M. Atlee, T. Lethbridge, A. Sobel, J. Thompson, R. LeBlanc
{"title":"Software engineering 2004: ACM/IEEE-CS guidelines for undergraduate programs in software engineering","authors":"J. M. Atlee, T. Lethbridge, A. Sobel, J. Thompson, R. LeBlanc","doi":"10.1109/ICSE.2005.1553617","DOIUrl":"https://doi.org/10.1109/ICSE.2005.1553617","url":null,"abstract":"This paper is an overview of Software Engineering 2004, the software engineering volume of the computing curricula 2001 project. We briefly describe the contents of the volume, the process used in developing the volume's guidelines, and how we expect the volume to be used in practice.","PeriodicalId":217879,"journal":{"name":"Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133561342","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}