Analyzes, designs, and implements software based on architecture, functional and technical requirements.