5 research outputs found
Computational Representation And Reasoning Support For Requirements Change Management In Complex System Design
Requirements play a critical role within any design process and the activity of identifying and maintaining a system\u27s requirements is essential to. However, design is a complex and iterative process, where requirements are continuously evolving and are volatile. This change, if not managed, may result in undesired uncertainty within the design process leading to monetary losses and time delays, as the changing of requirements has been recognized as a major cause of project failure. In order to mitigate issues that arise due to requirement change propagation, this research presents a computational reasoning tool to help designers and engineers predict change propagation in the requirements domain. The developed tool makes use of requirements syntactical elements to build relationships between requirements. Two heterogeneous industry case studies, spanning four engineering change propagations, are used to both explore the use of requirements in predicting change propagation and generalize an automated prediction tool. Using design structure matrices and graph theoretic based metrics a predictive model is generalized from 491,520 relationship and metric permutation combinations. The developed tool makes use of an RMS scoring algorithm to rank requirements in order of most likely to change due to previous requirement changes. The developed tool is tested against a third industry case study where five engineering changes are predicted. Results indicate the tool can predict sixty percent of change propagation within the top four percent requirements scoring and predict all change propagation within the top thirteen percent scoring
Recommended from our members
A rule-based approach to software traceability to product family systems
Software traceability has been recognized as an important activity in software system development. Traceability relations can improve the quality of a system being developed, as well as reduce the time and cost associated with the development. In particular, traceability relations can facilitate the development process, reuse of parts of the systems by comparing artefacts, validation that a system meets its requirements, understanding the rationale for certain design and implementation decisions, and analysis of the implications of changes in the system. However, support for traceability in software engineering environments and tools are not always adequate. In addition, automatic generation and maintenance of traceability relations are not easy tasks.
In contrast, product family systems, in which software systems share a common set of features and new product members can be built around a set of reusable artefacts, is considered an important paradigm for software system engineering. Despite its importance and advances in the area, the support for common and variable aspects among applications and the engineering of reusable and adaptable components are difficult tasks. This is mainly due to the large number and heterogeneity' of documents generated during the development of product family systems.
The underlying principle of this thesis is to use of traceability to support the difficulties associated with product family systems. More specifically, traceability can assist with the identification of common and variable functionalities of the product members, reduction of inconsistencies between product members, reuse of available core assets, and establishment of relationships between product members and product family architectures