RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 2
TI 25 Years of Software
A1 Hakan Erdogmus,
K1 history of software engineering
AB The column points to the November/December 2008 issue's many special features celebrating IEEE Software's 25th anniversary of publication. This overview summarizes how experts in requirements, design, architecture, software technology and tools, interface design, and more view their areas' notable milestones and accomplishments.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.140
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.140

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 6
TI The Big Bang: 25 Years of Software History
K1 software history
K1 software milestones
K1 time line
AB This time line is an admittedly incomplete and imperfect snapshot of selected events representing the advance of software production, engineering, and theory—just enough to provide some context for the last 25 years. The time line, along with reflections from all the past editors in chief of IEEE Software and from other luminaries in the field, celebrates the magazine's 25th anniversary of publication.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.164
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.164

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 15
TI A Conversation with Alan Cooper: The Origin of Interaction Design
A1 Jeff Patton,
K1 interaction design
K1 Alan Cooper
K1 interview
AB In the world of user-centered design thinking, Alan Cooper is responsible for many of the tenets used in interaction design practice today. Most notably, he introduced the use of personas to distill and make relevant information about a system's users, information we subsequently use to drive interaction design. In this article, User Centric editor Jeff Patton interviews Alan Cooper. They discuss the birth of modern microcomputer software and the arrival of the interaction design discipline.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.142
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.142

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 18
TI Sometimes the Old Ways Are Best
A1 Brian Kernighan,
K1 software tool
K1 software development tool
K1 integrated development environment
AB Brian Kernighan looks back at what has and has not changed in computing, programming, and tools over the last 30 years. He discusses what we want from our tools and reveals his favorites.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.161
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.161

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 0
TI Annual Index
K1 null
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.168
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.168

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 20
TI Back to the Future
A1 Grady Booch,
K1 software design
K1 software engineering
K1 Smalltalk
K1 assembly language
K1 test-driven development
AB Over the past 25 years, we've made great advances in tooling, technologies, and techniques that make software design more concrete. But design still requires careful thought.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.144
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.144

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 22
TI A Brief History of Software Technology
A1 Christof Ebert,
K1 software technology
K1 technology maturation
K1 trends
K1 software history
AB To mark IEEE Software's 25th anniversary, Software Technology column editor Christof Ebert presents a review and road map of major software technologies, starting with the magazine's inauguration, 1984. Learning from the many hypes and often long introduction cycles, he provides some timeless principles of technology evaluation and introduction.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.141
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.141

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 26
TI Requirements 25 Years On
A1 Neil Maiden,
K1 requirements
K1 structured analysis
K1 CASE tools
AB This column reviews progress in research and practice in requirements engineering over the past 25 years, looking back at early specification practices, structured analysis, and CASE tools.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.157
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.157

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 29
TI Designing Then and Now
A1 Rebecca J. Wirfs-Brock,
K1 software design
K1 software engineering
K1 Smalltalk
K1 assembly language
K1 test-driven development
AB Over the past 25 years, we've made great advances in tooling, technologies, and techniques that make software design more concrete. But design still requires careful thought.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.146
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.146

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 32
TI Software Metrics: Progress after 25 Years?
A1 Shari Lawrence Pfleeger,
K1 software measurement
K1 process
K1 heuristics
K1 uncertainty
AB This article traces the increasing sophistication and use of software measurement over the past 25 years. It highlights four obstacles to more effective use of measurement: dealing with uncertainty, anticipating change, measuring "soft" characteristics, and developing heuristics.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.160
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.160

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 35
TI Licensing Software Engineers?
A1 Philippe Kruchten,
K1 licensing
K1 certification
K1 professionalism
AB To further your professional development, should you aim to become a licensed professional software engineer? The author answers this question, as well as questions about when and where licensing is important.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.149
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.149

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 38
TI Opportunistic Software Systems Development: Making Systems from What's Available
A1 Anatol W. Kark,
A1 Cornelius Ncube,
A1 Patricia Oberndorf,
K1 opportunistic software systems development
K1 scrapheap development
AB Despite all the difficulties encountered in each incarnation of software reuse, we persist along the path of trying to figure out how we're going to create systems that meet the ever-increasing demand for capability and, with it, complexity and sheer size. Opportunistic software systems development is a reality today and for the foreseeable future, as the five articles in IEEE Software 's November/December 2008 special issue on OSSD demonstrate. This special issue aims to gather together insights into the viability, or perhaps the inevitability, of OSSD and to bring forward the most effective practices known today. Another goal is to point the way to what needs to be done to make OSSD more accessible to all practitioners. The editors hope to help the software community realize the importance of this new trend and the many aspects of it that have yet to be conquered.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.153
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.153

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 42
TI Pragmatic and Opportunistic Reuse in Innovative Start-up Companies
A1 Sjaak Brinkkemper,
A1 Slinger Jansen,
A1 Cetin Demir,
A1 Ivo Hunink,
K1 opportunistic reuse
K1 software extension mechanisms
K1 pragmatic reuse
K1 COTS
K1 services
K1 product software
AB Reusing software components and services lets software vendors quickly develop innovative applications and products. According to current literature and experience reports, software development can't integrate functionality successfully without formal component and service selection and integration procedures. Here, the authors discuss two start-up companies that have each developed a product using a pragmatic approach to third-party functionality reuse and integration. Developing products and services pragmatically places requirements on the relationship between the software developer and the third-party functionality provider. The authors discuss the architectural impacts of decisions made during integration. These experiences show other software developers how to speed up product development with minimal risk.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.155
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.155

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 50
TI Situated Software: Concepts, Motivation, Technology, and the Future
A1 Grace A. Lewis,
A1 Soumya Simanta,
A1 Dennis B. Smith,
A1 Sriram Balasubramaniam,
K1 Opportunistic
K1 integration
K1 glue
K1 mashups
K1 situational applications
K1 situated software
AB Situated software, a type of opportunistic software, is created by a small subset of users to fulfill a specific purpose. For example, business users have been creating situated software through mashups, which combine data from multiple sources on internal systems or the Internet. Situated software can change the way users access, perceive, and consume information, and can allow users to finally focus on what to do with information, rather than where to find it or how to get to it. However, situated software also has limitations. This article identifies situated software's role, provides examples of its use, traces the Internet's role in its rapid evolution, outlines areas where it is appropriate, describes its limitations, and presents enablers for adopting situated software in an enterprise.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.159
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.159

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 56
TI Balancing Opportunities and Risks in Component-Based Software Development
A1 Jesal Bhuta,
A1 Barry Boehm,
K1 COTS
K1 opportunities
K1 risk
K1 integration
K1 Incremental Commitment Model
K1 ICM
K1 spiral
K1 concurrent engineering
K1 life-cycle processes
K1 component-based software development
AB The increasingly rapid change in information technology makes it essential for software development projects to continuously monitor and adapt to new sources of opportunity and risk. Software projects and organizations can increase their success rates in software development by better assessing and balancing their opportunities and risks. The authors summarize the Incremental Commitment Model (ICM), a process framework for improved project monitoring and decision making based on balancing opportunities and risks. They give an example of how the ICM framework can improve component-based development choices based on assessment of opportunities and risks. They show how different opportunistic solutions result from different stakeholder value propositions. They elaborate on the risks involved in architectural mismatches among components, present a tool called the Integration Studio (iStudio) that enables projects to assess the most common sources of architectural mismatch between components. Finally, they present representative examples of its use.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.145
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.145

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 64
TI Stimulating Creativity through Opportunistic Software Development
A1 Dragan Gaševic,
A1 Željko Obrenovic,
A1 Anton Eliëns,
K1 opportunistic software development
K1 software engineering education
K1 creativity support
AB Using opportunistic software development principles in computer engineering education encourages students to be creative and to develop solutions that cross the boundaries of diverse technologies. A framework for opportunistic software development education helps to create a space in which students can combine systems that were never meant to work together or even to be reused, and thus produce innovative ideas and solutions. A case study involving students in a course on intelligent human-computer interaction design demonstrates the approach, and the authors discuss some lessons learned.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.162
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.162

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 71
TI Monoliths to Mashups: Increasing Opportunistic Assets
A1 Rose Gamble,
A1 M. Todd Gamble,
K1 opportunities
K1 opportunistic development
K1 mashups
K1 monoliths
K1 hybrid software systems
K1 methodologies
K1 interoperability
K1 reusable software
K1 connectors
AB Opportunities are available resources that yield desired results. An opportunity's suitability depends on who seizes it and the context for its use. Opportunistic development builds hybrid software systems from reusable resources called opportunistic assets. Mashups are Web application hybrids that consume these assets. Monoliths are self-contained systems that can produce such opportunistic assets if they can expose key functions that are easy to mash. A major barrier to reusing legacy monoliths is integration. Elevating integration connectors to first-class opportunistic assets reduces this barrier by linking to and presenting monolith applications as opportunities for mashups.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.152
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.152

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 80
TI Point/Counterpoint
A1 Robert Baillargeon,
A1 Michiel van Genuchten,
K1 reuse
K1 software development
K1 software reuse
AB This department is part of a special issue on opportunistic software systems development. The first article, "Opportunism Is Required to Meet Software Demand," is written by Michiel van Genuchten. The second article, "The Case for Planned Reuse," is written by Robert Baillargeon.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.154
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.154

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 84
TI Managing Slowdown in Improvement Projects
A1 Anna B?rjesson Sandberg,
A1 Lars Mathiassen,
K1 process improvement
K1 progress
K1 commitment
K1 effort
AB Unaware of the consequences, busy managers and senior engineers often behave in ways that hamper progress in improvement projects. Change agents easily become frustrated when key colleagues are late to meetings, delay responding to requests for information, or don't make decisions as required. However, rather than accepting the slowdown such behavior causes, change agents should analyze and address the challenges it signals. Based on experiences in nine process improvement projects at Ericsson, the authors suggest how change agents can analyze slowdown behavior, respond by increasing the commitment and effort of key colleagues, and reinforce progress and results in improvement projects.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.151
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.151

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 90
TI Lying on Software Projects
A1 Robert L. Glass,
A1 Johann Rost,
A1 Matthias S. Matook,
K1 software project management
K1 psychology of computer programming
K1 sociology of computer programming
K1 lying
AB Lying is an understudied activity, especially in the software field. Yet lying is apparently quite common. In a 2006 survey of software practitioners, 86 percent of the respondents had encountered such lying. The most common occurrences were in estimation and status reporting, with those forms of lying happening on 50 percent of projects, some respondents saying even 100 percent. Respondents said that when lying happens, developers at the bottom level of the management hierarchy are most aware of the lying; they often know it's happening even when their management doesn't. Respondents also provided numerous suggestions on how to diminish or eliminate lying. However, many suggested that it's human nature to lie and that little can be done about it.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.150
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.150

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 96
TI Understanding Partnerships between Corporations and the Open Source Community: A Research Gap
A1 Carlos Santos Jr.,
K1 open source software
K1 Sourceforge
K1 market strategies
K1 going-open strategy
K1 proprietary software
K1 Microsoft
K1 software market
AB This article argues that the literature has overlooked corporations' motivations to engage in open source development endeavors, though "going-open" strategies are becoming increasingly common in the market-place. Almost invariably, motivational studies on open source have focused on volunteers, creating an imbalance that favors the adopters of such strategy, not the community. The complexities (and our lack of understanding) of the relationships between corporations and the open source community are presented through the sourceforge.net example. A new research route is suggested to fill this gap.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.167
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.167

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 98
TI Rapid Web Application Development: A Ruby on Rails Tutorial
A1 Viswa Viswanathan,
K1 software engineering
K1 programming environments
K1 Ruby on Rails
K1 Ruby
K1 Ajax
K1 Web services
K1 Web applications
AB Ruby on Rails is a powerful Web application development framework based on the dynamic object-oriented programming language Ruby. With several popular Web sites based on it, its prominence is rapidly rising. Ruby on Rails fully supports Web 2.0 and Web services and enables extremely rapid development. It incorporates several important features of "programming in the large" and is well suited for quickly developing even large, complex applications. A small Web application that also uses Ajax and Web services provides an introduction to Ruby on Rails.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.156
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.156

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 107
TI The Poetry of Code
K1 null
AB Letters to the editor.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.165
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.165

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 108
TI Unconferences Catch On with Developers
A1 Mark Ingebretsen,
K1 BarCamp
K1 DemoCamp
K1 unconferences
K1 Web2Open
K1 open-space meetings
K1 software development
K1 Zoomii.com
AB Informal and deliberately unstructured gatherings of local developers are becoming increasingly popular. Going by such names as BarCamp, DemoCamp, unconferences, Web2Open, and open-space meetings, these events are mashups of teach-ins and jam sessions. The common theme is disdain for the traditional conference where experts deliver canned presentations followed by polite questions from the audience.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.166
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.166

RT Journal Article
JF IEEE Software
YR 2008
VO 25
IS
SP 111
TI An Ancient (but Still Valid?) Look at the Classification of Testing
A1 Robert L. Glass,
K1 software development
K1 test case classification
K1 goal-driven testing
K1 phase-driven testing
K1 software testing
AB Work on test case classification published 16 years ago is still valid for software engineers.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2008.143
LK http://doi.ieeecomputersociety.org/10.1109/MS.2008.143