Static analysis examines code without executing it and can detect syntax errors, undeclared variables, type mismatches, and unreachable code. However, it cannot validate whether requirements are correctly captured or if the software meets user needs; requirements errors require manual review or dynamic testing. Options A, C, and D are all detectable through static code analysis.