Explore chapters and articles related to this topic
Overview of Verification and Validation for Embedded Software in Medical Systems
Published in Richard C. Fries, Handbook of Medical Device Design, 2019
Using the model as shown in Figure 23-1, Software Validation Testing covers validation of the software product by testing against the requirements generated in the requirements generation phase. Software Validation is analogous to black box testing. Integration Testing covers verification of features defined from the requirements generation phase, the concept/high level design phase, and the feature interface design phase. Integration Testing tests the collection of software modules, where the software modules are joined together to provide a product feature or higher level of functionality. Finally, Unit Testing covers verification at the lowest level, which includes feature interface design phase and the low-level design phase. Unit Testing typically covers the verification of smaller collections of software modules.
Refactoring Support for Variability-intensive Systems
Published in Ivan Mistrik, Matthias Galster, Bruce R. Maxim, Software Engineering for Variability Intensive Systems, 2019
Vahid Alizadeh, Marouane Kessentini, Bruce R. Maxim
We start by summarizing existing manual and semi-automated approaches for software refactoring. In Fowler's book [30], a non-exhaustive list of low-level design problems in source code has been defined. For each design problem (i.e., code smell), a particular list of possible refactorings is suggested to be applied by software maintainers manually. Indeed, in the literature, most of the existing approaches are based on quality metrics improvement to deal with refactoring. In [39], Sahraoui et al. have proposed an approach to detect opportunities of code transformations (i.e., refactorings) based on the study of the correlation between some quality metrics and refactoring changes. To this end, different rules are defined as a combination of metrics/thresholds to be used as indicators for detecting code smells and refactoring opportunities. For each code-smell a pre-defined and standard list of transformations should be applied in order to improve the quality of the code. Another similar work is proposed by Du Bois et al. [40] who start from the hypothesis that refactoring opportunities corresponds of those which improve cohesion and coupling metrics to perform an optimal distribution of features over classes. Du Bois et al. analyze how refactorings manipulate coupling and cohesion metrics, and how to identify refactoring opportunities that improve these metrics. However, these two approaches are limited to only some possible refactoring operations with a small set of quality metrics. In addition, improving some quality metrics does not mean that existing code smells are fixed.
System and Software Testing Strategies
Published in Ron S. Kenett, Emanuel R. Baker, Process Improvement and CMMI® for Systems and Software, 2010
Ron S. Kenett, Emanuel R. Baker
Tailoring the V-model and testing strategy requires consideration of time-to-market requirements, and quality and performance results. Some guidelines for setting up the test strategy include: Product definition: Marketing activities or customer and user needs should be determined prior to approval of the product plan, and combined within the PRD document. The testing phase of the PRD in the V-model is performed by system testing.Design phase: This phase of the V-model includes high-level design and low-level design. During these activities, test engineers need to participate in design reviews in order to gain knowledge and better prepare for the testing phase. This knowledge will contribute to quality and time-to-market.Implementation and unit testing: Prototype development for hardware, and coding and unit testing activities, is typically carried out by the development team, sometimes with tools or test environments provided by test engineers.
High-Speed On-Chip Signaling: Voltage or Current-Mode?
Published in IETE Journal of Research, 2021
The modern central processing unit (CPU) that has defined the performance of a computer for many years is facing several challenges. These bottlenecks can be identified as the memory bottleneck (the bandwidth of the channel between the computer's memory and CPU), the power wall (the chip's overall temperature handling capacity and power consumption), and the instruction level parallelism wall (the availability of enough discrete parallel instructions for a multi-core chip). The latter bottleneck is mostly dependent on the computer's instruction set architecture and the availability of the resources and is beyond the scope of this work. However, the earlier two bottlenecks are dependent on the low-level design issues (circuits, interconnect). If we closely observe the clock frequency trend of the microprocessor over the last 24 years, we can easily predict that the upcoming years the processor speed will settle down in the frequency range of 3–5 GHz, as shown in Figure 1 [1]. This bandwidth limitation is largely because of overall power consumption of the system and the available cooling systems. The situation is even more critical for portable mobile devices, such as laptops, tablets, and phones, where the power wall hits much earlier. This is primarily due to the constraints of battery capacity and limited or often fanless cooling.
Comparison between two genetic algorithms minimizing carbon footprint of energy and materials in a residential building
Published in Journal of Building Performance Simulation, 2019
Richard Gagnon, Louis Gosselin, Sumee Park, Sebastian Stratbücker, Stéphanie Decker
Contrarily to the previously defined variables (independent variables), the ones related to the heating systems are hierarchical variables and a schematic representation is shown in Figure 4. Three possible heating systems (high-level variable) have been chosen in order to meet the heating demand of the ground floor: gas boiler, electrical heat pump, electric heating. The heating capacity of each system is among the low-level variables ). The heat distribution is provided by water radiators, water convectors or electrical radiators. The number of heaters per zone varies with the size of the room but this number is not optimized in this work and each heater is identical, i.e. same type and same heater rated capacity. Both last characteristics are also low-level design variables. The water radiator capacity is evaluated with a design surface temperature of 70°C and a surrounding air temperature of 20°C. The maximum water flow rate is set to limit the water velocity to 1.75 m/s considering a pipe diameter of 12.7 mm (McQuiston, Parker, and Spitler 2005; Vedavarz, Kumar, and Hussain 2007). In the presence of a water radiator, the fluid is heated from a gas boiler or a heat pump.2 On the other hand, the electrical heater does not require any other system than the baseboard electric heater itself.