Search Results Heading

MBRLSearchResults

mbrl.module.common.modules.added.book.to.shelf
Title added to your shelf!
View what I already have on My Shelf.
Oops! Something went wrong.
Oops! Something went wrong.
While trying to add the title to your shelf something went wrong :( Kindly try again later!
Are you sure you want to remove the book from the shelf?
Oops! Something went wrong.
Oops! Something went wrong.
While trying to remove the title from your shelf something went wrong :( Kindly try again later!
    Done
    Filters
    Reset
  • Discipline
      Discipline
      Clear All
      Discipline
  • Is Peer Reviewed
      Is Peer Reviewed
      Clear All
      Is Peer Reviewed
  • Reading Level
      Reading Level
      Clear All
      Reading Level
  • Content Type
      Content Type
      Clear All
      Content Type
  • Year
      Year
      Clear All
      From:
      -
      To:
  • More Filters
      More Filters
      Clear All
      More Filters
      Item Type
    • Is Full-Text Available
    • Subject
    • Publisher
    • Source
    • Donor
    • Language
    • Place of Publication
    • Contributors
    • Location
174 result(s) for "Computer software Reusability."
Sort by:
Design patterns in modern C++ : reusable approaches for object-oriented software design
Apply modern C++17 to the implementations of classic design patterns. As well as covering traditional design patterns, this book fleshes out new patterns and approaches that will be useful to C++ developers. The author presents concepts as a fun investigation of how problems can be solved in different ways, along the way using varying degrees of technical sophistication and explaining different sorts of trade-offs. \"Design patterns in modern C++\" also provides a technology demo for modern C++, showcasing how some of its latest features (e.g., coroutines) make difficult problems a lot easier to solve. The examples in this book are all suitable for putting into production, with only a few simplifications made in order to aid readability. You will: Apply design patterns to modern C++ programming ; Use creational patterns of builder, factories, prototype and singleton ; Implement structural patterns such as adapter, bridge, decorator, facade and more ; Work with the behavioral patterns such as chain of responsibility, command, iterator, mediator and more ; Apply functional design patterns such as Monad and more.
Metamodeling-Driven IP Reuse for SoC Integration and Microprocessor Design
This cutting-edge resource offers you an in-depth understanding of metamodeling approaches for the reuse of intellectual properties (IPs) in the form of reusable design or verification components. The books covers the essential issues associated with fast and effective integration of reusable design components into a system-on-a-chip (SoC) to achieve faster design turn-around time. Moreover, it addresses key factors related to the use of reusable verification IPs for a \"write once, use many times\" verification strategy - another effective approach that can attain a faster product design cycle.
Large scale reuse of microservices using CI/CD and InnerSource practices - a case study
Contemporary practices such as InnerSource (adopting open source practices within an organization), continuous integration and delivery (CI/CD), and the use of microservices promote software reuse. Although the benefits of individual contemporary practices on reuse may be known, the implications of collective contemporary practices, mainly challenges and improvements to mitigate the challenges, are to a large extent unknown. In this study, we investigate the additional effort (cost factors), benefits, challenges, and potential improvements in contemporary reuse at Ericsson. We performed the study in two phases: a) the initial data collection based on a combination of data collection methods (e.g., interviews, discussions, company portals), and b) a follow-up group discussion after a year to understand the status of the challenges and improvements identified in the first phase. Our results indicate that developing reusable assets resulted in upfront cost factors, such as additional effort in ensuring compliance. Furthermore, development with reuse also resulted in cost factors, for example, additional effort in integrating and understanding reusable assets. Ericsson perceived the cost factors as an investment resulting in long-term benefits such as improved quality, productivity, customer experience, and way of working. The main challenge faced by Ericsson was the pressure on the producers of reusable assets. Our study shows how InnerSource can lead to an increase in contributions to reusable assets. Furthermore, Ericsson implemented measures like automating compliance checks that improved the maturity of reusable assets, resulting in an increase in their reuse. In summary, effective use of contemporary practices such as InnerSource and CI/CD, along with the use of microservices, can facilitate large scale reuse.
Constraint-based Diversification of JOP Gadgets
Modern software deployment process produces software that is uniform, and hence vulnerable to large-scale code-reuse attacks, such as Jump-Oriented Programming (JOP) attacks. Compiler-based diversification improves the resilience and security of software systems by automatically generating different assembly code versions of a given program. Existing techniques are efficient but do not have a precise control over the quality, such as the code size or speed, of the generated code variants.  This paper introduces Diversity by Construction (DivCon), a constraint-based compiler approach to software diversification. Unlike previous approaches, DivCon allows users to control and adjust the conflicting goals of diversity and code quality. A key enabler is the use of Large Neighborhood Search (LNS) to generate highly diverse assembly code efficiently. For larger problems, we propose a combination of LNS with a structural decomposition  of the problem. To further improve the diversification efficiency of DivCon against JOP attacks, we propose an application-specific distance measure tailored to the characteristics of JOP attacks.  We evaluate DivCon with 20 functions from a popular benchmark suite for embedded systems. These experiments show that DivCon's combination of LNS and our application-specific distance measure generates binary programs that are highly resilient against JOP  attacks (they share between 0.15% to 8% of JOP gadgets) with an optimality gap of 10%. Our results confirm that there is a trade-off between the quality of each assembly code version and the diversity of the entire pool of versions. In particular, the experiments  show that DivCon is able to generate binary programs that share a very small number of  gadgets, while delivering near-optimal code.  For constraint programming researchers and practitioners, this paper demonstrates that LNS is a valuable technique for finding diverse solutions. For security researchers and software  engineers, DivCon extends the scope of compiler-based diversification to performance-critical and resource-constrained applications.  
Aspect-oriented, model-driven software product lines : the AMPLE way
\"Software product lines provide a systematic means of managing variability in a suite of products. They have many benefits but there are three major barriers that can prevent them from reaching their full potential. First, there is the challenge of scale: a large number of variants may exist in a product line context and the number of interrelationships and dependencies can rise exponentially. Second, variations tend to be systemic by nature in that they affect the whole architecture of the software product line. Third, software product lines often serve different business contexts, each with its own intricacies and complexities. The AMPLE (http://www.ample-project.net/) approach tackles these three challenges by combining advances in aspect-oriented software development and model-driven engineering. The full suite of methods and tools that constitute this approach are discussed in detail in this edited volume and illustrated using three real-world industrial case studies\"-- Provided by publisher.
Exploring large language models in enterprise modeling
Modeling is a crucial aspect of the development process in various engineering disciplines. The application of modeling in these fields typically encompasses various phases, including target setting, requirement elicitation, architecture specification, system design, and test case development. This paper focuses on the initial stages of systems development, with a specific focus on requirements engineering (RE) in enterprise modeling (EM). In particular, we examine the potential for domain experts to be replaced by artificial intelligence (AI) usage. The objective of this research is to contribute to a more comprehensive understanding of the limitations of large language models (LLMs). To this end, we employ a process from hospitality management and contrast the output of ChatGPT with that of a domain expert in an experiment. A second experiment was subsequently conducted in light of the assumption that the quality of responses can be enhanced by defining the expected output modeling language notation in the prompt and a metamodel for prompt engineering. The findings of this paper indicate that LLMs cannot replace domain experts in modeling the current situation of an enterprise. However, they can be employed as a supporting tool in EM. Moreover, the development of reusable prompts has emerged as both a viable and promising avenue for future research.
Similarity-based prioritization of test case automation
The importance of efficient software testing procedures is driven by an ever increasing system complexity as well as global competition. In the particular case of manual test cases at the system integration level, where thousands of test cases may be executed before release, time must be well spent in order to test the system as completely and as efficiently as possible. Automating a subset of the manual test cases, i.e, translating the manual instructions to automatically executable code, is one way of decreasing the test effort. It is further common that test cases exhibit similarities, which can be exploited through reuse when automating a test suite. In this paper, we investigate the potential for reducing test effort by ordering the test cases before such automation, given that we can reuse already automated parts of test cases. In our analysis, we investigate several approaches for prioritization in a case study at a large Swedish vehicular manufacturer. The study analyzes the effects with respect to test effort, on four projects with a total of 3919 integration test cases constituting 35,180 test steps, written in natural language. The results show that for the four projects considered, the difference in expected manual effort between the best and the worst order found is on average 12 percentage points. The results also show that our proposed prioritization method is nearly as good as more resource demanding meta-heuristic approaches at a fraction of the computational time. Based on our results, we conclude that the order of automation is important when the set of test cases contain similar steps (instructions) that cannot be removed, but are possible to reuse. More precisely, the order is important with respect to how quickly the manual test execution effort decreases for a set of test cases that are being automated.
Expatriate compensation : the balance sheet approach
Expatriate Compensation: The Balance Sheet Approach presents the fundamental issues involved in developing a compensation approach for expatriate assignments. How to consider differences between countries in the cost of goods and services, housing, income taxes, and other elements are covered in this booklet. Expatriate Compensation describes the most common system worldwide of compensating expatriates--the home-country \"balance sheet\" approach. Used by 90 percent of multinational companies, this approach is designed to protect expatriates from cost differences between their home and host countries.