Uncertainty casts a shadow over all facets of software engineering. This negative meta-property is found in every aspect of software including requirement specifications, design, and code. It can also manifest itself in the tools and engineering practices employed, and in the off-the-shelf software incorporated into the final product. Unfortunately, it is often the case that software engineers ignore these sources of uncertainty or abstract them away. Perhaps this is because there is insufficient understanding of this uncertainty, and no universal techniques for handling its many forms. This paper focuses on the issues of uncertainty in software engineering. It further describes a rough set framework for making decisions in the face of such uncertainty and inconsistency. In particular, we show how to induce rule-based decision making from uncertain information in software engineering applications. Moreover, a freely available tool, Rosetta, is employed to automate the decision-making process. NASA has mandated the use of commercial off-the-shelf (COTS) solutions where possible. But in commercial real-time operating systems certain attributes are uncertain, even where published information is available. Therefore, the selection of a commercial real-time operating system for an embedded system is the software engineering problem with which we explain the rough set decision-making process.
All Science Journal Classification (ASJC) codes