This certification recognizes candidates who have acquired the basic knowledge and understanding required for developing software products. It requires a coherent, demonstrable understanding of the principles and processes in software requirements, software design, software construction, and software testing.
- Establishing clear, achievable, and unambiguous requirements is the first step in effective software design.
- Software design is the process of defining architecture, components, interfaces, and other important characteristics of a system.
- Software construction involves coding, verification, unit and integration testing, and debugging to produce a working software product in accordance with design.
- Testing is the ultimate verification that the designed software product behaves as expected on a finite set of selected cases from an infinite domain of execution possibilities. Testing confirms that the requirements were achievable, the design was buildable, and that construction was, in fact, successful.
These knowledge areas are all identified by the Software Engineering Body of Knowledge as some of the key elements involved in software development.