Associate Software Developer Certification
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.
Exam duration: 100 minutes
Total questions: 80 questions
Exam location: Conveniently scheduled and administered online.
Note: Reliable internet connection required.
Candidates must demonstrate:
- The knowledge and ability to establish effective functional and nonfunctional requirements that are complete, concise, correct, consistent, testable, and unambiguous.
- The knowledge and ability to employ appropriate techniques to identify requirements.
- The knowledge and understanding to design a set of software models to flesh out and extract hidden requirements and drive clarity about system functional requirements.
- The knowledge and ability to conduct requirements analysis and prioritize needs.
- The knowledge and ability to perform requirements engineering in the context of software development life cycles and processes.
- The knowledge and understanding to employ various requirements-validation techniques.
- The knowledge and understanding to critically evaluate requirements to identify defects.
- The knowledge of the common techniques used to effectively manage changes to requirements.
- An understanding of the essential design principles and methods relative to the overall software design process.
- An Understanding of the concepts of concurrency, data persistence, error handling, and security to a typical software design project.
- An understanding of the essential elements of software structure and architecture in terms of styles, patterns, and families of programs and frameworks within software development projects.
- A command of the key principles in user interface design for a software development project, including essential principles, interaction modalities, information presentation, and the UI design process -- understanding the appropriate application of quality analysis and evaluation principles, including quality attributes, analysis and evaluation techniques, and quality measures.
- The knowledge and ability to employ design notations in terms of structure and behavioral descriptions in the software design process.
- The knowledge and ability to employ function, object, data-structure, and component-based design methodologies in a typical software design project.
- Knowledge of the managerial skills required in software construction complexity: anticipating change, constructing for verification, and employing construction standards throughout a software construction project.
- Understanding of key construction life cycle models—including planning and measurement—to software construction projects.
- Knowledge and command of construction considerations such as design, languages, coding, testing, quality, and reuse.
- Knowledge and ability to use key construction technologies such as API, state-based and table-driven techniques, runtime configuration, middleware, and other technologies in a typical software construction project.
- Knowledge and ability to work with key software construction tools such as GUI builders, unit testing tools, profiling, performance analysis, and slicing tools.
- Ability to employ appropriate testing terminology throughout the entire testing process.
- Ability to execute and manage specific software test processes and techniques with well-defined objectives and targets.
- Ability to assign and execute appropriate testing techniques, including domain, code, fault, usage, and model-based, within software testing scenarios.
- Ability to apply appropriate test-evaluation scenarios to specific software testing objectives.
- Knowledge and understanding of the complete testing process, taking into account all common practical considerations.