Issue No. 04 - July/August (2004 vol. 21)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2004.7
Successful Process Change
A Process Model for Successful CRM System Development
by Hee-Woong Kim, pp. 22–28. The author argues that the state of knowledge in IS development is analogous to cooking with a list of ingredients but without the recipe. This study presents a process model for successful IS development, examining success and failure cases of customer relationship management system development to elucidate the critical factors. It also discusses how the factors influence each other and how interplays among them lead to project outcome. The proposed model helps developers understand how to avoid repeating patterns of IS failure and can be used for guiding new IS development.
Adopting the SW-CMM in a Small IT Organization
by Felipe Guerrero and Yadran Eterovic, pp. 29–35. A requisite for competing in the global software development market is to adopt internationally accepted software process practices. Small organizations trying to start a process improvement effort must carefully identify how their environment would affect such an initiative. The authors report on the adoption of SW-CMM Level 2 in Link, a Chilean company. They explain Link's organizational environment, the process improvement initiative, and the environmental factors that affected it. One finding was that Link's small size helped the company adopt the SW-CMM.
Successful Process Implementation
by Anna Börjesson and Lars Mathiassen, pp. 36–44. Traditional approaches to measuring software process improvement are typically lengthy, data intensive, and cost prohibitive. A simple indicator, the extent to which engineering practices change, can provide enough information to guide initiatives toward success. The authors used this approach to analyze SPI initiatives at the telecom company Ericsson AB.
Model-Driven Reverse Engineering
by Spencer Rugaber and Kurt Stirewalt, pp. 45–53. This approach to model-driven reverse engineering uses a formal specification model and code generator to reverse the reverse-engineering process. Models describe both the application domain and the program being reverse engineered. Interpretations annotate connections between the two. This approach gives managers a fixed target for a reverse-engineering effort. This, in turn, enables better effort prediction and quality evaluation, thereby reducing development risk.
Defect Handling in Medium and Large Open Source Projects
by A. Günes Koru and Jeff Tian, pp. 54–61. Quantitative results and related findings from an online survey reveal the current practice of defect handling in 52 medium and large open source projects. Understanding these defect-handling strategies can help us better understand the defect characteristics for a wider variety of software products.
Incremental Change in Object-Oriented Programming
by Václav Rajlich and Prashant Gosavi, pp. 62–69. Incremental changes add new functionality and new properties to software. They are the basis of software maintenance, evolution, incremental development, agile development, and other important software engineering processes. This article presents selected incremental change activities—change request, concept extraction, concept location, impact analysis, actualization, incorporation, change propagation, refactoring, and role splitting—in which programming concepts and program dependencies play a key role. The authors provide an example that illustrates an incremental change in the open source software Drawlets.
Incorporating Language Processing into Java Applications: A JavaCC Tutorial
by Viswanathan Kodaganallur, pp. 70–77. Application programs sometimes deal with input whose structure and meaning are dictated by complex formal rules. Although compilers, command processors, and database-query-language processors are prime examples of these applications, we sometimes need such functionality in the context of other applications. Developing this functionality from scratch is complex and error-prone, so programmers rely on automation tools. The Java Compiler Compiler is a good tool for such tasks in Java.
How Higher-Education Systems Influence Software Engineering Degree Programs
by Oscar Dieste, Natalia Juristo, and Ana M. Moreno, pp. 78–85. Undergraduate programs that cover knowledge related to software engineering range from software engineering-specific programs to traditional computer science programs, which might teach some subjects related to software engineering. Software engineering-specific programs have proliferated in countries such as the US, Australia, and the UK. However, this isn't the case in continental Europe. This difference is due largely to the organization of the higher-education systems in those countries. Organizational factors responsible for this difference include the type of accreditation system and whether the government or the higher-education institution defines the syllabus.