TL;DR: This paper proposes an organization of the technical debt landscape, and introduces the papers on technical debt contained in the issue.
Abstract: The metaphor of technical debt in software development was introduced two decades ago to explain to nontechnical stakeholders the need for what we call now "refactoring" As the term is being used to describe a wide range of phenomena, this paper proposes an organization of the technical debt landscape, and introduces the papers on technical debt contained in the issue
TL;DR: Tagme as mentioned in this paper is a cross-referencing system for short text fragments and Wikipedia pages that can accurately manage short textual fragments (such as snippets of search engine results, tweets, news, or blogs) on the fly.
Abstract: Several recent software systems have been designed to obtain novel annotation of cross-referencing text fragments and Wikipedia pages. Tagme is state of the art in this setting and can accurately manage short textual fragments (such as snippets of search engine results, tweets, news, or blogs) on the fly.
TL;DR: An interview study involving 35 practitioners from a variety of domains aimed to characterize technical debt at the ground level to find out how software practitioners perceive it and understand the context in which technical debt occurs, including its causes, symptoms, and effects.
Abstract: An interview study involving 35 practitioners from a variety of domains aimed to characterize technical debt at the ground level to find out how software practitioners perceive it. The study also aimed to understand the context in which technical debt occurs, including its causes, symptoms, and effects. In addition, the study focused on how practitioners currently deal with technical debt. This analysis paints a picture of a large, complex balancing act of various short- and long-term concerns. The Web Extra gives the interview questions used by Erin Lim, Nitin Taksande, and Carolyn Seaman.
TL;DR: Lean development lays out a set of principles that demand a whole-product, complete life-cycle, cross-functional approach, and is the more likely candidate to guide the combination of design, development, deployment, and validation into a single feedback loop focused on the discovery and delivery of value.
Abstract: To put the concept of lean software development in context, it's useful to point out similarities and differences with agile software development. Agile development methods have generally expected system architecture and interaction design to occur outside the development team, or to occur in very small increments within the team. Because of this, agile practices often prove to be insufficient in addressing issues of solution design, user interaction design, and high-level system architecture. Increasingly, agile development practices are being thought of as good ways to organize software development, but insufficient ways to address design. Because design is fundamentally iterative and development is fundamentally iterative, the two disciplines suffer if they are not carefully integrated with each other. Because lean development lays out a set of principles that demand a whole-product, complete life-cycle, cross-functional approach, it's the more likely candidate to guide the combination of design, development, deployment, and validation into a single feedback loop focused on the discovery and delivery of value.
TL;DR: Model-based testing (MBT) strives to automatically and systematically generate test cases and introduce technologies and methods to achieve this goal.
Abstract: Model-based testing (MBT) strives to automatically and systematically generate test cases. In this column, Ina Schieferdecker introduces MBT technologies and methods.
TL;DR: An exploratory study of the factors for successful collaboration between industry and academia in software research in order to ensure industrial relevance in academic research.
Abstract: Collaboration between industry and academia supports improvement and innovation in industry and helps to ensure industrial relevance in academic research. This article presents an exploratory study of the factors for successful collaboration between industry and academia in software research.
TL;DR: The SQALE (software quality assessment based on life-cycle expectations) method provides guidance for managing technical debt present in an application's source code.
Abstract: To date, several methods are available for estimating the technical debt present in an application's source code. The SQALE (software quality assessment based on life-cycle expectations) method provides guidance for managing this debt. This article provides some implementation recommendations the authors learned from coaching and assisting large organizations in setting up and using SQALE.
TL;DR: This article characterizes technical debt across 700 business applications, comprising 357 MLOC, and presents a formula with adjustable parameters for estimating the principal of technical debt from structural quality data.
Abstract: This article characterizes technical debt across 700 business applications, comprising 357 MLOC. These applications were analyzed against more than 1,200 rules of good architectural and coding practice. The authors present a formula with adjustable parameters for estimating the principal of technical debt from structural quality data.
TL;DR: This article presents interviews with eight organizations that use cloud computing, and the results suggest that cloud computing can make testing faster and enhance the delivery of testing services.
Abstract: As applications and services migrate to the cloud, testing will follow the same trend. Therefore, organizations must understand the dynamics of cloud-based testing. This article presents interviews with eight organizations that use cloud computing. The results suggest that cloud computing can make testing faster and enhance the delivery of testing services. Cloud computing also highlights important aspects of testing that require attention, such as integration and interoperability. This article includes a Web extra that provides additional references for further study.
TL;DR: The gist of the author's message is that software engineering needs to become a true engineering discipline to increase its impact, gain credibility, and ultimately ensure the success and recognition of the young discipline.
Abstract: The author provides, based on 20 years of research and industrial experience, his assessment of software engineering research. He then builds on such analysis to provide recommendations on how we need to change as a research community to increase our impact, gain credibility, and ultimately ensure the success and recognition of our young discipline. The gist of the author's message is that we need to become a true engineering discipline.
TL;DR: By stipulating that all modifications to a system's configuration can only be performed through its configuration management system and by treating the system's rules as code, an organization ensures that the IT systems it delivers to its clients are not inscrutable monoliths that just happen to work but documented modular engines that work by design.
Abstract: An IT system's setup and configuration affects developers mainly due to the proliferation and complexity of Internet-facing systems. Fortunately, we can control and conquer this complexity by adopting IT-system configuration management tools. By stipulating that all modifications to a system's configuration can only be performed through its configuration management system and by treating the system's rules as code, an organization ensures that the IT systems it delivers to its clients are not inscrutable monoliths that just happen to work but documented modular engines that work by design.
TL;DR: To acquire more knowledge about the performance of different agile or lean methods, scholars should conduct similar studies in different organizations in different application domains and with people of different cultures and competences.
Abstract: Proponents of various processes and methods in the agile and lean communities have made many bold claims about usefulness, but those claims are rarely supported by empirical investigations. Data gathered from more than 12,000 work items collected over two years sheds light on Kanban versus Scrum.To acquire more knowledge about the performance of different agile or lean methods, scholars should conduct similar studies in different organizations in different application domains and with people of different cultures and competences.
TL;DR: This article draws on principles and practice from the domain of safety argument construction to describe the use of explicit and structured conformance arguments to help address the problem of uncertainty about standards conformance.
Abstract: Conformance to software standards plays an essential role in establishing confidence in high-integrity software systems. However, standards conformance suffers from uncertainty about its meaning for three reasons: because requirements of the standard must be interpreted to fit the specifics of the application; because standards can deliberately leave options for developers; and because goal-based software standards exist that simply specify the high-level principles of software assurance without prescribing a specific means of compliance. The overall effect of these issues is that when conformance to a software assurance standard is claimed, there can be a lack of clarity as to exactly what the claim entails. This article draws on principles and practice from the domain of safety argument construction to describe the use of explicit and structured conformance arguments to help address this problem.
TL;DR: Kenen is an approach that assists organizations in OSLC for Java components in the process of ensuring that an organization satisfies the licensing requirements of the open source software it reuses.
Abstract: Open source license compliance (OSLC) is the process of ensuring that an organization satisfies the licensing requirements of the open source software it reuses, whether for its internal use or as a part of a product it ships. The major challenges of OSLC include component identification, provenance discovery, license identification, and licensing requirements analysis. Kenen is an approach that assists organizations in OSLC for Java components.
TL;DR: Faced with handling multiple large data sets in modern data-processing settings, researchers have proposed sketch data structures that capture salient properties while occupying little memory and that update or probe quickly.
Abstract: Faced with handling multiple large data sets in modern data-processing settings, researchers have proposed sketch data structures that capture salient properties while occupying little memory and that update or probe quickly. In particular, the Count-Min sketch has proven effective for a variety of applications. It concurrently tracks many item counts with surprisingly strong accuracy.
TL;DR: This special issue provides a set of practical contributions to the engineering of cloud computing applications and includes software processes, architecture and design approaches, testing, scalability engineering, security engineering, and applications of highly parallel cloud-based systems.
Abstract: Cloud computing is a new paradigm for software systems where applications are divided into sets of composite services hosted on leased, highly distributed platforms. There are many new software engineering challenges in building effective cloud-based software applications. This special issue provides a set of practical contributions to the engineering of cloud computing applications and includes software processes, architecture and design approaches, testing, scalability engineering, security engineering, and applications of highly parallel cloud-based systems.
TL;DR: The authors provide an overview of coupled evolution methods and tools to handle dependencies of model-driven engineering metamodels and how to deal with invalid artifacts.
Abstract: Model-driven engineering bases a wide range of artifacts on metamodels. When such metamodels evolve, such as a new version of Unified Modeling Language or Business Process Execution Notation or a company-specific metamodel, underlying artifacts often become invalid. In this article, the authors provide an overview of coupled evolution methods and tools to handle such dependencies. I look forward to hearing from both readers and prospective authors about this column and the technologies you want to know more about.
TL;DR: An experimental approach employs the Google App Engine (GAE) for high-performance parallel computing and demonstrates good scalability of a Monte Carlo simulation algorithm.
Abstract: An experimental approach employs the Google App Engine (GAE) for high-performance parallel computing. A generic master-slave framework enables fast prototyping and integration of parallel algorithms that are transparently scheduled and executed on the Google cloud infrastructure. Compared to Amazon Elastic Compute Cloud (EC2), GAE offers lower resource-provisioning overhead and is cheaper for jobs shorter than one hour. Experiments demonstrated good scalability of a Monte Carlo simulation algorithm. Although this approach produced important speedup, two main obstacles limited its performance: middleware overhead and resource quotas.
TL;DR: A proposed approach models the cloud environment and applies dynamic symbolic execution to generate test inputs and cloud states and shows that it can achieve high structural coverage in open-source Azure cloud applications.
Abstract: Platforms such as Windows Azure let applications conduct data-intensive cloud computing. Unit testing can help ensure high-quality development of such applications, but the results depend on test inputs and the cloud environment's state. Manually providing various test inputs and cloud states is laborious and time-consuming. However, automated test generation must simulate various cloud states to achieve effective testing. To address this challenge, a proposed approach models the cloud environment and applies dynamic symbolic execution to generate test inputs and cloud states. Applying this approach to open-source Azure cloud applications shows that it can achieve high structural coverage.
TL;DR: Five problems that lean principles to software product management can help organizations avoid or solve are identified.
Abstract: Although the discipline of software product management plays an important role in the development of successful products, each company adopts its practices in its own way. Regardless of variations, companies face common problems. This article identifies five problems that lean principles to software product management can help organizations avoid or solve.
TL;DR: Six Impact columns published over the last three years and a couple of precisely measured products provide the opportunity to calculate a compound annual growth rate.
Abstract: Six Impact columns published over the last three years and a couple of precisely measured products provide the opportunity to calculate a compound annual growth rate.
TL;DR: This special issue presents outputs from an NSF-funded workshop on 'Studying Professional Software Design' held in 2010 at UC Irvine in which participants analyzed the same professional design sessions from different analytic perspectives.
Abstract: This special issue sets an agenda for research into early software design, and this introduction outlines drivers and issues for that agenda It argues that looking at software from a design perspective, understanding software as a designed artifact, and considering how design reaches into the whole software life cycle can bring significant benefits both to our understanding of what works in software design and to our approach to tools and practices The special issue presents outputs from an NSF-funded workshop on 'Studying Professional Software Design' held in 2010 at UC Irvine in which participants analyzed the same professional design sessions from different analytic perspectives The workshop dialogues provide an example of what's critically needed to drive this research agenda: empirically grounded dialogues between research and practitioners
TL;DR: The authors present a flexible approach and a supporting tool for assisting suppliers and certifiers in developing an agreement about the evidence necessary to demonstrate compliance to a safety standard.
Abstract: Safety-critical software-dependent systems such as those found in the avionics, automotive, maritime, and energy domains often require certification based on one or more safety standards. To demonstrate compliance with software safety standards, such as IEC 61508, suppliers must collect evidence that the certifiers can use. Without an upfront agreement between the system supplier and the certifier about the necessary evidence to collect, omissions invariably occur and must be remedied after the fact and at significant costs. The authors present a flexible approach and a supporting tool for assisting suppliers and certifiers in developing an agreement about the evidence necessary to demonstrate compliance to a safety standard. The approach is model-based-specifically, it expresses the safety standard of interest via an information model. The supporting tool, which is available online, takes this information model as input and helps system suppliers and certifiers reach a documented, consistent agreement about the safety evidence to be collected.
TL;DR: The scope of technical debt in software projects is spread across all areas including architecture, design, code, and test scripts.
Abstract: Agile teams create business value by responding to changing business environments and delivering working software at regular intervals. While doing so, they make design tradeoffs to satisfy business needs such as meeting a release schedule. Technical debt is the result of such decisions or tradeoffs. When this happens, agile teams must pay off the accumulated debt by improving designs during subsequent iterations in order to improve maintainability. This must happen in a systematic way so that technical debt does not swell up and damage the project. Accomplishing this is one of the major challenges in distributed agile projects. The scope of technical debt in software projects is spread across all areas including architecture, design, code, and test scripts.
TL;DR: The Cloudberry project has built a novel HTML5-based cloud phone, in which all the device's user functionality is downloaded and cached dynamically from the Web, including all the applications and even the entire top-level user interface.
Abstract: The Cloudberry project has built a novel HTML5-based cloud phone—a mobile device in which all the device's user functionality is downloaded and cached dynamically from the Web, including all the applications and even the entire top-level user interface. One of the most central benefits of a cloud phone is that nearly any of its customer-facing features can be changed on millions of devices all over the world almost instantly. This will shorten application and service deployment and update life cycles significantly. From the user's perspective, the key benefit is multiple device ownership: the ability to access the same applications and data effortlessly from different devices without tedious installation, data copying, or synchronization hassles.
TL;DR: Software for oil exploration and production has been a topic for software R&D for decades, and Shell is one of the main players, but the company is very specific about which software it wants to develop and which softwareIt wants to buy elsewhere, even for a core competence like oil explorationand production.
Abstract: Software for oil exploration and production has been a topic for software R&D for decades, and Shell is one of the main players. The role of such applications can't be underestimated. For example, what's the cost of a defect if you drill in the wrong place as a result of a software bug, knowing that without software you wouldn't have a clue where to start drilling? Shell, one of the largest companies in the world, is very specific about which software it wants to develop and which software it wants to buy elsewhere, even for a core competence like oil exploration and production.
TL;DR: A2QPM is the first approach to quantitative management that offers software organizations a well-defined, detailed guideline for assessing their software processes and applying beneficial quantitative techniques to improve them.
Abstract: The Assessment Approach for Quantitative Process Management (A2QPM) helps identify software process measures for quantitative analysis even when organizations lack formal systems for process measurement. A2QPM is the first approach to quantitative management that offers software organizations a well-defined, detailed guideline for assessing their software processes and applying beneficial quantitative techniques to improve them. All the A2QPM applications we've described resulted in quantitative analysis implementations. Although the organizations had institutionalized neither a measurement process nor the processes that were subject to assessment, A2QPM nevertheless enabled quantitative improvement of the issues under study, such as process performance and product quality. Although we didn't intend the approach to be a shortcut for high ML appraisals, it has also helped organizations on their way to high maturity.
TL;DR: A study of SOA benefits reports a mixed reaction from the organizations that have implemented such systems, especially when service-oriented thinking fails at an organizational level, financial responsibility is misallocated, or mature tool chains are lacking.
Abstract: A study of SOA benefits reports a mixed reaction from the organizations that have implemented such systems, especially when service-oriented thinking fails at an organizational level, financial responsibility is misallocated, or mature tool chains are lacking.
TL;DR: The structure that package managers bring both to the tools the authors use in the development process and the libraries they reuse in their products ties nicely with the recent move emphasizing DevOps (development operations) as an integration between software development and IT operations.
Abstract: A package management system organizes and simplifies the installation and maintenance of software by standardizing and organizing the production and consumption of software collections. As a software developer, you can benefit from package managers in two ways: through a rich and stable development environment and through friction-free reuse. Promisingly, the structure that package managers bring both to the tools we use in our development process and the libraries we reuse in our products ties nicely with the recent move emphasizing DevOps (development operations) as an integration between software development and IT operations.
TL;DR: Establishing a multidisciplinary privacy committee with clear roles and responsibilities assigned to various members is a possible approach to help address accountability.
Abstract: The changing global business environment and continued introduction of new technologies are significantly affecting organizations' privacy practices. In this environment, privacy-enhancing technology (PET) often becomes a key to protecting personal information. A considerable amount of literature has discussed PET technologies and their benefits. However, the lack of clear organizational accountability can become a roadblock to effectively designing and implementing PET solutions. For organizations that don't employ these solutions, the result is increased regulatory and privacy risk and potential costs related to privacy breaches. Establishing a multidisciplinary privacy committee with clear roles and responsibilities assigned to various members is a possible approach to help address accountability.