In recent years component-based development has become an established approach. Component-based Software Engineering (CBSE) that deals with the entire lifecycle of component-based products has been focused on technologies related to design and implementation of software components and systems built from software components. The experience has shown that pure technologies alone are not enough. A CBSE approach requires certain changes in development and life cycle processes. However, very few CBSE works, either research or practical, have addressed these topics. This paper describes principle differences of component-based and non-component based processes. Also we give an overview of a case study from a company that applies component-based approach.
Complex software is becoming an important component of modern safety-critical systems. To assure the correct function of such software, the development processes are heavily regulated by international standards, often making the process very rigid, unable to accommodate changes, causing late integration and increasing the cost of development. Agile methods have been introduced to address these issues in several software domains, but their use in safety-critical applications remains to be investigated. This paper provides an initial analysis of agile practices in the context of software development for the European railway sector, regulated by the EN 50128 standard. The study complements previous studies on the use of agile methods in other regulated domains.A systematic mapping between EN 50128 requirements and agile practices showed that all practices support some objectives of the standard. Important supporting features recognized were focus on simple design, test automation, coding standards, continuous integration and validation. However, several problematic areas were also identified, including vague requirement analysis and change management. Most agile practices must be adapted to suit regulated software development and this analysis outlines a subset of the required changes.
Prioritization, selection and minimization of test cases are well-known problems in software testing. Test case prioritization deals with the problem of ordering an existing set of test cases, typically with respect to the estimated likelihood of detecting faults. Test case selection addresses the problem of selecting a subset of an existing set of test cases, typically by discarding test cases that do not add any value in improving the quality of the software under test. Most existing approaches for test case prioritization and selection suffer from one or several drawbacks. For example, they to a large extent utilize static analysis of code for that purpose, making them unfit for higher levels of testing such as integration testing. Moreover, they do not exploit the possibility of dynamically changing the prioritization or selection of test cases based on the execution results of prior test cases. Such dynamic analysis allows for discarding test cases that do not need to be executed and are thus redundant. This paper proposes a generic method for prioritization and selection of test cases in integration testing that addresses the above issues. We also present the results of an industrial case study where initial evidence suggests the potential usefulness of our approach in testing a safety-critical train control management subsystem.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.