Software systems must face two challenges today: growing complexity and increasing parallelism in the underlying computational models. The problem of increased complexity is often...
Software helps people fulfill their goals, but development tools lack understanding of those goals. But if development tools did understand how software artifacts relate to higher...
Delivering increasingly complex software-reliant systems demands better ways to manage the long-term effects of shortterm expedients. The technical debt metaphor is gaining signif...
Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazma...
Given the dizzying pace of change in computer science, trying to look too far into the future of software engineering is hard. However, it might be possible to predict the future ...
The transfer of entire projects to offshore locations, the aging and renewal of core developers in legacy products, the recruiting in fast growing Internet companies, and the part...
Mining software engineering data has emerged as a successful research direction over the past decade. In this position paper, we advocate Software Intelligence (SI) as the future ...
Like programs, programming languages are not only mathematical objects but also software engineering artifacts. Describing the semantics of real-world languages can help bring lan...
Multiprocessors are now commonplace, and cloud computing is swiftly following suit. While it is possible to write high performance code for these systems, concurrency bugs are ext...
Most software tools and environments help developers analyze the present and past development states of their software systems. Few approaches have investigated the potential cons...
Yuriy Brun, Reid Holmes, Michael D. Ernst, David N...
Social media has changed the way that people collaborate and share information. In this paper, we highlight its impact for enabling new ways for software teams to form and work to...