Skip to Main Content
Requirements about software attributes have numerous complex and nontrivial interdependencies. Requirements conflict with each other when they make contradicting statements about common software attributes, and they cooperate when they mutually enforce such attributes. Because software developers rarely apply formal requirements specification techniques in practice, and because reliable techniques for natural language understanding aren't available, it's generally infeasible to automatically identify conflicts and cooperation among requirements. In software development and maintenance, identifying conflicts and cooperation among requirements is challenging. Fortunately, quality attributes can help. In addition, automated traceability techniques can eliminate falsely identified conflicts and cooperation efficiently.