scispace - formally typeset
Search or ask a question

Showing papers in "IEEE Software in 2015"


Journal ArticleDOI
TL;DR: In this article, the authors studied 6,390 low-rated user reviews for 20 free-to-download iOS apps and uncovered 12 types of user complaints, including functional errors, feature requests, and app crashes.
Abstract: Mobile-app quality is becoming an increasingly important issue. These apps are generally delivered through app stores that let users post reviews. These reviews provide a rich data source you can leverage to understand user-reported issues. Researchers qualitatively studied 6,390 low-rated user reviews for 20 free-to-download iOS apps. They uncovered 12 types of user complaints. The most frequent complaints were functional errors, feature requests, and app crashes. Complaints about privacy and ethical issues and hidden app costs most negatively affected ratings. In 11 percent of the reviews, users attributed their complaints to a recent app update. This study provides insight into the user-reported issues of iOS apps, along with their frequency and impact, which can help developers better prioritize their limited quality assurance resources.

317 citations


Journal ArticleDOI
TL;DR: MobiGUITAR (Mobile GUI Testing Framework) provides automated GUI-driven testing of Android apps, based on observation, extraction, and abstraction of GUI widgets' run-time state that automatically generates test cases and reports new bugs.
Abstract: As mobile devices become increasingly smarter and more powerful, so too must the engineering of their software. User-interface-driven system testing of these devices is gaining popularity, with each vendor releasing some automation tool. However, these tools are inappropriate for amateur programmers, an increasing portion of app developers. MobiGUITAR (Mobile GUI Testing Framework) provides automated GUI-driven testing of Android apps. It's based on observation, extraction, and abstraction of GUI widgets' run-time state. The abstraction is a scalable state machine model that, together with test coverage criteria, provides a way to automatically generate test cases. When applied to four open-source Android apps, MobiGUITAR automatically generated and executed 7,711 test cases and reported 10 new bugs. Some bugs were Android-specific, stemming from the event- and activity-driven nature of Android.

272 citations


Journal ArticleDOI
TL;DR: Why Paddy Power decided to adopt CD is explained, the resulting CD capability is described, and the huge benefits and challenges involved are reported.
Abstract: Continuous delivery (CD) has emerged as an auspicious alternative to traditional release engineering, promising to provide the capability to release valuable software continuously to customers. Paddy Power has been implementing CD for the past two years. This article explains why Paddy Power decided to adopt CD, describes the resulting CD capability, and reports the huge benefits and challenges involved. These experiences can provide fellow practitioners with insights for their adoption of CD, and the identified challenges can provide researchers valuable input for developing their research agendas.

230 citations


Journal ArticleDOI
TL;DR: In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who's vice president of services at Docker.
Abstract: In episode 217 of Software Engineering Radio, host Charles Anderson talks with James Turnbull, a software developer and security specialist who's vice president of services at Docker. Lightweight Docker containers are rapidly becoming a tool for deploying microservice-based architectures.

217 citations


Journal ArticleDOI
TL;DR: F-Secure, a software product company, views hackathons as a possible solution to the fundamental business problem of how to make revenue from an idea, spanning the phases from creating the idea to producing a software prototype.
Abstract: A swift execution from idea to market has become a key competitive advantage for software companies to enable them to survive and grow in turbulent business environments. To combat this challenge, companies are using hackathons. A hackathon is a highly engaging, continuous event in which people in small groups produce working software prototypes in a limited amount of time. F-Secure, a software product company, views hackathons as a possible solution to the fundamental business problem of how to make revenue from an idea, spanning the phases from creating the idea to producing a software prototype. However, hackathons pose the challenge of how to transform those promising prototypes into finalized products that create revenue and real business value.

146 citations


Journal ArticleDOI
TL;DR: Researchers investigated how 10 common documentation problems manifested themselves in practice and found the three severest problems were ambiguity, incompleteness, and incorrectness of content.
Abstract: Formal documentation can be a crucial resource for learning to how to use an API. However, producing high-quality documentation can be nontrivial. Researchers investigated how 10 common documentation problems manifested themselves in practice. The results are based on two surveys of a total of 323 professional software developers and analysis of 179 API documentation units. The three severest problems were ambiguity, incompleteness, and incorrectness of content. The respondents often mentioned six of the 10 problems as "blockers"' that forced them to use another API.

145 citations


Journal ArticleDOI
TL;DR: Interviewers interviewed 15 information and communications technology companies to determine the extent to which the companies adopted continuous deployment and to find out why continuous deployment is considered beneficial and what the obstacles are to its full adoption.
Abstract: As part of a Finnish research program, researchers interviewed 15 information and communications technology companies to determine the extent to which the companies adopted continuous deployment. They also aimed to find out why continuous deployment is considered beneficial and what the obstacles are to its full adoption. The benefits mentioned the most often were the ability to get faster feedback, the ability to deploy more often to keep customers satisfied, and improved quality and productivity. Despite understanding the benefits, none of the companies adopted a fully automatic deployment pipeline. The companies also had higher continuous-deployment capability than what they practiced. In many cases, they consciously chose to not aim for full continuous deployment. Obstacles to full adoption included domain-imposed restrictions, resistance to change, customer desires, and developers' skill and confidence.

136 citations


Journal ArticleDOI
TL;DR: In this excerpt from Software Engineering Radio, Stefan Tilkov talks with Adrian Cockcroft about architecture, development, and operations that make the most out of cloud-based offerings, with Cockcroft sharing his experience at Netflix.
Abstract: In this excerpt from Software Engineering Radio, Stefan Tilkov talks with Adrian Cockcroft about architecture, development, and operations that make the most out of cloud-based offerings, with Cockcroft sharing his experience at Netflix.

81 citations


Journal ArticleDOI
TL;DR: This article is a first step on a path towards linking tactics to design solutions based on specific big data technologies, enabling architects to rapidly relate a particular technology's capabilities to a specific set of tactics.
Abstract: Exponential data growth from the Internet, low-cost sensors, and high-fidelity instruments have fueled the development of advanced analytics operating on vast data repositories. These analytics bring business benefits ranging from Web content personalization to predictive maintenance of aircraft components. To construct the data repositories underpinning these systems, rapid innovation has occurred in distributed-data-management technologies, employing schemaless data models and relaxing consistency guarantees to satisfy scalability and availability requirements. These big data systems present many challenges to software architects. Distributed-software architecture quality attributes are tightly linked to both the data and deployment architectures. This causes a consolidation of concerns, and designs must be closely harmonized across these three architectures to satisfy quality requirements.

71 citations


Journal ArticleDOI
TL;DR: The current status of cloud computing is described in this article to help organizations choose the most appropriate cloud-computing model for their organization.
Abstract: To choose the most appropriate cloud-computing model for your organization, you must analyze your IT infrastructure, usage, and needs. To help with this, this article describes cloud computing's current status.

68 citations


Journal ArticleDOI
TL;DR: Recently proposed model repositories aim to support specific needs--for example, collaborative modeling, the ability to use different modeling tools in software life-cycle management, tool interoperability, increased model reuse, and the integration of heterogeneous models.
Abstract: Recently proposed model repositories aim to support specific needs--for example, collaborative modeling, the ability to use different modeling tools in software life-cycle management, tool interoperability, increased model reuse, and the integration of heterogeneous models.

Journal ArticleDOI
TL;DR: When adopting inner source, organizations should consider nine factors pertaining to product, process, and organization; a description of three inner-source initiatives illustrates these nine factors.
Abstract: Inner source, the adoption and tailoring of open source development practices in organizations, is receiving increased interest. However, although it offers numerous benefits, many practitioners are unclear about what it is and how to adopt it. When adopting inner source, organizations should consider nine factors pertaining to product, process, and organization. A description of three inner-source initiatives illustrates these nine factors.

Journal ArticleDOI
TL;DR: In this article, a reference architecture for developing a highly connected, knowledge-enabled manufacturing network that decentralizes production control is presented. This network enables collaborative manufacturing of new products and response to product demand, allowing for greater production flexibility and product variability.
Abstract: Smart manufacturing networks describe a production chain as a marketplace that delivers products on demand. In this chain, partners collaborate in product work routings that connect dispersed service-enabled systems with resources, materials, human expertise, and operation-equipment combinations. Researchers have developed a reference architecture for developing a highly connected, knowledge-enabled manufacturing network that decentralizes production control. This network will enable collaborative manufacturing of new products and response to product demand, allowing for greater production flexibility and product variability.

Journal Article
TL;DR: In Episode 224 of Software Engineering Radio, Eberhard Wolff and Sven Johann discuss technical debt and how to handle it.
Abstract: In Episode 224 of Software Engineering Radio, Eberhard Wolff and Sven Johann discuss technical debt and how to handle it.

Journal ArticleDOI
TL;DR: The authors discuss release planning's importance, the numerous challenges that can result from a lack of such planning, and time-based releases' benefits, and how to adopt time- based release.
Abstract: Traditional release strategies have problems that can be overcome by time-based release management. Interviews with key members of seven prominent volunteer-based open source projects reveal time-based release's advantages. The authors discuss release planning's importance, the numerous challenges that can result from a lack of such planning, and time-based releases' benefits. They also discuss how to adopt time-based release. An online supplement provides additional information on the projects and interview guide discussed in the article.

Journal ArticleDOI
TL;DR: The trends driving the increasing importance of variability management are described, a research agenda is proposed, and an overview of the articles in this special issue is provided.
Abstract: This article presents the state of the art and practice in system and software variability. It describes the trends driving the increasing importance of variability management, proposes a research agenda, and provides an overview of the articles in this special issue. The Web extra at http://youtu.be/80DAUGahNAY is an audio recording of Davide Falessi speaking with Guest Editors Rafael Capilla and Rich Hilliard about the state of the art and practice in system and software variability.

Journal ArticleDOI
TL;DR: With a better understanding of architectural-language requirements, the authors explore the use of model-driven engineering to realize next-generation architectural languages, as well as its limitations.
Abstract: Despite the huge number of architectural languages that have been proposed in the last two decades, evidence today shows that industry-ready, well-accepted, and recognized languages for producing architecture descriptions are still lacking. This article explores the usability requirements of architectural languages from the perspectives of language definition, language mechanisms, and tool support. With a better understanding of architectural-language requirements, the authors explore the use of model-driven engineering to realize next-generation architectural languages, as well as its limitations.

Journal ArticleDOI
TL;DR: This column discusses how the EYE reasoner exploits linked data and how industry is employing EYE.
Abstract: Linked data represents each piece of data as a link between two things. It lets software reasoners arrive at conclusions in a human-like way. This column discusses how the EYE reasoner exploits linked data and how industry is employing EYE.

Journal ArticleDOI
TL;DR: Results from a survey at the Siemens Corporate Development Center India highlight common challenges to refactoring adoption and outline ways to address these challenges and describes key initiatives the development center is planning and launching.
Abstract: Refactoring is a key approach for managing technical debt. In the past few years, refactoring techniques and tools have received considerable attention from researchers and tool vendors. However, several practical challenges must be overcome to facilitate the adoption of refactoring in industrial contexts. Results from a survey at the Siemens Corporate Development Center India highlight common challenges to refactoring adoption. The article also outlines ways to address these challenges and describes key initiatives the development center is planning and launching. This article is part of a special issue on Refactoring.

Journal ArticleDOI
TL;DR: Current tools that monitor networks to detect issues, ensure the components' availability, and measure the resources those components use are discussed.
Abstract: Monitoring is critical to IT system health and thus to businesses' bottom line. This article discusses current tools that monitor networks to detect issues, ensure the components' availability, and measure the resources those components use.

Journal ArticleDOI
TL;DR: Researchers developed a choreography synthesis tool that describes peer-to-peer message exchanges among participant services from a global perspective and provides automatic support for realizing choreographies in a distributed setting.
Abstract: Future Internet research promotes the production of a distributed-computing environment that will be increasingly surrounded by a virtually infinite number of software services that can be composed to meet user needs. Services will be increasingly active entities that, communicating peer-to-peer, can proactively make decisions and autonomously perform tasks. Service choreography is a form of decentralized service composition that describes peer-to-peer message exchanges among participant services from a global perspective. In a distributed setting, obtaining the coordination logic required to realize a choreography is nontrivial and error prone. So, automatic support for realizing choreographies is needed. For this purpose, researchers developed a choreography synthesis tool. The Web extra at http://www.di.univaq.it/marco.autili/synthesis/shortdemo/demo.htm is a short demonstration of CHOReOSynt, a choreography synthesis tool.

Journal ArticleDOI
TL;DR: The Naming the Pain in Requirements Engineering (NaPiRE) initiative as mentioned in this paper found that human interaction is necessary for eliciting and specifying high-quality requirements, regardless of country, project type, or company size.
Abstract: As part of the Naming the Pain in Requirements Engineering (NaPiRE) initiative, researchers compared problems that companies in Brazil and Germany encountered during requirements engineering (RE). The key takeaway was that in RE, human interaction is necessary for eliciting and specifying high-quality requirements, regardless of country, project type, or company size.

Journal ArticleDOI
TL;DR: In Episode 228 of Software Engineering Radio, Sven Johann and Simon Brown discuss using sketches to create and communicate software architecture.
Abstract: In Episode 228 of Software Engineering Radio, Sven Johann and Simon Brown discuss using sketches to create and communicate software architecture.

Journal ArticleDOI
TL;DR: In this article, the authors examine architectural refactoring from a new angle: as an evolution technique that revisits architectural decisions and identifies related design, implementation, and documentation tasks.
Abstract: A refactoring aims to improve a certain quality while preserving others. For example, code refactoring restructures code to make it more maintainable without changing its observable behavior. Given the success of code refactoring, it's surprising that architectural refactoring (AR) hasn't taken off yet. This article examines AR from a new angle: as an evolution technique that revisits architectural decisions and identifies related design, implementation, and documentation tasks.

Journal ArticleDOI
TL;DR: In this paper, a case study shows how a representative tool analyzed commercial Android applications and the Samsung Mobile Software Developer's Kit, providing useful diagnostic information, including bug characteristics, discusses diagnostic challenges, and reviews state-of-the-art diagnostic techniques.
Abstract: Many smartphone applications' smart services are realized in a way that wastes energy or degrades performance, seriously affecting the user experience. What's worse, developers lack powerful tools to combat such problems, curbing the growth of Internet-based mobile computing. Research communities and industries have issued a strong call for effective techniques to diagnose energy and performance bugs in smartphone applications. This article describes bug characteristics, discusses diagnostic challenges, and reviews state-of-the-art diagnostic techniques. A case study shows how a representative tool analyzed commercial Android applications and the Samsung Mobile Software Developer's Kit, providing useful diagnostic information.

Journal ArticleDOI
Grady Booch1
TL;DR: This is an audio podcast of author Grady Booch reading his On Computing column, in which he discusses how the authors must come to grips with a number of practical and ethical conundrums as machines of their own creation become their companions, helpmates, and servants.
Abstract: There was a time we could only dream of machines that served as companions, as helpmates, as servants. Now, we build them. As we slowly and inevitably and irreversibly surrender to these machines of our own creation, we must come to grips with a number of practical, ethical conundrums. The Web extra at http://youtu.be/17MsuJY4Xmo is an audio podcast of author Grady Booch reading his On Computing column, in which he discusses how we must come to grips with a number of practical and ethical conundrums as machines of our own creation become our companions, helpmates, and servants.

Journal ArticleDOI
TL;DR: The Connected-Car Prototyping Platform provides both a back end for applications interacting with connected cars and an abstraction of such connected devices for developers for developers to test and evaluate ideas for successful applications.
Abstract: The Connected-Car Prototyping Platform provides both a back end for applications interacting with connected cars and an abstraction of such connected devices for developers. It also provides services such as identity management and data storage. Its main purposes are experimentation, prototyping, evaluation of ideas, and reduction of time-to-market for successful applications.

Journal ArticleDOI
TL;DR: Three release engineers share their perspectives on quality metrics for releases and on continuous delivery's benefits and limitations, and they recommend future research areas.
Abstract: Three release engineers share their perspectives on quality metrics for releases and on continuous delivery's benefits and limitations. They also discuss release-engineering job skills, the required mind-set, the role of education, and cultural change, and they recommend future research areas. The Web extra at http://youtu.be/O3cJQTZXAI8 is an audio recording of Davide Falessi speaking with Guest Editors Bram Adams and Foutse Khomh about release engineering and its value to the software industry.

Journal ArticleDOI
TL;DR: Researchers evaluated seven implementations of both Python 2 and Python 3 to facilitate the selection of one of them, evaluated run-time performance and memory consumption and investigated each implementation's important qualitative characteristics.
Abstract: Python is a widely used general-purpose dynamic language. Owing to its popularity, many implementations exist for the two distinct Python 2 and Python 3 language versions. Researchers evaluated seven implementations of both language versions to facilitate the selection of one of them. For this purpose, they carefully selected 523 programs to execute in each implementation. They evaluated run-time performance and memory consumption and investigated each implementation's important qualitative characteristics.

Journal ArticleDOI
TL;DR: Researchers analyzed quality attribute concerns from 15 years of Architecture Trade-Off Analysis Method data, gathered from 31 projects, and found modifiability was the dominant concern across all project types; performance, availability, and interoperability also received considerable attention.
Abstract: Agile teams strive to balance short-term feature development with longer-term quality concerns. These evolutionary approaches often hit a "complexity wall"' from the cumulative effects of unplanned changes, resulting in unreliable, poorly performing software. So, the agile community is refocusing on approaches to address architectural concerns. Researchers analyzed quality attribute concerns from 15 years of Architecture Trade-Off Analysis Method data, gathered from 31 projects. Modifiability was the dominant concern across all project types; performance, availability, and interoperability also received considerable attention. For IT projects, a relatively new quality-deployability-emerged as a key concern. The study results provide insights for agile teams allocating architecture-related tasks to iterations. For example, teams can use these results to create checklists for release planning or retrospectives to help assess whether to address a given quality to support future needs. This article is part of a special issue on Software Architecture.