Concerned with professional facets of the software development process, including the research, design, programming, and testing of computer software. Other titles which are often used with similar meanings: programmer, software analyst, and software engineer.