Problem
1. Explain why it is necessary to design the system architecture before the specifications are written
2. Explain why it is important to describe software designs
3. Explain white-box and black-box testing in detail
4. Discuss whether it is possible for engineers to test their own programs in an objective way