8,662 research outputs found
Strong Dependencies between Software Components
Component-based systems often describe context requirements in terms of
explicit inter-component dependencies. Studying large instances of such
systems?such as free and open source software (FOSS) distributions?in terms of
declared dependencies between packages is appealing. It is however also
misleading when the language to express dependencies is as expressive as
boolean formulae, which is often the case. In such settings, a more appropriate
notion of component dependency exists: strong dependency. This paper introduces
such notion as a first step towards modeling semantic, rather then syntactic,
inter-component relationships. Furthermore, a notion of component sensitivity
is derived from strong dependencies, with ap- plications to quality assurance
and to the evaluation of upgrade risks. An empirical study of strong
dependencies and sensitivity is presented, in the context of one of the
largest, freely available, component-based system
MAINTENANCE AND POWER SAVINGS IN LARGE MULTIPLANE DATA CENTER FABRICS
Within a Data Center (DC) environment network upgrades are often challenging and may consume significant amounts of time and network administrator resources. Additionally, DC networks tend to consume large amounts of energy and dissipate considerable amounts of heat that can be challenging to evacuate in densely populated fabrics. To address these challenges techniques are presented herein that support, possibly among other things, the construction of a network model; the use of Machine Learning (ML) to predict low and high load periods and, in low periods, determining the ratio of resources that may be taken offline; updating the equal-cost multi-path (ECMP) rules in the leaves to avoid selected planes so as to take the full plane spine and super-spine nodes offline; and upgrading one of the super-spine nodes and then one of the spine nodes to ensure that there is always a rollback path in case of a problem. If the upgrading is successful, the techniques may include proceeding to upgrade all of the super-spine nodes and all of the spine nodes
Demonstration of a Response Time Based Remaining Useful Life (RUL) Prediction for Software Systems
Prognostic and Health Management (PHM) has been widely applied to hardware
systems in the electronics and non-electronics domains but has not been
explored for software. While software does not decay over time, it can degrade
over release cycles. Software health management is confined to diagnostic
assessments that identify problems, whereas prognostic assessment potentially
indicates when in the future a problem will become detrimental. Relevant
research areas such as software defect prediction, software reliability
prediction, predictive maintenance of software, software degradation, and
software performance prediction, exist, but all of these represent diagnostic
models built upon historical data, none of which can predict an RUL for
software. This paper addresses the application of PHM concepts to software
systems for fault predictions and RUL estimation. Specifically, this paper
addresses how PHM can be used to make decisions for software systems such as
version update and upgrade, module changes, system reengineering, rejuvenation,
maintenance scheduling, budgeting, and total abandonment. This paper presents a
method to prognostically and continuously predict the RUL of a software system
based on usage parameters (e.g., the numbers and categories of releases) and
performance parameters (e.g., response time). The model developed has been
validated by comparing actual data, with the results that were generated by
predictive models. Statistical validation (regression validation, and k-fold
cross validation) has also been carried out. A case study, based on publicly
available data for the Bugzilla application is presented. This case study
demonstrates that PHM concepts can be applied to software systems and RUL can
be calculated to make system management decisions.Comment: This research methodology has opened up new and practical
applications in the software domain. In the coming decades, we can expect a
significant amount of attention and practical implementation in this area
worldwid
Inter-Organizational Information and Middleware System Projects: Success, Failure, Complexity, and Challenges
Managing projects is firmly driven by its business goals. Simplistically, considering a project as success, or failure, depends on it meeting its objectives and requirements within its resources. While traditional projects are well constructed, Information Systems projects tend to be complex and ill-defined. These problems are exacerbated in contexts of Inter-Organizational Information (IOIS) and Middleware Systems (IOMS). Such Inter-Enterprise System projects are likely to face challenges related to the non-homogeneity of project goals across partners, complexity of relationships within and across organizations, geographical dispersion, legal differences across boundaries, etc. In this paper we explore various approaches identifying outcomes of IS projects: Rational, Narrative, Organizational, and Performative. Furthermore, we identify the complexity and particular challenges of IOIS and IOMS projects and how such approaches towards identifying project success and/or failure are applicable or inapplicable. We conclude with a call for more research to be conducted in this nascent but vital area
Putting the Semantics into Semantic Versioning
The long-standing aspiration for software reuse has made astonishing strides
in the past few years. Many modern software development ecosystems now come
with rich sets of publicly-available components contributed by the community.
Downstream developers can leverage these upstream components, boosting their
productivity.
However, components evolve at their own pace. This imposes obligations on and
yields benefits for downstream developers, especially since changes can be
breaking, requiring additional downstream work to adapt to. Upgrading too late
leaves downstream vulnerable to security issues and missing out on useful
improvements; upgrading too early results in excess work. Semantic versioning
has been proposed as an elegant mechanism to communicate levels of
compatibility, enabling downstream developers to automate dependency upgrades.
While it is questionable whether a version number can adequately characterize
version compatibility in general, we argue that developers would greatly
benefit from tools such as semantic version calculators to help them upgrade
safely. The time is now for the research community to develop such tools: large
component ecosystems exist and are accessible, component interactions have
become observable through automated builds, and recent advances in program
analysis make the development of relevant tools feasible. In particular,
contracts (both traditional and lightweight) are a promising input to semantic
versioning calculators, which can suggest whether an upgrade is likely to be
safe.Comment: to be published as Onward! Essays 202
Warranty and Maintainability Analysis for Sensor Embedded Remanufactured Products in Reverse Supply Chain Environment
Remanufactured products are very popular with consumers due to their appeal to offer the latest technology with lower prices compared to brand new products. The quality of a remanufactured product induces hesitation for many consumers, in regards to its efficacy and reliability. One stratagem that remanufacturers could employ to encourage customer security are product warranties. This paper studies and scrutinizes the impact that would be had by offering renewing warranties on remanufactured products. This study was able to determine the optimal costs of warranty for two-dimensional non-renewable warranty offered on remanufactured products using the simulation model and design of experiments
Understanding and Generating Patches for Bugs Introduced by Third-party Library Upgrades
During the process of software development, developers rely heavily on third-party libraries to enable functionalities and features in their projects. However, developers are faced with challenges of managing dependency messes when a project evolves. One of the most challenging problems is to handle issues caused by dependency upgrades.
To better understand the issues caused by Third-party Library Upgrades (TLU), in this thesis, we conduct a comprehensive study of the bugs caused by dependency upgrades. The study is conducted on a collection of 8,952 open-source Java projects from GitHub and 304 Java projects on Apache Software Foundation (ASF) JIRA systems. We collect 83 bugs caused by inappropriate TLUs in total. Our inspection shows that TLUs are conducted out of different reasons. The most popular reason is that the project is preparing for release and wants to keep its dependencies up-to-date (62.3%). Another popular reason is that the older version of a dependency is not compatible with other dependencies (15.3%). Our inspection also indicates that the problems introduced by inappropriate dependency upgrades can be categorized into different types, i.e., program failures that are detectable statically and dynamically. Then, we investigate developers’ efforts on repairing bugs caused by inappropriate TLUs. We notice that 32.53% of these bugs can be fixed by only modifying the build scripts (which we call TLU-build bugs), 20.48% of them can be fixed by merely modifying the source code (which is called TLU-code bugs), and 16.87% of them require modifications in multiple sources. TLU-build bugs and TLU-code bugs as the two most popular types, are explored more by us.
For TLU-code bugs, we summarize the common ways used to fix them. Furthermore, we study whether current repair techniques can fix TLU-code bugs efficiently. For the 14 TLU-code bugs that cause test failures and runtime failures, the study shows that existing automated program repair tools can only work on 6 of the 14 investigated bugs. Each of them can only fix a limited amount of the 6 bugs, but the union of them can finally fix 5 out of 6 bugs.
For TLU-build bugs, by leveraging the knowledge from our study, we summarize common patterns to fix build scripts, and propose a technique to automatically fix them. Our evaluation shows the proposed technique can successfully fix 9 out of 14 TLU-build bugs
- …